package Ġcom . w ass im . show case . view Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . navigation . Nav Destination Ċ import Ġandroidx . navigation . Navigator Ċ import Ġandroidx . navigation . fragment . Nav Host Fragment Ċ import Ġandroidx . navigation . ui . setup With Nav Controller Ċ import Ġcom . w ass im . show case . R Ċ import Ġcom . w ass im . show case . core . utils . Keep State Navigator Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ @ Android EntryPoint Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġsetup Navigation () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") ĊĠĠĠ Ġprivate Ġfun Ġsetup Navigation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhost : ĠNav Host Fragment Ġ= Ġnav Host Fragment Ġas ĠNav Host Fragment ? Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġwith ( host . nav Controller ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Navigation View . setup With Nav Controller ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnavigator Ġ= ĠKeep State Navigator ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhost . child FragmentManager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav Host Fragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigator Provider . add Navigator ( navigator Ġas ĠNavigator < out ĠNav Destination >) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Graph ( R . navigation . app _ nav _ graph ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ