package Ġde . r ki . cor on aw arn app . ui . submission . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . accessibility . Accessibility Event Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġde . r ki . cor on aw arn app . R Ċ import Ġde . r ki . cor on aw arn app . databinding . Fragment Submission Tan Binding Ċ import Ġde . r ki . cor on aw arn app . exception . http . BadRequest Exception Ċ import Ġde . r ki . cor on aw arn app . exception . http . C wa Client Error Ċ import Ġde . r ki . cor on aw arn app . exception . http . C wa ServerError Ċ import Ġde . r ki . cor on aw arn app . exception . http . C wa Web Exception Ċ import Ġde . r ki . cor on aw arn app . ui . do Navigate Ċ import Ġde . r ki . cor on aw arn app . ui . main . MainActivity Ċ import Ġde . r ki . cor on aw arn app . ui . submission . ApiRequest State Ċ import Ġde . r ki . cor on aw arn app . ui . submission . Tan Constants Ċ import Ġde . r ki . cor on aw arn app . ui . submission . view model . Submission Tan ViewModel Ċ import Ġde . r ki . cor on aw arn app . ui . view model . Submission ViewModel Ċ import Ġde . r ki . cor on aw arn app . util . Dialog Helper Ċ import Ġde . r ki . cor on aw arn app . util . Tan Helper Ċ import Ġde . r ki . cor on aw arn app . util . observe Event Ċ import Ġde . r ki . cor on aw arn app . util . ui . view Binding Lazy Ċ import Ġkotlinx . android . synt hetic . main . include _ submission _ tan .* Ċ Ċ /** Ċ Ġ* ĠFragment Ġfor ĠT AN Ġentry Ċ Ġ*/ Ċ class ĠSubmission Tan Fragment Ġ: ĠFragment ( R . layout . fragment _ submission _ tan ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠSubmission Tan ViewModel Ġby Ġview Models () ĊĠĠĠ Ġprivate Ġval Ġsubmission ViewModel : ĠSubmission ViewModel Ġby Ġactivity ViewModels () ĊĠĠĠ Ġprivate Ġval Ġbinding : ĠFragment Submission Tan Binding Ġby Ġview Binding Lazy () ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Error Dialog ( exception : ĠC wa Web Exception ): ĠDialog Helper . Dialog Instance Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBadRequest Exception Ġ-> ĠDialog Helper . Dialog Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . submission _ error _ dialog _ web _ test _ paired _ title _ tan , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . submission _ error _ dialog _ web _ test _ paired _ body _ tan , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . submission _ error _ dialog _ web _ test _ paired _ button _ positive , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ:: go Back ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠC wa Client Error , Ġis ĠC wa ServerError Ġ-> ĠDialog Helper . Dialog Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . submission _ error _ dialog _ web _ generic _ error _ title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . submission _ error _ dialog _ web _ generic _ network _ error _ body , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexception . statusCode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . submission _ error _ dialog _ web _ generic _ error _ button _ positive , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ:: go Back ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠDialog Helper . Dialog Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . submission _ error _ dialog _ web _ generic _ error _ title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . submission _ error _ dialog _ web _ generic _ error _ body , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . submission _ error _ dialog _ web _ generic _ error _ button _ positive , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ:: go Back ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding . view model Ġ= ĠviewModel ĊĊĠĠĠĠĠĠĠ Ġbinding . submission Tan Content . submission Tan Input . listener Ġ= Ġ{ Ġtan Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreset Error () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . tan . value Ġ= Ġtan ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tan Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Tan Helper . all Characters Valid ( tan )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Character Error () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tan . length Ġ== ĠT an Constants . MAX _ LENGTH Ġ&& Ġ! Tan Helper . is Checksum Valid ( tan )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Tan Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . submission Tan Button Enter . setOnClickListener Ġ{ Ġstore Tan And Continue () Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . submission Tan Header . header Button Back . button Icon . setOnClickListener Ġ{ Ġgo Back () Ġ} ĊĊĠĠĠĠĠĠĠ Ġsubmission ViewModel . registration State . observe Event ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . submission Tan Spinner . visibility Ġ= Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Request State . STARTED Ġ-> ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ApiRequest State . SUCCESS Ġ== Ġit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). do Navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSubmission Tan Fragment Directions . action Submission Tan Fragment To Submission Result Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsubmission ViewModel . registration Error . observe Event ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Helper . show Dialog ( build Error Dialog ( it )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreset Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġsubmission _ tan _ character _ error . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġsubmission _ tan _ error . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Character Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġsubmission _ tan _ character _ error . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Tan Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġsubmission _ tan _ error . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġbinding . submission Tan Root . send Accessibility Event ( Accessibility Event . TYPE _ AN NOUN CE MENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgo Back () Ġ= Ġ( activity Ġas ĠMainActivity ). go Back () ĊĊĠĠĠ Ġprivate Ġfun Ġstore Tan And Continue () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġverify Ġinput Ġformat ĊĠĠĠĠĠĠĠ Ġif Ġ( viewModel . isValid Tan Format . value Ġ!= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĊĠĠĠĠĠĠĠ Ġ// Ġstore Ġlocally ĊĠĠĠĠĠĠĠ ĠviewModel . store Te let an () ĊĊĠĠĠĠĠĠĠ Ġsubmission ViewModel . do Device Registration () ĊĠĠĠ Ġ} Ċ } Ċ