package Ġio . mu un . apollo . presentation . ui . fragments . flow _ intro Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġbutter knife . BindView Ċ import Ġbutter knife . OnClick Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ import Ġice pick . State Ċ import Ġio . mu un . apollo . R Ċ import Ġio . mu un . apollo . presentation . ui . base . Single Fragment Ċ import Ġio . mu un . apollo . presentation . ui . view . Mu un Button Ċ Ċ abstract Ġclass ĠFlow Intro Fragment < V , ĠP , ĠPP >: ĠSingle Fragment < P >(), ĠFlow Intro View ĊĠĠĠ Ġwhere ĠV : ĠFlow Intro View , ĊĠĠĠĠĠĠĠĠĠ ĠP : ĠFlow Intro Presenter < V , ĠPP >, ĊĠĠĠĠĠĠĠĠĠ ĠPP : ĠFlow Intro Parent Presenter Ġ{ ĊĊĠĠĠ Ġ@ BindView ( R . id . pager ) ĊĠĠĠ Ġlateinit Ġvar Ġview Pager : ĠView Pager ĊĊĠĠĠ Ġ@ BindView ( R . id . pager Dot s ) ĊĠĠĠ Ġlateinit Ġvar Ġview Pager Dot s : ĠTab Layout ĊĊĠĠĠ Ġ@ BindView ( R . id . pager _ footnote ) ĊĠĠĠ Ġlateinit Ġvar Ġfoot note View : ĠTextView ĊĊĠĠĠ Ġ@ BindView ( R . id . accept ) ĊĠĠĠ Ġlateinit Ġvar Ġaccept Button : ĠMu un Button ĊĊĠĠĠ Ġ@ State ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġcurrent Position : ĠInt Ġ= Ġ- 1 Ġ// Ġproperly Ġinitialized Ġin Ġinitialize Ui () ĊĊĠĠĠ Ġabstract Ġfun Ġget Pager (): ĠFlow Intro Pager ĊĊĠĠĠ Ġ@ String Res ĊĠĠĠ Ġabstract Ġfun Ġget Confirm Label (): ĠInt ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Resource () Ġ= ĊĠĠĠĠĠĠĠ ĠR . layout . fragment _ introduction ĊĊĠĠĠ Ġoverride Ġfun Ġinitialize Ui ( view : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . initialize Ui ( view ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠKeep Ġcurrent Position Ġfrom Ġrestored ĠState , Ġor Ġinit Ġfrom Ġarguments Ġ( 0 Ġif Ġnot Ġpassed ): ĊĠĠĠĠĠĠĠ Ġif Ġ( current Position Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Position Ġ= Ġarguments Bundle . getInt ( Flow Intro View . ARG _ STEP ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview Pager . adapter Ġ= Ġget Pager () ĊĠĠĠĠĠĠĠ Ġview Pager . currentItem Ġ= Ġcurrent Position ĊĠĠĠĠĠĠĠ Ġview Pager . add On Page ChangeListener ( page ChangeListener ) ĊĊĠĠĠĠĠĠĠ Ġview Pager Dot s . setup With ViewPager ( view Pager ) ĊĊĠĠĠĠĠĠĠ Ġaccept Button . setText ( get Confirm Label ()) ĊĊĠĠĠĠĠĠĠ Ġon Pager Position Changed ( view Pager . currentItem ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Loading ( isLoading : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaccept Button . isLoading Ġ= ĠisLoading ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ OnClick ( R . id . accept ) ĊĠĠĠ Ġfun Ġon Confirm Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . confirm Introduction () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed (): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( current Position Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager . currentItem Ġ= Ġcurrent Position Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Pager Position Changed ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . current Position Ġ= Ġposition ĊĊĠĠĠĠĠĠĠ Ġpresenter . report Introduction Step ( position ) ĊĊĠĠĠĠĠĠĠ Ġval Ġin First Step Ġ= Ġ( position Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġin Last Step Ġ= Ġ( position Ġ== Ġview Pager . adapter !!. count Ġ- Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġfoot note View . visibility Ġ= Ġif Ġ( in First Step ) ĠView . VISIBLE Ġelse ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġaccept Button . visibility Ġ= Ġif Ġ( in Last Step ) ĠView . VISIBLE Ġelse ĠView . IN VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠListener Ġto Ġshow Ġaction Ġbuttons Ġon Ġfinal Ġslide : ĊĠĠĠ Ġprivate Ġval Ġpage ChangeListener Ġ= Ġobject : ĠView Pager . On Page ChangeListener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( position : ĠInt , Ġpos Offset : ĠFloat , Ġpos Offset Px : ĠInt ) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Pager Position Changed ( position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }