package Ġel te . money share . view Ċ Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġel te . money share . Fragment Data Keys Ċ import Ġel te . money share . R Ċ import Ġel te . money share . manager . Dialog Manager Ċ import Ġel te . money share . util . Action Ċ import Ġel te . money share . util . convert ErrorCode ToString Ċ import Ġel te . money share . util . show Toast Ċ import Ġel te . money share . view model . New Password ViewModel Ċ import Ġkotlinx . android . synt hetic . main . fragment _ new _ password .* Ċ Ċ class ĠNew Password Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠNew Password ViewModel ĊĠĠĠ Ġprivate Ġvar Ġtoken : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtoken Ġ= Ġarguments ?. getString ( Fragment Data Keys . NEW _ PASSWORD _ TOKEN . value ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ new _ password , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpassword Validator ( txt : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġpwd Error Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġuppercase Regex Ġ= Ġ""" [ A - Z ] """. to Regex () ĊĠĠĠĠĠĠĠ Ġval Ġlowercase Regex Ġ= Ġ""" [ a - z ] """. to Regex () ĊĠĠĠĠĠĠĠ Ġval Ġnumber Regex ĠĠĠ Ġ= Ġ""" [ 0 - 9 ] """. to Regex () ĊĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( txt . length Ġ< 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpwd Error Ġ= Ġit . getString ( R . string . minimum _ characters ). plus ('\ n ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! txt . contains ( uppercase Regex )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpwd Error Ġ= Ġpwd Error . plus ( it . getString ( R . string . uppercase _ required ). plus ('\ n ')) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! txt . contains ( lowercase Regex )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpwd Error Ġ= Ġpwd Error . plus ( it . getString ( R . string . lowercase _ required ). plus ('\ n ')) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! txt . contains ( number Regex )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpwd Error Ġ= Ġpwd Error . plus ( it . getString ( R . string . number _ required ). plus ('\ n ')) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġpwd Error ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Providers . of ( this ). get ( New Password ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġconfirm Password Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġpassword EditText . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword Again Ġ= Ġpassword Again EditText . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġerr Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpwd Error Ġ= Ġpassword Validator ( password ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pwd Error . length Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword TextInput Layout . error Ġ= Ġpwd Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Again TextInput Layout . error Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerr Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( password Ġ!= Ġpassword Again ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Again TextInput Layout . error Ġ= Ġcontext ?. getString ( R . string . password _ not _ matching ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword TextInput Layout . error Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerr Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Again TextInput Layout . error Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword TextInput Layout . error Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! err ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . put New Password ( password EditText . text . toString (), Ġit ) Ġ{ Ġ_, Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĠgetString ( R . string . new _ password _ updated ). show Toast ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. support FragmentManager ?. pop Back Stack Immediate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Manager . show Info Dialog ( error . convert ErrorCode ToString ( Action . AUTH _ LOGIN , Ġcontext ), Ġcontext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }