package Ġcom . avi 5 he k . sur veys . core Ċ Ċ import Ġandroidx . paging . rx java 2 . Rx Paging Source Ċ import Ġio . reactivex . Single Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġ" A vis he k " Ġon Ġ 8 / 1 / 2 0 2 0 . Ċ Ġ*/ Ċ abstract Ġclass ĠGeneric Paging Source < T Ġ: ĠAny > Ġ: ĊĠ ĠRx Paging Source < Int , ĠT >() Ġ{ ĊĊĠ Ġoverride Ġfun Ġload Single ( params : ĠLoad Params < Int >): ĠSingle < Load Result < Int , ĠT >> Ġ{ ĊĠĠĠ Ġval Ġposition Ġ= Ġparams . key Ġ?: Ġ 1 ĊĠĠĠ Ġreturn Ġget Single ( position , Ġparams . load Size ) ĊĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠ ĠLoad Result . Page ( ĊĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġit , ĊĠĠĠĠĠĠĠĠĠ Ġprev Key Ġ= Ġif Ġ( position Ġ== Ġ 1 ) Ġnull Ġelse Ġposition Ġ- Ġ 1 , ĊĠĠĠĠĠĠĠĠĠ Ġnext Key Ġ= Ġif Ġ( it . isEmpty ()) Ġnull Ġelse Ġposition Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠLoad Result < Int , ĠT > ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ. onError Return Ġ{ ĊĠĠĠĠĠĠĠ ĠLoad Result . Error ( it ) ĊĠĠĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġabstract Ġfun Ġget Single ( page : ĠInt , ĠpageSize : ĠInt ): ĠSingle < List < T >> Ċ } Ċ