package Ġorg . sen i ors ig an . m ang are ader . data Ċ Ċ import Ġorg . jetbrains . ank o . async Ċ import Ġorg . sen i ors ig an . m ang are ader . data . cache . M anga Cache Repository Ċ import Ġorg . sen i ors ig an . m ang are ader . data . network . M anga Network Repository Ċ import Ġorg . sen i ors ig an . m ang are ader . models . M anga Item Ċ Ċ class ĠM anga Search Repository Impl ( ĊĠĠĠĠĠĠĠ Ġval Ġcache : ĠM anga Cache Repository , ĊĠĠĠĠĠĠĠ Ġval Ġnetwork : ĠM anga Network Repository Ċ ): ĠM anga Search Repository Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġsearch ( query : ĠString , Ġcallback : Ġ( Response < List < M anga Item >>) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġasync () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . search ( query , Ġ{ Ġlist From Cache Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( list From Cache ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork . search ( query , Ġ{ Ġlist From Network Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( list From Network ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfind ( url : ĠString , Ġcallback : Ġ( Response < M anga Item ?> ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġasync () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . find ( url , Ġ{ Ġcache Res Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( cache Res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork . find ( url , Ġ{ Ġnetwork Res Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( network Res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcache . update ( network Res . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindAll ( callback : Ġ( Response < List < M anga Item >>) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġasync () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache . findAll Ġ{ Ġcache Res Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( cache Res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork . findAll Ġ{ Ġnetwork Res Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( network Res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcache . update All ( network Res . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }