Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7c575599 authored by Jon Miranda's avatar Jon Miranda
Browse files

Gates blur code behind BlurUtils#supportsBlursOnWindows.

This "fixes" the bug where wallpaper zoom does not reset to 0 when
screen turns off since we no longer require a valid surface to set the depth
when blur is disabled.

Note that the bug still exists when blur is enabled, which will need to be
fixed in a follow up CL.

Bug: 157946272
Change-Id: I43179435885c95eb2ecf406fa5c291badf5a1ed3
parent 368621a4
Loading
Loading
Loading
Loading
+21 −17
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import com.android.launcher3.Utilities;
import com.android.launcher3.anim.PendingAnimation;
import com.android.launcher3.statemanager.StateManager.StateHandler;
import com.android.launcher3.states.StateAnimationConfig;
import com.android.systemui.shared.system.BlurUtils;
import com.android.systemui.shared.system.RemoteAnimationTargetCompat;
import com.android.systemui.shared.system.SurfaceControlCompat;
import com.android.systemui.shared.system.TransactionCompat;
@@ -110,6 +111,10 @@ public class DepthController implements StateHandler<LauncherState> {
    }

    private void ensureDependencies() {
        if (mWallpaperManager == null) {
            mMaxBlurRadius = mLauncher.getResources().getInteger(R.integer.max_depth_blur_radius);
            mWallpaperManager = new WallpaperManagerCompat(mLauncher);
        }
        if (mLauncher.getRootView() != null && mOnAttachListener == null) {
            mOnAttachListener = new View.OnAttachStateChangeListener() {
                @Override
@@ -127,11 +132,6 @@ public class DepthController implements StateHandler<LauncherState> {
            };
            mLauncher.getRootView().addOnAttachStateChangeListener(mOnAttachListener);
        }
        if (mWallpaperManager != null) {
            return;
        }
        mMaxBlurRadius = mLauncher.getResources().getInteger(R.integer.max_depth_blur_radius);
        mWallpaperManager = new WallpaperManagerCompat(mLauncher);
    }

    /**
@@ -205,7 +205,8 @@ public class DepthController implements StateHandler<LauncherState> {
            return;
        }

        if (mSurface == null || !mSurface.isValid()) {
        boolean supportsBlur = BlurUtils.supportsBlursOnWindows();
        if (supportsBlur && (mSurface == null || !mSurface.isValid())) {
            return;
        }
        mDepth = depthF;
@@ -214,6 +215,8 @@ public class DepthController implements StateHandler<LauncherState> {
        if (windowToken != null) {
            mWallpaperManager.setWallpaperZoomOut(windowToken, mDepth);
        }

        if (supportsBlur) {
            final int blur;
            if (mLauncher.isInState(LauncherState.ALL_APPS) && mDepth == 1) {
                // All apps has a solid background. We don't need to draw blurs after it's fully
@@ -228,3 +231,4 @@ public class DepthController implements StateHandler<LauncherState> {
                    .apply();
        }
    }
}