package Ġcom . ab oolean . movies . data . repository Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Transform ations Ċ import Ġcom . ab oolean . movies . data . local . Movies Dao Ċ import Ġcom . ab oolean . movies . domain . model . Movie Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ Ċ interface ĠF avorite Movies Repository Ġ: ĠBase Repository Ġ{ ĊĠĠĠ Ġfun Ġget F avorites (): ĠLive Data < List < Movie >> ĊĠĠĠ Ġfun Ġupdate Favorite State ( id : ĠLong , Ġis Favorite : ĠBoolean ) Ċ } Ċ Ċ class ĠF avorite Movies Repository Impl ( private Ġval Ġmovies Dao : ĠMov ies Dao ) Ġ: ĠF avorite Movies Repository Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġlive Data Ġobject Ġwithin Ġlist Ġof Ġmovies . ĠIn Ġthis Ġcase Ġlive Data Ġis Ġhelpful Ġbecause Ġit Ġwill ĊĠĠĠĠ Ġ* Ġrespond Ġto Ġupdates Ġinside Ġdatabase Ġand Ġthen Ġwill Ġnotified Ġto Ġthe ĠMV VM . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġget F avorites (): ĠLive Data < List < Movie >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTransform ations . map ( movies Dao . getF avorites Movies ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort Movies ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Favorite State ( id : ĠLong , Ġis Favorite : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmovies Dao . update Favorite ( id , Ġis Favorite ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()). subscribe () ĊĠĠĠ Ġ} Ċ }