package Ġcom . al jon . pur rito . ui Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . navigation . ui . Navigation UI Ċ import Ġcom . al jon . pur rito . R Ċ import Ġcom . al jon . pur rito . util . Constants Ċ import Ġcom . al jon . pur rito . util . Shared Preference Util Ċ import Ġcom . google . android . material . app bar . AppBar Layout Ċ import Ġdagger . android . support . D agger AppCompatActivity Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠMainActivity Ġ: ĠD agger AppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġshared Preference Util : ĠShared Preference Util ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Theme () ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( findViewById ( R . id . toolbar )) ĊĊĠĠĠĠĠĠĠ Ġval Ġnav Controller Ġ= Ġfind Nav Controller ( R . id . nav _ host _ fragment ) ĊĠĠĠĠĠĠĠ ĠNavigation UI . setup ActionBar With Nav Controller ( this , Ġnav Controller ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Support Navigate Up (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . find Nav Controller ( R . id . nav _ host _ fragment ). navigate Up () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcollapse Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġanimate Toolbar ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexpand Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġanimate Toolbar ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġanimate Toolbar ( expanded : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Bar Layout Ġ= ĠfindViewById < AppBar Layout >( R . id . app _ bar ) ĊĠĠĠĠĠĠĠ Ġapp Bar Layout . set Expanded ( expanded , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdark Mode Ġ= Ġshared Preference Util . getValue ( Constants . PRE F _ KEY _ DARK _ MODE _ ON ) ĊĠĠĠĠĠĠĠ Ġif ( dark Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Theme ( R . style . Dark Theme ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Theme ( R . style . Light Theme ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ