From 2676dafd1d4e515df4bf55735fb88aef8f9aedfe Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 24 Jan 2025 17:28:13 +0100 Subject: [PATCH] Snackbar: Use a private SnackbarDispatcher() to ensure the Snackbar is displayed in the current screen (#4128) --- .../libraries/mediaviewer/impl/viewer/MediaViewerPresenter.kt | 4 +++- .../mediaviewer/impl/viewer/MediaViewerPresenterTest.kt | 3 --- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenter.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenter.kt index a801437e82..b039576e0a 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenter.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenter.kt @@ -44,7 +44,6 @@ class MediaViewerPresenter @AssistedInject constructor( @Assisted private val dataSource: MediaViewerDataSource, private val room: MatrixRoom, private val localMediaActions: LocalMediaActions, - private val snackbarDispatcher: SnackbarDispatcher, ) : Presenter { @AssistedFactory interface Factory { @@ -55,6 +54,9 @@ class MediaViewerPresenter @AssistedInject constructor( ): MediaViewerPresenter } + // Use a local snackbarDispatcher because this presenter is used in an Overlay Node + private val snackbarDispatcher = SnackbarDispatcher() + @Composable override fun present(): MediaViewerState { val coroutineScope = rememberCoroutineScope() diff --git a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenterTest.kt b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenterTest.kt index ac0acfe719..47e48ca9e1 100644 --- a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenterTest.kt +++ b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerPresenterTest.kt @@ -13,7 +13,6 @@ import android.net.Uri import app.cash.turbine.ReceiveTurbine import com.google.common.truth.Truth.assertThat import io.element.android.libraries.architecture.AsyncData -import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.media.MediaSource import io.element.android.libraries.matrix.api.room.MatrixRoom @@ -568,7 +567,6 @@ class MediaViewerPresenterTest { eventId: EventId? = null, matrixMediaLoader: FakeMatrixMediaLoader = FakeMatrixMediaLoader(), localMediaActions: FakeLocalMediaActions = FakeLocalMediaActions(), - snackbarDispatcher: SnackbarDispatcher = SnackbarDispatcher(), mediaGalleryDataSource: MediaGalleryDataSource = FakeMediaGalleryDataSource( startLambda = { }, ), @@ -598,7 +596,6 @@ class MediaViewerPresenterTest { ), room = room, localMediaActions = localMediaActions, - snackbarDispatcher = snackbarDispatcher, ) } }