diff options
author | Tracy Zhou <tracyzhou@google.com> | 2019-08-19 22:42:32 -0700 |
---|---|---|
committer | Tracy Zhou <tracyzhou@google.com> | 2019-09-16 20:52:35 +0000 |
commit | 6b272369e7ff4fd5ccacc1a1054990347940cfab (patch) | |
tree | 4dc6b3f4cd4d4acd4522b5d646e78664d4ce1a9a | |
parent | b1ccbd9def7c1baa92ffb8a5d16ec623bb6acd5d (diff) | |
download | android_packages_apps_Trebuchet-6b272369e7ff4fd5ccacc1a1054990347940cfab.tar.gz android_packages_apps_Trebuchet-6b272369e7ff4fd5ccacc1a1054990347940cfab.tar.bz2 android_packages_apps_Trebuchet-6b272369e7ff4fd5ccacc1a1054990347940cfab.zip |
Make sure that live tile overlay is added only once.
Users report seeing empty launcher. After adding some logging, live tile
overlay can be added twice and removed only once. I added some logic to
make sure that it can only be added once.
Test: manual
Fixes: 135864059
Change-Id: I9d3325c56e76654f1397cc65979b97a6c0a80aee
(cherry picked from commit d3ef57b4ddb635580fc5898d22b31193894cda60)
(cherry picked from commit 4fa6f63ffd7a5ab230d17e8401d29cae3e5440b8)
-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); |