summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTracy Zhou <tracyzhou@google.com>2019-08-19 22:42:32 -0700
committerTracy Zhou <tracyzhou@google.com>2019-09-16 20:52:35 +0000
commit6b272369e7ff4fd5ccacc1a1054990347940cfab (patch)
tree4dc6b3f4cd4d4acd4522b5d646e78664d4ce1a9a
parentb1ccbd9def7c1baa92ffb8a5d16ec623bb6acd5d (diff)
downloadandroid_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.java24
-rw-r--r--quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java2
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);