package Ġru . ann in . tr uck monitor . presentation . ui . activity Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . Navigation View Ċ import Ġandroid . support . design . widget . Tab Layout Ċ import Ġandroid . support . v 4 . app . Dialog Fragment Ċ import Ġandroid . support . v 4 . app . FragmentManager Ċ import Ġandroid . support . v 4 . view . Gravity Compat Ċ import Ġandroid . support . v 4 . view . ViewPager Ċ import Ġandroid . support . v 4 . widget . Drawer Layout Ċ import Ġandroid . support . v 7 . widget . Toolbar Ċ import Ġandroid . view . View Ċ import Ġcom . are l lo mobile . mvp . M vp AppCompatActivity Ċ import Ġcom . are l lo mobile . mvp . presenter . Inject Presenter Ċ import Ġcom . are l lo mobile . mvp . presenter . Presenter Type Ċ import Ġcom . are l lo mobile . mvp . presenter . Provide Presenter Ċ import Ġru . ann in . tr uck monitor . R Ċ import Ġru . ann in . tr uck monitor . data . repository . KeyStore Repository Ċ import Ġru . ann in . tr uck monitor . data . repository . RestApi Repository Ċ import Ġru . ann in . tr uck monitor . data . repository . Settings Repository Ċ import Ġru . ann in . tr uck monitor . domain . model . Current Car riage Response Ċ import Ġru . ann in . tr uck monitor . domain . value . Navigation MenuItem Ċ import Ġru . ann in . tr uck monitor . presentation . common . Base View Delegate Ċ import Ġru . ann in . tr uck monitor . presentation . presenter . Main Presenter Ċ import Ġru . ann in . tr uck monitor . presentation . ui . adapter . Current Car riage Pager Adapter Ċ import Ġru . ann in . tr uck monitor . presentation . ui . alert . Error Alert Ċ import Ġru . ann in . tr uck monitor . presentation . ui . view . Main View Ċ import Ġru . ann in . tr uck monitor . utils . visible Ċ Ċ /** Ċ Ġ* ĠÐ ĵ Ð» Ð°Ð² Ð½ÑĭÐ¹ ĠÑįÐº ÑĢÐ°Ð½ . Ċ Ġ* Ċ Ġ* Ġ@ author ĠP avel ĠAn nin . Ċ Ġ*/ Ċ class ĠMainActivity Ġ: ĠM vp AppCompatActivity (), ĠMain View Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠREQUEST _ CODE _ QR _ SCAN NER Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġstart ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠComponent 's ĊĠĠĠ Ġ@ Inject Presenter ( type Ġ= ĠPres enter Type . LOCAL ) ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠMain Presenter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġview Delegate : ĠView Delegate ĊĊĠĠĠ Ġ@ Provide Presenter ( type Ġ= ĠPres enter Type . LOCAL ) ĊĠĠĠ Ġfun Ġprovide Presenter () Ġ= ĠMain Presenter ( RestApi Repository , ĠKey Store Repository , ĠSettings Repository ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġview Delegate Ġ= ĠView Delegate ( findViewById ( R . id . root ), Ġsupport FragmentManager ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Click Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation MenuItem . HOME Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĠÐ¢ ÐµÐº Ñĥ ÑīÐ¸Ð¹ ĠÑįÐº ÑĢÐ°Ð½ . Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation MenuItem . HISTORY Ġ-> Ġpresenter . on History Open () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation MenuItem . USER _ INFO Ġ-> Ġpresenter . on UserInfo Open () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation MenuItem . AB OUT Ġ-> ĠTODO () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation MenuItem . LOG _ OUT Ġ-> Ġpresenter . on Log Out () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnavigate 2 Me () Ġ= ĠMe Activity . start ( this ) ĊĊĠĠĠ Ġoverride Ġfun Ġnavigate 2 History () Ġ= ĠHistory Activity . start ( this ) ĊĊĠĠĠ Ġoverride Ġfun Ġnavigate 2 Login () Ġ{ ĊĠĠĠĠĠĠĠ ĠLogin Activity . start ( this ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnavigate 2 Qr Scanner () Ġ= ĠQ r Scanner Activity . start ( this , ĠREQUEST _ CODE _ QR _ SCAN NER ) ĊĊĠĠĠ Ġoverride Ġfun Ġtoggle Load ( is Load : ĠBoolean ) Ġ= Ġview Delegate . run Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . is Load Ġ= Ġis Load ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġerror ( err : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġfragment Ġ= Ġsupport FragmentManager . find Fragment By Tag ( Error Alert . TAG ) ĊĠĠĠĠĠĠĠ Ġif Ġ( fragment Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Ġ= ĠError Alert . newInstance ( err ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( fragment Ġas ĠDialog Fragment ). show ( support FragmentManager , ĠError Alert . TAG ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Car riage ( data : ĠCurrent Car riage Response ) Ġ= Ġview Delegate . run Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Car riage Ġ= Ġdata ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠView ĠDelegate ĠÐ³ Ð» Ð°Ð² Ð½Ð¾Ð³Ð¾ ĠÑįÐº ÑĢÐ°Ð½ Ð° . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ property Ġis Navigation Open ĠÐ¡ Ð¾ÑģÑĤ Ð¾Ñı Ð½Ð¸ Ðµ ĠÐ½ Ð°Ð² Ð¸Ð³ Ð°ÑĨÐ¸ Ð¾Ð½ Ð½Ð¾Ð³Ð¾ ĠÐ¼ÐµÐ½ Ñİ . ĊĠĠĠĠ Ġ* Ġ@ property Ġis Load ĠÐĺ Ð½ Ð´ Ð¸Ðº Ð°ÑĤÐ¾ÑĢ ĠÐ· Ð°Ð³ ÑĢÑĥÐ· ÐºÐ¸ . ĊĠĠĠĠ Ġ* Ġ@ property Ġon Item Click ĠÐ¡ Ð¾Ð±Ñĭ ÑĤÐ¸ Ðµ , ĠÐ²ÑĭÐ± ÑĢÐ°Ð½ ĠÐ¿ Ð½ Ñĥ Ðº ÑĤ ĠÐ½ Ð°Ð² Ð¸Ð³ Ð°ÑĨÐ¸Ð¸ . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠView Delegate ( v Root : ĠView , Ġprivate Ġval Ġfm : ĠFragment Manager ) Ġ: ĠBase View Delegate ( v Root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠView 's ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġv Load Ġby Ġfind View < View >( R . id . v _ load _ indicator ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġv Drawer Ġby Ġfind View < Drawer Layout >( R . id . root ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġv Navigation Ġby Ġfind View < Navigation View >( R . id . v _ navigation ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġv Toolbar Ġby Ġfind View < Toolbar >( R . id . v _ toolbar ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġv Tab Ġby Ġfind View < Tab Layout >( R . id . v _ tab ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcnt Pages Ġby Ġfind View < ViewPager >( R . id . cnt _ pager ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdapter 's ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcar riage Adapter Ġby Ġlazy Ġ{ ĠCurrent Car riage Pager Adapter ( fm , Ġresource ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠData 's ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġtemp Select Item : ĠNavigation MenuItem ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠProperties ĊĠĠĠĠĠĠĠ Ġvar Ġis Navigation Open : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġv Drawer . is Drawer Visible ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġv Drawer . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Navigation Open Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value ) Ġv Drawer . open Drawer ( Gravity Compat . START ) Ġelse Ġv Drawer . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġis Load : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġv Load . visible () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġv Load . visible ( value ) ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Car riage : ĠCurrent Car riage Response ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġcar riage Adapter . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Car riage Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠListener 's ĊĠĠĠĠĠĠĠ Ġvar Ġon Item Click : Ġ(( Navigation MenuItem ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv Tab . setup With ViewPager ( cnt Pages ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcnt Pages . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġcar riage Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠListener 's ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv Drawer . add Drawer Listener ( object Ġ: ĠDraw er Layout . Drawer Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Drawer StateChanged ( newState : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĠEmpty Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Drawer Slide ( drawer View : ĠView ?, Ġslide Offset : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĠEmpty Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Drawer Opened ( drawer View : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĠEmpty Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Drawer Closed ( drawer View : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Select Item ?. let Ġ{ Ġon Item Click ?. invoke ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Select Item Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv Navigation . set Navigation ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Select Item Ġ= Ġwhen Ġ( it . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ home Ġ-> ĠNavigation MenuItem . HOME ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ history Ġ-> ĠNavigation MenuItem . HISTORY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ user _ info Ġ-> ĠNavigation MenuItem . USER _ INFO ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ about Ġ-> ĠNavigation MenuItem . AB OUT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ log _ out Ġ-> ĠNavigation MenuItem . LOG _ OUT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn @ set Navigation ItemSelected Listener Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Navigation Open Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ set Navigation ItemSelected Listener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv Toolbar . set Navigation OnClickListener Ġ{ Ġis Navigation Open Ġ= Ġtrue Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }