package Ġcom . example . map le leaves Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġcom . google . android . material . bottomnavigation . Bottom Navigation View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . navigation . fragment . Nav Host Fragment Ċ import Ġandroidx . navigation . ui . AppBar Configuration Ċ import Ġandroidx . navigation . ui . setup ActionBar With Nav Controller Ċ import Ġandroidx . navigation . ui . setup With Nav Controller Ċ import Ġcom . example . map le leaves . databinding . Activity Main Binding Ċ import Ġcom . example . map le leaves . utils . Activity Collector Ċ import Ġcom . example . map le leaves . utils . My Observer Ċ import Ġcom . example . map le leaves . utils . Notifier ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Main Binding ĊĊĠĠĠ Ġprivate Ġval ĠTAG = this :: class . java . simple Name ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠActivity Collector . add Activity ( this ) ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Main Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnav View : ĠBottom Navigation View Ġ= Ġbinding . nav View ĊĊĠĠĠĠĠĠĠ Ġ// val Ġnav Controller Ġ= Ġfind Nav Controller ( R . id . nav _ host _ fragment _ activity _ main ) ĊĠĠĠĠĠĠĠ Ġval Ġnav Host Fragment Ġ= Ġsupport FragmentManager . find Fragment ById ( R . id . nav _ host _ fragment _ activity _ main ) Ġas ĠNav Host Fragment ĊĠĠĠĠĠĠĠ Ġval Ġnav Controller Ġ= Ġnav Host Fragment . nav Controller ĊĠĠĠĠĠĠĠ Ġ// ĠPass ing Ġeach Ġmenu ĠID Ġas Ġa Ġset Ġof ĠI ds Ġbecause Ġeach ĊĠĠĠĠĠĠĠ Ġ// Ġmenu Ġshould Ġbe Ġconsidered Ġas Ġtop Ġlevel Ġdest inations . ĊĠĠĠĠĠĠĠ Ġval Ġapp Bar Configuration Ġ= ĠApp Bar Configuration ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . navigation _ home , ĠR . id . navigation _ place Fragment , ĠR . id . navigation _ notifications , R . id . navigation _ me ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// setup ActionBar With Nav Controller ( nav Controller , Ġapp Bar Configuration ) ĊĠĠĠĠĠĠĠ Ġ// æ³¨éĩĬ æİī ActionBar ĊĠĠĠĠĠĠĠ Ġnav View . setup With Nav Controller ( nav Controller ) ĊĊĠĠĠĠĠĠĠ Ġlifecycle . add Observer ( My Observer ( TAG )) ĊĠĠĠĠĠĠĠ ĠNot ifier . init ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ ĠActivity Collector . remove Activity ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġstart MainActivity ( context : ĠContext ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent = ĠIntent ( context , MainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . add Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }