package Ġcom . team 0 3 . cock tail recipes app Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . EditText Ċ import Ġcom . team 0 3 . cock tail recipes app . error _ listener . Register Error Listener Ċ import Ġcom . team 0 3 . cock tail recipes app . listener . Register Listener Ċ import Ġcom . team 0 3 . cock tail recipes app . ui . login . Login Activity Ċ import Ġkotlinx . android . synt hetic . main . activity _ login . et Username Ċ Ċ class ĠRegister Activity Ġ: ĠSharedPreferences Activity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ register ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Un success full Register (){ ĊĠĠĠĠĠĠĠ Ġet Username . error Ġ= Ġ" Username Ġalready Ġin Ġuse "; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonSuccess full Register (){ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠLogin Activity :: class . java ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġregister ( username : ĠString , Ġpassword : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġserver Ġ= Ġserver API ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġpw Hash Ġ= ĠCrypto Utils . get SHA 5 1 2 ( password ) ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= ĠRegister Listener (:: on Success full Register ) ĊĠĠĠĠĠĠĠ Ġval Ġerror _ listener Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRegister Error Listener (:: on Un success full Register ) ĊĠĠĠĠĠĠĠ Ġval Ġanswer Ġ= Ġserver . register ( username , Ġpw Hash , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener , Ġerror _ listener ); ĊĠĠĠĠĠĠĠ Ġif Ġ( answer Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġperform Register (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġet Username : ĠEditText Ġ= ĠfindViewById ( R . id . txt _ username ); ĊĠĠĠĠĠĠĠ Ġval Ġet Password : ĠEditText Ġ= ĠfindViewById ( R . id . txt _ password ); ĊĠĠĠĠĠĠĠ Ġval Ġet Password Repeated : ĠEditText Ġ= ĠfindViewById ( R . id . txt _ password _ repeat ); ĊĠĠĠĠĠĠĠ Ġvar ĠretVal : ĠBoolean ĊĠĠĠĠĠĠĠ ĠretVal Ġ= Ġfalse ; ĊĊĠĠĠĠĠĠĠ Ġvar Ġvalidate Input Ret : ĠInt Ġ= ĠRegister Funcs (). validate Input ( et Username . text . toString (), Ġet Password . text . toString (), Ġet Password Repeated . text . toString ()) ĊĊĊĠĠĠĠĠĠĠ Ġif Ġ( validate Input Ret Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġet Username . error Ġ= Ġresources . getString ( R . string . should _ not _ be _ blank ); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( validate Input Ret Ġ== Ġ- 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġet Password . error Ġ= Ġresources . getString ( R . string . should _ not _ be _ blank ); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( validate Input Ret Ġ== Ġ- 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġet Password Repeated . error Ġ= Ġresources . getString ( R . string . should _ not _ be _ blank ); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( validate Input Ret Ġ== Ġ- 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġet Password Repeated . error Ġ= Ġresources . getString ( R . string . passwords _ should _ be _ the _ same ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( validate Input Ret Ġ== Ġ- 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġet Username . error Ġ= Ġresources . getString ( R . string . username _ to _ less _ characters ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( validate Input Ret Ġ== Ġ- 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġet Password . error Ġ= Ġresources . getString ( R . string . password _ to _ less _ characters ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠretVal Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠretVal ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġregister OnClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( perform Register ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġet Username : ĠEditText Ġ= ĠfindViewById ( R . id . txt _ username ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġet Password : ĠEditText Ġ= ĠfindViewById ( R . id . txt _ password ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister ( et Username . text . toString (), Ġet Password . text . toString ()); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠRegister Funcs Ċ { ĊĠĠĠ Ġfun Ġvalidate Input ( username : ĠString , Ġpassword : ĠString , Ġpassword Repeat : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġpattern Ġ= ĠRegex ("\\ w { 3 , }") ĊĠĠĠĠĠĠĠ Ġif Ġ( username Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( password Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( password Repeat Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 3 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( password . length Ġ< Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 6 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( password Repeat Ġ!= Ġpassword ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 4 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( pattern . contains Match In ( username ) Ġ== Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 5 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ