package Ġcom . ad wi . data . util Ċ Ċ import Ġcom . ad wi . data . util . Constants . DEFAULT _ CATEGORY Ċ import Ġcom . ad wi . data . util . Constants . REFRESH _ DATA _ E VERY Ċ import Ġcom . ad wi . data . database . domain . Wall paper Entity Ċ import Ġcom . ad wi . data . network . domain . Wall paper Dto Ċ import Ġcom . ad wi . data . network . domain . to Domain Ċ import Ġcom . ad wi . pex wall papers . domain . model . Wall paper Ċ import Ġretrofit 2 . HttpException Ċ import Ġjava . io . IOException Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ fun ĠList < Wall paper Dto >. keep F avorites ( ĊĠĠĠ Ġcategory Name : ĠString Ġ= ĠDEFAULT _ CATEGORY , ĊĠĠĠ Ġfavor ites List : ĠList < Wall paper Entity > Ċ ) Ġ= ĊĠĠĠ Ġthis . map Ġ{ Ġwall paper Dto Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġis Favorite Ġ= Ġfavor ites List . any Ġ{ Ġfavorite Wall paper Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfavorite Wall paper . id Ġ== Ġwall paper Dto . id ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwall paper Dto . to Domain ( category Name Ġ= Ġcategory Name , Ġis Favorite Ġ= Ġis Favorite ) ĊĠĠĠ Ġ} Ċ Ċ fun ĠList < Wall paper >. should Fetch (): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġsorted Wall papers Ġ= Ġthis . sorted By Ġ{ Ġwall paper Ġ-> ĊĠĠĠĠĠĠĠ Ġwall paper . updatedAt ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġoldest Timestamp Ġ= Ġsorted Wall papers . first OrNull ()?. updatedAt ĊĠĠĠ Ġreturn Ġoldest Timestamp Ġ== Ġnull Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoldest Timestamp Ġ< ĠSystem . currentTimeMillis () Ġ- ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTimeUnit . DAYS . to Millis ( REFRESH _ DATA _ E VERY ) Ċ } Ċ Ċ fun ĠThrowable . throw If Exception () Ġ{ ĊĠĠĠ Ġif Ġ( this Ġ! is ĠHttp Exception Ġ&& Ġthis Ġ! is ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow Ġthis ĊĠĠĠ Ġ} Ċ }