diff options
-rw-r--r-- | quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java | 24 | ||||
-rw-r--r-- | quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java | 2 |
2 files changed, 21 insertions, 5 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java index 0d29e5df8..a3bd348e2 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java @@ -217,6 +217,7 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity> private AnimationFactory mAnimationFactory = (t) -> { }; private LiveTileOverlay mLiveTileOverlay = new LiveTileOverlay(); + private boolean mLiveTileOverlayAttached = false; private boolean mWasLauncherAlreadyVisible; @@ -323,8 +324,7 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity> mRecentsView = activity.getOverviewPanel(); linkRecentsViewScroll(); - mRecentsView.setLiveTileOverlay(mLiveTileOverlay); - mActivity.getRootView().getOverlay().add(mLiveTileOverlay); + addLiveTileOverlay(); mStateCallback.setState(STATE_LAUNCHER_PRESENT); if (alreadyOnHome) { @@ -972,7 +972,7 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity> @Override public void onAnimationStart(Animator animation) { if (mActivity != null) { - mActivity.getRootView().getOverlay().remove(mLiveTileOverlay); + removeLiveTileOverlay(); } } @@ -1071,7 +1071,7 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity> mRecentsView.onGestureAnimationEnd(); mActivity.getRootView().setOnApplyWindowInsetsListener(null); - mActivity.getRootView().getOverlay().remove(mLiveTileOverlay); + removeLiveTileOverlay(); } private void endLauncherTransitionController() { @@ -1201,6 +1201,22 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity> updateFinalShift(); } + private synchronized void addLiveTileOverlay() { + if (!mLiveTileOverlayAttached) { + mActivity.getRootView().getOverlay().add(mLiveTileOverlay); + mRecentsView.setLiveTileOverlay(mLiveTileOverlay); + mLiveTileOverlayAttached = true; + } + } + + private synchronized void removeLiveTileOverlay() { + if (mLiveTileOverlayAttached) { + mActivity.getRootView().getOverlay().remove(mLiveTileOverlay); + mRecentsView.setLiveTileOverlay(null); + mLiveTileOverlayAttached = false; + } + } + public static float getHiddenTargetAlpha(RemoteAnimationTargetCompat app, float expectedAlpha) { if (!isNotInRecents(app)) { return 0; diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java index 1bf77f53c..3e1d61aca 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java @@ -825,7 +825,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl */ public void onSwipeUpAnimationSuccess() { if (getRunningTaskView() != null) { - float startProgress = ENABLE_QUICKSTEP_LIVE_TILE.get() + float startProgress = ENABLE_QUICKSTEP_LIVE_TILE.get() && mLiveTileOverlay != null ? mLiveTileOverlay.cancelIconAnimation() : 0f; animateUpRunningTaskIconScale(startProgress); |