package Ġcom . imp liz studio . android . app . auth . ui . verification Ċ Ċ import Ġ` in `. aab has j ind al . ot pt ext view . OTP Listener Ċ import Ġandroid . content . Broadcast Receiver Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . activity . add Callback Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . imp liz studio . android . app . android war ung ku owner . data . model . Auth Ċ import Ġcom . imp liz studio . android . app . android war ung ku owner . data . model . Token Ċ import Ġcom . imp liz studio . android . app . android war ung ku owner . data . model . constant . Constant Ċ import Ġcom . imp liz studio . android . app . android war ung ku owner . data . repository . auth . Auth Repository Impl Ċ import Ġcom . imp liz studio . android . app . android war ung ku owner . di . feature . Auth Dependency Ċ import Ġcom . imp liz studio . android . app . auth . R Ċ import Ġcom . imp liz studio . android . app . auth . databinding . Fragment Verification Binding Ċ import Ġcom . imp liz studio . android . app . auth . di . D agger Auth Component Ċ import Ġcom . imp liz studio . android . app . auth . service . Count Down Timer Service Ċ import Ġcom . imp liz studio . android . app . resources . base . Fragment Base Ċ import Ġcom . imp liz studio . android . app . resources . extension .* Ċ import Ġcom . imp liz studio . android . app . resources . util . Navigation Module Ċ import Ġdagger . h ilt . android . EntryPoint Accessors Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠVerification Fragment Ġ: ĠFragment Base < Fragment Verification Binding >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġview Models < Verification ViewModel >() ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġauth Repository Impl : ĠAuth Repository Impl ĊĊĠĠĠ Ġprivate Ġval Ġbroad Cast Receiver Ġ= Ġobject Ġ: ĠBroadcast Receiver () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Count Timer Finished Ġ= Ġintent . getBoolean Extra ( Constant . Key . COUNT _ FIN ISH , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Binding ()?. tv Verification Res ending ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Count Timer Finished ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Timer Util Finished Ġ= Ġintent . getLong Extra ( Constant . Key . COUNT _ TIMER , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġminutes Ġ= Ġ( count Timer Util Finished Ġ/ Ġ 1 0 0 0 ) Ġ/ Ġ 6 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġseconds Ġ= Ġ( count Timer Util Finished Ġ/ Ġ 1 0 0 0 ) Ġ% Ġ 6 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Ġ= Ġ"$ minutes :$ seconds " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġtime ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. stop Service ( Intent ( context , ĠCount Down Timer Service :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĠgetString ( R . string . res ending ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ ĠD agger Auth Component . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. context ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. app Dependency ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEntry Point Accessors . from Application ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAuth Dependency :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inject ( this ) ĊĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget View Binding ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?) Ġ= ĊĠĠĠĠĠĠĠ ĠFragment Verification Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġauth Ġ= Ġarguments ?. get Parcelable < Auth >( Constant . Key . AUTH ) ĊĠĠĠĠĠĠĠ Ġvar Ġtoken Ġ= ĠToken ( auth ?. auth ?. token ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Enable . observe ( view Lifecycle Owner , Ġ{ Ġis Enable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Binding ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Enable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . acb Verification . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . pb Verification Progress . visible () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . acb Verification . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . pb Verification Progress . invisible () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠhttpResponse Code . observe ( view Lifecycle Owner , Ġ{ Ġcode Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( code ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstant . Http Code . OK Ġ-> Ġrequire Activity (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setData To Shared Preference ( Constant . Key . IS _ LOG _ IN Ġto Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . startActivity Module ( Navigation Module . GOTO _ DASH BOARD ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . finish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstant . Http Code . UN AUTHORIZ ED Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). toast ( R . string . error _ wrong _ code ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstant . Http Code . FOR BID DEN Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). toast ( R . string . error _ token _ exp ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠaccessToken . observe ( view Lifecycle Owner , Ġ{ Ġtoken Ġ= Ġit Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget Binding ()?. apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv Verification Icon Back . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). pop Back Stack ( R . id . started , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Verification Email . text Ġ= Ġauth ?. email ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Verification Res ending . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . getEmail Code Verification ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauth Repository Impl , Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" owner _ id " Ġto Ġauth ?. id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" name _ recipient " Ġto Ġauth ?. fullName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" mail _ recipient " Ġto Ġauth ?. email ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . start Service ( Intent ( it , ĠCount Down Timer Service :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġo tv Verification . otp Listener Ġ= Ġobject Ġ: ĠO TP Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Interaction Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Button Verification State ( false , ĠR . drawable . bg _ button _ disable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon OTP Complete ( otp : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Button Verification State ( true , ĠR . drawable . bg _ button _ primary ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġac b Verification . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . do Email Verification ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauth Repository Impl , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" owner _ id " Ġto Ġauth ?. id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" code " Ġto Ġo tp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken . token ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrequire Activity (). on Back Pressed Dispatcher . add Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). pop Back Stack ( R . id . started , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire Activity (). register Receiver ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbroad Cast Receiver , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent Filter ( Count Down Timer Service . INT ENT _ ACTION ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire Activity (). unregister Receiver ( broad Cast Receiver ) ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire Activity (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . stop Service ( Intent ( this , ĠCount Down Timer Service :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Button Verification State ( enable : ĠBoolean , Ġbackground Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Binding ()?. acb Verification ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . isEnabled Ġ= Ġenable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . background Ġ= ĠContext Compat . get Drawable ( require Activity (), Ġbackground Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }