package Ġcom . dropbox . k ai ken . sample . advanced sample . helloworld feature Ċ Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . material . Button Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . material . TextField Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . runtime . setValue Ċ import Ġcom . dropbox . common . inject . App Scope Ċ import Ġcom . dropbox . common . inject . Auth Optional Screen Scope Ċ import Ġcom . dropbox . k ai ken . skeleton . sco ping . Single In Ċ import Ġcom . squareup . an vil . annotations . Contribut es Binding Ċ import Ġcom . squareup . an vil . annotations . Contribut es Mult ib ind ing Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject Ċ Ċ abstract Ġclass ĠF orgot Password Presenter Ġ: ĊĠĠĠ ĠPres enter < Forgot Password Presenter . Forgot Event , ĠF orgot Password Presenter . Forgot Model , ĠF orgot Password Presenter . Forgot Effect >( Initial ) Ġ{ ĊĊĠĠĠ Ġsealed Ġinterface ĠF orgot Event ĊĠĠĠ Ġclass ĠF orgot Submit ( val Ġemail : ĠString ) Ġ: ĠF orgot Event ĊĊĠĠĠ Ġsealed Ġinterface ĠF orgot Model ĊĠĠĠ Ġobject ĠInitial Ġ: ĠF orgot Model ĊĠĠĠ Ġobject ĠF orgot Loading Ġ: ĠF orgot Model ĊĠĠĠ Ġclass ĠPassword Reset ( val Ġdisplay : ĠString ) Ġ: ĠF orgot Model ĊĊĠĠĠ Ġsealed Ġinterface ĠF orgot Effect Ċ } Ċ Ċ @ Single In ( Auth Optional Screen Scope :: class ) Ċ @ Contribut es Mult ib ind ing ( Auth Optional Screen Scope :: class , Ġbound Type Ġ= ĠBase Presenter :: class ) Ċ class ĠReal Forgot Presenter Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġval Ġpassword Api : ĠPassword Api , Ċ ) Ġ: ĠF orgot Password Presenter () Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġevent Handler ( event : ĠF orgot Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠF orgot Submit Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSubmit ( event ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun ĠonSubmit ( event : ĠF orgot Submit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCor outine Scope ( Dispatch ers . IO ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Api . call Api ( event . email ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 5 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Ġ= ĠPassword Reset (" check Ġyour Ġpassword ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmodel Ġ= ĠF orgot Loading ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠF orgot Password Screen ( ĊĠĠĠ Ġmodel : ĠF orgot Password Presenter . Forgot Model , ĊĠĠĠ Ġon Forgot Submit : Ġ( Forgot Password Presenter . Forgot Submit ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠMaterial Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠColumn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠF orgot Password Presenter . Initial Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtext Ġby Ġremember Ġ{ Ġmutable State Of (" 1 ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTextField ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġtext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change Ġ= Ġ{ Ġtext Ġ= Ġit Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġ{ ĠText (" USER ID Ġto Ġretrieve Ġpassword ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( onClick Ġ= Ġ{ Ġon Forgot Submit ( Forgot Password Presenter . Forgot Submit ( text )) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Forgot ĠPassword ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠF orgot Password Presenter . Forgot Loading Ġ-> ĠText (" Sending Ġyou Ġnew Ġpassword Ġto Ġemail ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠF orgot Password Presenter . Password Reset Ġ-> ĠText (" New ĠPassword ĠSent Ġto ĠUser ĠEmail ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠPassword Api Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġcall Api ( email : ĠString ): ĠBoolean Ċ } Ċ Ċ @ Contribut es Binding ( App Scope :: class ) Ċ @ Single In ( App Scope :: class ) Ċ class ĠReal Password Api Ġ@ Inject Ġconstructor () Ġ: ĠPassword Api Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcall Api ( email : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ