package Ġcom . ir fan ir aw ans uk ir man . core . util . extension Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . net . Network Capabilities Ċ import Ġandroid . os . Build Ċ import Ġandroidx . annotation . Requires Api Ċ Ċ private Ġfun Ġpre Android M Internet Check ( ĊĠĠĠ Ġconnectivity Manager : ĠConnect ivity Manager Ċ ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġactive Network Ġ= Ġconnectivity Manager . active Network Info ĊĠĠĠ Ġif Ġ( active Network Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( active Network . type Ġ== ĠConnect ivity Manager . TYPE _ WIFI Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactive Network . type Ġ== ĠConnect ivity Manager . TYPE _ MOB ILE ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ Ċ @ Requires Api ( Build . VERSION _ CODES . M ) Ċ private Ġfun Ġpost Android M Internet Check ( ĊĠĠĠ Ġconnectivity Manager : ĠConnect ivity Manager Ċ ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġnetwork Ġ= Ġconnectivity Manager . active Network ĊĠĠĠ Ġval Ġconnection Ġ= ĊĠĠĠĠĠĠĠ Ġconnectivity Manager . get Network Capabilities ( network ) ĊĊĠĠĠ Ġreturn Ġconnection Ġ!= Ġnull Ġ&& Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . has Transport ( Network Capabilities . TRANSPORT _ WIFI ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . has Transport ( Network Capabilities . TRANSPORT _ CELL ULAR )) Ċ } Ċ Ċ fun Ġis Network Available ( context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconnectivity Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getSystem Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnect ivity Manager ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBuild . VERSION _ CODES . M ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Android M Internet Check ( connectivity Manager ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpre Android M Internet Check ( connectivity Manager ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ Ġ// Ġfor Ġtesting Ġneeds ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ċ }