package Ġcom . max proj . pure bbs . detail Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . paging . Paged List Ċ import Ġcom . max proj . pure bbs . detail . Detail Ċ Ċ class ĠDetail Boundary Callback ( Ċ // ĠĠĠ Ġprivate Ġval ĠviewModel Scope : ĠCor outine Scope , Ċ // ĠĠĠ Ġprivate Ġval Ġhttp Api : ĠHttp Api , Ċ // ĠĠĠ Ġprivate Ġval Ġdetail Dao : ĠDetail Dao , ĊĠĠĠ Ġval Ġboundary Get More : ()-> Unit Ċ ) Ġ: ĠP aged List . Boundary Callback < Detail >() Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠNET WORK _ PAGE _ SIZE Ġ= Ġ 2 0 ĊĠĠĠ Ġ} ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Pure BB S "," < detail > ĠDetail Boundary Callback Ġinit {} ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġ_ network Errors Ġ= ĠMutable LiveData < String >() ĊĠĠĠ Ġ// ĠLive Data Ġof Ġnetwork Ġerrors . ĊĠĠĠ Ġval Ġnetwork Errors : ĠLive Data < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ network Errors ĊĊĠĠĠ Ġ// Ġavoid Ġtriggering Ġmultiple Ġrequests Ġin Ġthe Ġsame Ġtime ĊĠĠĠ Ġprivate Ġvar Ġis Request InProgress Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDatabase Ġreturned Ġ 0 Ġitems . ĠWe Ġshould Ġquery Ġthe Ġbackend Ġfor Ġmore Ġitems . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Zero Items Loaded () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Repo Boundary Callback ", Ġ"< detail > Ġon Zero Items Loaded ") ĊĠĠĠĠĠĠĠ Ġboundary Get More () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWhen Ġall Ġitems Ġin Ġthe Ġdatabase Ġwere Ġloaded , Ġwe Ġneed Ġto Ġquery Ġthe Ġbackend Ġfor Ġmore Ġitems . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Item At End Loaded ( item At End : ĠDetail ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Repo Boundary Callback ", Ġ"< detail > Ġon Item At End Loaded : Ġ$ item At End ") ĊĠĠĠĠĠĠĠ Ġboundary Get More () ĊĠĠĠ Ġ} Ċ Ċ }