diff options
| author | 2023-01-18 17:37:33 +0000 | |
|---|---|---|
| committer | 2023-01-18 17:38:37 +0000 | |
| commit | 3f4c07ee1bdfc4bd22f79b32928760ae4e592f27 (patch) | |
| tree | 9a0d980ad397a396aec5849b8b975f57eac18f2a | |
| parent | aa7ac3c9b2695ccf8cbc18e6be2b6bb86954c031 (diff) | |
Revert "Revert "[Unfold animation] Do not show dark vignette whe..."
Revert submission 21035043-revert-21009614-fold-no-vignette-SFIOYBEEIO
Reason for revert: Updated flag id
Reverted changes: /q/submissionid:21035043-revert-21009614-fold-no-vignette-SFIOYBEEIO
Change-Id: I4c92de8ed0512857542a37582789f008a63e4c81
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/flags/Flags.kt | 7 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/unfold/UnfoldLightRevealOverlayAnimation.kt | 39 |
2 files changed, 40 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt index 432fae124c9b..0c3b0c86202f 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt @@ -530,6 +530,13 @@ object Flags { val OUTPUT_SWITCHER_SHOW_API_ENABLED = unreleasedFlag(2503, "output_switcher_show_api_enabled", teamfood = true) + // 2700 - unfold transitions + // TODO(b/265764985): Tracking Bug + @Keep + @JvmField + val ENABLE_DARK_VIGNETTE_WHEN_FOLDING = + unreleasedFlag(2700, "enable_dark_vignette_when_folding") + // TODO(b259590361): Tracking bug val EXPERIMENTAL_FLAG = unreleasedFlag(2, "exp_flag_release") } diff --git a/packages/SystemUI/src/com/android/systemui/unfold/UnfoldLightRevealOverlayAnimation.kt b/packages/SystemUI/src/com/android/systemui/unfold/UnfoldLightRevealOverlayAnimation.kt index 523cf68891a0..0069bb545ef4 100644 --- a/packages/SystemUI/src/com/android/systemui/unfold/UnfoldLightRevealOverlayAnimation.kt +++ b/packages/SystemUI/src/com/android/systemui/unfold/UnfoldLightRevealOverlayAnimation.kt @@ -36,6 +36,8 @@ import android.view.SurfaceSession import android.view.WindowManager import android.view.WindowlessWindowManager import com.android.systemui.dagger.qualifiers.Main +import com.android.systemui.flags.FeatureFlags +import com.android.systemui.flags.Flags import com.android.systemui.statusbar.LightRevealEffect import com.android.systemui.statusbar.LightRevealScrim import com.android.systemui.statusbar.LinearLightRevealEffect @@ -57,6 +59,7 @@ class UnfoldLightRevealOverlayAnimation @Inject constructor( private val context: Context, + private val featureFlags: FeatureFlags, private val deviceStateManager: DeviceStateManager, private val contentResolver: ContentResolver, private val displayManager: DisplayManager, @@ -81,6 +84,7 @@ constructor( private var scrimView: LightRevealScrim? = null private var isFolded: Boolean = false private var isUnfoldHandled: Boolean = true + private var overlayAddReason: AddOverlayReason? = null private var currentRotation: Int = context.display!!.rotation @@ -158,6 +162,8 @@ constructor( ensureInBackground() ensureOverlayRemoved() + overlayAddReason = reason + val newRoot = SurfaceControlViewHost(context, context.display!!, wwm) val params = getLayoutParams() val newView = @@ -170,11 +176,7 @@ constructor( .apply { revealEffect = createLightRevealEffect() isScrimOpaqueChangedListener = Consumer {} - revealAmount = - when (reason) { - FOLD -> TRANSPARENT - UNFOLD -> BLACK - } + revealAmount = calculateRevealAmount() } newRoot.setView(newView, params) @@ -207,6 +209,31 @@ constructor( root = newRoot } + private fun calculateRevealAmount(animationProgress: Float? = null): Float { + val overlayAddReason = overlayAddReason ?: UNFOLD + + if (animationProgress == null) { + // Animation progress is unknown, calculate the initial value based on the overlay + // add reason + return when (overlayAddReason) { + FOLD -> TRANSPARENT + UNFOLD -> BLACK + } + } + + val showVignetteWhenFolding = + featureFlags.isEnabled(Flags.ENABLE_DARK_VIGNETTE_WHEN_FOLDING) + + return if (!showVignetteWhenFolding && overlayAddReason == FOLD) { + // Do not darken the content when SHOW_VIGNETTE_WHEN_FOLDING flag is off + // and we are folding the device. We still add the overlay to block touches + // while the animation is running but the overlay is transparent. + TRANSPARENT + } else { + animationProgress + } + } + private fun getLayoutParams(): WindowManager.LayoutParams { val params: WindowManager.LayoutParams = WindowManager.LayoutParams() @@ -259,7 +286,7 @@ constructor( private inner class TransitionListener : TransitionProgressListener { override fun onTransitionProgress(progress: Float) { - executeInBackground { scrimView?.revealAmount = progress } + executeInBackground { scrimView?.revealAmount = calculateRevealAmount(progress) } } override fun onTransitionFinished() { |