Adjust Wi-Fi connection check (related to #6038)

This commit is contained in:
arkon 2021-10-04 17:06:24 -04:00
parent f5b591430c
commit e863e8c64b
2 changed files with 9 additions and 8 deletions

View file

@ -29,6 +29,7 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.onEach
import ru.beryukhov.reactivenetwork.ReactiveNetwork import ru.beryukhov.reactivenetwork.ReactiveNetwork
import rx.subscriptions.CompositeSubscription import rx.subscriptions.CompositeSubscription
import timber.log.Timber
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
/** /**
@ -140,8 +141,9 @@ class DownloadService : Service() {
onNetworkStateChanged() onNetworkStateChanged()
} }
} }
.catch { .catch { error ->
withUIContext { withUIContext {
Timber.e(error)
toast(R.string.download_queue_error) toast(R.string.download_queue_error)
stopSelf() stopSelf()
} }

View file

@ -17,7 +17,6 @@ import android.graphics.Color
import android.net.ConnectivityManager import android.net.ConnectivityManager
import android.net.NetworkCapabilities import android.net.NetworkCapabilities
import android.net.Uri import android.net.Uri
import android.net.wifi.WifiInfo
import android.net.wifi.WifiManager import android.net.wifi.WifiManager
import android.os.Build import android.os.Build
import android.os.PowerManager import android.os.PowerManager
@ -381,21 +380,21 @@ fun Context.isOnline(): Boolean {
} }
/** /**
* Returns true if device is connected to wifi. * Returns true if device is connected to Wifi.
*/ */
fun Context.isConnectedToWifi(): Boolean { fun Context.isConnectedToWifi(): Boolean {
if (!wifiManager.isWifiEnabled) return false if (!wifiManager.isWifiEnabled) return false
val wifiInfo: WifiInfo = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val activeNetwork = connectivityManager.activeNetwork ?: return false val activeNetwork = connectivityManager.activeNetwork ?: return false
val networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork) ?: return false val networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork) ?: return false
networkCapabilities.transportInfo as WifiInfo
networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) &&
networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
} else { } else {
@Suppress("DEPRECATION") @Suppress("DEPRECATION")
wifiManager.connectionInfo wifiManager.connectionInfo.bssid != null
} }
return wifiInfo.bssid != null
} }
/** /**