package Ġcom . f ory ou and me . ui . auth . on boarding . step . consent . user . email Ċ Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . core . widget . add TextChanged Listener Ċ import Ġcom . f ory ou and me . R Ċ import Ġcom . f ory ou and me . core . arch . flow . observe In Ċ import Ġcom . f ory ou and me . core . arch . flow . unwrap Event Ċ import Ġcom . f ory ou and me . core . ext .* Ċ import Ġcom . f ory ou and me . databinding . Consent User Email Binding Ċ import Ġcom . f ory ou and me . entity . configuration . button . button Ċ import Ġcom . f ory ou and me . ui . auth . on boarding . step . consent . user .* Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . coroutines . flow . on Each Ċ Ċ @ Android EntryPoint Ċ class ĠCon sent User Email Fragment Ġ: ĠCon sent User Section Fragment ( R . layout . consent _ user _ email ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding : ĠCon sent User Email Binding ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġview ?. let Ġ{ ĠCon sent User Email Binding . bind ( it ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . state Update ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. unwrap Event ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCon sent User State Update . Email Ġ-> Ġbind Next () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe In ( this ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . loading ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. unwrap Event ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Each Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCon sent User Loading . Create User Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding ?. consent User Email Loading ?. setVisibility ( it . active ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe In ( this ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . error ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. unwrap Event ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . cause ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCon sent User Error . Create User Ġ-> Ġerror Toast ( it . error , Ġconfiguration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe In ( this ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġsetup View () ĊĠĠĠĠĠĠĠ Ġapply Configuration () ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Configuration Change () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Configuration Change () ĊĠĠĠĠĠĠĠ Ġapply Configuration () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠĠĠĠĠ ĠviewModel . execute ( Consent User Action . Consent Email View ed ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup View () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġview Binding Ġ= Ġbinding ĊĊĠĠĠĠĠĠĠ Ġif Ġ( view Binding Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . logo . setImage Resource ( image Configuration . logo Study Secondary ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconsent User Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. binding ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . toolbar ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . show Back Secondary Button ( image Configuration ) Ġ{ Ġback () Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . action 1 . background Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton ( resources , Ġimage Configuration . next Step Secondary ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . action 1 . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . execute ( Consent User Action . Create User ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind Next () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġapply Configuration () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġconfiguration Ġ= Ġconfiguration ĊĠĠĠĠĠĠĠ Ġval Ġview Binding Ġ= Ġbinding ĊĊĠĠĠĠĠĠĠ Ġif Ġ( configuration Ġ!= Ġnull Ġ&& Ġview Binding Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset StatusBar ( configuration . theme . secondary Color . color ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . root . set BackgroundColor ( configuration . theme . secondary Color . color ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . email . text Ġ= Ġconfiguration . text . on boarding . user . email Description ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . email . setTextColor ( configuration . theme . primary TextColor . color ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . email Entry . set BackgroundColor ( color ( android . R . color . transparent )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . email Entry . setTextColor ( configuration . theme . primary TextColor . color ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . email Entry . add TextChanged Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . execute ( Consent User Action . Set Email ( it . toString (). trim ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . email Entry . setOn Focus ChangeListener Ġ{ Ġ_, Ġhas Focus Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding ?. email Validation ?. setImage Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Focus Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Focus . not () Ġ&& ĠviewModel . state . isValid Email . not () Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Configuration . entry Wrong () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Configuration . entry Valid () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . email Validation . image Tint List Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor State List . valueOf ( configuration . theme . primary TextColor . color ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . email Validation . setImage Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( viewModel . state . isValid Email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Configuration . entry Valid () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Configuration . entry Wrong () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . email Line . set BackgroundColor ( configuration . theme . primary TextColor . color ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . email Info . text Ġ= Ġconfiguration . text . on boarding . user . email Info ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . email Info . setTextColor ( configuration . theme . four th TextColor . color ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind Next () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġview Binding Ġ= Ġbinding ĊĊĠĠĠĠĠĠĠ Ġif Ġ( view Binding Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . action 1 . isEnabled Ġ= ĠviewModel . state . isValid Email ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . email Info . isVisible Ġ= ĠviewModel . state . isValid Email ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }