package Ġcom . l ion parcel . common android . walk through Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View Tree Observer Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġcom . l ion parcel . common android . R Ċ import Ġjava . lang . ref . Weak Reference Ċ Ċ class ĠWalk Through Builder ( activity : ĠActivity ) Ġ{ ĊĊĠĠĠ Ġinternal Ġvar Ġdialog Fragment Reference : ĠWeak Reference < Dialog Fragment >? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġvar Ġactivity Reference : ĠWeak Reference < Activity > Ġ= ĠWeak Reference ( activity ) ĊĠĠĠ Ġinternal Ġvar Ġoffset Position : ĠInt Array Ġ= Ġint ArrayOf ( 0 , 0 , 0 , 0 ) ĊĠĠĠ Ġinternal Ġvar Ġt ittle : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġvar Ġfinish Res : ĠInt Ġ= ĠR . string . general _ button _ finish ĊĠĠĠ Ġinternal Ġvar Ġnext Res : ĠInt Ġ= ĠR . string . general _ button _ next ĊĠĠĠ Ġinternal Ġvar Ġforce Back Button Visibility : ĠBoolean ? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġvar Ġdisable Skip Button : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġinternal Ġvar Ġdescription : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġvar Ġdescription Sp ann able String : ĠSp ann able StringBuilder ? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġvar Ġsequence Position : ĠWalk Through . Sequence Position ? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġval Ġarrow Position List Ġ= ĠArrayList < Walk Through . Arrow Position >() ĊĠĠĠ Ġinternal Ġvar Ġtarget View : ĠWeak Reference < View >? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġvar Ġtarget Arrow View : ĠWeak Reference < View >? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġvar Ġwalk Through Message Listener : ĠWalk Through Message View Listener ? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġvar Ġwalk Through Sequence Listener : ĠWalk Through Sequence Listener ? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġvar Ġshow Index : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġinternal Ġvar Ġwalk Through Sequence Index : ĠInt Ġ= Ġ 1 ĊĠĠĠ Ġinternal Ġvar Ġwalk Through Sequence Total : ĠInt Ġ= Ġ 1 ĊĠĠĠ Ġinternal Ġvar Ġskip Listener : ĠWalk Through Skip Listener ? Ġ= Ġnull ĊĠĠĠ Ġinternal Ġvar Ġbe ating Animation : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġinternal Ġvar Ġdim : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġinternal Ġvar Ġauto Next : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġvar Ġon Global Layout Listener Target View : ĠView Tree Observer . On Global Layout Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġtitle ( t ittle : ĠString ): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . t ittle Ġ= Ġt ittle ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdefault Ġ= Ġtrue ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow Index ( show Index : ĠBoolean ): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . show Index Ġ= Ġshow Index ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġauto Next ( auto Next : ĠBoolean ): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . auto Next Ġ= Ġauto Next ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġoffset Position ( ĊĠĠĠĠĠĠĠ Ġleft : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġtop : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġright : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġbottom : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġ): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . offset Position Ġ= Ġint ArrayOf ( left , Ġtop , Ġright , Ġbottom ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdescription ( subtitle : ĠString ?): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . description Ġ= Ġsubtitle ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdescription Sp ann able String ( description Sp ann able String : ĠSp ann able StringBuilder ?): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . description Sp ann able String Ġ= Ġdescription Sp ann able String ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDon 't Ġforgot Ġset ĠbackgroundColor , ĠOtherwise Ġit Ġwill Ġbe Ġtransparent ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtarget View ( target View : ĠView ): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . target View Ġ= ĠWeak Reference ( target View ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtarget Arrow View ( target Arrow View : ĠView ): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . target Arrow View Ġ= ĠWeak Reference ( target Arrow View ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwalk Through Sequence Index ( index : ĠInt , Ġtotal : ĠInt ): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . walk Through Sequence Index Ġ= Ġindex ĊĠĠĠĠĠĠĠ Ġthis . walk Through Sequence Total Ġ= Ġtotal ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġskip Listener ( skip Listener : ĠWalk Through Skip Listener ?): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . skip Listener Ġ= Ġskip Listener ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcontent Listener ( listener : ĠWalk Through Message View Listener ): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . walk Through Message Listener Ġ= Ġlistener ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsequence Listener ( listener : ĠWalk Through Sequence Listener ): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . walk Through Sequence Listener Ġ= Ġlistener ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Dialog Fragment ( dialog Fragment : ĠDialog Fragment ): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . dialog Fragment Reference Ġ= ĠWeak Reference ( dialog Fragment ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisable Dim (): ĠWalk Through Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . dim Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġbuild (): ĠWalk Through Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠWalk Through ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow (): ĠWalk Through Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . sequence Position Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . sequence Position Ġ= ĠWalk Through . Sequence Position . FIRST ĊĊĠĠĠĠĠĠĠ Ġval Ġwalk Through Ġ= Ġbuild () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( target View Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget View Ġ= Ġtarget View ?. get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( target View ?. height Ġ== Ġ 0 Ġ|| Ġtarget View ?. width Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Global Layout Listener Target View Ġ= ĠView Tree Observer . On Global Layout Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwalk Through . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget View . view Tree Observer ?. remove On Global Layout Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Global Layout Listener Target View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget View . view Tree Observer ?. add On Global Layout Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Global Layout Listener Target View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwalk Through . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwalk Through . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġwalk Through ĊĠĠĠ Ġ} Ċ } Ċ