package Ġbr . com . aram iz u . id og . modules . main . view Ċ Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . view . Gravity Ċ import Ġbr . com . aram iz u . id og . R Ċ import Ġbr . com . aram iz u . id og . enums . Drawer Menu Type Ċ import Ġbr . com . aram iz u . id og . extensions . push Fragment Ċ import Ġbr . com . aram iz u . id og . modules . main . adapters . Drawer Menu Adapter Ċ import Ġbr . com . aram iz u . id og . modules . main . contracts . Main Contract Ċ import Ġbr . com . aram iz u . id og . modules . main . router . Main Router Ċ import Ġbr . com . aram iz u . id og . models . Drawer MenuItem Ċ import Ġbr . com . aram iz u . id og . modules . categories . view . Categories Fragment Ċ import Ġbr . com . aram iz u . id og . utils . String Resources Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . app _ toolbar .* Ċ import Ġorg . jetbrains . ank o . alert Ċ import Ġorg . jetbrains . ank o . no Button Ċ import Ġorg . jetbrains . ank o . yes Button Ċ import Ġjava . util . ArrayList Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠMain Contract . View Ġ{ ĊĊĠĠĠ Ġoverride Ġlateinit Ġvar Ġpresenter : ĠMain Contract . Presenter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ ĠMain Router . assemble Module ( this ) ĊĊĠĠĠĠĠĠĠ ĠsetUp Toolbar () ĊĠĠĠĠĠĠĠ ĠsetUp Listeners () ĊĠĠĠĠĠĠĠ Ġsetup Main Fragment () ĊĊĠĠĠĠĠĠĠ Ġpresenter . onCreate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Listeners () Ġ{ ĊĠĠĠĠĠĠĠ ĠimageView Drawer Icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer Layout . open Drawer ( Gravity . END ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġtoolbar Title . text Ġ= ĠgetString ( R . string . app _ name ) ĊĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Display Show Title Enabled ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Display Home As Up Enabled ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Home Button Enabled ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Main Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġpush Fragment ( Categories Fragment (), ĠR . id . content Frame ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetUp Drawer Menu List ( items : ĠArrayList < Drawer MenuItem >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdrawer Menu Adapter Ġ= ĠDraw er Menu Adapter ( this , Ġitems ) ĊĠĠĠĠĠĠĠ Ġre cyclerView Drawer Menu . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġdrawer Menu Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Email On G reeting ( email : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠtextView G reet ings . text Ġ= Ġemail ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Drawer Menu List Click ( drawer MenuItem : ĠDraw er MenuItem ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( drawer MenuItem . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDraw er Menu Type . LOG OUT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠString Resources . get ( R . string . warning _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠString Resources . get ( R . string . logout _ warning _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert ( title , Ġmessage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyes Button Ġ{ Ġpresenter . on Logout T apped () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno Button Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġdrawer Layout . close Drawer ( drawer Container ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ