package Ġcom . re un ite f amilies . re un ite f amilies . signIn Ċ Ċ import Ġandroid . app . Progress Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . text . InputType Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . Toast Ċ import Ġcom . google . android . gms . tasks . On Complete Listener Ċ import Ġcom . google . android . gms . tasks . Task Ċ import Ġcom . google . firebase . auth . Auth Result Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġcom . google . firebase . auth . Firebase User Ċ import Ġcom . google . firebase . database . Database Reference Ċ import Ġcom . re un ite f amilies . re un ite f amilies . R Ċ import Ġcom . re un ite f amilies . re un ite f amilies . Utils . Utils Ċ import Ġcom . re un ite f amilies . re un ite f amilies . landing . Landing Activity Ċ import Ġcom . re un ite f amilies . re un ite f amilies . main . Base Activity Ċ import Ġcom . re un ite f amilies . re un ite f amilies . signup . Signup Activity Ċ import Ġkotlinx . android . synt hetic . main . activity _ sign _ in .* Ċ Ċ class ĠSign in Activity : ĠBase Activity () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġstart Intent ( context : ĠContext ): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠSign in Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġintent ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpresenter : ĠContract . Presentation ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcoord in at ior : ĠContract . Coord ination ĊĠĠĠ Ġvar Ġregister Button : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġsign In Button : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġm Email Field : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġm Password Field : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġm Show Hide ImageView : ĠImageView ? Ġ= Ġ Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Auth : ĠFirebase Auth ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Progress Dialog : ĠProgress Dialog ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlist : ĠRecyclerView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Database Reference : ĠDatabase Reference ĊĊĠĠĠ Ġfun Ġprovide ( coord in at ior : ĠContract . Coord ination , Ġpresenter : ĠContract . Presentation ){ ĊĠĠĠĠĠĠĠ Ġthis . presenter Ġ= Ġpresenter ĊĠĠĠĠĠĠĠ Ġthis . coord in at ior Ġ= Ġcoord in at ior ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ sign _ in ) ĊĊĠĠĠĠĠĠĠ ĠDependencies (). inject ( this ) ĊĊĠĠĠĠĠĠĠ Ġregister Button Ġ= Ġthis . findViewById ( R . id . register _ button ) ĊĠĠĠĠĠĠĠ Ġsign In Button Ġ= ĠfindViewById ( R . id . sign _ in _ button _ main ) ĊĠĠĠĠĠĠĠ Ġm Email Field Ġ= ĠfindViewById ( R . id . signin _ email ) ĊĠĠĠĠĠĠĠ Ġm Password Field Ġ= ĠfindViewById ( R . id . signin _ password ) ĊĠĠĠĠĠĠĠ Ġm Show Hide ImageView Ġ= ĠfindViewById ( R . id . signin _ show _ hide ) ĊĊĠĠĠĠĠĠĠ Ġm Show Hide ImageView !!. setOnClickListener ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Show Password Action () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġm Auth Ġ= ĠFirebase Auth . getInstance () ĊĠĠĠĠĠĠĠ Ġm Email Field !!. setText (" t lope z @ gmail . com ") ĊĠĠĠĠĠĠĠ Ġm Password Field !!. setText (" password ") ĊĠĠĠĠĠĠĠ Ġsign In Button !!. setOnClickListener Ġ({ ĊĠĠĠĠĠĠĠĠĠ Ġshow Progress Dialog () ĊĠĠĠĠĠĠĠĠĠĠ Ġsign In () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġregister Button !!. setOnClickListener ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠSign up Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Progress Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Progress Dialog Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Progress Dialog Ġ= ĠProgress Dialog ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Progress Dialog !!. set Cancel able ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Progress Dialog !!. setMessage (" Loading ...") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Progress Dialog !!. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Show Password Action () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġinvisible Password Ġ= ĠInput Type . TYPE _ TEXT _ VARI ATION _ PASSWORD Ġor ĠInput Type . TYPE _ CLASS _ TEXT ĊĠĠĠĠĠĠĠ Ġval Ġvisible Password Ġ= ĠInput Type . TYPE _ TEXT _ VARI ATION _ VISIBLE _ PASSWORD Ġor ĠInput Type . TYPE _ CLASS _ TEXT ĊĊĠĠĠĠĠĠĠ Ġval Ġis Password Visible Ġ= Ġm Password Field !!. getInput Type () Ġ== Ġvisible Password ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Password Visibility Ġ= Ġif Ġ( is Password Visible ) Ġinvisible Password Ġelse Ġvisible Password ĊĠĠĠĠĠĠĠ Ġm Password Field !!. set InputType ( new Password Visibility ) ĊĊĠĠĠĠĠĠĠ Ġval Ġenabled Alpha Ġ= Ġ 1 . 0 . toFloat () ĊĠĠĠĠĠĠĠ Ġval Ġdisabled Alpha Ġ= Ġ 0 . 6 . toFloat () ĊĠĠĠĠĠĠĠ Ġval Ġalpha Ġ= Ġif Ġ( is Password Visible ) Ġdisabled Alpha Ġelse Ġenabled Alpha ĊĠĠĠĠĠĠĠ Ġm Show Hide ImageView !!. set Alpha ( alpha ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalidate Form (): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! Utils . isValid Email ( m Email Field !!. getText (). toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Email Field !!. setError (" Valid Ġemail ĠRequired ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Email Field !!. setError ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( m Password Field !!. getText (). toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Password Field !!. setError (" Required ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Password Field !!. setError ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Auth Success ( user : ĠFirebase User ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ Sign in Activity , ĠLand ing Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsign In () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" signin ", Ġ" signIn ") ĊĠĠĠĠĠĠĠ Ġif Ġ(! validate Form ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠUtils . show Progress Dialog ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġm Email Field !!. getText (). toString () ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġm Password Field !!. getText (). toString () ĊĊĠĠĠĠĠĠĠ Ġm Auth !!. signIn With Email And Password ( email , Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Complete Listener ( On Complete Listener < Auth Result > Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" signin ", Ġ" signIn : onComplete :" Ġ+ Ġtask . is Successful ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . hide Progress Dialog () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Auth Success ( task . result . user ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Sign in Activity , Ġtask . exception !!. message , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }