Merge "Fix depth jumping around during transitions." into ub-launcher3-rvc-dev
diff --git a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java
index 8292a92..fcffaed 100644
--- a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java
+++ b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java
@@ -102,11 +102,30 @@
*/
private float mDepth;
+ private View.OnAttachStateChangeListener mOnAttachListener;
+
public DepthController(Launcher l) {
mLauncher = l;
}
private void ensureDependencies() {
+ if (mLauncher.getRootView() != null && mOnAttachListener == null) {
+ mOnAttachListener = new View.OnAttachStateChangeListener() {
+ @Override
+ public void onViewAttachedToWindow(View view) {
+ // To handle the case where window token is invalid during last setDepth call.
+ IBinder windowToken = mLauncher.getRootView().getWindowToken();
+ if (windowToken != null) {
+ mWallpaperManager.setWallpaperZoomOut(windowToken, mDepth);
+ }
+ }
+
+ @Override
+ public void onViewDetachedFromWindow(View view) {
+ }
+ };
+ mLauncher.getRootView().addOnAttachStateChangeListener(mOnAttachListener);
+ }
if (mWallpaperManager != null) {
return;
}
@@ -184,10 +203,10 @@
return;
}
- mDepth = depthF;
if (mSurface == null || !mSurface.isValid()) {
return;
}
+ mDepth = depthF;
ensureDependencies();
IBinder windowToken = mLauncher.getRootView().getWindowToken();
if (windowToken != null) {