Skip to content

Instantly share code, notes, and snippets.

@chepsi
Created March 1, 2021 19:13
Show Gist options
  • Select an option

  • Save chepsi/b096fe836035f2e5f0a905b3802b2e16 to your computer and use it in GitHub Desktop.

Select an option

Save chepsi/b096fe836035f2e5f0a905b3802b2e16 to your computer and use it in GitHub Desktop.
Network Callback
fun startNetworkCallback() {
val cm: ConnectivityManager =
application.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val builder: NetworkRequest.Builder = NetworkRequest.Builder()
/**Check if version code is greater than API 24*/
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
cm.registerDefaultNetworkCallback(networkCallback)
} else {
cm.registerNetworkCallback(
builder.build(), networkCallback
)
}
}
fun stopNetworkCallback() {
val cm: ConnectivityManager =
application.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
cm.unregisterNetworkCallback(ConnectivityManager.NetworkCallback())
}
private val networkCallback = object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) {
Variables.isNetworkConnected = true
}
override fun onLost(network: Network) {
Variables.isNetworkConnected = false
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment