package Ġorg . tok end . template . features . ky c . view Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . rx kotlin . addTo Ċ import Ġio . reactivex . rx kotlin . subscribe By Ċ import Ġkotlinx . android . synt hetic . main . activity _ loading _ data .* Ċ import Ġorg . tok end . template . R Ċ import Ġorg . tok end . template . activities . Base Activity Ċ import Ġorg . tok end . template . features . ky c . model . K yc Request State Ċ import Ġorg . tok end . template . features . ky c . storage . K yc Request State Repository Ċ import Ġorg . tok end . template . util . Interval Poller Ċ import Ġorg . tok end . template . util . Observable Transform ers Ċ import Ġorg . tok end . template . util . navigation . Navigator Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠWaitFor K yc Approval Activity Ġ: ĠBase Activity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġk yc Request State Repository : ĠK yc Request State Repository ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġrepository Provider . ky c Request State () ĊĊĠĠĠ Ġprivate Ġval Ġis K yc Request Approved : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġk yc Request State Repository . item Ġis ĠK yc Request State . Submitted . Approved < *> ĊĊĠĠĠ Ġprivate Ġvar Ġpolling Disposable : ĠDis posable ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Allowed ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ loading _ data ) ĊĠĠĠĠĠĠĠ Ġloading _ message _ text _ view . setText ( R . string . waiting _ for _ ky c _ approval _ message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart K yc State Polling () Ġ{ ĊĠĠĠĠĠĠĠ Ġpolling Disposable Ġ= ĠInterval Poller ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOL L _ INTERVAL _ S , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTimeUnit . SECONDS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeferred DataSource Ġ= ĠSingle . defer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk yc Request State Repository ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. update Deferred () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Single Default ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is K yc Request Approved ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" KY C Ġrequest Ġis Ġnot Ġapproved Ġyet ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Single () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( Observable Transform ers . default Schedulers Single ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe By ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= Ġ{ Ġon K yc Approved () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= Ġthis :: on Check Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( composite Disposable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstop Polling () Ġ{ ĊĠĠĠĠĠĠĠ Ġpolling Disposable ?. dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġstart K yc State Polling () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġstop Polling () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon K yc Approved () Ġ{ ĊĠĠĠĠĠĠĠ Ġtoast Manager . short ( R . string . account _ setup _ completed ) ĊĠĠĠĠĠĠĠ ĠNavigator . from ( this ). to Client MainActivity ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Check Error ( error : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ ĠerrorHandler Factory . getDefault (). handle ( error ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPOL L _ INTERVAL _ S Ġ= Ġ 2 L ĊĠĠĠ Ġ} Ċ } Ċ