diff options
author | Lucas Dupin <dupin@google.com> | 2021-07-20 14:13:50 -0700 |
---|---|---|
committer | Lucas Dupin <dupin@google.com> | 2021-07-20 14:14:50 -0700 |
commit | ee9099af7f8671bcd85dc65d42feb551f65e6573 (patch) | |
tree | e54cf4f8f07c45fc194b1110a796b29fe553651d /quickstep/src/com/android/launcher3/statehandlers/DepthController.java | |
parent | c3f56d7628343d0299ff5cadb1baeac9c0dccebe (diff) |
Revert "Apply depth even when surface is null"
This reverts commit a6c38be150681f537ef316a56867387309861768.
Fixes: 193333562
Test: manual
Change-Id: I4fae079e0cd056fc800e5a15389f4795c77e17fb
Diffstat (limited to 'quickstep/src/com/android/launcher3/statehandlers/DepthController.java')
-rw-r--r-- | quickstep/src/com/android/launcher3/statehandlers/DepthController.java | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java index 82582ee790..370fb8ef7c 100644 --- a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java +++ b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java @@ -100,9 +100,12 @@ public class DepthController implements StateHandler<LauncherState>, } }; - private final Consumer<Boolean> mCrossWindowBlurListener = (enabled) -> { - mCrossWindowBlursEnabled = enabled; - dispatchTransactionSurface(); + private final Consumer<Boolean> mCrossWindowBlurListener = new Consumer<Boolean>() { + @Override + public void accept(Boolean enabled) { + mCrossWindowBlursEnabled = enabled; + dispatchTransactionSurface(mDepth); + } }; private final Launcher mLauncher; @@ -189,14 +192,14 @@ public class DepthController implements StateHandler<LauncherState>, if (mSurface != surface) { mSurface = surface; if (surface != null) { - dispatchTransactionSurface(); + dispatchTransactionSurface(mDepth); } } } @Override public void setState(LauncherState toState) { - if (mIgnoreStateChangesDuringMultiWindowAnimation) { + if (mSurface == null || mIgnoreStateChangesDuringMultiWindowAnimation) { return; } @@ -204,7 +207,7 @@ public class DepthController implements StateHandler<LauncherState>, if (Float.compare(mDepth, toDepth) != 0) { setDepth(toDepth); } else if (toState == LauncherState.OVERVIEW) { - dispatchTransactionSurface(); + dispatchTransactionSurface(mDepth); } } @@ -243,31 +246,36 @@ public class DepthController implements StateHandler<LauncherState>, if (Float.compare(mDepth, depthF) == 0) { return; } - mDepth = depthF; - dispatchTransactionSurface(); + if (dispatchTransactionSurface(depthF)) { + mDepth = depthF; + } } - private void dispatchTransactionSurface() { + private boolean dispatchTransactionSurface(float depth) { boolean supportsBlur = BlurUtils.supportsBlursOnWindows(); + if (supportsBlur && (mSurface == null || !mSurface.isValid())) { + return false; + } ensureDependencies(); IBinder windowToken = mLauncher.getRootView().getWindowToken(); if (windowToken != null) { - mWallpaperManager.setWallpaperZoomOut(windowToken, mDepth); + mWallpaperManager.setWallpaperZoomOut(windowToken, depth); } - if (supportsBlur && (mSurface != null && mSurface.isValid())) { + if (supportsBlur) { // We cannot mark the window as opaque in overview because there will be an app window // below the launcher layer, and we need to draw it -- without blurs. boolean isOverview = mLauncher.isInState(LauncherState.OVERVIEW); boolean opaque = mLauncher.getScrimView().isFullyOpaque() && !isOverview; int blur = opaque || isOverview || !mCrossWindowBlursEnabled - || mBlurDisabledForAppLaunch ? 0 : (int) (mDepth * mMaxBlurRadius); + || mBlurDisabledForAppLaunch ? 0 : (int) (depth * mMaxBlurRadius); new SurfaceControl.Transaction() .setBackgroundBlurRadius(mSurface, blur) .setOpaque(mSurface, opaque) .apply(); } + return true; } @Override |