package Ġorg . opp ia . android . app . on boarding Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġorg . opp ia . android . databinding . On boarding Slide Binding Ċ import Ġorg . opp ia . android . databinding . On boarding Slide Final Binding Ċ Ċ private Ġconst Ġval ĠVIEW _ TYPE _ TITLE _ TEXT Ġ= Ġ 1 Ċ private Ġconst Ġval ĠVIEW _ TYPE _ ST ORY _ ITEM Ġ= Ġ 2 Ċ Ċ class ĠOn boarding Pager Adapter ( ĊĠ Ġval Ġcontext : ĠContext , ĊĠ Ġval Ġon boarding Slide Final ViewModel : ĠOn boarding Slide Final ViewModel Ċ ) Ġ: ĊĠ ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( view Type ) Ġ{ ĊĠĠĠĠĠ ĠVIEW _ TYPE _ TITLE _ TEXT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠOn boarding Slide Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ), ĊĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠOn boarding Slide ViewHolder ( binding ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠVIEW _ TYPE _ ST ORY _ ITEM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĊĠĠĠĠĠĠĠĠĠ ĠOn boarding Slide Final Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠOn boarding Slide Final ViewHolder ( binding ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Invalid Ġview Ġtype : Ġ$ view Type ") ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( position Ġ== ĠTOT AL _ NUMBER _ OF _ SL ID ES Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠ ĠVIEW _ TYPE _ ST ORY _ ITEM ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ ĠVIEW _ TYPE _ TITLE _ TEXT ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠ Ġreturn ĠTOT AL _ NUMBER _ OF _ SL ID ES ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠ Ġwhen Ġ( holder . item ViewType ) Ġ{ ĊĠĠĠĠĠ ĠVIEW _ TYPE _ TITLE _ TEXT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġon boarding Slide ViewModel Ġ= ĊĠĠĠĠĠĠĠĠĠ ĠOn boarding Slide ViewModel ( context , ĠView Pager Slide . get Slide For Position ( position )) ĊĠĠĠĠĠĠĠ Ġ( holder Ġas ĠOn boarding Slide ViewHolder ). bind ( on boarding Slide ViewModel ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠVIEW _ TYPE _ ST ORY _ ITEM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġ( holder Ġas ĠOn boarding Slide Final ViewHolder ). bind ( on boarding Slide Final ViewModel ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġinner Ġclass ĠOn boarding Slide ViewHolder ( ĊĠĠĠ Ġprivate Ġval Ġbinding : ĠOn boarding Slide Binding ĊĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠ Ġfun Ġbind ( on boarding Slide ViewModel : ĠOn boarding Slide ViewModel ) Ġ{ ĊĠĠĠĠĠ Ġbinding . viewModel Ġ= Ġon boarding Slide ViewModel ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġinner Ġclass ĠOn boarding Slide Final ViewHolder ( ĊĠĠĠ Ġprivate Ġval Ġbinding : ĠOn boarding Slide Final Binding ĊĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠ Ġfun Ġbind ( on boarding Slide Final ViewModel : ĠOn boarding Slide Final ViewModel ) Ġ{ ĊĠĠĠĠĠ Ġbinding . viewModel Ġ= Ġon boarding Slide Final ViewModel ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ