package Ġco . zs mb . rain bow cake . guardian demo . data . disk Ċ Ċ import Ġco . zs mb . rain bow cake . guardian demo . data . disk . entities . Room News Item Ċ import Ġco . zs mb . rain bow cake . guardian demo . domain . News Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . map Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Singleton Ċ class ĠDisk DataSource Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġnews Dao : ĠNews Dao Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġget Saved News (): ĠFlow < List < News >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnews Dao . getAll News Items (). map Ġ{ Ġnews Ġ-> Ġnews . map ( Room News Item :: to News ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Saved News Item ById ( id : ĠString ): ĠNews ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnews Dao . get News Item ById ( id )?. let ( Room News Item :: to News ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġsave News Item ( news : ĠNews ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnews Dao . add News Item ( news . to Room News Item ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġremove Saved News Item ( id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnews Dao . remove News Item ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġhas News Item ( id : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnews Dao . getCount ById ( id ) Ġ!= Ġ 0 ĊĠĠĠ Ġ} Ċ Ċ } Ċ