package Ġcom . so um il par anj pay . brush ing but t ler . ui . home Ċ Ċ import Ġandroid . app . Time Picker Dialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Compound Button Ċ import Ġandroid . widget . Time Picker Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġcom . so um il par anj pay . brush ing but t ler . database . entities . Brush ing Reminder Ċ import Ġcom . so um il par anj pay . brush ing but t ler . database . entities . Reminder Type Ċ import Ġcom . so um il par anj pay . brush ing but t ler . database . entities . Time Ċ import Ġcom . so um il par anj pay . brush ing but t ler . databinding . Fragment Home Binding Ċ import Ġcom . so um il par anj pay . brush ing but t ler . utils . toast Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġjava . util .* Ċ Ċ @ Android EntryPoint Ċ class ĠHome Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Home Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĠĠĠ Ġval ĠviewModel : ĠHome ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Home Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ ĠviewModel . fetch Existing Rem inders () ĊĊĠĠĠĠĠĠĠ Ġbinding . edit text Mor ning Reminder . setOnClickListener ( Text Time Picker ( binding . edit text Mor ning Reminder , Ġrequire Context ()) Ġ{ Ġp 1 , Ġp 2 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Successfully Ġupdated Ġyour Ġmorning Ġbrush Ġtime ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreminder Ġ= ĠBr ush ing Reminder ( binding . switch Mor ning Reminder . isEnabled , ĠTime ( p 1 , Ġp 2 ), ĠRem inder Type . Mor ning ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . update Reminder ( reminder ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . mor ning Reminder . value Ġ= Ġreminder ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbinding . edit text Af tern oon Reminder . setOnClickListener ( Text Time Picker ( binding . edit text Af tern oon Reminder , Ġrequire Context ()) Ġ{ Ġp 1 , Ġp 2 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Successfully Ġupdated Ġyour Ġaf tern oon Ġbrush Ġtime ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreminder Ġ= ĠBr ush ing Reminder ( binding . switch Af tern oon Reminder . isEnabled , ĠTime ( p 1 , Ġp 2 ), ĠRem inder Type . Af tern oon ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . update Reminder ( reminder ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . af tern oon Reminder . value Ġ= Ġreminder ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbinding . edit text Night Reminder . setOnClickListener ( Text Time Picker ( binding . edit text Night Reminder , Ġrequire Context ()) Ġ{ Ġp 1 , Ġp 2 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Successfully Ġupdated Ġyour Ġnight Ġbrush Ġtime ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreminder Ġ= ĠBr ush ing Reminder ( binding . switch Night Reminder . isEnabled , ĠTime ( p 1 , Ġp 2 ), ĠRem inder Type . Night ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . update Reminder ( reminder ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . night Reminder . value Ġ= Ġreminder ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġbinding . switch Mor ning Reminder . setOn Checked ChangeListener ( On Switch Change ( Reminder Type . Mor ning )) ĊĠĠĠĠĠĠĠ Ġbinding . switch Af tern oon Reminder . setOn Checked ChangeListener ( On Switch Change ( Reminder Type . Af tern oon )) ĊĠĠĠĠĠĠĠ Ġbinding . switch Night Reminder . setOn Checked ChangeListener ( On Switch Change ( Reminder Type . Night )) ĊĊĠĠĠĠĠĠĠ ĠviewModel . mor ning Reminder . observe ( view Lifecycle Owner ) Ġ{ Ġreminder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . edit text Mor ning Reminder . setText ( reminder . reminder Time . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . af tern oon Reminder . observe ( view Lifecycle Owner ) Ġ{ Ġreminder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . edit text Af tern oon Reminder . setText ( reminder . reminder Time . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . night Reminder . observe ( view Lifecycle Owner ) Ġ{ Ġreminder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . edit text Night Reminder . setText ( reminder . reminder Time . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠOn Switch Change ( private Ġval Ġreminder Type : ĠRem inder Type ): ĠCompound Button . On Checked ChangeListener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon CheckedChanged ( p 0 : ĠCompound Button ?, Ġp 1 : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . set Reminder Enabled ( p 1 , Ġreminder Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 1 ) Ġ" Enabled Ġthe Ġreminder ." Ġelse Ġ" Disabled Ġthe Ġreminder " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }