package Ġcom . yu hang . no vel . p ir ate . ui . user . activity Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . or h ano but . logger . Logger Ċ import Ġcom . t ams ire e . rx kit . Rx Keyboard Tool Ċ import Ġcom . yu hang . no vel . p ir ate . R Ċ import Ġcom . yu hang . no vel . p ir ate . base . Base Activity Ċ import Ġcom . yu hang . no vel . p ir ate . databinding . Activity For get Binding Ċ import Ġcom . yu hang . no vel . p ir ate . extension . click With Trigger Ċ import Ġcom . yu hang . no vel . p ir ate . extension . nice Tip Top Ċ import Ġcom . yu hang . no vel . p ir ate . extension . nice Toast Ċ import Ġcom . yu hang . no vel . p ir ate . repository . network . data . p ir ate . result . Email Code Result Ċ import Ġcom . yu hang . no vel . p ir ate . repository . network . data . p ir ate . result . Status Result Ċ import Ġcom . yu hang . no vel . p ir ate . ui . user . view model . For get ViewModel Ċ import Ġkotlinx . coroutines . flow .* Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* Ġ å¿ ĺ è®° å¯Ĩçłģ Ċ Ġ*/ Ċ class ĠFor getActivity Ġ: ĠBase Activity < Activity For get Binding , ĠFor get ViewModel >() Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠE MAIL Ġ= Ġ" email " ĊĠĠĠĠĠĠĠ Ġfun Ġstart ( context : ĠActivity , Ġemail : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠFor getActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( EMAIL , Ġemail ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Intent ( context , Ġintent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Layout Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . activity _ forget ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init View () ĊĠĠĠĠĠĠĠ Ġm ViewModel . email Ġ= Ġintent . getString Extra ( EMAIL ) !! ĊĠĠĠĠĠĠĠ ĠonClick () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Check Result ") ĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . send Mail Code View ( m Binding ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflow Ġ{ Ġemit ( m ViewModel . post Mail Code ( m ViewModel . email )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Completion Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . btn Code . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . btn Code . setBackground Resource ( R . drawable . bg _ material _ item _ blue _ round ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . btn Code . text Ġ= Ġ" èİ·åıĸ éªĮè¯ģçłģ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . btn Code . setTextColor ( Context Compat . getColor ( this @ For getActivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . md _ red _ 3 0 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnice Toast (" èİ·åıĸ éªĮè¯ģçłģ å¤±è´¥ , è¯· éĩį è¯ķ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. catch Ġ{ ĠLogger . e ( it . message Ġ?: Ġ"") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect Ġ{ Ġit . data ?. let Ġ{ Ġcode Ġ-> Ġm ViewModel . code Ġ= Ġcode Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Check Result ") ĊĠĠĠ Ġprivate Ġfun ĠonClick () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Binding . btn Back . click With Trigger Ġ{ Ġon Back Pressed Support () Ġ} ĊĠĠĠĠĠĠĠ Ġm Binding . btn Code . click With Trigger Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRx Keyboard Tool . show Soft Input ( this , Ġm Binding . code Et ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Binding . btn Next . click With Trigger Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m ViewModel . check Params ( m Binding )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflow Ġ{ Ġemit ( m ViewModel . check Email Code ( m Binding )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. onStart Ġ{ Ġshow Progress bar (" è¯· çŃīå¾ħ ...") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Completion Ġ{ Ġclose Progress bar () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. catch Ġ{ Ġnice Toast (" ç½ĳç»ľ éĹ®é¢ĺ , è¯· éĩį è¯ķ ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . code Ġ!= Ġ 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnice Tip Top ( m Binding . code Et , Ġit . msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ collect ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUpdate Password Activity . start ( this @ For getActivity , Ġm ViewModel . email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }