From f85182ec1d9b9b439e3527c6790dd77b5ae62a16 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Thu, 16 May 2024 13:53:33 +0300 Subject: [PATCH] Check for network access on application resume --- app/src/main/java/org/futo/circles/App.kt | 1 + core/src/main/AndroidManifest.xml | 1 + .../main/java/org/futo/circles/core/base/NetworkObserver.kt | 6 +++++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/futo/circles/App.kt b/app/src/main/java/org/futo/circles/App.kt index 7c94023e5..644f369d1 100644 --- a/app/src/main/java/org/futo/circles/App.kt +++ b/app/src/main/java/org/futo/circles/App.kt @@ -90,6 +90,7 @@ class App : Application() { override fun onResume(owner: LifecycleOwner) { fcmHelper.onEnterForeground() MatrixSessionProvider.currentSession?.syncService()?.stopAnyBackgroundSync() + NetworkObserver.updateConnectionState(applicationContext) } override fun onPause(owner: LifecycleOwner) { diff --git a/core/src/main/AndroidManifest.xml b/core/src/main/AndroidManifest.xml index 3de53f08d..9af632641 100644 --- a/core/src/main/AndroidManifest.xml +++ b/core/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"> + <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.VIBRATE" /> </manifest> \ No newline at end of file diff --git a/core/src/main/java/org/futo/circles/core/base/NetworkObserver.kt b/core/src/main/java/org/futo/circles/core/base/NetworkObserver.kt index 175028eaf..e0d6dde16 100644 --- a/core/src/main/java/org/futo/circles/core/base/NetworkObserver.kt +++ b/core/src/main/java/org/futo/circles/core/base/NetworkObserver.kt @@ -21,10 +21,14 @@ object NetworkObserver { fun isConnected() = internetConnectionFlow.value fun register(context: Context) { - internetConnectionFlow.value = isConnectedToInternet(context) + updateConnectionState(context) setInternetConnectionObserver(context) { internetConnectionFlow.value = it } } + fun updateConnectionState(context: Context) { + internetConnectionFlow.value = isConnectedToInternet(context) + } + fun observe(lifecycleOwner: LifecycleOwner, onConnectionChanged: (Boolean) -> Unit) { lifecycleOwner.lifecycleScope.launch { lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { -- GitLab