package Ġcom . nik ola . jak sh ic . d agger . profile . matches Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . paging . Paged List Ċ import Ġcom . nik ola . jak sh ic . d agger . common . Status Ċ import Ġcom . nik ola . jak sh ic . d agger . common . network . Open D ota Service Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ class ĠMatch Boundary Callback ( ĊĠĠĠ Ġprivate Ġval Ġscope : ĠCor outine Scope , ĊĠĠĠ Ġprivate Ġval Ġservice : ĠOpen D ota Service , ĊĠĠĠ Ġprivate Ġval Ġdao : ĠMatch Dao , ĊĠĠĠ Ġprivate Ġval Ġid : ĠLong Ċ ) Ġ: ĠP aged List . Boundary Callback < Match >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ status Ġ= ĠMutable LiveData < Status >() ĊĠĠĠ Ġval Ġstatus : ĠLive Data < Status > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ status ĊĊĠĠĠ Ġprivate Ġvar Ġretry : Ġ(() Ġ-> ĠAny )? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtmp Ġ= Ġfield ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtmp ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġretry () Ġ{ ĊĠĠĠĠĠĠĠ Ġretry ?. invoke () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item At End Loaded ( item At End : ĠMatch ) Ġ{ ĊĠĠĠĠĠĠĠ Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ status . value Ġ= ĠStatus . LOADING ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġdao . get Match Count ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġservice . get Matches ( id , Ġ 2 0 , Ġcount ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . accountId Ġ= Ġid Ġ// Ġresponse Ġfrom Ġthe Ġnetwork Ġdoesn 't Ġcontain Ġany Ġinformation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ// Ġabout Ġwho Ġplayed Ġthis Ġmatches , Ġso Ġwe Ġneed Ġto Ġset Ġthis Ġmanually ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdao . insert Matches ( list ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ status . value Ġ= ĠStatus . SUCCESS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretry Ġ= Ġ{ Ġon Item At End Loaded ( item At End ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ status . value Ġ= ĠStatus . ERROR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }