package Ġdev . ms f jar vis . cl aw . android . paging Ċ Ċ import Ġandroidx . paging . Paging Source Ċ import Ġandroidx . paging . Paging State Ċ import Ġdev . ms f jar vis . cl aw . model . L ob sters Post Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ class ĠL ob sters Paging Source ( ĊĠ Ġprivate Ġval Ġget More Posts : Ġsuspend Ġ( Int ) Ġ-> ĠList < L ob sters Post >, Ċ ) Ġ: ĠP aging Source < Int , ĠL ob sters Post >() Ġ{ ĊĊĠ Ġoverride Ġsuspend Ġfun Ġload ( params : ĠLoad Params < Int >): ĠLoad Result < Int , ĠL ob sters Post > Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠ Ġval Ġpage Ġ= Ġparams . key Ġ?: Ġ 1 ĊĠĠĠĠĠ Ġval Ġposts Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ Ġget More Posts ( page ) Ġ} ĊĊĠĠĠĠĠ ĠLoad Result . Page ( ĊĠĠĠĠĠĠĠ Ġdata Ġ= Ġposts , ĊĠĠĠĠĠĠĠ Ġprev Key Ġ= Ġif Ġ( page Ġ== Ġ 1 ) Ġnull Ġelse Ġpage Ġ- Ġ 1 , ĊĠĠĠĠĠĠĠ Ġnext Key Ġ= Ġpage . plus ( 1 ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠ ĠLoad Result . Error ( e ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Refresh Key ( state : ĠP aging State < Int , ĠL ob sters Post >): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġstate . pages . size Ġ+ Ġ 1 ĊĠ Ġ} Ċ } Ċ