Improve preview.
This commit is contained in:
@@ -13,9 +13,10 @@ import io.element.android.libraries.matrix.api.core.UniqueId
|
||||
import io.element.android.libraries.mediaviewer.impl.details.MediaBottomSheetState
|
||||
import io.element.android.libraries.mediaviewer.impl.details.aMediaDetailsBottomSheetState
|
||||
import io.element.android.libraries.mediaviewer.impl.gallery.ui.aDate
|
||||
import io.element.android.libraries.mediaviewer.impl.gallery.ui.aFile
|
||||
import io.element.android.libraries.mediaviewer.impl.gallery.ui.aVideo
|
||||
import io.element.android.libraries.mediaviewer.impl.gallery.ui.anImage
|
||||
import io.element.android.libraries.mediaviewer.impl.gallery.ui.aMediaItemFile
|
||||
import io.element.android.libraries.mediaviewer.impl.gallery.ui.aMediaItemVideo
|
||||
import io.element.android.libraries.mediaviewer.impl.gallery.ui.aMediaItemImage
|
||||
import io.element.android.libraries.mediaviewer.impl.gallery.ui.aMediaItemLoadingIndicator
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
open class MediaGalleryStateProvider : PreviewParameterProvider<MediaGalleryState> {
|
||||
@@ -29,18 +30,19 @@ open class MediaGalleryStateProvider : PreviewParameterProvider<MediaGalleryStat
|
||||
aGroupedMediaItems(
|
||||
imageAndVideoItems = listOf(
|
||||
aDate(id = UniqueId("0")),
|
||||
anImage(id = UniqueId("1")),
|
||||
aMediaItemImage(id = UniqueId("1")),
|
||||
aDate(
|
||||
id = UniqueId("2"),
|
||||
formattedDate = "September 2004",
|
||||
),
|
||||
anImage(id = UniqueId("3")),
|
||||
aVideo(id = UniqueId("4")),
|
||||
anImage(id = UniqueId("5")),
|
||||
anImage(id = UniqueId("6")),
|
||||
anImage(id = UniqueId("7")),
|
||||
anImage(id = UniqueId("8")),
|
||||
anImage(id = UniqueId("9")),
|
||||
aMediaItemImage(id = UniqueId("3")),
|
||||
aMediaItemVideo(id = UniqueId("4")),
|
||||
aMediaItemImage(id = UniqueId("5")),
|
||||
aMediaItemImage(id = UniqueId("6")),
|
||||
aMediaItemImage(id = UniqueId("7")),
|
||||
aMediaItemImage(id = UniqueId("8")),
|
||||
aMediaItemImage(id = UniqueId("9")),
|
||||
aMediaItemLoadingIndicator(),
|
||||
).toImmutableList()
|
||||
)
|
||||
),
|
||||
@@ -54,15 +56,14 @@ open class MediaGalleryStateProvider : PreviewParameterProvider<MediaGalleryStat
|
||||
aGroupedMediaItems(
|
||||
fileItems = listOf(
|
||||
aDate(id = UniqueId("0")),
|
||||
aFile(id = UniqueId("1")),
|
||||
aMediaItemFile(id = UniqueId("1")),
|
||||
aDate(
|
||||
id = UniqueId("2"),
|
||||
formattedDate = "September 2004",
|
||||
),
|
||||
aFile(id = UniqueId("3")),
|
||||
aFile(id = UniqueId("4")),
|
||||
aFile(id = UniqueId("5")),
|
||||
aFile(id = UniqueId("6")),
|
||||
aMediaItemFile(id = UniqueId("3")),
|
||||
aMediaItemFile(id = UniqueId("4")),
|
||||
aMediaItemLoadingIndicator(),
|
||||
).toImmutableList()
|
||||
)
|
||||
),
|
||||
|
||||
@@ -302,9 +302,7 @@ private fun MediaGalleryImageGrid(
|
||||
when (item) {
|
||||
is MediaItem.LoadingIndicator,
|
||||
is MediaItem.DateSeparator -> GridItemSpan(columns)
|
||||
is MediaItem.Image,
|
||||
is MediaItem.Video,
|
||||
is MediaItem.File -> GridItemSpan(1)
|
||||
is MediaItem.Event -> GridItemSpan(1)
|
||||
}
|
||||
},
|
||||
key = { it.id() },
|
||||
|
||||
@@ -67,7 +67,7 @@ fun ImageItemView(
|
||||
@Composable
|
||||
internal fun ImageItemViewPreview() = ElementPreview {
|
||||
ImageItemView(
|
||||
image = anImage(),
|
||||
image = aMediaItemImage(),
|
||||
onClick = {},
|
||||
onLongClick = {},
|
||||
)
|
||||
|
||||
@@ -17,18 +17,18 @@ import io.element.android.libraries.mediaviewer.impl.gallery.MediaItem
|
||||
class MediaItemFileProvider : PreviewParameterProvider<MediaItem.File> {
|
||||
override val values: Sequence<MediaItem.File>
|
||||
get() = sequenceOf(
|
||||
aFile(),
|
||||
aFile(
|
||||
aMediaItemFile(),
|
||||
aMediaItemFile(
|
||||
filename = "A long filename that should be truncated.jpg",
|
||||
caption = "A caption",
|
||||
),
|
||||
aFile(
|
||||
aMediaItemFile(
|
||||
caption = loremIpsum,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
fun aFile(
|
||||
fun aMediaItemFile(
|
||||
id: UniqueId = UniqueId("fileId"),
|
||||
filename: String = "filename",
|
||||
caption: String? = null,
|
||||
|
||||
@@ -14,7 +14,7 @@ import io.element.android.libraries.matrix.api.media.MediaSource
|
||||
import io.element.android.libraries.mediaviewer.api.anImageMediaInfo
|
||||
import io.element.android.libraries.mediaviewer.impl.gallery.MediaItem
|
||||
|
||||
fun anImage(
|
||||
fun aMediaItemImage(
|
||||
id: UniqueId = UniqueId("imageId"),
|
||||
eventId: EventId? = null,
|
||||
senderId: UserId? = null,
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright 2024 New Vector Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
* Please see LICENSE in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.libraries.mediaviewer.impl.gallery.ui
|
||||
|
||||
import io.element.android.libraries.matrix.api.core.UniqueId
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import io.element.android.libraries.mediaviewer.impl.gallery.MediaItem
|
||||
|
||||
fun aMediaItemLoadingIndicator(
|
||||
id: UniqueId = UniqueId("loadingId"),
|
||||
): MediaItem.LoadingIndicator {
|
||||
return MediaItem.LoadingIndicator(
|
||||
id = id,
|
||||
direction = Timeline.PaginationDirection.BACKWARDS,
|
||||
timestamp = 123,
|
||||
)
|
||||
}
|
||||
@@ -16,14 +16,14 @@ import io.element.android.libraries.mediaviewer.impl.gallery.MediaItem
|
||||
class MediaItemVideoProvider : PreviewParameterProvider<MediaItem.Video> {
|
||||
override val values: Sequence<MediaItem.Video>
|
||||
get() = sequenceOf(
|
||||
aVideo(),
|
||||
aVideo(
|
||||
aMediaItemVideo(),
|
||||
aMediaItemVideo(
|
||||
duration = null,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
fun aVideo(
|
||||
fun aMediaItemVideo(
|
||||
id: UniqueId = UniqueId("videoId"),
|
||||
mediaSource: MediaSource = MediaSource(""),
|
||||
duration: String? = "1:23",
|
||||
|
||||
@@ -21,7 +21,7 @@ import io.element.android.libraries.matrix.test.media.FakeMatrixMediaLoader
|
||||
import io.element.android.libraries.matrix.test.room.FakeMatrixRoom
|
||||
import io.element.android.libraries.matrix.test.timeline.FakeTimeline
|
||||
import io.element.android.libraries.mediaviewer.impl.details.MediaBottomSheetState
|
||||
import io.element.android.libraries.mediaviewer.impl.gallery.ui.anImage
|
||||
import io.element.android.libraries.mediaviewer.impl.gallery.ui.aMediaItemImage
|
||||
import io.element.android.libraries.mediaviewer.test.FakeLocalMediaActions
|
||||
import io.element.android.libraries.mediaviewer.test.FakeLocalMediaFactory
|
||||
import io.element.android.tests.testutils.WarmUpRule
|
||||
@@ -119,7 +119,7 @@ class MediaGalleryPresenterTest {
|
||||
skipItems(1)
|
||||
val initialState = awaitItem()
|
||||
assertThat(initialState.mediaBottomSheetState).isEqualTo(MediaBottomSheetState.Hidden)
|
||||
val item = anImage(
|
||||
val item = aMediaItemImage(
|
||||
eventId = AN_EVENT_ID,
|
||||
senderId = A_USER_ID,
|
||||
)
|
||||
@@ -163,7 +163,7 @@ class MediaGalleryPresenterTest {
|
||||
skipItems(1)
|
||||
val initialState = awaitItem()
|
||||
assertThat(initialState.mediaBottomSheetState).isEqualTo(MediaBottomSheetState.Hidden)
|
||||
val item = anImage(
|
||||
val item = aMediaItemImage(
|
||||
eventId = AN_EVENT_ID,
|
||||
senderId = A_USER_ID_2,
|
||||
)
|
||||
@@ -196,7 +196,7 @@ class MediaGalleryPresenterTest {
|
||||
skipItems(1)
|
||||
val initialState = awaitItem()
|
||||
// Delete bottom sheet
|
||||
val item = anImage()
|
||||
val item = aMediaItemImage()
|
||||
initialState.eventSink(MediaGalleryEvents.ConfirmDelete(AN_EVENT_ID, item.mediaInfo, item.thumbnailSource))
|
||||
val deleteState = awaitItem()
|
||||
assertThat(deleteState.mediaBottomSheetState).isEqualTo(
|
||||
|
||||
Reference in New Issue
Block a user