package Ġcom . tu . pm u . the 1 0 0 th . data . provider Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . net . Network Ċ import Ġandroid . net . Network Request Ċ import Ġandroid . util . Log Ċ import Ġcom . tu . pm u . the 1 0 0 th . data . provider . interfaces . Internet Provider Ċ Ċ class ĠInternet Provider Impl ( val Ġcontext : ĠContext ) Ġ: ĊĠĠĠ ĠInternet Provider Ġ{ ĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" Internet Provider " ĊĠĠĠ Ġprivate Ġvar Ġis Network Callback Registered Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġvar Ġis Network Connected : ĠBoolean Ġ= Ġfalse Ċ // ĠĠĠĠĠĠĠ Ġget () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif (! is Network Callback Registered ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister Network Callback () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfield Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġregister Network Callback () ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġregister Network Callback () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconnectivity Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getSystem Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ĠConnect ivity Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠNetwork Request . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnectivity Manager . register Network Callback ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . build (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠConnect ivity Manager . Network Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Available ( network : ĠNetwork ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG ," Internet Ġconnection Ġavailable ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Network Connected Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Lost ( network : ĠNetwork ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG ," Internet Ġconnection Ġlost ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Network Connected Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Network Connected Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Network Connected Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }