package Ġru . pop ov . body a . how money . presentation . ui . account . activities Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . Navigation View Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 4 . view . Gravity Compat Ċ import Ġandroid . support . v 4 . widget . Drawer Layout Ċ import Ġandroid . support . v 7 . app . ActionBar Drawer Toggle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Toast Ċ import Ġcom . are l lo mobile . mvp . presenter . Inject Presenter Ċ import Ġcom . are l lo mobile . mvp . presenter . Provide Presenter Ċ import Ġdagger . android . Android Injection Ċ import Ġdagger . android . Android Injector Ċ import Ġdagger . android . Dispatch ing Android Injector Ċ import Ġdagger . android . support . Has Support Fragment Injector Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . app _ bar _ main .* Ċ import Ġru . pop ov . body a . core . mvp . App Activity Ċ import Ġru . pop ov . body a . how money . R Ċ import Ġru . pop ov . body a . how money . domain . wallet . models . Wallet Ċ import Ġru . pop ov . body a . how money . presentation . mvp . account . Account Presenter Ċ import Ġru . pop ov . body a . how money . presentation . mvp . account . Account View Ċ import Ġru . pop ov . body a . how money . presentation . ui . about . fragments . About Fragment Ċ import Ġru . pop ov . body a . how money . presentation . ui . add transaction . Add Operation Fragment Ċ import Ġru . pop ov . body a . how money . presentation . ui . add transaction . Add Transaction Fragment Ċ import Ġru . pop ov . body a . how money . presentation . ui . common . Scre ens . AB OUT _ SCREEN Ċ import Ġru . pop ov . body a . how money . presentation . ui . common . Scre ens . NEW _ TRANSACTION _ SCREEN Ċ import Ġru . pop ov . body a . how money . presentation . ui . common . Scre ens . SETTINGS _ SCREEN Ċ import Ġru . pop ov . body a . how money . presentation . ui . common . Scre ens . STATS _ SCREEN Ċ import Ġru . pop ov . body a . how money . presentation . ui . common . Scre ens . WAL LET _ SCREEN Ċ import Ġru . pop ov . body a . how money . presentation . ui . settings . fragments . Settings Fragment Ċ import Ġru . pop ov . body a . how money . presentation . ui . stats . Stats Fragment Ċ import Ġru . pop ov . body a . how money . presentation . ui . wallet . Wallet Fragment Ċ import Ġru . pop ov . body a . how money . presentation . ui . add wallet . Add Wallet Fragment Ċ import Ġru . pop ov . body a . how money . presentation . ui . common . Scre ens . PERIOD IC _ SCREEN Ċ import Ġru . pop ov . body a . how money . presentation . ui . pend ings . Pending Transactions Fragment Ċ import Ġru . ter r ak ok . c icer one . Navigator Holder Ċ import Ġru . ter r ak ok . c icer one . android . Support App Navigator Ċ import Ġjavax . inject . Inject ĊĊ Ċ class ĠAccount Activity Ġ: ĠApp Activity (), ĠAccount View , ĊĠĠĠĠĠĠĠ ĠNavigation View . On Navigation ItemSelected Listener , ĊĠĠĠĠĠĠĠ ĠAdd Wallet Fragment . On Wallet Created Callback , ĊĠĠĠĠĠĠĠ ĠHas Support Fragment Injector Ġ{ ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġ@ Inject Presenter ĊĠĠĠ Ġlateinit Ġvar Ġaccount Presenter : ĠAccount Presenter ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġnavigation Holder : ĠNavigator Holder ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġinjector : ĠDispatch ing Android Injector < Fragment > ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadd Wallet Fragment : ĠAdd Wallet Fragment ĊĊĠĠĠ Ġ@ Provide Presenter ĊĠĠĠ Ġfun Ġprovide Overview Presenter (): ĠAccount Presenter Ġ= Ġaccount Presenter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠAndroid Injection . inject ( this ) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġinit UI () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġnavigation Holder . set Navigator ( navigator ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigation Holder . remove Navigator () ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( drawer _ layout . is Drawer Open ( Gravity Compat . START )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer _ layout . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( support FragmentManager . back Stack Entry Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . pop Back Stack () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Presenter . on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġif Ġ( support FragmentManager . back Stack Entry Count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Show MenuItem ( R . id . add _ wallet ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġon Hide MenuItem ( R . id . add _ wallet ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsupport Fragment Injector (): ĠAndroid Injector < Fragment > Ġ= Ġinjector ĊĊĠĠĠ Ġoverride Ġfun Ġon Navigation ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ wallet Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav _ view . setChecked Item ( R . id . nav _ wallet ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Presenter . navigate To Wallet Screen () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ settings Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav _ view . setChecked Item ( R . id . nav _ settings ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Presenter . navigate To Settings Screen () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ stats Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav _ view . setChecked Item ( R . id . nav _ stats ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Presenter . navigate To Stats Screen () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ periodic Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav _ view . setChecked Item ( R . id . nav _ periodic ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Presenter . navigate To Periodic Transactions Screen () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdrawer _ layout . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġitem . itemId ĊĠĠĠĠĠĠĠ Ġwhen Ġ( id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . add _ wallet Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Wallet Fragment Ġ= ĠAdd Wallet Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Wallet Fragment . show ( support FragmentManager , Ġ" ADD _ WAL LET _ FRAG ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Wallet Comp osed ( wallet : ĠWallet ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaccount Presenter . create Wallet ( wallet ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Wallet Created () Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Wallet Fragment . dismiss () ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠR . string . wallet _ successfully _ created , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ToolBar ( title Res Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . title Ġ= ĠgetString ( title Res Id ) ĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation OnClickListener Ġ{ Ġon Back Pressed () Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( support FragmentManager . back Stack Entry Count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Toggle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Show MenuItem ( R . id . add _ wallet ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer _ layout . set Drawer Lock Mode ( Drawer Layout . LOCK _ MODE _ UNLOCK ED ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Hide MenuItem ( R . id . add _ wallet ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer _ layout . set Drawer Lock Mode ( Drawer Layout . LOCK _ MODE _ LOCK ED _ CLOSED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Back Arrow ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġnav _ view . set Navigation ItemSelected Listener ( this ) ĊĠĠĠĠĠĠĠ Ġnav _ view . setChecked Item ( R . id . nav _ wallet ) ĊĠĠĠĠĠĠĠ Ġtoolbar . title Ġ= Ġresources . getString ( R . string . wallet ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġinit Toggle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Show MenuItem ( res Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . menu . find Item ( res Id )?. isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġinvalidate Options Menu () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Hide MenuItem ( res Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . menu . find Item ( res Id )?. isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġinvalidate Options Menu () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Back Arrow ( state : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( state ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Toggle () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Back Arrow ( false ) ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Ġ= ĠAction Bar Drawer Toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġdrawer _ layout , Ġtoolbar , ĠR . string . navigation _ drawer _ open , ĠR . string . navigation _ drawer _ close ) ĊĠĠĠĠĠĠĠ Ġdrawer _ layout . add Drawer Listener ( toggle ) ĊĠĠĠĠĠĠĠ Ġtoggle . sync State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġnavigator Ġ= Ġobject Ġ: ĠSupport App Navigator ( this , Ġsupport FragmentManager , ĠR . id . main _ container ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Activity Intent ( context : ĠContext , Ġscreen Key : ĠString , Ġdata : ĠAny ?): ĠIntent ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Fragment ( screen Key : ĠString , Ġdata : ĠAny ?): ĠFragment ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( screen Key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠW AL LET _ SCREEN Ġ-> ĠWallet Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSTAT S _ SCREEN Ġ-> ĠStats Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNEW _ TRANSACTION _ SCREEN Ġ-> ĠAdd Operation Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSET T INGS _ SCREEN Ġ-> ĠSettings Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA BO UT _ SCREEN Ġ-> ĠAbout Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPER IOD IC _ SCREEN Ġ-> ĠPending Transactions Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġshow System Message ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Account Activity , Ġmessage , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexit () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }