Merge "Request early wake-up when zooming" into sc-v2-dev am: d9713b2665
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15388815 Change-Id: I0ec30f36671e829d02685a7ef76150356f946725
This commit is contained in:
@@ -125,6 +125,10 @@ public class DepthController implements StateHandler<LauncherState>,
|
|||||||
* If we're launching and app and should not be blurring the screen for performance reasons.
|
* If we're launching and app and should not be blurring the screen for performance reasons.
|
||||||
*/
|
*/
|
||||||
private boolean mBlurDisabledForAppLaunch;
|
private boolean mBlurDisabledForAppLaunch;
|
||||||
|
/**
|
||||||
|
* If we requested early wake-up offsets to SurfaceFlinger.
|
||||||
|
*/
|
||||||
|
private boolean mInEarlyWakeUp;
|
||||||
|
|
||||||
// Workaround for animating the depth when multiwindow mode changes.
|
// Workaround for animating the depth when multiwindow mode changes.
|
||||||
private boolean mIgnoreStateChangesDuringMultiWindowAnimation = false;
|
private boolean mIgnoreStateChangesDuringMultiWindowAnimation = false;
|
||||||
@@ -270,10 +274,21 @@ public class DepthController implements StateHandler<LauncherState>,
|
|||||||
|
|
||||||
int blur = opaque || isOverview || !mCrossWindowBlursEnabled
|
int blur = opaque || isOverview || !mCrossWindowBlursEnabled
|
||||||
|| mBlurDisabledForAppLaunch ? 0 : (int) (depth * mMaxBlurRadius);
|
|| mBlurDisabledForAppLaunch ? 0 : (int) (depth * mMaxBlurRadius);
|
||||||
new SurfaceControl.Transaction()
|
SurfaceControl.Transaction transaction = new SurfaceControl.Transaction()
|
||||||
.setBackgroundBlurRadius(mSurface, blur)
|
.setBackgroundBlurRadius(mSurface, blur)
|
||||||
.setOpaque(mSurface, opaque)
|
.setOpaque(mSurface, opaque);
|
||||||
.apply();
|
|
||||||
|
// Set early wake-up flags when we know we're executing an expensive operation, this way
|
||||||
|
// SurfaceFlinger will adjust its internal offsets to avoid jank.
|
||||||
|
boolean wantsEarlyWakeUp = depth > 0 && depth < 1;
|
||||||
|
if (wantsEarlyWakeUp && !mInEarlyWakeUp) {
|
||||||
|
transaction.setEarlyWakeupStart();
|
||||||
|
mInEarlyWakeUp = true;
|
||||||
|
} else if (!wantsEarlyWakeUp && mInEarlyWakeUp) {
|
||||||
|
transaction.setEarlyWakeupEnd();
|
||||||
|
mInEarlyWakeUp = false;
|
||||||
|
}
|
||||||
|
transaction.apply();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user