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 commitd3ef57b4dd) (cherry picked from commit4fa6f63ffd)
This commit is contained in:
+20
-4
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user