package Ġcom . n cyc . project . main . ui . login . fragment Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . util . Log Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . WindowManager Ċ import Ġandroidx . navigation . Navigation Ċ import Ġandroidx . navigation . fragment . Nav Host Fragment Ċ import Ġcom . n cyc . project . R Ċ import Ġcom . n cyc . project . databinding . SignIn Fragment Binding Ċ import Ġcom . n cyc . project . main . ui . main . MainActivity Ċ import Ġcom . n cyc . project . main . util . hide Keyboard Ċ Ċ import Ġkotlinx . android . synt hetic . main . sign _ up _ fragment .* ĊĊ Ċ private Ġlateinit Ġvar Ġintent : ĠIntent Ċ private Ġlateinit Ġvar Ġbinding : ĠSign In Fragment Binding Ċ private Ġlateinit Ġvar ĠviewModel : ĠSign In ViewModel Ċ private Ġlateinit Ġvar Ġfactory : ĠSign In ViewModel Factory ĊĊ Ċ class ĠSign In Fragment Ġ: ĠFragment () Ġ{ ĊĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?, ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠSign In Fragment Binding . inflate ( layout Inflater ) ĊĊĠĠĠĠĠĠĠ Ġfactory Ġ= ĠSign In ViewModel Factory ( activity ?. application Context Ġas ĠApplication , Ġbinding . signIn Btn , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . signIn Touch View , Ġbinding . progressbar ) ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( this , Ġfactory )[ SignIn ViewModel :: class . java ] ĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġbinding . vm Ġ= ĠviewModel ĊĠĠĠĠĠĠĠ Ġbinding . signIn Touch View . br ing To Front () ĊĠĠĠĠĠĠĠ Ġbinding . progressbar . visibility = View . GONE ĊĊĊĠĠĠĠĠĠĠ Ġbinding . signIn Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . signIn () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progressbar . visibility = View . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . signIn Touch View . is Clickable = true ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . signIn Btn . is Clickable = false ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsetup Listeners () ĊĊĊĠĠĠĠĠĠĠ ĠviewModel . signIn Flag . observe ( binding . lifecycle Owner !! ,{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" event Ġhandled Ġtag "," write Post Event Ġbefore Ġ-> Ġ${ event . has Been Handled }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . getContent IfNot Handled ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progressbar . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . signIn Touch View . is Clickable = false ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . signIn Btn . is Clickable = true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigate To Main () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" event Ġhandled Ġtag "," write Post Event Ġafter Ġ-> Ġ${ event . has Been Handled }") ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġbinding . container . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġbinding . signIn SignUp Text . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigate To SignUp () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . signIn Find Text . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigate To Find () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnavigate To Main (){ ĊĠĠĠĠĠĠĠ Ġintent Ġ= ĠIntent ( require Activity (), ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . add Flags ( Intent . FLAG _ ACTIVITY _ CLEAR _ TASK ) ĊĠĠĠĠĠĠĠ Ġintent . add Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnavigate To SignUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠNavigation . find Nav Controller ( require Activity (), ĠR . id . login _ fragment _ container ). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSign In Fragment Directions . action SignIn To SignUp () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnavigate To Find () Ġ{ ĊĠĠĠĠĠĠĠ ĠNavigation . find Nav Controller ( require Activity (), ĠR . id . login _ fragment _ container ). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSign In Fragment Directions . action SignIn To Find () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . signIn Id . add TextChanged Listener ( TextField Listener ( binding . signIn Id )) ĊĠĠĠĠĠĠĠ Ġbinding . signIn Password . add TextChanged Listener ( TextField Listener ( binding . signIn Password )) ĊĠĠĠ Ġ} ĊĊĊĊ ĊĊĠĠĠ Ġinner Ġclass ĠTextField Listener ( private Ġval Ġview : ĠView ) Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( view . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . signIn Id . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . set Acc Id ( binding . signIn Id . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . signIn Password . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . set Password ( binding . signIn Password . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊ Ċ }