package Ġnetwork . o 3 . o 3 wallet . On boarding . On boarding V 2 Ċ Ċ import Ġandroid . app . Key guard Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 4 . view . ViewPager Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . air bnb . lott ie . Lot tie Animation View Ċ import Ġnetwork . o 3 . o 3 wallet .* Ċ import Ġnetwork . o 3 . o 3 wallet . On boarding . Landing Pager Adapter Ċ import Ġnetwork . o 3 . o 3 wallet . On boarding . Login NE P 6 . Login NE P 6 Activity Ċ import Ġorg . jetbrains . ank o .* Ċ import Ġorg . jetbrains . ank o . support . v 4 . alert Ċ import Ġorg . jetbrains . ank o . support . v 4 . toast Ċ Ċ class ĠLand ing Fragment : ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpager : ĠView Pager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnext Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġanimation View : ĠL ot tie Animation View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm View : ĠView ĊĠĠĠ Ġprivate Ġvar Ġdeep Link : ĠString ? Ġ= Ġnull ĊĊĊĠĠĠ Ġval Ġmax Pages Ġ= Ġ 5 ĊĠĠĠ Ġval Ġmin Pages Ġ= Ġ 0 ĊĠĠĠ Ġvar ĠcurrentPage Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġuser Did Interact Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġm View Ġ= Ġinflater . inflate ( R . layout . on boarding _ landing _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġanimation View Ġ= Ġm View . find ( R . id . landing _ animation _ view ) ĊĠĠĠĠĠĠĠ Ġanimation View . use Hardware Acceleration ( true ) ĊĠĠĠĠĠĠĠ Ġpager Ġ= Ġm View . find ( R . id . landing ViewPager ) ĊĠĠĠĠĠĠĠ Ġinitiate ViewPager () ĊĊĊĠĠĠĠĠĠĠ Ġm View . find < Button >( R . id . login Button ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogin T apped () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm View . find < Button >( R . id . createNew Wallet Button ). setOnClickListener Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ landing Fragment _ to _ on boarding New Wallet Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Account . is Encrypted Wallet Present () Ġ|| ĠAccount . is Encrypted NE P 6 Pass Present ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthenticate Encrypted Wallet () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauto Play Animation () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġm View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinitiate ViewPager () Ġ{ ĊĠĠĠĠĠĠĠ Ġpager . adapter Ġ= ĠLand ing Pager Adapter ( activity !!. support FragmentManager ) ĊĠĠĠĠĠĠĠ Ġpager . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpager . setCurrent Item ( currentPage Ġ+ Ġ 1 , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpager . add On Page ChangeListener ( object Ġ: ĠView Pager . On Page ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( state Ġ== ĠView Pager . SCROLL _ STATE _ DR AG GING ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Did Interact Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( position : ĠInt , Ġposition Offset : ĠFloat , Ġposition Offset Pixels : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( currentPage Ġ< Ġposition ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user Did Interact ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimate Forward () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentPage Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Dot Color ( currentPage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( currentPage Ġ> Ġposition ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( user Did Interact ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimate Backward () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentPage Ġ-= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Dot Color ( currentPage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġanimate Forward () Ġ{ ĊĠĠĠĠĠĠĠ Ġanimation View . speed Ġ= Ġ 1 . 3 f ĊĠĠĠĠĠĠĠ Ġanimation View . set Min And Max Progress ( currentPage . toFloat () Ġ/ Ġ( max Pages . toFloat () Ġ- Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( currentPage Ġ+ Ġ 1 ). toFloat () Ġ/ Ġ( max Pages . toFloat () Ġ- Ġ 1 ) Ġ) ĊĠĠĠĠĠĠĠ Ġanimation View . play Animation () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! user Did Interact ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentPage Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Dot Color ( currentPage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpager . setCurrent Item ( currentPage , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġanimate Backward Ġ() Ġ{ ĊĠĠĠĠĠĠĠ Ġanimation View . speed Ġ= Ġ- 1 . 3 f ĊĠĠĠĠĠĠĠ Ġ// animation View . set Min And Max Progress ( 0 . 0 f , Ġ 0 . 2 f ) ĊĠĠĠĠĠĠĠ Ġanimation View . set Min And Max Progress (( currentPage . toFloat () Ġ- Ġ 1 ) Ġ/ Ġ( max Pages . toFloat () Ġ- Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( currentPage ). toFloat () Ġ/ Ġ( max Pages . toFloat () Ġ- Ġ 1 ) Ġ) ĊĠĠĠĠĠĠĠ Ġanimation View . play Animation () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġauto Play Animation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= ĠHandler () ĊĠĠĠĠĠĠĠ Ġval Ġdelay : ĠLong Ġ= Ġ 5 0 0 0 Ġ// milliseconds ĊĊĠĠĠĠĠĠĠ Ġhandler . post Delayed ( object Ġ: ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! user Did Interact Ġ&& ĠcurrentPage Ġ!= Ġmax Pages Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimate Forward () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post Delayed ( this , Ġdelay ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, Ġdelay ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset Dot Color ( current Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdot One Ġ= Ġm View . find < ImageView >( R . id . landing Dot One ) ĊĠĠĠĠĠĠĠ Ġval Ġdot Two Ġ= Ġm View . find < ImageView >( R . id . landing Dot Two ) ĊĠĠĠĠĠĠĠ Ġval Ġdot Three Ġ= Ġm View . find < ImageView >( R . id . landing Dot Three ) ĊĠĠĠĠĠĠĠ Ġval Ġdot Four Ġ= Ġm View . find < ImageView >( R . id . landing Dot Four ) ĊĠĠĠĠĠĠĠ Ġval Ġdot Five Ġ= Ġm View . find < ImageView >( R . id . landing Dot Five ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdot Array Ġ= ĠarrayOf ( dot One , Ġdot Two , Ġdot Three , Ġdot Four , Ġdot Five ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( dot Ġin Ġdot Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdot . image Ġ= Ġactivity ?. get Drawable ( R . drawable . ic _ inactive _ dot ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdot Array [ current Position ]. image Ġ= Ġactivity ?. get Drawable ( R . drawable . ic _ active _ dot ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġauthenticate Encrypted Wallet () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm Key guard Manager Ġ= Ġ Ġactivity !!. getSystem Service ( Context . KEY GU ARD _ SERVICE ) Ġas ĠKey guard Manager ĊĠĠĠĠĠĠĠ Ġif Ġ(! m Key guard Manager . is Key guard Secure ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠShow Ġa Ġmessage Ġthat Ġthe Ġuser Ġhasn 't Ġset Ġup Ġa Ġlock Ġscreen . ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( R . string . ALERT _ no _ pass code _ setup ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( activity , ĠLogin NE P 6 Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġfun Ġlogin T apped () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm Key guard Manager Ġ= Ġ Ġactivity !!. getSystem Service ( Context . KEY GU ARD _ SERVICE ) Ġas ĠKey guard Manager ĊĠĠĠĠĠĠĠ Ġif Ġ(! m Key guard Manager . is Key guard Secure ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠShow Ġa Ġmessage Ġthat Ġthe Ġuser Ġhasn 't Ġset Ġup Ġa Ġlock Ġscreen . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( resources . getString ( R . string . ALERT _ no _ pass code _ setup )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( NE P 6 . get From FileSystem (). accounts . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert ( resources . getString ( R . string . ON BOARD ING _ remove _ wallet )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyes Button Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ landing Fragment _ to _ restore Existing Wallet Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno Button Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ landing Fragment _ to _ restore Existing Wallet Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }