From 1c335194cf7b952e0bc803376935814c34f793bc Mon Sep 17 00:00:00 2001 From: SpiritCroc Date: Sat, 17 Dec 2022 15:17:43 +0100 Subject: [PATCH] Still show threads as replies when threads are disabled Change-Id: Id08fd8be12bb7bfc589d21989ae96f9457961d15 --- .../app/features/home/room/detail/TimelineViewModel.kt | 1 + .../room/detail/timeline/reply/ReplyPreviewRetriever.kt | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt index b99c32f655..1eaea80b2b 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt @@ -191,6 +191,7 @@ class TimelineViewModel @AssistedInject constructor( // Same lifecycle than the ViewModel (survive to screen rotation) val previewUrlRetriever = PreviewUrlRetriever(session, viewModelScope, buildMeta) val replyPreviewRetriever = ReplyPreviewRetriever( + vectorPreferences, initialState.roomId, session, viewModelScope, diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/reply/ReplyPreviewRetriever.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/reply/ReplyPreviewRetriever.kt index 342370e17a..a6505245d6 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/reply/ReplyPreviewRetriever.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/reply/ReplyPreviewRetriever.kt @@ -28,6 +28,7 @@ import im.vector.app.features.html.PillsPostProcessor import im.vector.app.features.html.SpanUtils import im.vector.app.features.html.VectorHtmlCompressor import im.vector.app.features.media.ImageContentRenderer +import im.vector.app.features.settings.VectorPreferences import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -47,6 +48,7 @@ import timber.log.Timber import java.util.UUID class ReplyPreviewRetriever( + vectorPreferences: VectorPreferences, private val roomId: String, private val session: Session, private val coroutineScope: CoroutineScope, @@ -95,6 +97,8 @@ class ReplyPreviewRetriever( // eventToRetrieveId-specific locking private val retrieveEventLocks = mutableMapOf() + private val threadsEnabled = vectorPreferences.areThreadMessagesEnabled() + fun invalidateEventsFromSnapshot(snapshot: List) { val snapshotEvents = snapshot.associateBy { it.eventId } synchronized(data) { @@ -125,7 +129,7 @@ class ReplyPreviewRetriever( val current = data[eventId] val relationContent = event.root.getRelationContent() - val repliedToEventId = relationContent?.inReplyTo?.eventId?.takeIf { relationContent.isFallingBack != true } + val repliedToEventId = relationContent?.inReplyTo?.eventId?.takeIf { relationContent.isFallingBack != true || !threadsEnabled } if (current == null || repliedToEventId != current.latestRepliedToEventId) { // We have not rendered this yet, or the replied-to event has updated if (repliedToEventId?.isNotEmpty().orFalse()) {