package Ġcom . example . tasks . service . repository Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . net . Network Capabilities Ċ import Ġandroid . os . Build Ċ import Ġcom . example . tasks . service . constants . Task Constants Ċ 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 ( val Ġcontext : ĠContext ): ĠBase Repository ( context ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġm Remote Ġ= ĠRet rofit Client . create Service ( Priority Service :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġm Priority Database Ġ= ĠTask Database . get Database ( context ). priority DAO () ĊĊĠĠĠ Ġfun Ġall () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif (! is Connection Available ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcall : ĠCall < List < Priority Model >> Ġ= Ġm Remote . list () ĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object : ĠCallback < List < Priority Model >> { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < List < Priority Model >>, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall : ĠCall < List < Priority Model >>, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse : ĠResponse < List < Priority Model >> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . code () Ġ== ĠTask Constants . HTTP . SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Priority Database . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ()?. let Ġ{ Ġm Priority Database . save ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlist () Ġ= Ġm Priority Database . list () ĊĊĠĠĠ Ġfun ĠgetDescription ( id : ĠInt ) Ġ= Ġm Priority Database . getDescription ( id ) Ċ Ċ }