package Ġcom . k root l . be et lens . ui . common Ċ Ċ import Ġandroidx . recyclerview . widget . RecyclerView ĊĊ Ċ abstract Ġclass ĠIn finite Pager Adapter < T , ĠV H Ġ: ĠRecyclerView . ViewHolder >( private Ġval Ġdata : ĠList < T >) Ġ: ĠRecyclerView . Adapter < VH >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġif Ġ( data . isEmpty ()) Ġ 0 Ġelse Ġdata . size Ġ+ Ġ 2 ĊĊĠĠĠ Ġfun Ġget Real Count () Ġ= Ġdata . size ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠV H , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel Position Ġ= Ġmap Pager Position To Model Position ( position ) ĊĠĠĠĠĠĠĠ Ġval Ġitem : ĠT Ġ= Ġdata [ model Position ] ĊĠĠĠĠĠĠĠ Ġon Bind ViewHolder ( holder , Ġitem ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġon Bind ViewHolder ( holder : ĠV H , Ġdata : ĠT ) ĊĊĠĠĠ Ġprivate Ġfun Ġmap Pager Position To Model Position ( pager Position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠPut Ġlast Ġpage Ġmodel Ġto Ġthe Ġfirst Ġposition . ĊĠĠĠĠĠĠĠ Ġif Ġ( pager Position Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Real Count () Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠPut Ġfirst Ġpage Ġmodel Ġto Ġthe Ġlast Ġposition . ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( pager Position Ġ== Ġget Real Count () Ġ+ Ġ 1 ) Ġ 0 Ġelse Ġpager Position Ġ- Ġ 1 ĊĠĠĠ Ġ} Ċ }