From 2861d1cf8e33de9fed85425d7f854fd0263db88a Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 19 Nov 2025 14:37:19 +0100 Subject: [PATCH] Ensure that htmlConverterProvider is initialized when viewing Pinned events. Fixes #5763 --- .../messages/impl/pinned/list/PinnedMessagesListPresenter.kt | 3 +++ .../impl/pinned/list/PinnedMessagesListPresenterTest.kt | 2 ++ 2 files changed, 5 insertions(+) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListPresenter.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListPresenter.kt index 9c869bd502..cdc1f85f1d 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListPresenter.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListPresenter.kt @@ -23,6 +23,7 @@ import dev.zacsweers.metro.AssistedFactory import dev.zacsweers.metro.AssistedInject import im.vector.app.features.analytics.plan.Interaction import im.vector.app.features.analytics.plan.PinUnpinAction +import io.element.android.features.messages.api.timeline.HtmlConverterProvider import io.element.android.features.messages.impl.UserEventPermissions import io.element.android.features.messages.impl.actionlist.ActionListState import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction @@ -76,6 +77,7 @@ class PinnedMessagesListPresenter( private val sessionCoroutineScope: CoroutineScope, private val analyticsService: AnalyticsService, private val featureFlagService: FeatureFlagService, + private val htmlConverterProvider: HtmlConverterProvider, ) : Presenter { @AssistedFactory interface Factory { @@ -94,6 +96,7 @@ class PinnedMessagesListPresenter( @Composable override fun present(): PinnedMessagesListState { + htmlConverterProvider.Update() val isDm by room.isDmAsState() val timelineRoomInfo = remember(isDm) { diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListPresenterTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListPresenterTest.kt index 5e6d227048..8807951d9d 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListPresenterTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListPresenterTest.kt @@ -17,6 +17,7 @@ import io.element.android.features.messages.impl.link.aLinkState import io.element.android.features.messages.impl.pinned.DefaultPinnedEventsTimelineProvider import io.element.android.features.messages.impl.timeline.model.TimelineItem import io.element.android.features.messages.impl.timeline.protection.aTimelineProtectionState +import io.element.android.features.messages.test.timeline.FakeHtmlConverterProvider import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher import io.element.android.libraries.featureflag.test.FakeFeatureFlagService import io.element.android.libraries.matrix.api.core.EventId @@ -319,6 +320,7 @@ class PinnedMessagesListPresenterTest { analyticsService = analyticsService, featureFlagService = featureFlagService, sessionCoroutineScope = this, + htmlConverterProvider = FakeHtmlConverterProvider(), ) } }