Temporarily disable shared element transitions (#1621)

This commit is contained in:
FooIbar authored and GitHub committed 2024-09-13 12:10:26 +08:00
1 parent 84c3fee5da
commit 42ed51094e
3 files changed
+95 -13

No files matched your search

@@ -26,7 +26,6 @@ import android.net.Uri
import android.os.Bundle
import android.widget.Toast
import androidx.annotation.StringRes
import androidx.compose.animation.SharedTransitionLayout
import androidx.compose.animation.SharedTransitionScope
import androidx.compose.animation.core.animateDpAsState
import androidx.compose.foundation.Image
@@ -138,6 +137,7 @@ import com.hippo.ehviewer.ui.tools.DialogState
import com.hippo.ehviewer.ui.tools.LabeledCheckbox
import com.hippo.ehviewer.ui.tools.LocalDialogState
import com.hippo.ehviewer.ui.tools.LocalWindowSizeClass
import com.hippo.ehviewer.ui.tools.NoopSharedTransitionScope
import com.hippo.ehviewer.updater.AppUpdater
import com.hippo.ehviewer.util.AppConfig
import com.hippo.ehviewer.util.addTextToClipboard
@@ -463,16 +463,17 @@ class MainActivity : EhActivity() {
drawerState = sideSheetState,
gesturesEnabled = sheet != null && drawerEnabled,
) {
SharedTransitionLayout {
CompositionLocalProvider(LocalSharedTransitionScope provides this) {
DestinationsNavHost(
navGraph = NavGraphs.root,
start = if (Settings.needSignIn) SignInScreenDestination else StartDestination,
defaultTransitions = rememberEhNavAnim(),
navController = navController,
)
}
// https://issuetracker.google.com/336140982
// SharedTransitionLayout {
CompositionLocalProvider(LocalSharedTransitionScope provides NoopSharedTransitionScope) {
DestinationsNavHost(
navGraph = NavGraphs.root,
start = if (Settings.needSignIn) SignInScreenDestination else StartDestination,
defaultTransitions = rememberEhNavAnim(),
navController = navController,
)
}
// }
}
}
}
@@ -19,7 +19,6 @@ import com.hippo.ehviewer.client.data.GalleryInfo
import com.hippo.ehviewer.ktbuilder.imageRequest
import com.hippo.ehviewer.ui.tools.SETNodeGenerator
import com.hippo.ehviewer.ui.tools.TransitionsVisibilityScope
import com.hippo.ehviewer.ui.tools.sharedBounds
import com.hippo.ehviewer.ui.tools.shouldCrop
@Composable
@@ -40,7 +39,9 @@ fun EhAsyncThumb(
) = AsyncImage(
model = requestOf(model),
contentDescription = null,
modifier = modifier.sharedBounds(key = "${model.gid}").clip(ShapeDefaults.Medium),
modifier = modifier
// .sharedBounds(key = "${model.gid}")
.clip(ShapeDefaults.Medium),
onSuccess = onSuccess?.let { callback ->
{ callback(it.result.image) }
},
@@ -57,7 +58,9 @@ fun EhAsyncCropThumb(
AsyncImage(
model = requestOf(key),
contentDescription = null,
modifier = modifier.sharedBounds(key = "${key.gid}").clip(ShapeDefaults.Medium),
modifier = modifier
// .sharedBounds(key = "${key.gid}")
.clip(ShapeDefaults.Medium),
onSuccess = {
if (it.result.image.shouldCrop) {
contentScale = ContentScale.Crop
@@ -1,6 +1,7 @@
package com.hippo.ehviewer.ui.tools
import androidx.compose.animation.AnimatedVisibilityScope
import androidx.compose.animation.BoundsTransform
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.compose.animation.SharedTransitionScope
@@ -11,6 +12,12 @@ import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.Stable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Path
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.layout.LayoutCoordinates
import androidx.compose.ui.layout.Placeable
import androidx.compose.ui.unit.Density
import androidx.compose.ui.unit.LayoutDirection
import arrow.atomic.AtomicInt
val NoopTransitionsVisibilityScope = TransitionsVisibilityScope(emptySet())
@@ -80,3 +87,74 @@ class SETNodeGenerator {
other.opposites.add(this)
}
}
object NoopSharedTransitionScope : SharedTransitionScope {
override val isTransitionActive: Boolean
get() = TODO("Not yet implemented")
override val Placeable.PlacementScope.lookaheadScopeCoordinates: LayoutCoordinates
get() = TODO("Not yet implemented")
override fun OverlayClip(clipShape: Shape): SharedTransitionScope.OverlayClip {
TODO("Not yet implemented")
}
@Composable
override fun rememberSharedContentState(key: Any): SharedTransitionScope.SharedContentState {
TODO("Not yet implemented")
}
override fun Modifier.renderInSharedTransitionScopeOverlay(
renderInOverlay: () -> Boolean,
zIndexInOverlay: Float,
clipInOverlayDuringTransition: (LayoutDirection, Density) -> Path?,
): Modifier {
TODO("Not yet implemented")
}
override fun Modifier.sharedBounds(
sharedContentState: SharedTransitionScope.SharedContentState,
animatedVisibilityScope: AnimatedVisibilityScope,
enter: EnterTransition,
exit: ExitTransition,
boundsTransform: BoundsTransform,
resizeMode: SharedTransitionScope.ResizeMode,
placeHolderSize: SharedTransitionScope.PlaceHolderSize,
renderInOverlayDuringTransition: Boolean,
zIndexInOverlay: Float,
clipInOverlayDuringTransition: SharedTransitionScope.OverlayClip,
): Modifier {
TODO("Not yet implemented")
}
override fun Modifier.sharedElement(
state: SharedTransitionScope.SharedContentState,
animatedVisibilityScope: AnimatedVisibilityScope,
boundsTransform: BoundsTransform,
placeHolderSize: SharedTransitionScope.PlaceHolderSize,
renderInOverlayDuringTransition: Boolean,
zIndexInOverlay: Float,
clipInOverlayDuringTransition: SharedTransitionScope.OverlayClip,
): Modifier {
TODO("Not yet implemented")
}
override fun Modifier.sharedElementWithCallerManagedVisibility(
sharedContentState: SharedTransitionScope.SharedContentState,
visible: Boolean,
boundsTransform: BoundsTransform,
placeHolderSize: SharedTransitionScope.PlaceHolderSize,
renderInOverlayDuringTransition: Boolean,
zIndexInOverlay: Float,
clipInOverlayDuringTransition: SharedTransitionScope.OverlayClip,
): Modifier {
TODO("Not yet implemented")
}
override fun Modifier.skipToLookaheadSize(): Modifier {
TODO("Not yet implemented")
}
override fun LayoutCoordinates.toLookaheadCoordinates(): LayoutCoordinates {
TODO("Not yet implemented")
}
}