package Ġcom . space apps . my application . features . reset Password Ċ Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . foundation . text . Keyboard Actions Ċ import Ġandroidx . compose . foundation . text . Keyboard Options Ċ import Ġandroidx . compose . material . Button Ċ import Ġandroidx . compose . material . Outlined TextField Ċ import Ġandroidx . compose . material . Sca ffold Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime .* Ċ import Ġandroidx . compose . ui . Experimental Compose Ui Api Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . aut ofill . Aut ofill Type Ċ import Ġandroidx . compose . ui . focus . Focus Direction Ċ import Ġandroidx . compose . ui . platform . Local Focus Manager Ċ import Ġandroidx . compose . ui . platform . Local Lifecycle Owner Ċ import Ġandroidx . compose . ui . platform . Local Software Keyboard Controller Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . compose . ui . text . input . I me Action Ċ import Ġandroidx . compose . ui . text . input . Keyboard Type Ċ import Ġandroidx . compose . ui . text . input . Password Visual Transformation Ċ import Ġandroidx . compose . ui . window . Dialog Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . flow With Lifecycle Ċ import Ġcom . space apps . my application . R Ċ import Ġcom . space apps . my application . ui . OnClick Ċ import Ġcom . space apps . my application . ui . SPACING _ 1 6 Ċ import Ġcom . space apps . my application . utils . aut ofill Ċ import Ġkotlinx . coroutines . flow . launch In Ċ import Ġkotlinx . coroutines . flow . on Each Ċ Ċ @ Opt In ( Experimental Compose Ui Api :: class ) Ċ @ Composable Ċ fun ĠReset Password Screen ( viewModel : ĠReset Password ViewModel ) Ġ{ ĊĠĠĠ Ġval Ġlifecycle Owner Ġ= ĠLocal Lifecycle Owner . current ĊĠĠĠ Ġval Ġcode Verified Ġby ĠviewModel . code Verified . collect As State () ĊĠĠĠ Ġvar Ġshow Error Dialog Ġby Ġremember Ġ{ Ġmutable State Of ( false ) Ġ} ĊĠĠĠ Ġval Ġevents Ġ= Ġremember ( viewModel . events , Ġlifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . events . flow With Lifecycle ( lifecycle Owner . lifecycle , ĠLifecycle . State . RE SU MED ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġfocus Manager Ġ= ĠLocal Focus Manager . current ĊĠĠĠ Ġval Ġpassword Ġby ĠviewModel . password . collect As State () ĊĠĠĠ Ġval Ġconfirm Password Ġby ĠviewModel . confirm Password . collect As State () ĊĠĠĠ Ġval Ġkeyboard Controller Ġ= ĠLocal Software Keyboard Controller . current ĊĠĠĠ ĠLa unched Effect ( Unit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevents . on Each Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠReset Password Event . Code Verification Error Ġ-> Ġshow Error Dialog Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. launch In ( this ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( show Error Dialog ) ĠError Dialog ( on Dismiss Ġ= Ġ{}) ĊĠĠĠ ĠScaffold ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize () ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Arrange ment Ġ= ĠArrange ment . Center ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOut lined TextField ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( horizontal Ġ= ĠSP ACING _ 1 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. aut ofill ( on Fill Ġ= ĠviewModel :: on Password Enter , ĠAut ofill Type . Password ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġpassword . text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change Ġ= ĠviewModel :: on Password Enter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Options Ġ= ĠKeyboard Options ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Type Ġ= ĠKeyboard Type . Password , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ime Action Ġ= ĠI me Action . Next ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Actions Ġ= ĠKeyboard Actions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Next Ġ= Ġ{ Ġfocus Manager . move Focus ( Focus Direction . Down ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Error Ġ= Ġpassword . error Id Ġ!= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġ{ ĠText ( text Ġ= Ġstring Resource ( id Ġ= Ġpassword . error Id Ġ?: ĠR . string . password )) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġcode Verified ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . height ( SPACING _ 1 6 )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOut lined TextField ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( horizontal Ġ= ĠSP ACING _ 1 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. aut ofill ( viewModel :: on Confirm Password Enter , ĠAut ofill Type . Password ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġconfirm Password . text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change Ġ= ĠviewModel :: on Confirm Password Enter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Options Ġ= ĠKeyboard Options ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Type Ġ= ĠKeyboard Type . Password , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ime Action Ġ= ĠI me Action . Done ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Actions Ġ= ĠKeyboard Actions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Next Ġ= Ġ{ Ġfocus Manager . move Focus ( Focus Direction . Down ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Done Ġ= Ġ{ Ġkeyboard Controller ?. hide () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisual Transformation Ġ= ĠPassword Visual Transformation (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Error Ġ= Ġconfirm Password . error Id Ġ!= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġstring Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġconfirm Password . error Id Ġ?: ĠR . string . confirm _ password ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġcode Verified ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . height ( SPACING _ 1 6 )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( horizontal Ġ= ĠSP ACING _ 1 6 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= ĠviewModel :: on Reset Password Click , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Padding Ġ= ĠPadding Values ( SPACING _ 1 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġstring Resource ( id Ġ= ĠR . string . reset _ password )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠError Dialog ( on Dismiss : ĠOnClick ) Ġ{ ĊĠĠĠ ĠDialog ( on Dismiss Request Ġ= Ġon Dismiss ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBox Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġ" Error ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ