package Ġedu . rose h ul man . cond r ak . rose schedule Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Time Picker Ċ import Ġandroid . widget . Toast Ċ import Ġcom . google . firebase . firestore . Document Reference Ċ import Ġcom . google . firebase . firestore . Document Snapshot Ċ import Ġcom . google . firebase . firestore . Firebase Fire store Ċ import Ġcom . google . firebase . firestore . Listener Registration Ċ Ċ import Ġkotlinx . android . synt hetic . main . activity _ settings .* Ċ Ċ class ĠSettings Activity Ġ: ĠAppCompatActivity (), ĠSettings Activity Fragment . On Fragment Interaction Listener , ĊĠĠĠ ĠTime Picker Fragment . Time Set Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġschedule : ĠSchedule ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġschedule Timing : ĠSchedule Timing ĊĊĠĠĠ Ġprivate Ġvar Ġuid Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġschedule Ref : ĠDocument Reference ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlistener Registration : ĠListener Registration ĊĊĠĠĠ Ġprivate Ġvar Ġfragment : ĠSettings Activity Fragment ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġfun Ġadd Snapshot Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġlistener Registration Ġ= Ġschedule Ref ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Snapshot Listener Ġ{ Ġdocument Snapshot , Ġe Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( Constants . TAG , Ġ" listen Ġerror ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Snapshot Changes ( document Snapshot !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġadd Snapshot Listener () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġlistener Registration . remove () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save ( schedule : ĠSchedule ) Ġ{ ĊĠĠĠĠĠĠĠ Ġschedule Ref . set ( schedule ). add On Success Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Settings ĠSaved ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Time Picker Button Clicked ( hour : ĠInt , Ġminute : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTime Picker Fragment . newInstance ( hour , Ġminute ). show ( support FragmentManager , Ġ" time Picker ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Time Set ( view : ĠTime Picker , Ġhour OfDay : ĠInt , Ġminute : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfragment ?. on Time Set ( view , Ġhour OfDay , Ġminute ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprocess Snapshot Changes ( document Snapshot : ĠDocument Snapshot ) Ġ{ ĊĠĠĠĠĠĠĠ Ġschedule Ġ= Ġdocument Snapshot . toObject ( Schedule :: class . java ) !! ĊĠĠĠĠĠĠĠ Ġschedule Timing Ġ= ĠSchedule Timing ( schedule . schedule Settings ) ĊĠĠĠĠĠĠĠ Ġschedule Timing . init ( this ) ĊĊĠĠĠĠĠĠĠ Ġfragment Ġ= ĠSettings Activity Fragment . newInstance ( schedule ) ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). replace ( R . id . content , Ġfragment Ġas ĠFragment ). commit Allow ing State Loss () ĊĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ settings ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġuid Ġ= Ġintent . getString Extra ( UID ) ĊĠĠĠĠĠĠĠ Ġschedule Ref Ġ= ĠFirebase Fire store ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. collection ( Constants . USERS _ COLLECTION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. document ( uid ) ĊĠĠĠĠĠĠĠ Ġadd Snapshot Listener () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠUID Ġ= Ġ" uid " ĊĠĠĠ Ġ} Ċ Ċ } Ċ