Snackbar: Use a private SnackbarDispatcher() to ensure the Snackbar is displayed in the current screen (#4128)
This commit is contained in:
parent
84eed48b7d
commit
2676dafd1d
2 changed files with 3 additions and 4 deletions
|
|
@ -44,7 +44,6 @@ class MediaViewerPresenter @AssistedInject constructor(
|
||||||
@Assisted private val dataSource: MediaViewerDataSource,
|
@Assisted private val dataSource: MediaViewerDataSource,
|
||||||
private val room: MatrixRoom,
|
private val room: MatrixRoom,
|
||||||
private val localMediaActions: LocalMediaActions,
|
private val localMediaActions: LocalMediaActions,
|
||||||
private val snackbarDispatcher: SnackbarDispatcher,
|
|
||||||
) : Presenter<MediaViewerState> {
|
) : Presenter<MediaViewerState> {
|
||||||
@AssistedFactory
|
@AssistedFactory
|
||||||
interface Factory {
|
interface Factory {
|
||||||
|
|
@ -55,6 +54,9 @@ class MediaViewerPresenter @AssistedInject constructor(
|
||||||
): MediaViewerPresenter
|
): MediaViewerPresenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Use a local snackbarDispatcher because this presenter is used in an Overlay Node
|
||||||
|
private val snackbarDispatcher = SnackbarDispatcher()
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
override fun present(): MediaViewerState {
|
override fun present(): MediaViewerState {
|
||||||
val coroutineScope = rememberCoroutineScope()
|
val coroutineScope = rememberCoroutineScope()
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ import android.net.Uri
|
||||||
import app.cash.turbine.ReceiveTurbine
|
import app.cash.turbine.ReceiveTurbine
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
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.core.EventId
|
||||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||||
import io.element.android.libraries.matrix.api.room.MatrixRoom
|
import io.element.android.libraries.matrix.api.room.MatrixRoom
|
||||||
|
|
@ -568,7 +567,6 @@ class MediaViewerPresenterTest {
|
||||||
eventId: EventId? = null,
|
eventId: EventId? = null,
|
||||||
matrixMediaLoader: FakeMatrixMediaLoader = FakeMatrixMediaLoader(),
|
matrixMediaLoader: FakeMatrixMediaLoader = FakeMatrixMediaLoader(),
|
||||||
localMediaActions: FakeLocalMediaActions = FakeLocalMediaActions(),
|
localMediaActions: FakeLocalMediaActions = FakeLocalMediaActions(),
|
||||||
snackbarDispatcher: SnackbarDispatcher = SnackbarDispatcher(),
|
|
||||||
mediaGalleryDataSource: MediaGalleryDataSource = FakeMediaGalleryDataSource(
|
mediaGalleryDataSource: MediaGalleryDataSource = FakeMediaGalleryDataSource(
|
||||||
startLambda = { },
|
startLambda = { },
|
||||||
),
|
),
|
||||||
|
|
@ -598,7 +596,6 @@ class MediaViewerPresenterTest {
|
||||||
),
|
),
|
||||||
room = room,
|
room = room,
|
||||||
localMediaActions = localMediaActions,
|
localMediaActions = localMediaActions,
|
||||||
snackbarDispatcher = snackbarDispatcher,
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue