From d17992abe8d4bf99741eb36aef20916070b6ff0b Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 8 Apr 2026 17:15:04 +0200 Subject: [PATCH] Ensure Mark as fully read is not invoked several times. --- .../android/features/messages/impl/MessagesPresenter.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt index d9c3d17afa..4b004b74d7 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt @@ -250,8 +250,8 @@ class MessagesPresenter( is MessagesEvent.OnUserClicked -> { roomMemberModerationState.eventSink(RoomMemberModerationEvents.ShowActionsForUser(event.user)) } - is MessagesEvent.MarkAsFullyReadAndExit -> coroutineScope.launch { - if (!markingAsReadAndExiting.getAndSet(true)) { + is MessagesEvent.MarkAsFullyReadAndExit -> if (!markingAsReadAndExiting.getAndSet(true)) { + coroutineScope.launch { val latestEventId = room.liveTimeline.getLatestEventId().getOrElse { Timber.w(it, "Failed to get latest event id to mark as fully read") navigator.close() @@ -263,7 +263,6 @@ class MessagesPresenter( } } navigator.close() - markingAsReadAndExiting.set(false) } } }