mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
Fix sharing gallery from pinned event timeline.
This commit is contained in:
+2
-1
@@ -48,6 +48,7 @@ interface MediaViewerEntryPoint : FeatureEntryPoint {
|
||||
val eventId: EventId?,
|
||||
val galleryInfo: GalleryInfo,
|
||||
val galleryItems: List<GalleryItemData>,
|
||||
val fromPinnedMessages: Boolean,
|
||||
) : Params
|
||||
|
||||
data class Avatar(
|
||||
@@ -59,7 +60,7 @@ interface MediaViewerEntryPoint : FeatureEntryPoint {
|
||||
|
||||
sealed interface MediaViewerMode : Parcelable {
|
||||
@Parcelize
|
||||
data object EventGallery : MediaViewerMode
|
||||
data class EventGallery(val fromPinnedMessages: Boolean) : MediaViewerMode
|
||||
|
||||
@Parcelize
|
||||
data class TimelineImagesAndVideos(val timelineMode: Timeline.Mode) : MediaViewerMode
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
+6
-9
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user