summaryrefslogtreecommitdiff
path: root/quickstep/src/com/android/launcher3/statehandlers/DepthController.java
diff options
context:
space:
mode:
authorLucas Dupin <dupin@google.com>2021-07-20 14:13:50 -0700
committerLucas Dupin <dupin@google.com>2021-07-20 14:14:50 -0700
commitee9099af7f8671bcd85dc65d42feb551f65e6573 (patch)
treee54cf4f8f07c45fc194b1110a796b29fe553651d /quickstep/src/com/android/launcher3/statehandlers/DepthController.java
parentc3f56d7628343d0299ff5cadb1baeac9c0dccebe (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.java32
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