package Ġcom . shop app . ui . account Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . view . View Ċ import Ġcom . shop app . R Ċ import Ġcom . shop app . Shop Application Ċ import Ġcom . shop app . ext . hide Keyboard Ċ import Ġcom . shop app . ui . account . contract . Change Password Presenter Ċ import Ġcom . shop app . ui . account . contract . Change Password View Ċ import Ġcom . shop app . ui . base . l ce . Base L ce Activity Ċ import Ġcom . shop app . ui . base . l ce . view . L ce Layout Ċ import Ġcom . shop app . ui . custom . Simple Text Watcher Ċ import Ġkotlinx . android . synt hetic . main . activity _ change _ password .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠChange Password Activity Ġ: ĊĠĠĠ ĠBase L ce Activity < Unit , ĠChange Password View , ĠChange Password Presenter >(), ĊĠĠĠ ĠChange Password View , ĊĠĠĠ ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġget Start Intent ( context : ĠContext ) Ġ= ĠIntent ( context , ĠChange Password Activity :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġchange Password Presenter : ĠChange Password Presenter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpassword Text Watcher : ĠText Watcher ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpassword Confirm Text Watcher : ĠText Watcher ĊĊĠĠĠ Ġ// ANDROID ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetTitle ( getString ( R . string . set _ new _ password )) ĊĠĠĠĠĠĠĠ Ġupdate Button . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġsetup Text Change Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġif Ġ( this :: password Text Watcher . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Input . add TextChanged Listener ( password Text Watcher ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( this :: password Confirm Text Watcher . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Confirm Input . add TextChanged Listener ( password Confirm Text Watcher ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġpassword Confirm Input . remove TextChanged Listener ( password Confirm Text Watcher ) ĊĠĠĠĠĠĠĠ Ġpassword Input . remove TextChanged Listener ( password Text Watcher ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// INIT ĊĊĠĠĠ Ġoverride Ġfun Ġinject () Ġ{ ĊĠĠĠĠĠĠĠ ĠShop Application . app Component . attach Auth Component (). inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ContentView () Ġ= ĠR . layout . activity _ change _ password ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Presenter () Ġ= Ġchange Password Presenter ĊĊĠĠĠ Ġoverride Ġfun Ġuse Modal Style () Ġ= Ġtrue ĊĊĠĠĠ Ġ// SETUP ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Text Change Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġpassword Text Watcher Ġ= Ġobject Ġ: ĠSimple Text Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Input Fields () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( password Input Layout . isError Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Input Layout . isError Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpassword Confirm Text Watcher Ġ= Ġobject Ġ: ĠSimple Text Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Input Fields () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( password Confirm Input Layout . isError Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Confirm Input Layout . isError Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Input Fields () Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Button . isEnabled Ġ= Ġpassword Confirm Input . text . isNotBlank () Ġ&& Ġpassword Input . text . isNotBlank () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// L CE ĊĊĠĠĠ Ġprivate Ġfun Ġclear Form Focus () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontainer Constraint Layout . request Focus () ĊĠĠĠĠĠĠĠ Ġcontainer Constraint Layout . hide Keyboard () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpassword Changed () Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Update Progress () Ġ{ ĊĠĠĠĠĠĠĠ Ġchange State ( L ce Layout . L ce State . Loading State ( true )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Update Progress () Ġ{ ĊĠĠĠĠĠĠĠ Ġchange State ( L ce Layout . L ce State . Content State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpassword Valid Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġpassword Input Layout . error Ġ= ĠgetString ( R . string . invalid _ password _ error _ message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpasswords Match Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġpassword Confirm Input Layout . error Ġ= ĠgetString ( R . string . password _ match _ error _ message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// CALLBACK ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġclear Form Focus () ĊĠĠĠĠĠĠĠ Ġpresenter . change Password ( password Input . text . toString (), Ġpassword Confirm Input . text . toString ()) ĊĠĠĠ Ġ} Ċ }