package Ġcom . im n . i ic n ma . data . repository . favorites Ċ Ċ import Ġandroidx . paging . Experimental Paging Api Ċ import Ġandroidx . paging . Pager Ċ import Ġandroidx . paging . Paging Config Ċ import Ġandroidx . paging . map Ċ import Ġcom . im n . i ic n ma . data . local . favorites . F avorites Entity Ċ import Ġcom . im n . i ic n ma . data . remote . NETWORK _ PAGE _ SIZE Ċ import Ġkotlinx . coroutines . flow . map Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠF avorites Repository Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġlocal : ĠF avorites Local DataSource , Ċ ) Ġ{ ĊĊĠĠĠ Ġsuspend Ġfun ĠaddTo F avorites ( movie Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlocal . insert ( F avorites Entity ( movie Id Ġ= Ġmovie Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġremove From F avorites ( movie Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlocal . delete ( movie Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Opt In ( Experimental Paging Api :: class ) ĊĠĠĠ Ġfun Ġget Favorite Movies () Ġ= ĠP ager ( ĊĠĠĠĠĠĠĠ Ġconfig Ġ= ĠP aging Config ( pageSize Ġ= ĠNET WORK _ PAGE _ SIZE , Ġenable Place holders Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠ Ġpaging Source Factory Ġ= Ġ{ Ġlocal . getAll Fav ored Movies () Ġ}, Ġ// ĠTODO Ġtest Ġthis Ġon Ġlarge Ġdata ĊĠĠĠĠĠĠĠ Ġremote Mediator Ġ= Ġnull ĊĠĠĠ Ġ). flow . map Ġ{ Ġpaging Data Ġ-> ĊĠĠĠĠĠĠĠ Ġpaging Data . map Ġ{ Ġit . movie Entity . to Movie () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Fav ored ( movie Id : ĠLong ) Ġ= Ġlocal . get Favorite Flow ( movie Id ). map Ġ{ Ġit Ġ!= Ġnull Ġ} Ċ }