package Ġcom . ti ago hs . h qr . intercept ors Ċ Ċ import Ġcom . ti ago hs . h qr . database . IC omics Repository Ċ import Ġcom . ti ago hs . h qr . database . IS ource Repository Ċ import Ġcom . ti ago hs . h qr . helpers . tools . List Paginator Ċ import Ġcom . ti ago hs . h qr . helpers . tools . Preference Helper Ċ import Ġcom . ti ago hs . h qr . helpers . tools . get OrDefault Ċ import Ġcom . ti ago hs . h qr . intercept ors . config . Base Com ics Interceptor Ċ import Ġcom . ti ago hs . h qr . intercept ors . config . Contracts Ċ import Ġcom . ti ago hs . h qr . models . view _ models . Com ic ViewModel Ċ import Ġcom . ti ago hs . h qr . sources . Source Manager Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ Ċ class ĠSearch Interceptor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpreference Helper : ĠPreference Helper , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcom ics Repository : ĠI Com ics Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsource Repository : ĠI Source Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsource Manager : ĠSource Manager Ċ ): ĠBase Com ics Interceptor ( com ics Repository , Ġpreference Helper , Ġsource Manager , Ġsource Repository ), ĠContract s . I Search Interceptor Ġ{ ĊĊĠĠĠ Ġvar Ġlist Paginator : ĠList Paginator < Com ic ViewModel >? Ġ= Ġnull ĊĠĠĠ Ġvar Ġhas Page Sup ort Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġon Search Com ics ( query : ĠString ): ĠObservable < List < Com ic ViewModel >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Id Ġ= Ġpreference Helper . current Source (). get OrDefault () ĊĠĠĠĠĠĠĠ Ġval Ġsource Http Ġ= Ġsource Manager . get ( source Id ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsource Repository . getSource ById ( source Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Page Sup ort Ġ= Ġit . has In All Page Support ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Http !!. fetch Search By Query ( query ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġcom ics Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Paginator Ġ= ĠList Paginator () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlocal Com ics Ġ= Ġlist Paginator !!. onCreate Pagination ( com ics ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has Page Sup ort ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Com ics Ġ= Ġlist Paginator !!. onCreate Pagination ( com ics ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcom ics Repository . insert Realm ( local Com ics , Ġsource Id ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Next Ġ{ Ġcom ics Ġ-> Ġinitialize Com ics ( com ics ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Get More (): ĠObservable < List < Com ic ViewModel >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist Paginator !!. on GetNext Page () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġcom ics Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource Id Ġ= Ġpreference Helper . current Source (). get OrDefault () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcom ics Repository . insert Realm ( com ics , Ġsource Id ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Next Ġ{ Ġcom ics Ġ-> Ġinitialize Com ics ( com ics ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Page Sup ort (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġhas Page Sup ort ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas More Com ics (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist Paginator ?. hasMore Pages Ġ?: Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Original List (): ĠList < Com ic ViewModel > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist Paginator ?. original List !! ĊĠĠĠ Ġ} Ċ Ċ }