package Ġcom . world sn as . base Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . annotation . String Res Ċ import Ġcom . world sn as . core . Error Holder Ċ Ċ data Ġclass ĠBase State ( ĊĠĠĠ Ġval Ġstable : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġval Ġerror : ĠError State Ġ= ĠError State . Disabled , ĊĠĠĠ Ġval Ġshow Loading : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġval Ġshow Keyboard : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġval Ġconfirm : ĠBoolean Ġ= Ġfalse Ċ ) Ġ{ ĊĊĠĠĠ Ġsealed Ġclass ĠError State ( val Ġshow Sn ackBar : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠString ( val Ġsn ackBar Message String : Ġkotlin . String ) Ġ: ĠError State ( show Sn ackBar Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠRes (@ String Res Ġval Ġsn ackBar Message : ĠInt ) Ġ: ĠError State ( show Sn ackBar Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠUn Authorized ( val ĠerrorMessage : Ġkotlin . String ) Ġ: ĠError State ( show Sn ackBar Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġobject ĠDisabled Ġ: ĠError State ( show Sn ackBar Ġ= Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġstable () Ġ= ĠBase State () ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġloading () Ġ= ĠBase State ( stable Ġ= Ġfalse , Ġshow Loading Ġ= Ġtrue , Ġshow Keyboard Ġ= Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġshow Keyboard () Ġ= ĠBase State ( stable Ġ= Ġfalse , Ġshow Keyboard Ġ= Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġshow Error (@ String Res Ġmessage : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase State ( stable Ġ= Ġfalse , Ġerror Ġ= ĠError State . Res ( message ), Ġshow Keyboard Ġ= Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġshow Error ( message : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase State ( stable Ġ= Ġfalse , Ġerror Ġ= ĠError State . String ( message ), Ġshow Keyboard Ġ= Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġwith Error ( error : ĠBase State . Error State ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase State ( stable Ġ= Ġfalse , Ġerror Ġ= Ġerror , Ġshow Keyboard Ġ= Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġconfirm () Ġ= ĠBase State ( stable Ġ= Ġfalse , Ġconfirm Ġ= Ġtrue , Ġshow Keyboard Ġ= Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġun Authorized ( errorMessage : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase State ( stable Ġ= Ġfalse , Ġerror Ġ= ĠError State . Un Authorized ( errorMessage ), Ġshow Keyboard Ġ= Ġfalse ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠBase State . Error State . getError String ( context : ĠContext ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠBase State . Error State . String Ġ-> Ġreturn Ġsn ackBar Message String ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠBase State . Error State . Res Ġ-> Ġreturn Ġcontext . getString ( sn ackBar Message ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"" ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠError Holder . to Error State (): ĠBase State . Error State Ġ= ĊĠĠĠ Ġwhen ( this ){ ĊĠĠĠĠĠĠĠ Ġis ĠError Holder . Message Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase State . Error State . String ( message ) ĊĠĠĠĠĠĠĠ Ġis ĠError Holder . Res Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase State . Error State . Res ( message ) ĊĠĠĠĠĠĠĠ Ġis ĠError Holder . Un Authorized Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase State . Error State . Un Authorized ( message ) ĊĠĠĠ Ġ} ĊĊĊ