package Ġcom . point w el ve . re ve aled Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . navigation . ui . AppBar Configuration Ċ import Ġandroidx . navigation . ui . Navigation UI Ċ import Ġandroidx . navigation . ui . setup ActionBar With Nav Controller Ċ import Ġandroidx . navigation . ui . setup With Nav Controller Ċ import Ġdagger . android . Dispatch ing Android Injector Ċ import Ġdagger . android . support . Has Support Fragment Injector Ċ import Ġkotlinx . android . synt hetic . main . main _ activity .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠHas Support Fragment Injector Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġdispatch ing Android Injector : ĠDispatch ing Android Injector < Fragment > ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . main _ activity ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnav Controller Ġ= Ġfind Nav Controller ( R . id . root _ host _ fragment ) ĊĠĠĠĠĠĠĠ Ġval Ġapp Bar Configuration Ġ= ĠApp Bar Configuration . Builder ( set Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . main Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . post Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . get Started Fragment )). build () ĊĠĠĠĠĠĠĠ ĠNavigation UI . setup ActionBar With Nav Controller ( this , Ġnav Controller , Ġapp Bar Configuration ) ĊĠĠĠĠĠĠĠ Ġnav Controller . add On Destination Changed Listener Ġ{ Ġ_, Ġdestination , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( destination . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . main Fragment Ġ-> Ġbottom Nav . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . post Fragment Ġ-> Ġbottom Nav . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġbottom Nav . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onCreate Options Menu ( menu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Support Navigate Up () Ġ= ĊĠĠĠĠĠĠĠ Ġfind Nav Controller ( R . id . root _ host _ fragment ). navigate Up () ĊĊĠĠĠ Ġoverride Ġfun Ġsupport Fragment Injector () Ġ= Ġdispatch ing Android Injector Ċ } Ċ