diff options
author | Torsten Grote <t@grobox.de> | 2023-09-19 17:55:24 +0200 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2023-09-19 17:55:24 +0200 |
commit | 9bfc8b7a4e0cca3cfb052750385f2005c7bc31d7 (patch) | |
tree | a82aeb99ef3fe7fc75d8d6433afb074c020d17e1 | |
parent | 242bc31d9d6bdcdc4455255412a6a35cec27b5ab (diff) | |
download | taler-android-9bfc8b7a4e0cca3cfb052750385f2005c7bc31d7.tar.gz taler-android-9bfc8b7a4e0cca3cfb052750385f2005c7bc31d7.tar.bz2 taler-android-9bfc8b7a4e0cca3cfb052750385f2005c7bc31d7.zip |
[wallet] some fixes for NetworkManager
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/NetworkManager.kt | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/NetworkManager.kt b/wallet/src/main/java/net/taler/wallet/NetworkManager.kt index 7d803fc..064135b 100644 --- a/wallet/src/main/java/net/taler/wallet/NetworkManager.kt +++ b/wallet/src/main/java/net/taler/wallet/NetworkManager.kt @@ -30,12 +30,14 @@ import androidx.lifecycle.MutableLiveData class NetworkManager(context: Context) : ConnectivityManager.NetworkCallback() { private val connectivityManager: ConnectivityManager - private val _networkStatus = MutableLiveData(true) - val networkStatus: LiveData<Boolean> = _networkStatus + private val _networkStatus: MutableLiveData<Boolean> + val networkStatus: LiveData<Boolean> init { connectivityManager = context.getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager connectivityManager.registerDefaultNetworkCallback(this) + _networkStatus = MutableLiveData(getCurrentStatus()) + networkStatus = _networkStatus } @UiThread @@ -46,7 +48,13 @@ class NetworkManager(context: Context) : ConnectivityManager.NetworkCallback() { override fun onLost(network: Network) { super.onLost(network) - _networkStatus.postValue(null) + _networkStatus.postValue(getCurrentStatus()) + } + + private fun getCurrentStatus(): Boolean { + return connectivityManager.activeNetwork?.let { network -> + connectivityManager.getNetworkCapabilities(network)?.isOnline() + } ?: false } private fun NetworkCapabilities.isOnline(): Boolean { |