package Ġ` in `. j unk iel abs . park ing . ui . components . walk through Ċ Ċ import Ġ` in `. j unk iel abs . park ing . R Ċ import Ġ` in `. j unk iel abs . park ing . databinding . Activity Launcher Binding Ċ import Ġ` in `. j unk iel abs . park ing . databinding . Activity Walk Through Binding Ċ import Ġ` in `. j unk iel abs . park ing . tools . timer . Stop watch Ċ import Ġ` in `. j unk iel abs . park ing . tools . view pager . transformer . Zoom Out Page Transformer Ċ import Ġ` in `. j unk iel abs . park ing . ui . base . Activity Base Ċ import Ġ` in `. j unk iel abs . park ing . ui . components . on board . Activity On board Ċ import Ġ` in `. j unk iel abs . park ing . ui . widgets . ViewPager 2 Pager Listener Ċ import Ġ` in `. j unk iel abs . park ing . utils . Util Color Ċ import Ġ` in `. j unk iel abs . park ing . utils . Util Theme Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġorg . jetbrains . ank o . An ko Logger Ċ import Ġorg . jetbrains . ank o . info Ċ Ċ // https :// material . io / components / buttons / android # the ming - buttons Ċ @ Android EntryPoint Ċ class ĠActivity Walk Through Ġ: ĠActivity Base (), ĊĠĠĠ ĠWalk Through Pager Adapter . Walk Through Pager Adapter Listener , ĠAn ko Logger Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Walk Through Binding Ċ Ċ // ĠĠĠ Ġvar Ġm Stop watch : ĠStop watch ? Ġ= null Ġ// = ĠStop watch ( 1 0 0 0 0 , Ġ 1 0 0 0 ) ĊĊ Ċ // ĠĠĠ Ġvar Ġm Is Stop Watch Running Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Pager Adapter : ĠWalk Through Pager Adapter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Walk Through Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetStatus Default ( false ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġinit Toolbar ( binding . toolbar ) ĊĠĠĠĠĠĠĠ Ġtoolbar Title Ġ= Ġ"" Ċ // ĠĠĠĠĠĠĠ Ġinit Stop watch () ĊĠĠĠĠĠĠĠ Ġinit Pager () ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġget StatusBar Color (): ĠInt Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġstart Color Ġ= ĠColor . parse Color ("# FA 2 AD 0 ") Ċ // ĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠTyped Value () Ċ // ĠĠĠĠĠĠĠ Ġtheme . resolve Attribute ( R . attr . color Surface , Ġa , Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġinfo Ġ{ Ġ" getStatus Bar Color Ġ 1 " Ġ} Ċ // ĠĠĠĠĠĠĠ Ġval Ġend Color Ġ= ĠContext Compat . getColor ( application Context , Ġa . resourceId ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġend Color Ġ= ĠContext Compat . getColor ( context , ĠR . color . yellow ) Ċ // ĠĠĠĠĠĠĠ Ġreturn ĠColor Utils . blend ARGB ( Color . parse Color ("# FA 2 AD 0 "), Ġend Color , Ġ 0 . 1 2 F ) Ċ // ĠĠĠĠĠĠĠ Ġreturn ĠUtil Color . getColor For Alpha ( Color . parse Color ("# FA 2 AD 0 "), Ġ 0 . 1 2 F ) ĊĠĠĠĠĠĠĠ Ġreturn ĠContext Compat . getColor ( this , ĠR . color . color Accent Dark ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset StatusBar ( color : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠUtil Theme . set Dark StatusBar ( window . decor View , Ġthis , Ġcolor ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġon Walk Through Pager Adapter Item Clicked ( position : ĠInt ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/* private Ġfun Ġmove Next () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Item Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġcurrent Item Ġ= Ġif ( binding . view Pager 2 . currentItem Ġ>= Ġ 2 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . view Pager 2 . currentItem Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġinfo Ġ{ Ġ" currentItem : Ġ$ currentItem " Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . view Pager 2 . setCurrent Item ( currentItem , true ) ĊĠĠĠĠĠĠĠ Ġif ( m Is Stop Watch Running ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm Stop watch . cancel () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠHandler ( Looper . get Main Looper ()). post ( Runnable Ġ{ Ġinit Stop watch () Ġ}) Ċ // ĠĠĠĠĠĠĠ Ġinit Stop watch () Ċ // ĠĠĠĠĠĠĠ Ġview _ pager 2 . setCurrent Item ( , true ) ĊĠĠĠ Ġ}*/ ĊĊĊĊĠĠĠ Ġfun Ġinit Pager () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġm Pager Adapter Ġ= ĠWalk Through Pager Adapter () ĊĠĠĠĠĠĠĠ Ġbinding . view Pager 2 . adapter Ġ= Ġm Pager Adapter ĊĠĠĠĠĠĠĠ Ġm Pager Adapter . set Walk Through Pager Adapter Listener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . view Pager 2 . orientation Ġ= ĠView Pager 2 . OR IENTATION _ HORIZONTAL ĊĠĠĠĠĠĠĠ Ġbinding . view Pager Dot s . set Pager ( ViewPager 2 Pager Listener ( binding . view Pager 2 )) ĊĊĠĠĠĠĠĠĠ Ġbinding . activity Walk Through Btn Next . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmove Next () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . activity Walk Through Btn Prev . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġbinding . activity Walk Through Btn Next . isEnabled Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġbinding . activity Walk Through Btn Prev . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmove Prev () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . view Pager 2 . set Page Transformer ( Zoom Out Page Transformer ()) ĊĊĠĠĠĠĠĠĠ Ġbinding . view Pager 2 . register On Page Change Callback ( object : ĠView Pager 2 . On Page Change Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Page Selected ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . activity Walk Through Btn Prev . isEnabled Ġ= Ġposition Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ{ Ġ" s lect ed : Ġ$ position " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmove Prev () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Item Ġ= Ġbinding . view Pager 2 . currentItem ĊĊĠĠĠĠĠĠĠ Ġbinding . view Pager 2 . setCurrent Item ( currentItem Ġ- Ġ 1 , Ġtrue ) Ċ // ĠĠĠĠĠĠĠ Ġbinding . activity Walk Through Btn Prev . isEnabled Ġ= Ġcurrent Item Ġ!= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmove Next () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Item Ġ= Ġbinding . view Pager 2 . currentItem ĊĊĠĠĠĠĠĠĠ ĠLog . i (" Activity Walk Through ", Ġ" move Next Ġ$ currentItem ") ĊĠĠĠĠĠĠĠ Ġif Ġ( currentItem Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ ĠTodo Ġstart Auth () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity On board () ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . view Pager 2 . setCurrent Item ( currentItem Ġ+ Ġ 1 , Ġtrue ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . activity Walk Through Btn Prev . isEnabled Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ġ************************************************************************* ** ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwalk Ġthrough ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġprivate Ġfun ĠstartActivity On board () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= ĠIntent ( this , ĠActivity On board :: class . java ) ĊĠĠĠĠĠĠĠ Ġi . add Flags ( Intent . FLAG _ ACTIVITY _ RE ORDER _ TO _ FRONT Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠ Ġ// i . add Flags ( Intent . FLAG _ ACTIVITY _ CLEAR _ TOP ); ĊĠĠĠĠĠĠĠ Ġi . data Ġ= Ġintent . data ĊĊĠĠĠĠĠĠĠ ĠstartActivity ( i ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} Ċ Ċ }