From dbcc6e61814b20d6e4a156cb7e6eaf341064ccd9 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 18 Nov 2024 15:15:10 +0100 Subject: [PATCH] Protect call to `client.enableAllSendQueues` Fixes https://github.com/element-hq/element-x-android-rageshakes/issues/3375 and other rageshakes. --- .../android/libraries/matrix/impl/RustMatrixClient.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt index 3c3498da48..cabb208b50 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt @@ -12,6 +12,7 @@ import io.element.android.libraries.androidutils.file.safeDelete import io.element.android.libraries.core.bool.orFalse import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.core.coroutine.childScope +import io.element.android.libraries.core.data.tryOrNull import io.element.android.libraries.featureflag.api.FeatureFlagService import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.core.DeviceId @@ -616,9 +617,13 @@ class RustMatrixClient( .distinctUntilChanged() } - override suspend fun setAllSendQueuesEnabled(enabled: Boolean) = withContext(sessionDispatcher) { - Timber.i("setAllSendQueuesEnabled($enabled)") - client.enableAllSendQueues(enabled) + override suspend fun setAllSendQueuesEnabled(enabled: Boolean) { + withContext(sessionDispatcher) { + Timber.i("setAllSendQueuesEnabled($enabled)") + tryOrNull { + client.enableAllSendQueues(enabled) + } + } } override fun sendQueueDisabledFlow(): Flow = mxCallbackFlow {