From c08f1355db8286f9df959d716e2de8654d06ed7b Mon Sep 17 00:00:00 2001 From: Clark Date: Tue, 27 Jun 2023 11:41:25 -0400 Subject: [PATCH] Refresh isConnectionNecessary on network block changes. --- .../securesms/messages/IncomingMessageObserver.kt | 4 ++-- .../securesms/messages/NetworkConnectionListener.kt | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/IncomingMessageObserver.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/IncomingMessageObserver.kt index 962a806f08..41e1470f03 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/IncomingMessageObserver.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/IncomingMessageObserver.kt @@ -88,9 +88,9 @@ class IncomingMessageObserver(private val context: Application) { private val lock: ReentrantLock = ReentrantLock() private val connectionNecessarySemaphore = Semaphore(0) - private val networkConnectionListener = NetworkConnectionListener(context) { isNetworkAvailable -> + private val networkConnectionListener = NetworkConnectionListener(context) { isNetworkUnavailable -> lock.withLock { - if (isNetworkAvailable()) { + if (isNetworkUnavailable()) { Log.w(TAG, "Lost network connection. Shutting down our websocket connections and resetting the drained state.") decryptionDrained = false disconnect() diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/NetworkConnectionListener.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/NetworkConnectionListener.kt index 775d2296b3..5878d212d6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/NetworkConnectionListener.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/NetworkConnectionListener.kt @@ -38,6 +38,12 @@ class NetworkConnectionListener(private val context: Context, private val onNetw onNetworkLost { true } } + override fun onBlockedStatusChanged(network: Network, blocked: Boolean) { + super.onBlockedStatusChanged(network, blocked) + Log.d(TAG, "ConnectivityManager.NetworkCallback onBlockedStatusChanged()") + onNetworkLost { blocked } + } + override fun onAvailable(network: Network) { super.onAvailable(network) Log.d(TAG, "ConnectivityManager.NetworkCallback onAvailable()")