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 . Forgot Password Presenter Ċ import Ġcom . shop app . ui . account . contract . Forgot 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 _ forgot _ password .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠF orgot Password Activity Ġ: ĊĠĠĠ ĠBase L ce Activity < Unit , ĠF orgot Password View , ĠF orgot Password Presenter >(), ĊĠĠĠ ĠF orgot Password View , ĊĠĠĠ ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġget Start Intent ( context : ĠContext ) Ġ= ĠIntent ( context , ĠF orgot Password Activity :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġforgot Password Presenter : ĠF orgot Password Presenter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġemail Text Watcher : ĠText Watcher ĊĊĠĠĠ Ġ// ANDROID ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetTitle ( getString ( R . string . forgot _ password )) ĊĊĠĠĠĠĠĠĠ Ġemail Text Watcher Ġ= Ġobject Ġ: ĠSimple Text Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Button . isEnabled Ġ= Ġs . isNotEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( email Input Layout . isError Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail Input Layout . isError Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsubmit Button . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġres end . setOnClickListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġif Ġ( this :: email Text Watcher . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemail Input . add TextChanged Listener ( email Text Watcher ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġemail Input . remove TextChanged Listener ( email Text Watcher ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// INIT ĊĊĠĠĠ Ġoverride Ġfun Ġinject () Ġ{ ĊĠĠĠĠĠĠĠ ĠShop Application . app Component . attach Auth Component (). inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ContentView () Ġ= ĠR . layout . activity _ forgot _ password ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Presenter () Ġ= Ġforgot Password Presenter ĊĊĠĠĠ Ġ// L CE ĊĊĠĠĠ Ġoverride Ġfun Ġshow Content ( data : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . show Content ( data ) ĊĠĠĠĠĠĠĠ Ġreset Email . text Ġ= Ġemail Input . text ĊĠĠĠĠĠĠĠ Ġinput Group . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġres end Group . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Message ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . showMessage ( message ) ĊĠĠĠĠĠĠĠ Ġchange State ( L ce Layout . L ce State . Content State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Email Valid Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġemail Input Layout . isError Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġemail Input Layout . error Ġ= ĠgetString ( R . string . invalid _ email _ error _ message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// CALLBACK ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġv . request Focus () ĊĠĠĠĠĠĠĠ Ġv . hide Keyboard () ĊĠĠĠĠĠĠĠ Ġchange State ( L ce Layout . L ce State . Loading State ( true )) ĊĠĠĠĠĠĠĠ Ġpresenter . forgot Password ( email Input . text . toString ()) ĊĠĠĠ Ġ} Ċ }