package Ġedu . rose h ul man . movie quotes Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . provider . Settings Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĊĠĠĠ ĠSpl ash Fragment . On Login Button Pressed Listener Ġ{ ĊĊĠĠĠ Ġ// ĠTODO : ĠCreate Ġinstance Ġof ĠFirebase Auth Ġand Ġan ĠAuth State Listener ĊĊĠĠĠ Ġ// ĠRequest Ġcode Ġfor Ġlaunch ing Ġthe Ġsign Ġin ĠIntent . ĊĠĠĠ Ġprivate Ġval ĠRC _ SIGN _ IN Ġ= Ġ 1 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġinitialize Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO : Ġadd Ġ( and Ġremove ) Ġan Ġauth Ġstate Ġlistener Ġupon Ġstart Ġ( and Ġstop ). ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠCreate Ġan ĠAuth State Listener Ġthat Ġpasses Ġthe ĠUID ĊĠĠĠĠĠĠĠ Ġ// Ġto Ġthe ĠMovie Quote Fragment Ġif Ġthe Ġuser Ġis Ġlogged Ġin ĊĠĠĠĠĠĠĠ Ġ// Ġand Ġgoes Ġback Ġto Ġthe ĠSpl ash Ġfragment Ġotherwise . ĊĠĠĠĠĠĠĠ Ġ// ĠSee Ġhttps :// firebase . google . com / docs / auth / users # the _ user _ lifecycle ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġswitch To Splash Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġft Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠ Ġft . replace ( R . id . fragment _ container , ĠSpl ash Fragment ()) ĊĠĠĠĠĠĠĠ Ġft . commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġswitch To Movie Quote Fragment ( uid : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġft Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠ Ġft . replace ( R . id . fragment _ container , ĠMovie Quote Fragment . newInstance ( uid )) ĊĠĠĠĠĠĠĠ Ġft . commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Login Button Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch Login UI () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlaunch Login UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠBuild Ġa Ġlogin Ġintent Ġand ĠstartActivity For Result ( intent , Ġ...) ĊĠĠĠĠĠĠĠ Ġ// ĠFor Ġdetails , Ġsee Ġhttps :// firebase . google . com / docs / auth / android / firebase ui # sign _ in ĊĊĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Fab (): ĠFloating ActionButton Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfab ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġmenu ; Ġthis Ġadds Ġitems Ġto Ġthe Ġaction Ġbar Ġif Ġit Ġis Ġpresent . ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġaction Ġbar Ġitem Ġclicks Ġhere . ĠThe Ġaction Ġbar Ġwill ĊĠĠĠĠĠĠĠ Ġ// Ġautomatically Ġhandle Ġclicks Ġon Ġthe ĠHome / Up Ġbutton , Ġso Ġlong ĊĠĠĠĠĠĠĠ Ġ// Ġas Ġyou Ġspecify Ġa Ġparent Ġactivity Ġin ĠAndroid Manifest . xml . ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ logout Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠSign Ġout . ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ increase _ font _ size Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange FontSize ( 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ decrease _ font _ size Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange FontSize (- 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ settings Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Which Settings () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ clear Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġchange FontSize ( delta : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠIncrease Ġthe Ġfont Ġsize Ġby Ġdelta Ġsp Ċ // ĠĠĠĠĠĠĠ Ġvar Ġcurrent Size Ġ= Ġquote _ text _ view . text Size Ġ/ Ġresources . display Metrics . scaled Density Ċ // ĠĠĠĠĠĠĠ Ġcurrent Size Ġ+= Ġdelta Ċ // ĠĠĠĠĠĠĠ Ġquote _ text _ view . text Size Ġ= Ġcurrent Size Ċ // ĠĠĠĠĠĠĠ Ġmovie _ text _ view . text Size Ġ= Ġcurrent Size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfirm Clear () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠ Ġbuilder . setTitle ( getString ( R . string . confirm _ delete _ title )) ĊĠĠĠĠĠĠĠ Ġbuilder . setMessage ( getString ( R . string . confirm _ delete _ message )) ĊĠĠĠĠĠĠĠ Ġbuilder . set Positive Button ( android . R . string . ok ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġupdate Quote ( default Movie Quote ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuilder . set Negative Button ( android . R . string . cancel , Ġnull ) ĊĠĠĠĠĠĠĠ Ġbuilder . create (). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Which Settings () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠ Ġbuilder . setTitle ( getString ( R . string . dialog _ which _ settings _ title )) ĊĠĠĠĠĠĠĠ Ġ// ĠFor Ġothers , Ġsee Ġhttps :// developer . android . com / reference / android / provider / Settings ĊĠĠĠĠĠĠĠ Ġbuilder . set Items ( R . array . settings _ types ) Ġ{ Ġ_, Ġindex Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġaction Constant Ġ= Ġwhen Ġ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> ĠSettings . ACTION _ SOUND _ SETTINGS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠSettings . ACTION _ SEARCH _ SETTINGS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠSettings . ACTION _ SETTINGS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( action Constant )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuilder . create (). show () ĊĠĠĠ Ġ} Ċ } Ċ