package Ġmse . mob op . my movies bucket lists . ui . activity Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . navigation . ui . AppBar Configuration Ċ import Ġandroidx . navigation . ui . navigate Up Ċ import Ġandroidx . navigation . ui . on Nav Destination Selected Ċ import Ġcom . google . android . material . navigation . Navigation View Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . app _ bar _ main .* Ċ import Ġkotlinx . android . synt hetic . main . nav _ header _ main . view .* Ċ import Ġmse . mob op . my movies bucket lists . R Ċ import Ġmse . mob op . my movies bucket lists . utils . ARG _ SIGN _ IN _ SUCCESS FULL Y Ċ import Ġmse . mob op . my movies bucket lists . utils . ARG _ THEME _ CHANGED Ċ Ċ class ĠMainActivity Ġ: ĠBase Activity (), ĠNavigation View . On Navigation ItemSelected Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġapp Bar Configuration : ĠApp Bar Configuration ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnav Controller : ĠNav Controller ĊĠĠĠ Ġprivate Ġvar Ġuser Ġ= ĠFirebase Auth . getInstance (). currentUser ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfrom Sign in Ġ= Ġintent . getString Extra ( ARG _ SIGN _ IN _ SUCCESS FULL Y ) ĊĠĠĠĠĠĠĠ Ġif Ġ( from Sign in Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . welcome ) Ġ+ Ġ" Ġ" Ġ+ Ġuser !!. displayName , ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . remove Extra ( ARG _ SIGN _ IN _ SUCCESS FULL Y ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠPass ing Ġeach Ġmenu ĠID Ġas Ġa Ġset Ġof ĠI ds Ġbecause Ġeach ĊĠĠĠĠĠĠĠ Ġ// Ġmenu Ġshould Ġbe Ġconsidered Ġas Ġtop Ġlevel Ġdest inations . ĊĠĠĠĠĠĠĠ Ġapp Bar Configuration Ġ= ĠApp Bar Configuration ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . Bucket list Fragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġdrawer _ layout ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġnav _ view . set Navigation ItemSelected Listener ( this ) ĊĠĠĠĠĠĠĠ Ġnav _ view . getHeader View ( 0 ). username _ text view . text Ġ= Ġuser !!. displayName ĊĠĠĠĠĠĠĠ Ġnav Controller Ġ= Ġfind Nav Controller ( R . id . nav _ host _ fragment ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġthe Ġstart Ġactivity Ġaction Ġcomes Ġfrom Ġthe ĠSettings Fragment ĊĠĠĠĠĠĠĠ Ġval Ġfrom Settings Ġ= Ġintent . getString Extra ( ARG _ THEME _ CHANGED ) ĊĠĠĠĠĠĠĠ Ġif Ġ( from Settings Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( R . id . action _ Bucket list Fragment _ to _ settings Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . remove Extra ( ARG _ THEME _ CHANGED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĊĠĠĠĠĠĠĠ Ġuser ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġuser !!. displayName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġuser !!. email ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphoto Url Ġ= Ġuser !!. photoUrl ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġuser 's Ġemail Ġis Ġverified ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemail Verified Ġ= Ġuser !!. is Email Verified ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" name ", Ġname !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" email ", Ġemail !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" photoUrl ", Ġphoto Url . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" email Verified ", Ġemail Verified . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Support Navigate Up (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnav Controller . navigate Up ( app Bar Configuration ) Ġ|| Ġsuper . on Support Navigate Up () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Navigation ItemSelected ( menuItem : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" itemId ", Ġmenu Item . itemId . toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( menuItem . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ sign out Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" sign out ", Ġ" signing Ġout ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFirebase Auth . getInstance (). sign Out () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠSign in Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . slide _ in _ left , ĠR . anim . slide _ out _ right ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer _ layout . close Draw ers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Item . on Nav Destination Selected ( nav Controller ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ