package Ġcom . launch key . android . auth enticator . sdk . ui . internal . auth _ method . circle _ code Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġcom . launch key . android . auth enticator . sdk . ui . R Ċ import Ġcom . launch key . android . auth enticator . sdk . ui . databinding . Fragment Circle Code Add Check Binding Ċ import Ġcom . launch key . android . auth enticator . sdk . ui . internal . auth _ method . circle _ code . Circle Code Check ViewModel . Request State . Request Failed Ċ import Ġcom . launch key . android . auth enticator . sdk . ui . internal . common . Constants Ċ import Ġcom . launch key . android . auth enticator . sdk . ui . internal . util . Base AppCompat Fragment Ċ import Ġcom . launch key . android . auth enticator . sdk . ui . internal . util . Ui Utils Ċ import Ġcom . launch key . android . auth enticator . sdk . ui . internal . util . setText Temp or arily Ċ import Ġcom . launch key . android . auth enticator . sdk . ui . internal . util . view Binding Ċ Ċ class ĠCircle Code Check Fragment Ġ: ĠBase AppCompat Fragment ( R . layout . fragment _ circle _ code _ add _ check ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcircle Code Check ViewModel : ĠCircle Code Check ViewModel Ġby Ġview Models ({ Ġrequire Parent Fragment () Ġ}) ĊĠĠĠ Ġprivate Ġval Ġbinding Ġby Ġview Binding ( Fragment Circle Code Add Check Binding :: bind ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġinstructions : ĠTextView ĊĠĠĠĠĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġsetup Panel () ĊĠĠĠĠĠĠĠ Ġsubscribe Observer s () ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġprivate Ġfun Ġsetup Panel () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheader Views Ġ= ĠUi Utils . prep K ba Add Check Header ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . panel _ header , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . circle _ pad , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List ()) ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġinstructions Ġ= Ġheader Views [ 2 ] Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġinstructions . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( circle Code Check ViewModel . request State . value Ġis ĠCircle Code Check ViewModel . Request State . Change Requested ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . io a _ sec _ cir _ check _ to verify ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠR . string . io a _ sec _ cir _ check _ to remove ) ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġbinding . circle Pad . set Listener Ġ{ Ġcircle Code Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . circle Pad . ignore Tou ches ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcircle Code Check ViewModel . verify Circle Code ( circle Code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġprivate Ġfun Ġsubscribe Observer s () Ġ{ ĊĠĠĠĠĠĠĠ Ġcircle Code Check ViewModel . request State . observe ( view Lifecycle Owner , Ġ{ Ġrequest State Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( request State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCircle Code Check ViewModel . Request State . Change Requested Ġ-> Ġinstructions . setText ( R . string . io a _ sec _ cir _ check _ to verify ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCircle Code Check ViewModel . Request State . Remove Requested Ġ-> Ġinstructions . setText ( R . string . io a _ sec _ cir _ check _ to remove ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRequest Failed Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . circle Pad . ignore Tou ches ( request State . un linked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstructions . setText Temp or arily ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Lifecycle Owner . lifecycle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . io a _ sec _ cir _ check _ error _ wrong ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . BR IE F _ INSTR UCTION S _ DURATION _ MILLI ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCircle Code Check ViewModel . Request State . Change Request Success , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCircle Code Check ViewModel . Request State . Remove Request Success Ġ-> ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }