package Ġcom . p unto gr is . are you ar obot . ui . main Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . Nav Destination Ċ import Ġandroidx . navigation . ui . AppBar Configuration Ċ import Ġandroidx . navigation . ui . navigate Up Ċ import Ġandroidx . navigation . ui . on Nav Destination Selected Ċ import Ġandroidx . navigation . ui . setup With Nav Controller Ċ import Ġcom . p unto gr is . are you ar obot . R Ċ import Ġcom . p unto gr is . are you ar obot . databinding . Activity Main Binding Ċ import Ġcom . p unto gr is . are you ar obot . ui . base . Base Activity Ċ import Ġcom . p unto gr is . are you ar obot . utils . get Nav Controller Ċ import Ġcom . p unto gr is . are you ar obot . utils . g one Ċ import Ġcom . p unto gr is . are you ar obot . utils . visible Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ Ċ @ Android EntryPoint Ċ class ĠMainActivity Ġ: ĠBase Activity < Activity Main Binding >( R . layout . activity _ main ) Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnav Controller : ĠNav Controller ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġapp Bar Configuration : ĠApp Bar Configuration ĊĊĠĠĠ Ġoverride Ġfun Ġinitialize Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Navigation () ĊĊĠĠĠĠĠĠĠ Ġbinding . main Toolbar . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Support ActionBar ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup With Nav Controller ( nav Controller , Ġapp Bar Configuration ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Navigation (){ ĊĠĠĠĠĠĠĠ Ġnav Controller Ġ= Ġget Nav Controller () ĊĠĠĠĠĠĠĠ Ġapp Bar Configuration Ġ= Ġget AppBar Configuration () ĊĠĠĠĠĠĠĠ Ġnav Controller . add On Destination Changed Listener ( this @ MainActivity ) ĊĠĠĠĠĠĠĠ Ġbinding . bottom Navigation . setup With Nav Controller ( nav Controller ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget AppBar Configuration (): ĠApp Bar Configuration { ĊĠĠĠĠĠĠĠ Ġreturn ĠApp Bar Configuration ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . welcome Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . rank ings Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . single Player Game Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . find Match Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . match Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . post Multi player Match Fragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Support Navigate Up (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnav Controller . navigate Up ( app Bar Configuration ) Ġ|| Ġsuper . on Support Navigate Up () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destination Changed ( ĊĠĠĠĠĠĠĠ Ġcontroller : ĠNav Controller , ĊĠĠĠĠĠĠĠ Ġdestination : ĠNav Destination , ĊĠĠĠĠĠĠĠ Ġarguments : ĠBundle ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( destination . id ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . single Player Game Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . player Settings Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . match Fragment Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . main Toolbar . visible () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . bottom Navigation . g one () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . rank ings Fragment , ĠR . id . post Game Fragment Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . main Toolbar . g one () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . bottom Navigation . visible () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . main Toolbar . visible () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . bottom Navigation . visible () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . main _ top _ app _ bar , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onCreate Options Menu ( menu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitem . on Nav Destination Selected ( nav Controller ) Ġ|| Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ