Add test on MediaViewerDataSource
This commit is contained in:
parent
36924070df
commit
b0bfea9cc4
4 changed files with 284 additions and 4 deletions
|
|
@ -9,6 +9,7 @@ package io.element.android.libraries.mediaviewer.impl.gallery.ui
|
|||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.core.preview.loremIpsum
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.UniqueId
|
||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||
import io.element.android.libraries.mediaviewer.api.aPdfMediaInfo
|
||||
|
|
@ -30,12 +31,13 @@ class MediaItemFileProvider : PreviewParameterProvider<MediaItem.File> {
|
|||
|
||||
fun aMediaItemFile(
|
||||
id: UniqueId = UniqueId("fileId"),
|
||||
eventId: EventId? = null,
|
||||
filename: String = "filename",
|
||||
caption: String? = null,
|
||||
): MediaItem.File {
|
||||
return MediaItem.File(
|
||||
id = id,
|
||||
eventId = null,
|
||||
eventId = eventId,
|
||||
mediaInfo = aPdfMediaInfo(
|
||||
filename = filename,
|
||||
caption = caption,
|
||||
|
|
|
|||
|
|
@ -13,10 +13,11 @@ import io.element.android.libraries.mediaviewer.impl.gallery.MediaItem
|
|||
|
||||
fun aMediaItemLoadingIndicator(
|
||||
id: UniqueId = UniqueId("loadingId"),
|
||||
direction: Timeline.PaginationDirection = Timeline.PaginationDirection.BACKWARDS,
|
||||
): MediaItem.LoadingIndicator {
|
||||
return MediaItem.LoadingIndicator(
|
||||
id = id,
|
||||
direction = Timeline.PaginationDirection.BACKWARDS,
|
||||
direction = direction,
|
||||
timestamp = 123,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
package io.element.android.libraries.mediaviewer.impl.viewer
|
||||
|
||||
import androidx.annotation.VisibleForTesting
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.MutableState
|
||||
import androidx.compose.runtime.State
|
||||
|
|
@ -63,7 +64,8 @@ class MediaViewerDataSource(
|
|||
return remember { dataFlow() }.collectAsState(initialData())
|
||||
}
|
||||
|
||||
private fun dataFlow(): Flow<PersistentList<MediaViewerPageData>> {
|
||||
@VisibleForTesting
|
||||
fun dataFlow(): Flow<PersistentList<MediaViewerPageData>> {
|
||||
return galleryDataSource.groupedMediaItemsFlow()
|
||||
.map { groupedItems ->
|
||||
val mediaItems = groupedItems.dataOrNull()?.getItems(galleryMode).orEmpty()
|
||||
|
|
@ -104,7 +106,7 @@ class MediaViewerDataSource(
|
|||
}
|
||||
}
|
||||
if (isEmpty()) {
|
||||
MediaViewerPageData.Loading(Timeline.PaginationDirection.BACKWARDS)
|
||||
add(MediaViewerPageData.Loading(Timeline.PaginationDirection.BACKWARDS))
|
||||
}
|
||||
}.toPersistentList()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue