summaryrefslogtreecommitdiff
path: root/wallet/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'wallet/src/main')
-rw-r--r--wallet/src/main/java/net/taler/wallet/MainActivity.kt11
-rw-r--r--wallet/src/main/java/net/taler/wallet/NetworkManager.kt16
2 files changed, 13 insertions, 14 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/MainActivity.kt b/wallet/src/main/java/net/taler/wallet/MainActivity.kt
index bf1fd6d..a49890e 100644
--- a/wallet/src/main/java/net/taler/wallet/MainActivity.kt
+++ b/wallet/src/main/java/net/taler/wallet/MainActivity.kt
@@ -142,15 +142,8 @@ class MainActivity : AppCompatActivity(), OnNavigationItemSelectedListener,
if (it) barcodeLauncher.launch(scanOptions)
})
- model.networkManager.networkStatus.observe(this) {
- ui.content.offlineBanner.visibility =
- if (it != null
- && it.hasCapability(NET_CAPABILITY_INTERNET)
- && it.hasCapability(NET_CAPABILITY_VALIDATED)) {
- GONE
- } else {
- VISIBLE
- }
+ model.networkManager.networkStatus.observe(this) { online ->
+ ui.content.offlineBanner.visibility = if (online) GONE else VISIBLE
}
}
diff --git a/wallet/src/main/java/net/taler/wallet/NetworkManager.kt b/wallet/src/main/java/net/taler/wallet/NetworkManager.kt
index 2f64f4e..7d803fc 100644
--- a/wallet/src/main/java/net/taler/wallet/NetworkManager.kt
+++ b/wallet/src/main/java/net/taler/wallet/NetworkManager.kt
@@ -21,6 +21,8 @@ import android.content.Context.CONNECTIVITY_SERVICE
import android.net.ConnectivityManager
import android.net.Network
import android.net.NetworkCapabilities
+import android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET
+import android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED
import androidx.annotation.UiThread
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
@@ -28,22 +30,26 @@ import androidx.lifecycle.MutableLiveData
class NetworkManager(context: Context) : ConnectivityManager.NetworkCallback() {
private val connectivityManager: ConnectivityManager
- private val _networkStatus = MutableLiveData<NetworkCapabilities?>(null)
- val networkStatus: LiveData<NetworkCapabilities?> = _networkStatus
+ private val _networkStatus = MutableLiveData(true)
+ val networkStatus: LiveData<Boolean> = _networkStatus
init {
connectivityManager = context.getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager
- connectivityManager.registerDefaultNetworkCallback( this)
+ connectivityManager.registerDefaultNetworkCallback(this)
}
@UiThread
override fun onCapabilitiesChanged(network: Network, networkCapabilities: NetworkCapabilities) {
super.onCapabilitiesChanged(network, networkCapabilities)
- _networkStatus.postValue(networkCapabilities)
+ _networkStatus.postValue(networkCapabilities.isOnline())
}
override fun onLost(network: Network) {
super.onLost(network)
_networkStatus.postValue(null)
}
-} \ No newline at end of file
+
+ private fun NetworkCapabilities.isOnline(): Boolean {
+ return hasCapability(NET_CAPABILITY_INTERNET) && hasCapability(NET_CAPABILITY_VALIDATED)
+ }
+}