package Ġcom . em v . datal ayer . repositories Ċ Ċ import Ġcom . em v . datal ayer . cache . Cache Factory Ċ import Ġcom . em v . datal ayer . models . Feed Ċ import Ġkotlinx . serialization . Implicit Reflection Serializer Ċ import Ġkotlinx . serialization . serializer Ċ Ċ @ Implicit Reflection Serializer Ċ class ĠFeed Repository Ġ( cache Factory : ĠCache Factory ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġnm Api Ġ= Ġcom . em v . datal ayer . F lickr Api () ĊĠĠĠ Ġprivate Ġval Ġcache Ġ= Ġcache Factory . build Cache ( Feed :: class . serializer ()) ĊĊĠĠĠ Ġsuspend Ġfun Ġfetch Feed () Ġ: ĠFeed Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfeed Ġ= Ġcache . get () ĊĠĠĠĠĠĠĠ Ġif Ġ( feed Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfeed ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfeed Ġ= Ġnm Api . fetch Feed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . set ( feed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfeed ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġclear All () Ġ{ ĊĠĠĠĠĠĠĠ Ġcache . clear All () ĊĠĠĠ Ġ} Ċ }