package Ġcom . news . my application . repositories . movies Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . paging . Live Paged List Builder Ċ import Ġandroidx . paging . Paged List Ċ import Ġcom . news . my application . MO VI ES _ PER _ PAGE Ċ import Ġcom . news . my application . models . movie Details . Movie Details Ċ import Ġcom . news . my application . output . Simple Output Ċ import Ġcom . news . my application . models . movies . Movie Model Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ Ċ class ĠMov ies Repository () Ġ{ ĊĊĠĠĠ Ġvar Ġoutput Ġ= ĠSimple Output < Movie Details , ĠString >() ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmovie Model Paged List : ĠLive Data < Paged List < Movie Model >> ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmovies DataSource Factory : ĠMovie DataSource Factory ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Instance : ĠMov ies Repository ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance (): ĠMov ies Repository Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Instance Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Instance Ġ= ĠMov ies Repository () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm Instance !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġfetch Live Movie Paged List ( composite Disposable : ĠComposite Disposable ): ĠLive Data < Paged List < Movie Model >> Ġ{ ĊĠĠĠĠĠĠĠ Ġmovies DataSource Factory Ġ= ĠMovie DataSource Factory ( composite Disposable ) ĊĠĠĠĠĠĠĠ Ġoutput Ġ= Ġmovies DataSource Factory . output ĊĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= ĠP aged List . Config . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Enable Place holders ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set PageSize ( MO VI ES _ PER _ PAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġmovie Model Paged List Ġ= ĠLive Paged List Builder ( movies DataSource Factory , Ġconfig ). build () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmovie Model Paged List ĊĠĠĠ Ġ} Ċ }