diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index 726ba58ca1..f8cfe173ec 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -981,11 +981,14 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener depthController.setSurface(dimLayer); backgroundRadiusAnim.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animation) { + depthController.setIsInLaunchTransition(true); + } + @Override public void onAnimationEnd(Animator animation) { - // Reset depth at the end of the launch animation, so the wallpaper won't be - // zoomed out if an app crashes. - DEPTH.setValue(depthController, 0f); + depthController.setIsInLaunchTransition(false); depthController.setSurface(null); if (dimLayer != null) { new SurfaceControl.Transaction() diff --git a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java index 4503e308e6..bb8b62db71 100644 --- a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java +++ b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java @@ -24,6 +24,7 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.os.IBinder; +import android.os.SystemProperties; import android.util.FloatProperty; import android.view.CrossWindowBlurListeners; import android.view.SurfaceControl; @@ -117,6 +118,10 @@ public class DepthController implements StateHandler, * @see android.service.wallpaper.WallpaperService.Engine#onZoomChanged(float) */ private float mDepth; + /** + * If we're launching and app and should not be blurring the screen for performance reasons. + */ + private boolean mBlurDisabledForAppLaunch; // Workaround for animating the depth when multiwindow mode changes. private boolean mIgnoreStateChangesDuringMultiWindowAnimation = false; @@ -211,6 +216,19 @@ public class DepthController implements StateHandler, } } + /** + * If we're launching an app from the home screen. + */ + public void setIsInLaunchTransition(boolean inLaunchTransition) { + boolean blurEnabled = SystemProperties.getBoolean("ro.launcher.blur.appLaunch", true); + mBlurDisabledForAppLaunch = inLaunchTransition && !blurEnabled; + if (!inLaunchTransition) { + // Reset depth at the end of the launch animation, so the wallpaper won't be + // zoomed out if an app crashes. + setDepth(0f); + } + } + private void setDepth(float depth) { depth = Utilities.boundToRange(depth, 0, 1); // Round out the depth to dedupe frequent, non-perceptable updates @@ -238,7 +256,7 @@ public class DepthController implements StateHandler, boolean opaque = mLauncher.getScrimView().isFullyOpaque() && !isOverview; int blur = opaque || isOverview || !mCrossWindowBlursEnabled - ? 0 : (int) (mDepth * mMaxBlurRadius); + || mBlurDisabledForAppLaunch ? 0 : (int) (mDepth * mMaxBlurRadius); new SurfaceControl.Transaction() .setBackgroundBlurRadius(mSurface, blur) .setOpaque(mSurface, opaque) diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java b/quickstep/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java index 01c9e765a8..fe5a3475ff 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/states/BackgroundAppState.java @@ -19,7 +19,6 @@ import static com.android.launcher3.logging.StatsLogManager.LAUNCHER_STATE_BACKG import android.content.Context; import android.graphics.Color; -import android.os.SystemProperties; import com.android.launcher3.BaseDraggingActivity; import com.android.launcher3.DeviceProfile; @@ -85,8 +84,7 @@ public class BackgroundAppState extends OverviewState { @Override protected float getDepthUnchecked(Context context) { - //TODO revert when b/178661709 is fixed - return SystemProperties.getBoolean("ro.launcher.depth.appLaunch", true) ? 1 : 0; + return 1; } @Override