package Ġorg . wikipedia . page Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġkotlinx . coroutines .* Ċ import Ġorg . wikipedia . W ikipedia App Ċ import Ġorg . wikipedia . database . App Database Ċ import Ġorg . wikipedia . reading list . database . Reading List Page Ċ import Ġorg . wikipedia . util . log . L Ċ Ċ object ĠPage Available Offline Handler Ġ{ ĊĠĠĠ Ġfun Ġinterface ĠCallback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Finish ( available : ĠBoolean ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck ( page : ĠReading List Page , Ġcallback : ĠCallback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcallback . on Finish ( W ikipedia App . getInstance (). is Online Ġ|| Ġ( page . offline Ġ&& Ġ! page . saving )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Check Result ") ĊĠĠĠ Ġfun Ġcheck ( page Title : ĠPage Title , Ġcallback : ĠCallback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( W ikipedia App . getInstance (). is Online ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Finish ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠCor outine Scope ( Dispatch ers . Main ). launch ( Coroutine ExceptionHandler Ġ{ Ġ_, Ġexception Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Finish ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL . w ( exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreading List Page Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĠApp Database . getApp Database (). reading List Page Dao (). find Page In Any List ( page Title ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Finish ( reading List Page Ġ!= Ġnull Ġ&& Ġreading List Page . offline Ġ&& Ġ! reading List Page . saving ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ