package Ġcom . example . tasks . service . repository Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . example . tasks . service . constants . Task Constants . HTTP . SUCCESS Ċ import Ġcom . example . tasks . service . model . Priority Model Ċ import Ġcom . example . tasks . service . repository . local . Task Database Ċ import Ġcom . example . tasks . service . repository . remote . Priority Service Ċ import Ġcom . example . tasks . service . repository . remote . Ret rofit Client Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ Ċ class ĠPriority Repository ( context : ĠContext ) Ġ: ĠBase Repository ( context ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġm Remote Ġ= ĠRet rofit Client . create Service ( Priority Service :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġm Priority DAO Ġ= ĠTask Database . get Database ( context ). priority DAO () ĊĊĠĠĠ Ġfun Ġall () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Connection Available ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcall : ĠCall < List < Priority Model >> Ġ= Ġm Remote . list () ĊĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < List < Priority Model >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall : ĠCall < List < Priority Model >>, Ġresponse : ĠResponse < List < Priority Model >> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Priority DAO . clear () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . code () Ġ== ĠSUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < List < Priority Model >>, Ġt : ĠThrowable ) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave ( list : ĠList < Priority Model >) Ġ= Ġm Priority DAO . save ( list ) ĊĊĠĠĠ Ġfun Ġlist () Ġ= Ġm Priority DAO . getAll () ĊĊĠĠĠ Ġfun Ġget ( id : ĠInt ) Ġ= Ġm Priority DAO . getById ( id ) Ċ }