package Ġcom . di am ont . expense . tracker . util . enums Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . di am ont . expense . tracker . R Ċ Ċ /** Ċ Ġ* ĠThis Ġenum Ġlists Ġthe Ġpossible Ġtypes Ġof Ġtransaction Ċ Ġ*/ Ċ enum Ġclass ĠTransaction Type ( val Ġid Ġ: ĠInt , Ġval Ġstring Id Ġ: Int ) Ġ{ ĊĠĠĠ Ġ/** ĠDo ĠNOT Ġchange Ġthe Ġid 's Ġto Ġkeep Ġdatabase Ġvalid Ġ*/ ĊĠĠĠ ĠEXP ENSE ( 1 , ĠR . string . expense ), ĊĠĠĠ ĠIN CO ME ( 0 , ĠR . string . income ), ĊĠĠĠ ĠWITH DRAW ( 2 , ĠR . string . withdraw ), ĊĠĠĠ ĠDE POSIT ( 3 , ĠR . string . deposit ), ĊĠĠĠ ĠPL AN _ EXP ENSE ( 4 , ĠR . string . plan _ expense ), ĊĠĠĠ ĠPL AN _ IN CO ME ( 5 , ĠR . string . plan _ income ); ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComp anion Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠMake Ġit Ġpossible Ġto Ġget Ġthe Ġtransaction Ġtype Ġby Ġits Ġint Ġvalue ĊĠĠĠĠĠĠĠĠ Ġ* Ġ( for Ġexample Ġfrom Ġdatabase Ġor Ġfrom Ġxml Ġattribute ) ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmap Ġ= Ġvalues (). associate By ( Transaction Type :: id ) ĊĠĠĠĠĠĠĠ Ġfun Ġfrom Int ( from Id Ġ: ĠInt ) Ġ= Ġmap [ from Id ] ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠReturn Ġthe Ġid Ġfrom Ġthe Ġindex Ġin Ġthe Ġarray Ġgiven Ġby Ġget Values AsString List () ĊĠĠĠĠĠĠĠĠ Ġ* ĠNeed Ġit Ġfor Ġexposed Ġdropdown Ġmenu Ġand Ġdatabase Ġusage ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun ĠgetId From Index ( index Ġ: ĠInt ) Ġ= Ġvalues ()[ index ]. id ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġmethod Ġreturns Ġthe Ġindex Ġof Ġa Ġtransaction Ġtype ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġget Index ( type : ĠTransaction Type ): ĠInt { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĠFind Ġthe Ġindex Ġof Ġthe Ġselected Ġpayment Ġmethod Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġvalues (). indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== Ġvalues ()[ i ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġindex ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠReturn Ġthe Ġenum Ġvalue Ġfrom Ġthe Ġindex ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġget EnumValue From Index ( index : ĠInt ) Ġ= Ġvalues ()[ index ] ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠReturn Ġthe Ġpossible Ġvalues Ġas Ġa Ġstring Ġarray ĊĠĠĠĠĠĠĠĠ Ġ* ĠWe Ġneed Ġit Ġfor Ġarray Ġadapters Ġfor Ġexposed ĊĠĠĠĠĠĠĠĠ Ġ* Ġdropdown Ġmenus ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġget Values AsString List ( context : ĠContext ) Ġ: ĠList < String >{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstring List Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenum Values Ġ= Ġvalues () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġenum Values . indices ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstring List . add ( context . resources . getString ( enum Values [ i ]. string Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġstring List ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ