package Ġpl . pod wik agr ze gor z . mr budget Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . navigation . ui . setup With Nav Controller Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġpl . pod wik agr ze gor z . mr budget . databinding . Activity Main Binding Ċ Ċ @ Android EntryPoint Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Main Binding ĊĠĠĠ Ġprivate Ġval Ġnav Controller Ġby Ġlazy Ġ{ Ġfind Nav Controller ( R . id . nav _ host _ fragment ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Main Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĊĠĠĠĠĠĠĠ Ġsetup Navigation () ĊĠĠĠĠĠĠĠ Ġobserve Preference Repository () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Navigation () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . nav View . setup With Nav Controller ( nav Controller ) ĊĊĠĠĠĠĠĠĠ Ġnav Controller . add On Destination Changed Listener Ġ{ Ġ_, Ġdestination , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( destination . id Ġ== ĠR . id . navigation _ expense Ġ|| Ġdestination . id Ġ== ĠR . id . navigation _ history _ details ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . nav View . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . nav View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġobserve Preference Repository () Ġ{ ĊĠĠĠĠĠĠĠ Ġ( application Ġas ĠBudget App ). preference Repository . night Mode Live . observe ( this , Ġ{ Ġnight Mode Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnight Mode ?. let Ġ{ Ġdelegate . local Night Mode Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ Ċ }