Remove RetryLoading (use LoadMedia)

This commit is contained in:
Benoit Marty 2025-01-17 11:38:03 +01:00 committed by Benoit Marty
parent d691a3f6a2
commit 84d603d31f
3 changed files with 18 additions and 26 deletions

View file

@ -15,7 +15,6 @@ sealed interface MediaViewerEvents {
data class SaveOnDisk(val data: MediaViewerPageData.MediaViewerData) : MediaViewerEvents data class SaveOnDisk(val data: MediaViewerPageData.MediaViewerData) : MediaViewerEvents
data class Share(val data: MediaViewerPageData.MediaViewerData) : MediaViewerEvents data class Share(val data: MediaViewerPageData.MediaViewerData) : MediaViewerEvents
data class OpenWith(val data: MediaViewerPageData.MediaViewerData) : MediaViewerEvents data class OpenWith(val data: MediaViewerPageData.MediaViewerData) : MediaViewerEvents
data class RetryLoading(val eventId: EventId) : MediaViewerEvents
data class ClearLoadingError(val eventId: EventId) : MediaViewerEvents data class ClearLoadingError(val eventId: EventId) : MediaViewerEvents
data class ViewInTimeline(val eventId: EventId) : MediaViewerEvents data class ViewInTimeline(val eventId: EventId) : MediaViewerEvents
data class OpenInfo(val data: MediaViewerPageData.MediaViewerData) : MediaViewerEvents data class OpenInfo(val data: MediaViewerPageData.MediaViewerData) : MediaViewerEvents

View file

@ -11,7 +11,6 @@ import android.content.ActivityNotFoundException
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.MutableIntState
import androidx.compose.runtime.MutableState import androidx.compose.runtime.MutableState
import androidx.compose.runtime.collectAsState import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.derivedStateOf
@ -81,7 +80,6 @@ class MediaViewerPresenter @AssistedInject constructor(
val groupedMediaItem by remember { mediaGalleryDataSource.groupedMediaItemsFlow() } val groupedMediaItem by remember { mediaGalleryDataSource.groupedMediaItemsFlow() }
.collectAsState(mediaGalleryDataSource.getLastData()) .collectAsState(mediaGalleryDataSource.getLastData())
val loadMediaTrigger: MutableMap<EventId?, MutableIntState> = remember { mutableMapOf() }
val mediaFile: MutableMap<EventId?, MutableState<MediaFile?>> = remember { mutableMapOf() } val mediaFile: MutableMap<EventId?, MutableState<MediaFile?>> = remember { mutableMapOf() }
val localMedia: MutableMap<EventId?, MutableState<AsyncData<LocalMedia>>> = remember { mutableMapOf() } val localMedia: MutableMap<EventId?, MutableState<AsyncData<LocalMedia>>> = remember { mutableMapOf() }
DisposableEffect(Unit) { DisposableEffect(Unit) {
@ -134,9 +132,6 @@ class MediaViewerPresenter @AssistedInject constructor(
mediaFile = mediaFile.getOrPut(event.data.eventId) { mutableStateOf(null) }, mediaFile = mediaFile.getOrPut(event.data.eventId) { mutableStateOf(null) },
localMedia = localMedia.getOrPut(event.data.eventId) { mutableStateOf(AsyncData.Uninitialized) }, localMedia = localMedia.getOrPut(event.data.eventId) { mutableStateOf(AsyncData.Uninitialized) },
) )
is MediaViewerEvents.RetryLoading -> {
loadMediaTrigger.getOrPut(event.eventId) { mutableIntStateOf(0) }.intValue++
}
is MediaViewerEvents.ClearLoadingError -> { is MediaViewerEvents.ClearLoadingError -> {
localMedia.getOrPut(event.eventId) { mutableStateOf(AsyncData.Uninitialized) }.value = AsyncData.Uninitialized localMedia.getOrPut(event.eventId) { mutableStateOf(AsyncData.Uninitialized) }.value = AsyncData.Uninitialized
} }

View file

@ -150,8 +150,8 @@ fun MediaViewerView(
AnimatedVisibility(visible = showOverlay, enter = fadeIn(), exit = fadeOut()) { AnimatedVisibility(visible = showOverlay, enter = fadeIn(), exit = fadeOut()) {
Box( Box(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
.navigationBarsPadding() .navigationBarsPadding()
) { ) {
MediaViewerBottomBar( MediaViewerBottomBar(
modifier = Modifier.align(Alignment.BottomCenter), modifier = Modifier.align(Alignment.BottomCenter),
@ -168,8 +168,8 @@ fun MediaViewerView(
AnimatedVisibility(visible = showOverlay, enter = fadeIn(), exit = fadeOut()) { AnimatedVisibility(visible = showOverlay, enter = fadeIn(), exit = fadeOut()) {
Box( Box(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
.navigationBarsPadding() .navigationBarsPadding()
) { ) {
when (currentData) { when (currentData) {
is MediaViewerPageData.Loading -> { is MediaViewerPageData.Loading -> {
@ -255,9 +255,7 @@ private fun MediaViewerPage(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
fun onRetry() { fun onRetry() {
data.eventId?.let { state.eventSink(MediaViewerEvents.LoadMedia(data))
state.eventSink(MediaViewerEvents.RetryLoading(it))
}
} }
fun onDismissError() { fun onDismissError() {
@ -289,8 +287,8 @@ private fun MediaViewerPage(
Box( Box(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
.navigationBarsPadding() .navigationBarsPadding()
) { ) {
Box(contentAlignment = Alignment.Center) { Box(contentAlignment = Alignment.Center) {
val zoomableState = rememberZoomableState( val zoomableState = rememberZoomableState(
@ -335,8 +333,8 @@ private fun MediaViewerPage(
if (showProgress) { if (showProgress) {
LinearProgressIndicator( LinearProgressIndicator(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.height(2.dp) .height(2.dp)
) )
} }
} }
@ -365,8 +363,8 @@ private fun MediaViewerLoadingPage(
) { ) {
Box( Box(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
.navigationBarsPadding(), .navigationBarsPadding(),
contentAlignment = Alignment.Center contentAlignment = Alignment.Center
) { ) {
AsyncLoading() AsyncLoading()
@ -502,11 +500,11 @@ private fun MediaViewerBottomBar(
) { ) {
Column( Column(
modifier = modifier modifier = modifier
.fillMaxWidth() .fillMaxWidth()
.background(Color(0x99101317)) .background(Color(0x99101317))
.onSizeChanged { .onSizeChanged {
onHeightChange(it.height) onHeightChange(it.height)
}, },
) { ) {
if (caption != null) { if (caption != null) {
if (showDivider) { if (showDivider) {
@ -514,8 +512,8 @@ private fun MediaViewerBottomBar(
} }
Text( Text(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.padding(16.dp), .padding(16.dp),
text = caption, text = caption,
maxLines = 5, maxLines = 5,
overflow = TextOverflow.Ellipsis, overflow = TextOverflow.Ellipsis,