diff options
6 files changed, 23 insertions, 23 deletions
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/DialogTransitionAnimator.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/DialogTransitionAnimator.kt index dbdf970467b5..24cc8a4cfcec 100644 --- a/packages/SystemUI/animation/src/com/android/systemui/animation/DialogTransitionAnimator.kt +++ b/packages/SystemUI/animation/src/com/android/systemui/animation/DialogTransitionAnimator.kt @@ -711,7 +711,6 @@ private class AnimatedDialog( dialog.setDismissOverride(this::onDialogDismissed) if (featureFlags.isPredictiveBackQsDialogAnim) { - // TODO(b/265923095) Improve animations for QS dialogs on configuration change dialog.registerAnimationOnBackInvoked(targetView = dialogContentWithBackground) } diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/back/BackAnimationSpec.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/back/BackAnimationSpec.kt index dd32851a97cf..4d327e1d8beb 100644 --- a/packages/SystemUI/animation/src/com/android/systemui/animation/back/BackAnimationSpec.kt +++ b/packages/SystemUI/animation/src/com/android/systemui/animation/back/BackAnimationSpec.kt @@ -37,7 +37,7 @@ fun interface BackAnimationSpec { /** Create a [BackAnimationSpec] from [displayMetrics] and design specs. */ fun BackAnimationSpec.Companion.createFloatingSurfaceAnimationSpec( - displayMetrics: DisplayMetrics, + displayMetricsProvider: () -> DisplayMetrics, maxMarginXdp: Float, maxMarginYdp: Float, minScale: Float, @@ -45,18 +45,19 @@ fun BackAnimationSpec.Companion.createFloatingSurfaceAnimationSpec( translateYEasing: Interpolator = Interpolators.LINEAR, scaleEasing: Interpolator = Interpolators.STANDARD_DECELERATE, ): BackAnimationSpec { - val screenWidthPx = displayMetrics.widthPixels - val screenHeightPx = displayMetrics.heightPixels + return BackAnimationSpec { backEvent, progressY, result -> + val displayMetrics = displayMetricsProvider() + val screenWidthPx = displayMetrics.widthPixels + val screenHeightPx = displayMetrics.heightPixels - val maxMarginXPx = maxMarginXdp.dpToPx(displayMetrics) - val maxMarginYPx = maxMarginYdp.dpToPx(displayMetrics) - val maxTranslationXByScale = (screenWidthPx - screenWidthPx * minScale) / 2 - val maxTranslationX = maxTranslationXByScale - maxMarginXPx - val maxTranslationYByScale = (screenHeightPx - screenHeightPx * minScale) / 2 - val maxTranslationY = maxTranslationYByScale - maxMarginYPx - val minScaleReversed = 1f - minScale + val maxMarginXPx = maxMarginXdp.dpToPx(displayMetrics) + val maxMarginYPx = maxMarginYdp.dpToPx(displayMetrics) + val maxTranslationXByScale = (screenWidthPx - screenWidthPx * minScale) / 2 + val maxTranslationX = maxTranslationXByScale - maxMarginXPx + val maxTranslationYByScale = (screenHeightPx - screenHeightPx * minScale) / 2 + val maxTranslationY = maxTranslationYByScale - maxMarginYPx + val minScaleReversed = 1f - minScale - return BackAnimationSpec { backEvent, progressY, result -> val direction = if (backEvent.swipeEdge == BackEvent.EDGE_LEFT) 1 else -1 val progressX = backEvent.progress diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/back/BackAnimationSpecForSysUi.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/back/BackAnimationSpecForSysUi.kt index b8d446961a88..b05729669f7c 100644 --- a/packages/SystemUI/animation/src/com/android/systemui/animation/back/BackAnimationSpecForSysUi.kt +++ b/packages/SystemUI/animation/src/com/android/systemui/animation/back/BackAnimationSpecForSysUi.kt @@ -23,10 +23,10 @@ import android.util.DisplayMetrics * https://carbon.googleplex.com/predictive-back-for-apps/pages/st-1-dismiss-app */ fun BackAnimationSpec.Companion.dismissAppForSysUi( - displayMetrics: DisplayMetrics, + displayMetricsProvider: () -> DisplayMetrics, ): BackAnimationSpec = BackAnimationSpec.createFloatingSurfaceAnimationSpec( - displayMetrics = displayMetrics, + displayMetricsProvider = displayMetricsProvider, maxMarginXdp = 8f, maxMarginYdp = 8f, minScale = 0.8f, @@ -37,10 +37,10 @@ fun BackAnimationSpec.Companion.dismissAppForSysUi( * https://carbon.googleplex.com/predictive-back-for-apps/pages/st-2-cross-task */ fun BackAnimationSpec.Companion.crossTaskForSysUi( - displayMetrics: DisplayMetrics, + displayMetricsProvider: () -> DisplayMetrics, ): BackAnimationSpec = BackAnimationSpec.createFloatingSurfaceAnimationSpec( - displayMetrics = displayMetrics, + displayMetricsProvider = displayMetricsProvider, maxMarginXdp = 8f, maxMarginYdp = 8f, minScale = 0.8f, @@ -51,10 +51,10 @@ fun BackAnimationSpec.Companion.crossTaskForSysUi( * https://carbon.googleplex.com/predictive-back-for-apps/pages/st-3-inner-area-dismiss */ fun BackAnimationSpec.Companion.innerAreaDismissForSysUi( - displayMetrics: DisplayMetrics, + displayMetricsProvider: () -> DisplayMetrics, ): BackAnimationSpec = BackAnimationSpec.createFloatingSurfaceAnimationSpec( - displayMetrics = displayMetrics, + displayMetricsProvider = displayMetricsProvider, maxMarginXdp = 0f, maxMarginYdp = 0f, minScale = 0.9f, @@ -65,10 +65,10 @@ fun BackAnimationSpec.Companion.innerAreaDismissForSysUi( * https://carbon.googleplex.com/predictive-back-for-apps/pages/st-4-floating-system-surfaces */ fun BackAnimationSpec.Companion.floatingSystemSurfacesForSysUi( - displayMetrics: DisplayMetrics, + displayMetricsProvider: () -> DisplayMetrics, ): BackAnimationSpec = BackAnimationSpec.createFloatingSurfaceAnimationSpec( - displayMetrics = displayMetrics, + displayMetricsProvider = displayMetricsProvider, maxMarginXdp = 8f, maxMarginYdp = 8f, minScale = 0.9f, diff --git a/packages/SystemUI/animation/src/com/android/systemui/util/Dialog.kt b/packages/SystemUI/animation/src/com/android/systemui/util/Dialog.kt index 0f63548b6f0c..9dd23289d8b5 100644 --- a/packages/SystemUI/animation/src/com/android/systemui/util/Dialog.kt +++ b/packages/SystemUI/animation/src/com/android/systemui/util/Dialog.kt @@ -39,7 +39,7 @@ fun Dialog.registerAnimationOnBackInvoked( targetView: View, backAnimationSpec: BackAnimationSpec = BackAnimationSpec.floatingSystemSurfacesForSysUi( - displayMetrics = targetView.resources.displayMetrics, + displayMetricsProvider = { targetView.resources.displayMetrics }, ), ) { targetView.registerOnBackInvokedCallbackOnViewAttached( diff --git a/packages/SystemUI/tests/src/com/android/systemui/animation/back/BackAnimationSpecTest.kt b/packages/SystemUI/tests/src/com/android/systemui/animation/back/BackAnimationSpecTest.kt index 58011eb63f69..190babdb22b0 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/animation/back/BackAnimationSpecTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/animation/back/BackAnimationSpecTest.kt @@ -27,7 +27,7 @@ class BackAnimationSpecTest : SysuiTestCase() { val maxY = 14.0f val minScale = 0.9f - val backAnimationSpec = BackAnimationSpec.floatingSystemSurfacesForSysUi(displayMetrics) + val backAnimationSpec = BackAnimationSpec.floatingSystemSurfacesForSysUi { displayMetrics } assertBackTransformation( backAnimationSpec = backAnimationSpec, diff --git a/packages/SystemUI/tests/src/com/android/systemui/animation/back/OnBackAnimationCallbackExtensionTest.kt b/packages/SystemUI/tests/src/com/android/systemui/animation/back/OnBackAnimationCallbackExtensionTest.kt index f5c9befef0ef..314abda66401 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/animation/back/OnBackAnimationCallbackExtensionTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/animation/back/OnBackAnimationCallbackExtensionTest.kt @@ -30,7 +30,7 @@ class OnBackAnimationCallbackExtensionTest : SysuiTestCase() { private val onBackAnimationCallback = onBackAnimationCallbackFrom( - backAnimationSpec = BackAnimationSpec.floatingSystemSurfacesForSysUi(displayMetrics), + backAnimationSpec = BackAnimationSpec.floatingSystemSurfacesForSysUi { displayMetrics }, displayMetrics = displayMetrics, onBackProgressed = onBackProgress, onBackStarted = onBackStart, |