package Ġcom . brand on hog an . l ifts cout . features . shared . main Ċ Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . FragmentManager Ċ import Ġcom . brand on hog an . l ifts cout . R Ċ import Ġcom . brand on hog an . l ifts cout . features . shared . base . Base Activity Ċ import Ġcom . brand on hog an . l ifts cout . managers . Navigation Manager Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* Ġ@ Creator ĠĠĠĠĠĠĠĠ Ġbh og an Ċ Ġ* Ġ@ Date ĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 1 8 - 0 1 - 1 2 Ċ Ġ* Ġ@ Description ĠĠĠĠ Ġ$ PARAM $ Ċ Ġ*/ Ċ Ċ class ĠMainActivity Ġ: ĠBase Activity (), ĠFragment Manager . On Back Stack Changed Listener Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġmodel : ĠMain ViewModel ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġnavigation Manager : ĠNavigation Manager ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġactivity Component . inject ( this ) ĊĠĠĠĠĠĠĠ Ġmodel Ġ= ĠViewModel Providers . of ( this ). get ( Main ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġif ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation Manager . show Calendar () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigation Manager . on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġshould Finish Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( should Finish ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Stack Changed () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġif ( support FragmentManager . back Stack Entry Count Ġ> Ġ 1 ) Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer ?. action Bar Drawer Toggle !!. is Drawer Indicator Enabled Ġ= Ġfalse Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Display Home As Up Enabled ( true )// Ġshow Ġback Ġbutton Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmain _ toolbar . set Navigation OnClickListener { Ġon Back Pressed () Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġelse Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// show Ġh amburger Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer ?. action Bar Drawer Toggle !!. is Drawer Indicator Enabled Ġ= Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Display Home As Up Enabled ( false ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer ?. action Bar Drawer Toggle !!. sync State () Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreset Title () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmain _ toolbar . set Navigation OnClickListener Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( drawer !!. is Drawer Open ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer !!. close Drawer () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer !!. open Drawer () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ