Author: Adam Evyčędo <git@apiote.xyz>
get departures on connectivity
%!v(PANIC=String method: strings: negative Repeat count)
diff --git a/app/src/main/java/xyz/apiote/bimba/czwek/departures/DeparturesActivity.kt b/app/src/main/java/xyz/apiote/bimba/czwek/departures/DeparturesActivity.kt index 7ca5fdd2e9c1aa3ecd557d91170aa87bad477a82..a789633381d740d379762612eee71a79baeeb69d 100644 --- a/app/src/main/java/xyz/apiote/bimba/czwek/departures/DeparturesActivity.kt +++ b/app/src/main/java/xyz/apiote/bimba/czwek/departures/DeparturesActivity.kt @@ -5,6 +5,12 @@ package xyz.apiote.bimba.czwek.departures import android.content.Intent +import android.net.ConnectivityManager +import android.net.ConnectivityManager.NetworkCallback +import android.net.Network +import android.net.NetworkCapabilities +import android.net.NetworkRequest +import android.os.Build import android.os.Bundle import android.os.Handler import android.os.Looper @@ -236,6 +242,25 @@ binding.departuresRecycler.adapter = adapter WindowCompat.setDecorFitsSystemWindows(window, false) snackbar = Snackbar.make(binding.root, "", Snackbar.LENGTH_INDEFINITE) + + val networkCallback: NetworkCallback = object : NetworkCallback() { + override fun onAvailable(network: Network) { + getDepartures() + } + + override fun onLost(network: Network) { + } + } + + val connectivityManager = getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + connectivityManager.registerDefaultNetworkCallback(networkCallback) + } else { + val request = NetworkRequest.Builder() + .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET).build() + connectivityManager.registerNetworkCallback(request, networkCallback) + } } override fun onResume() { @@ -333,7 +358,6 @@ binding.errorImage.visibility = View.GONE binding.errorText.visibility = View.GONE binding.departuresRecycler.visibility = View.VISIBLE } - // todo [3.2; traffic] alerts // todo [3.2; traffic] stop info } } \ No newline at end of file