Merge pull request #3515 from element-hq/feature/bma/fixRageshakeCrash

Fix crash when session is deleted on another client
This commit is contained in:
Benoit Marty
2024-09-23 11:44:11 +02:00
committed by GitHub
2 changed files with 10 additions and 1 deletions

View File

@@ -39,6 +39,7 @@ import io.element.android.features.roomlist.impl.search.RoomListSearchEvents
import io.element.android.features.roomlist.impl.search.RoomListSearchState
import io.element.android.libraries.architecture.AsyncData
import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.core.bool.orFalse
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher
import io.element.android.libraries.designsystem.utils.snackbar.collectSnackbarMessageAsState
import io.element.android.libraries.featureflag.api.FeatureFlagService
@@ -218,7 +219,10 @@ class RoomListPresenter @Inject constructor(
}
}
val needsSlidingSyncMigration by produceState(false) {
value = client.isNativeSlidingSyncSupported() && !client.isUsingNativeSlidingSync()
value = runCatching {
// Note: this can fail when the session is destroyed from another client.
client.isNativeSlidingSyncSupported() && !client.isUsingNativeSlidingSync()
}.getOrNull().orFalse()
}
return when {
showEmpty -> RoomListContentState.Empty

View File

@@ -34,6 +34,11 @@ internal class FormattedJsonHttpLogger(
// It can be only the case if we log the bodies of Http requests.
if (level != HttpLoggingInterceptor.Level.BODY) return
if (message.length > 100_000) {
Timber.d("Content is too long (${message.length} chars) to be formatted as JSON")
return
}
if (message.startsWith("{")) {
// JSON Detected
try {