From 8f4766d28ad214fe1a230ac682fc7ff4e41ea568 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Sun, 29 Jun 2025 19:11:45 +0200 Subject: [PATCH] Use motion scheme transition spec for grid popup --- .../launcher/search/common/grid/GridItem.kt | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/grid/GridItem.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/grid/GridItem.kt index 9dd5a659..38072246 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/grid/GridItem.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/grid/GridItem.kt @@ -216,21 +216,17 @@ fun ItemPopup(origin: IntRect, searchable: Searchable, onDismissRequest: () -> U val animationProgress = remember { Animatable(0f) } + val animationSpec = MaterialTheme.motionScheme.defaultSpatialSpec() + LaunchedEffect(show.targetState) { if (!show.targetState) { animationProgress.animateTo( - 0f, spring( - Spring.DampingRatioNoBouncy, - Spring.StiffnessMediumLow, - ) + 0f, animationSpec ) onDismissRequest() } else { animationProgress.animateTo( - 1f, spring( - Spring.DampingRatioLowBouncy, - Spring.StiffnessMediumLow, - ) + 100f, animationSpec ) } } @@ -239,11 +235,12 @@ fun ItemPopup(origin: IntRect, searchable: Searchable, onDismissRequest: () -> U } Overlay { + val p = animationProgress.value * 0.01f Box( modifier = Modifier .background( MaterialTheme.colorScheme.scrim.copy( - alpha = 0.32f * animationProgress.value.coerceIn( + alpha = 0.32f * p.coerceIn( 0f, 1f ) @@ -266,7 +263,7 @@ fun ItemPopup(origin: IntRect, searchable: Searchable, onDismissRequest: () -> U ) ) { LauncherCard( - elevation = 8.dp * animationProgress.value, + elevation = 8.dp * p, backgroundOpacity = MaterialTheme.transparency.elevatedSurface, modifier = Modifier .placeOverlay( @@ -275,7 +272,7 @@ fun ItemPopup(origin: IntRect, searchable: Searchable, onDismissRequest: () -> U -WindowInsets.systemBars.union(WindowInsets.ime) .getTop(LocalDensity.current) ), - animationProgress.value + p, ) ) { when (searchable) { @@ -283,7 +280,7 @@ fun ItemPopup(origin: IntRect, searchable: Searchable, onDismissRequest: () -> U AppItemGridPopup( app = searchable, show = show, - animationProgress = animationProgress.value, + animationProgress = p, origin = origin, onDismiss = { show.targetState = false @@ -295,7 +292,7 @@ fun ItemPopup(origin: IntRect, searchable: Searchable, onDismissRequest: () -> U WebsiteItemGridPopup( website = searchable, show = show, - animationProgress = animationProgress.value, + animationProgress = p, origin = origin, onDismiss = { show.targetState = false @@ -307,7 +304,7 @@ fun ItemPopup(origin: IntRect, searchable: Searchable, onDismissRequest: () -> U ArticleItemGridPopup( article = searchable, show = show, - animationProgress = animationProgress.value, + animationProgress = p, origin = origin, onDismiss = { show.targetState = false @@ -319,7 +316,7 @@ fun ItemPopup(origin: IntRect, searchable: Searchable, onDismissRequest: () -> U ContactItemGridPopup( contact = searchable, show = show, - animationProgress = animationProgress.value, + animationProgress = p, origin = origin, onDismiss = { show.targetState = false @@ -331,7 +328,7 @@ fun ItemPopup(origin: IntRect, searchable: Searchable, onDismissRequest: () -> U FileItemGridPopup( file = searchable, show = show, - animationProgress = animationProgress.value, + animationProgress = p, origin = origin, onDismiss = { show.targetState = false @@ -343,7 +340,7 @@ fun ItemPopup(origin: IntRect, searchable: Searchable, onDismissRequest: () -> U CalendarItemGridPopup( calendar = searchable, show = show, - animationProgress = animationProgress.value, + animationProgress = p, origin = origin, onDismiss = { show.targetState = false @@ -355,7 +352,7 @@ fun ItemPopup(origin: IntRect, searchable: Searchable, onDismissRequest: () -> U ShortcutItemGridPopup( shortcut = searchable, show = show, - animationProgress = animationProgress.value, + animationProgress = p, origin = origin, onDismiss = { show.targetState = false @@ -367,7 +364,7 @@ fun ItemPopup(origin: IntRect, searchable: Searchable, onDismissRequest: () -> U LocationItemGridPopup( location = searchable, show = show, - animationProgress = animationProgress.value, + animationProgress = p, origin = origin, onDismiss = { show.targetState = false