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