package Ġcom . ar im dor . shared notes . ui . login Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Log Ċ import Ġandroid . util . Patterns Ċ import Ġandroid . widget .* Ċ import Ġcom . ar im dor . shared notes . R Ċ import Ġcom . ar im dor . shared notes . ui . book . Book Activity Ċ import Ġcom . ar im dor . shared notes . ui . user Register . Register Activity Ċ import Ġcom . google . firebase . iid . Firebase InstanceId Ċ Ċ class ĠLogin Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġedit Text Email : ĠEditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġedit Text Password : ĠEditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġremember : ĠSwitch ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbutton Login : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlink Sing Up : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġshared Preferences : ĠSharedPreferences ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ login ) ĊĊĠĠĠĠĠĠĠ Ġedit Text Email Ġ= ĠfindViewById ( R . id . input _ email ) ĊĠĠĠĠĠĠĠ Ġedit Text Password Ġ= ĠfindViewById ( R . id . input _ password ) ĊĠĠĠĠĠĠĠ Ġremember Ġ= ĠfindViewById ( R . id . switch Remember ) ĊĠĠĠĠĠĠĠ Ġbutton Login Ġ= ĠfindViewById ( R . id . btn _ login ) ĊĠĠĠĠĠĠĠ Ġlink Sing Up Ġ= ĠfindViewById ( R . id . link _ signup ) ĊĊĠĠĠĠĠĠĠ Ġshared Preferences Ġ= Ġget SharedPreferences (" preferences ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġcheck Credential Stored () ĊĊĠĠĠĠĠĠĠ Ġbutton Login . setOnClickListener Ġ{ Ġlogin ( edit Text Email . text . toString (), Ġedit Text Password . text . toString ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġlink Sing Up . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠRegister Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠLog . d (" amd ", ĠFirebase InstanceId . getInstance (). token ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Credential Stored (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġshared Preferences . getString (" email ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġshared Preferences . getString (" password ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġremember Che ked Ġ= Ġshared Preferences . getBoolean (" remember ", Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( email ) Ġ&& Ġ! TextUtils . isEmpty ( password ) Ġ&& Ġremember Che ked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text Email . setText ( email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text Password . setText ( password ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremember . isChecked Ġ= Ġremember Che ked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠNullPointerException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Ha Ġo cur rid o Ġun Ġerror , Ġpor f avor Ġintent e Ġnue v amente .", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstore Preference ( email : ĠString , Ġpassword : ĠString , Ġsave Credentials : ĠBoolean , Ġlo ged : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( remember . isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġshared Preferences . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" email ", Ġemail ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" password ", Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . put Boolean (" remember ", Ġsave Credentials ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . put Boolean (" lo ged ", Ġlo ged ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlogin ( email : ĠString , Ġpassword : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(! Patterns . EMAIL _ ADDRESS . matcher ( email ). matches ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" El Ġemail Ġing res ado Ġno Ġes Ġvalid o , Ġpor f avor Ġv uel va Ġa Ġintent ar lo ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( password . length Ġ< Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" La Ġpassword Ġing res ado Ġno Ġes Ġvalid a , Ġpor f avor Ġv uel va Ġa Ġintent ar lo .", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠBook Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TASK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore Preference ( email , Ġpassword , Ġremember . isChecked , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ