summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2023-09-19 17:55:24 +0200
committerTorsten Grote <t@grobox.de>2023-09-19 17:55:24 +0200
commit9bfc8b7a4e0cca3cfb052750385f2005c7bc31d7 (patch)
treea82aeb99ef3fe7fc75d8d6433afb074c020d17e1 /wallet/src/main/java/net/taler
parent242bc31d9d6bdcdc4455255412a6a35cec27b5ab (diff)
downloadtaler-android-9bfc8b7a4e0cca3cfb052750385f2005c7bc31d7.tar.gz
taler-android-9bfc8b7a4e0cca3cfb052750385f2005c7bc31d7.tar.bz2
taler-android-9bfc8b7a4e0cca3cfb052750385f2005c7bc31d7.zip
[wallet] some fixes for NetworkManager
Diffstat (limited to 'wallet/src/main/java/net/taler')
-rw-r--r--wallet/src/main/java/net/taler/wallet/NetworkManager.kt14
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 {