Merge pull request #4195 from element-hq/feature/bma/snackBar

Fix snack bar not displayed in MediaViewer
This commit is contained in:
Benoit Marty 2025-01-27 09:52:36 +01:00 committed by GitHub
commit df82afb6dc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 17 additions and 17 deletions

View file

@ -86,11 +86,13 @@ class MediaGalleryPresenter @AssistedInject constructor(
mediaGalleryDataSource.deleteItem(event.eventId)
}
is MediaGalleryEvents.SaveOnDisk -> coroutineScope.launch {
mediaBottomSheetState = MediaBottomSheetState.Hidden
groupedMediaItems.dataOrNull().find(event.eventId)?.let {
saveOnDisk(it)
}
}
is MediaGalleryEvents.Share -> coroutineScope.launch {
mediaBottomSheetState = MediaBottomSheetState.Hidden
groupedMediaItems.dataOrNull().find(event.eventId)?.let {
share(it)
}

View file

@ -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<MediaViewerState> {
@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()

View file

@ -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,
)
}
}