/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠV ital iy ĠZ ar ub in Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ ĊĠ Ċ package Ġcom . key gen qt . k chat . modules . user . chat . paging Ċ Ċ import Ġandroidx . paging . Paging Source Ċ import Ġandroidx . paging . Paging State Ċ import Ġcom . key gen qt . k chat . base . paging Succeeded Ċ import Ġcom . key gen qt . k chat . data . models . Chat Model Ċ import Ġcom . key gen qt . k chat . modules . user . chat . services . ApiService Chat Ċ import Ġcom . key gen qt . k chat . utils . Constants Paging Ċ Ċ class ĠCh ats Page Source ( ĊĠĠĠ Ġprivate Ġval Ġsearch : ĠString ?, ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠApi Service Chat , Ċ ) Ġ: ĠP aging Source < Int , ĠChat Model >() Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġload ( params : ĠLoad Params < Int >): ĠLoad Result < Int , ĠChat Model > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoffset Ġ= Ġparams . key Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( search Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLoad Result . Page ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprev Key Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Key Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . getList Ch ats ( search Ġ= Ġsearch , Ġoffset Ġ= Ġoffset ). paging Succeeded Ġ{ Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLoad Result . Page ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġdata , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprev Key Ġ= Ġif Ġ( offset Ġ== Ġ 0 ) Ġnull Ġelse Ġoffset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Key Ġ= Ġif Ġ( data . isEmpty ()) Ġnull Ġelse Ġoffset Ġ+ ĠConstants Paging . PAGE _ LIMIT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Refresh Key ( state : ĠP aging State < Int , ĠChat Model >): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} Ċ }