package Ġbe . hog ent . fa ith . fa ith . emotion Capture . enter Event Details Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġbe . hog ent . fa ith . R Ċ import Ġbe . hog ent . fa ith . databinding . Dialog Save Event Binding Ċ import Ġbe . hog ent . fa ith . fa ith . User ViewModel Ċ import Ġbe . hog ent . fa ith . fa ith . di . K oin Modules Ċ import Ġorg . k oin . android . ext . android . get K oin Ċ import Ġorg . k oin . android . view model . ext . android . shared ViewModel Ċ Ċ class ĠSave Event Dialog Ġ: ĠDialog Fragment () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsave Event Binding : ĠDialog Save Event Binding ĊĊĠĠĠ Ġprivate Ġval Ġevent Details ViewModel : ĠEvent ViewModel Ġby Ġshared ViewModel () ĊĠĠĠ Ġprivate Ġval Ġuser ViewModel : ĠUser ViewModel Ġ= Ġget K oin (). get Scope ( K oin Modules . USER _ SCOPE _ ID ). get () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠSave Event Dialog Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSave Event Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDialog ( require Activity (), ĠR . style . Dialog _ Near ly FullScreen ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Style ( STYLE _ NO _ TITLE , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsave Event Binding Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Binding Util . inflate ( in flater , ĠR . layout . dialog _ save _ event , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġsave Event Binding . event ViewModel Ġ= Ġevent Details ViewModel ĊĠĠĠĠĠĠĠ Ġsave Event Binding . user ViewModel Ġ= Ġuser ViewModel ĊĠĠĠĠĠĠĠ Ġsave Event Binding . lifecycle Owner Ġ= Ġthis @ Save Event Dialog ĊĠĠĠĠĠĠĠ Ġreturn Ġsave Event Binding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġstart Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġevent Details ViewModel . date Button Clicked . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Date Dialog . newInstance (). show ( require Activity (). support FragmentManager , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen Ġa Ġuser Ġstarts Ġtyping Ġerror Ġmessage Ġwill Ġdis appear ĊĠĠĠĠĠĠĠ Ġsave Event Binding . txt Save Event Title . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( p 0 : ĠEdit able ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( p 0 : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( p 0 : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser ViewModel . clear ErrorMessage () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Dismiss ( dialog : ĠDialog Interface ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Dismiss ( dialog ) ĊĠĠĠĠĠĠĠ Ġuser ViewModel . clear ErrorMessage () ĊĠĠĠ Ġ} Ċ }