Fix sharing gallery from pinned event timeline.

This commit is contained in:
Benoit Marty
2026-06-26 17:36:27 +02:00
parent a7e6d8af6e
commit b62242cdd2
9 changed files with 56 additions and 24 deletions
@@ -64,7 +64,7 @@ class MediaViewerDataSource(
private val galleryMode = when (mode) {
is MediaViewerMode.TimelineImagesAndVideos -> MediaGalleryMode.Images
is MediaViewerMode.TimelineFilesAndAudios -> MediaGalleryMode.Files
MediaViewerMode.EventGallery -> MediaGalleryMode.Images
is MediaViewerMode.EventGallery -> MediaGalleryMode.Images
}
// Map of sourceUrl to local media state
@@ -131,7 +131,7 @@ class MediaViewerNode(
is MediaViewerEntryPoint.Params.Avatar ->
MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos(Timeline.Mode.Media)
is MediaViewerEntryPoint.Params.EventGallery ->
MediaViewerEntryPoint.MediaViewerMode.EventGallery
MediaViewerEntryPoint.MediaViewerMode.EventGallery(fromPinnedMessages = inputs.fromPinnedMessages)
is MediaViewerEntryPoint.Params.RoomMedia ->
inputs.mode
},
@@ -169,6 +169,6 @@ internal fun MediaViewerEntryPoint.MediaViewerMode.getTimelineMode(): Timeline.M
return when (this) {
is MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos -> timelineMode
is MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios -> timelineMode
MediaViewerEntryPoint.MediaViewerMode.EventGallery -> null
is MediaViewerEntryPoint.MediaViewerMode.EventGallery -> null
}
}
@@ -151,8 +151,11 @@ class MediaViewerPresenter(
mediaBottomSheetState = MediaBottomSheetState.Hidden
navigator.onForwardClick(
eventId = event.eventId,
// TODO We can have a pinned gallery
fromPinnedEvents = inputs.mode()?.getTimelineMode() == Timeline.Mode.PinnedEvents,
fromPinnedEvents = when (inputs) {
is MediaViewerEntryPoint.Params.RoomMedia -> inputs.mode == Timeline.Mode.PinnedEvents
is MediaViewerEntryPoint.Params.EventGallery -> inputs.fromPinnedMessages
is MediaViewerEntryPoint.Params.Avatar -> false
},
)
}
is MediaViewerEvent.OpenInfo -> coroutineScope.launch {
@@ -241,7 +244,7 @@ class MediaViewerPresenter(
is MediaViewerEntryPoint.MediaViewerMode.TimelineImagesAndVideos -> R.string.screen_media_details_no_more_media_to_show
is MediaViewerEntryPoint.MediaViewerMode.TimelineFilesAndAudios -> R.string.screen_media_details_no_more_files_to_show
// Should not happen
MediaViewerEntryPoint.MediaViewerMode.EventGallery -> R.string.screen_media_details_no_more_media_to_show
is MediaViewerEntryPoint.MediaViewerMode.EventGallery -> R.string.screen_media_details_no_more_media_to_show
}
val message = SnackbarMessage(messageResId)
snackbarDispatcher.post(message)
@@ -319,9 +322,3 @@ private fun MediaViewerEntryPoint.Params.mediaSource() = when (this) {
is MediaViewerEntryPoint.Params.EventGallery -> null
is MediaViewerEntryPoint.Params.RoomMedia -> mediaSource
}
private fun MediaViewerEntryPoint.Params.mode() = when (this) {
is MediaViewerEntryPoint.Params.Avatar -> null
is MediaViewerEntryPoint.Params.EventGallery -> null
is MediaViewerEntryPoint.Params.RoomMedia -> mode
}