Improve detecting connection

This commit is contained in:
Jonas Lochmann 2019-10-14 15:14:10 +02:00
parent 408cc78290
commit 674420f8c9
No known key found for this signature in database
GPG key ID: 8B8C9AEE10FA5B36

View file

@ -21,10 +21,12 @@ import android.content.Intent
import android.content.IntentFilter
import android.net.ConnectivityManager
import android.net.NetworkInfo
import android.util.Log
import androidx.core.net.ConnectivityManagerCompat
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import io.timelimit.android.BuildConfig
import io.timelimit.android.async.Threads
object NetworkStatusUtil {
fun getSystemNetworkStatusLive(context: Context): LiveData<NetworkStatus> {
@ -36,14 +38,16 @@ object NetworkStatusUtil {
if (BuildConfig.hasServer) {
context.applicationContext.registerReceiver(object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent) {
val networkInfo = ConnectivityManagerCompat.getNetworkInfoFromBroadcast(connectivityManager, intent)
Threads.mainThreadHandler.post {
val networkInfo = connectivityManager.activeNetworkInfo
if (networkInfo == null) {
status.value = NetworkStatus.Offline
} else if (networkInfo.detailedState == NetworkInfo.DetailedState.CONNECTED) {
status.value = NetworkStatus.Online
} else {
status.value = NetworkStatus.Offline
if (networkInfo == null) {
status.value = NetworkStatus.Offline
} else if (networkInfo.detailedState == NetworkInfo.DetailedState.CONNECTED) {
status.value = NetworkStatus.Online
} else {
status.value = NetworkStatus.Offline
}
}
}
}, IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION))