media viewer: fix glitch when transition from thumbnail to fullview
This commit is contained in:
parent
2691e12a56
commit
dc2e05bafd
1 changed files with 6 additions and 15 deletions
|
|
@ -40,6 +40,7 @@ import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import coil.compose.AsyncImage
|
||||||
import io.element.android.compound.tokens.generated.CompoundIcons
|
import io.element.android.compound.tokens.generated.CompoundIcons
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
import io.element.android.libraries.core.mimetype.MimeTypes
|
import io.element.android.libraries.core.mimetype.MimeTypes
|
||||||
|
|
@ -66,9 +67,6 @@ import me.saket.telephoto.flick.FlickToDismiss
|
||||||
import me.saket.telephoto.flick.FlickToDismissState
|
import me.saket.telephoto.flick.FlickToDismissState
|
||||||
import me.saket.telephoto.flick.rememberFlickToDismissState
|
import me.saket.telephoto.flick.rememberFlickToDismissState
|
||||||
import me.saket.telephoto.zoomable.ZoomSpec
|
import me.saket.telephoto.zoomable.ZoomSpec
|
||||||
import me.saket.telephoto.zoomable.ZoomableState
|
|
||||||
import me.saket.telephoto.zoomable.coil.ZoomableAsyncImage
|
|
||||||
import me.saket.telephoto.zoomable.rememberZoomableImageState
|
|
||||||
import me.saket.telephoto.zoomable.rememberZoomableState
|
import me.saket.telephoto.zoomable.rememberZoomableState
|
||||||
import kotlin.time.Duration
|
import kotlin.time.Duration
|
||||||
|
|
||||||
|
|
@ -181,7 +179,6 @@ private fun MediaViewerPage(
|
||||||
mediaInfo = state.mediaInfo,
|
mediaInfo = state.mediaInfo,
|
||||||
thumbnailSource = state.thumbnailSource,
|
thumbnailSource = state.thumbnailSource,
|
||||||
isVisible = showThumbnail,
|
isVisible = showThumbnail,
|
||||||
zoomableState = zoomableState
|
|
||||||
)
|
)
|
||||||
if (showError) {
|
if (showError) {
|
||||||
ErrorView(
|
ErrorView(
|
||||||
|
|
@ -316,24 +313,18 @@ private fun ThumbnailView(
|
||||||
thumbnailSource: MediaSource?,
|
thumbnailSource: MediaSource?,
|
||||||
isVisible: Boolean,
|
isVisible: Boolean,
|
||||||
mediaInfo: MediaInfo,
|
mediaInfo: MediaInfo,
|
||||||
zoomableState: ZoomableState,
|
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
AnimatedVisibility(
|
Box(
|
||||||
visible = isVisible,
|
modifier = modifier.fillMaxSize(),
|
||||||
enter = fadeIn(),
|
contentAlignment = Alignment.Center
|
||||||
exit = fadeOut()
|
|
||||||
) {
|
) {
|
||||||
Box(
|
if (isVisible) {
|
||||||
modifier = modifier.fillMaxSize(),
|
|
||||||
contentAlignment = Alignment.Center
|
|
||||||
) {
|
|
||||||
val mediaRequestData = MediaRequestData(
|
val mediaRequestData = MediaRequestData(
|
||||||
source = thumbnailSource,
|
source = thumbnailSource,
|
||||||
kind = MediaRequestData.Kind.File(mediaInfo.name, mediaInfo.mimeType)
|
kind = MediaRequestData.Kind.File(mediaInfo.name, mediaInfo.mimeType)
|
||||||
)
|
)
|
||||||
ZoomableAsyncImage(
|
AsyncImage(
|
||||||
state = rememberZoomableImageState(zoomableState),
|
|
||||||
modifier = Modifier.fillMaxSize(),
|
modifier = Modifier.fillMaxSize(),
|
||||||
model = mediaRequestData,
|
model = mediaRequestData,
|
||||||
contentScale = ContentScale.Fit,
|
contentScale = ContentScale.Fit,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue