package Ġcom . vl ad isl aw fox . s cout . domain . sources Ċ Ċ import Ġandroidx . paging . Paging Source Ċ import Ġandroidx . paging . Paging State Ċ import Ġcom . vl ad isl aw fox . s cout . domain . model . Movie Ċ import Ġcom . vl ad isl aw fox . s cout . domain . use cases . movies . Get Now Playing Movies UseCase Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠNow Playing Movies Source Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġget Now Playing Movies UseCase : ĠGet Now Playing Movies UseCase ĊĠĠĠ Ġ) Ġ: ĠP aging Source < Int , ĠMovie >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Refresh Key ( state : ĠP aging State < Int , ĠMovie >): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġload ( params : ĠLoad Params < Int >): ĠLoad Result < Int , ĠMovie > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnext Page Ġ= Ġparams . key Ġ Ġ?: Ġ 1 ĊĠĠĠĠĠĠĠ Ġval Ġpage Ġ= Ġget Now Playing Movies UseCase . invoke ( next Page ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠLoad Result . Page ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġpage . items , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprev Key Ġ= Ġif ( next Page Ġ== Ġ 1 ) Ġnull Ġelse Ġnext Page Ġ- Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Key Ġ= Ġnext Page Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }