package Ġcom . y ureka . technology . y tc . ui . profile . registration Ċ Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . appcompat . widget . AppCompat EditText Ċ import Ġandroidx . appcompat . widget . AppCompat TextView Ċ import Ġandroidx . lifecycle . observe Ċ import Ġcom . y ureka . technology . y tc . R Ċ import Ġcom . y ureka . technology . y tc . databinding . Layout SignUp V 2 Binding Ċ import Ġcom . y ureka . technology . y tc . ui . home . MainActivity Ċ import Ġcom . y ureka . technology . y tc . util .* Ċ import Ġcom . y ureka . technology . y tc . util . base . Base Activity Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġorg . jetbrains . ank o . clear Task Ċ import Ġorg . jetbrains . ank o . intent For Ċ import Ġorg . jetbrains . ank o . new Task ĊĊ Ċ @ Android EntryPoint Ċ class ĠSign Up Activity Ġ: ĠBase Activity < Layout SignUp V 2 Binding >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠSign Up ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Resource (): ĠInt Ġ= ĠR . layout . layout _ sign _ up _ v 2 ĊĊĠĠĠ Ġoverride Ġfun Ġinit Views () Ġ{ Ċ /* ĊĊĠĠĠĠĠĠĠ Ġbinding . toolbar . title Ġ= Ġ" Da ftar " ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( binding . toolbar ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġ} Ċ */ ĊĊĠĠĠĠĠĠĠ Ġbinding . ed Password SignUp . add On Submit Listener ( 5 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . validate Password ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . ed Email SignUp . add On Submit Listener ( 5 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . validate Email ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . ed Name SignUp . add On Submit Listener ( 5 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . ed Phone SignUp . add On Submit Listener ( 5 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . ed Us ia SignUp . add On Submit Listener ( 5 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate () ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġbinding . ed Us ia SignUp . setOn Focus ChangeListener Ġ{ Ġv , Ġhas Focus Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . scroll Nested . smooth Scroll To ( 0 , Ġv . getY Position ( this , Ġbinding . root ), 5 0 0 ) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Observer s () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . is Email Valid . observe ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) ĠsetError Field ( binding . tv Label Not Valid SignUp Email , Ġbinding . ed Email SignUp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġset Success Field ( binding . tv Label Not Valid SignUp Email , Ġbinding . ed Email SignUp ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . is Password Valid . observe ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) ĠsetError Field ( binding . tv Label Not Valid SignUp Password , Ġbinding . ed Password SignUp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġset Success Field ( binding . tv Label Not Valid SignUp Password , Ġbinding . ed Password SignUp ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . all Valid . observe ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . btn Next . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . btn Next . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent For < MainActivity >(). clear Task (). new Task () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġvalidate () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . validate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġbinding . ed Name SignUp . text ?. toString () Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemail Ġ= Ġbinding . ed Email SignUp . text ?. toString () Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġphone Ġ= Ġbinding . ed Phone SignUp . text ?. toString () Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġage Ġ= Ġbinding . ed Us ia SignUp . text ?. toString () Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġbinding . ed Password SignUp . text ?. toString () Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetError Field ( error Label : ĠAppCompat TextView , Ġedit Text : ĠAppCompat EditText ) Ġ{ ĊĠĠĠĠĠĠĠ Ġerror Label . visible () ĊĠĠĠĠĠĠĠ Ġedit Text . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Background Resource ( R . drawable . rounded _ sign _ in _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Drawable Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Drawable Ġ= ĠR . drawable . ic _ wrong _ input ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Success Field ( error Label : ĠAppCompat TextView , Ġedit Text : ĠAppCompat EditText ) Ġ{ ĊĠĠĠĠĠĠĠ Ġerror Label . g one () ĊĠĠĠĠĠĠĠ Ġedit Text . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Background Resource ( R . drawable . rounded _ sign _ in _ success ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Drawable Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Drawable Ġ= ĠR . drawable . ic _ right _ input ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ }