Bimba.git

commit adc18d186fd4694e67cf4bea5e0f227371ecf19b

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