package Ġcom . example . bi ke . rid ers . feature . main . view Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . ActionBar Drawer Toggle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . view . Gravity Compat Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . example . bi ke . rid ers . R Ċ import Ġcom . example . bi ke . rid ers . feature . login . view . Login Activity Ċ import Ġcom . example . bi ke . rid ers . feature . main . api . Bi ke Ċ import Ġcom . example . bi ke . rid ers . feature . main . api . Network Ċ import Ġcom . example . bi ke . rid ers . feature . main . contracts . Main Interactor Ċ import Ġcom . example . bi ke . rid ers . feature . main . contracts . Main Presenter Ċ import Ġcom . example . bi ke . rid ers . feature . main . contracts . Main View Ċ import Ġcom . example . bi ke . rid ers . feature . main . presenter . Main Presenter Impl Ċ import Ġcom . example . bi ke . rid ers . feature . maps . view . Maps Activity Ċ import Ġcom . example . bi ke . rid ers . feature . profile Image . view . Profile Image Ċ import Ġcom . example . bi ke . rid ers . feature . signup . view . Signup Activity Ċ import Ġcom . google . android . material . navigation . Navigation View Ċ import Ġdagger . android . D agger Activity Ċ import Ġio . reactivex . Observable Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . app _ bar _ main .* Ċ import Ġkotlinx . android . synt hetic . main . content _ main .* Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠMainActivity Ġ: ĠD agger Activity (), ĠMain View Ġ, ĠNavigation View . On Navigation ItemSelected Listener { ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpresenter : ĠMain Presenter ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġmain Interactor : ĠMain Interactor ĊĊĠĠĠ Ġlateinit Ġvar Ġadapter : ĠNetwork Adapter ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ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 () ĊĊĠĠĠĠĠĠĠ Ġnav _ view . set Navigation ItemSelected Listener ( this ) ĊĊĊĠĠĠĠĠĠĠ Ġdisplay Screen (- 1 ) ĊĊĠĠĠĠĠĠĠ Ġpresenter Ġ= ĠMain Presenter Impl ( this , main Interactor ) ĊĠĠĠĠĠĠĠ Ġpresenter . check Fetch Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( drawer _ layout . is Drawer Open ( Gravity Compat . START )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer _ layout . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . add _ action Ġ-> Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisplay Screen ( id : ĠInt ){ ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( id ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ main Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ map Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ MainActivity , ĠMaps Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ detail Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Clicked ĠDetails ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ logout Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . check Logged Out User () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ profile image Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ MainActivity , ĠProfile Image :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ privacy Policy Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Clicked ĠPrivacy ĠPolicy ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Navigation ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġdisplay Screen ( item . itemId ) ĊĊĠĠĠĠĠĠĠ Ġdrawer _ layout . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnavigate To Home Screen () Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ MainActivity , ĠLogin Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġfinish () ĠĠĠĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisplay Data ( array List : ĠArrayList < Bi ke >) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠNetwork Adapter ( this @ MainActivity Ġ, Ġarray List ) ĊĠĠĠĠĠĠĠ Ġb ikes List . layout Manager Ġ= ĠLinearLayoutManager ( this @ MainActivity ) ĊĠĠĠĠĠĠĠ Ġb ikes List . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisplay Error ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , Ġmessage , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊ Ċ }