[coastguard skipped] Merge sparse cherrypicks from sparse-10685236-L90500000962658543 into udc-release. COASTGUARD_SKIP: Ic437ff4d19cbd5764635f3007d99880622150f5b COASTGUARD_SKIP: Ia7407f60bc7a1dd82f6af03f5c9f44e2f2f41108 Change-Id: I08eccc28fdf4aaa3cb2dd4203909d294bc049451
diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java index 3139e4d..2f13c5d 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java
@@ -472,10 +472,6 @@ public void onDestroy() { mAppTransitionManager.onActivityDestroyed(); if (mUnfoldTransitionProgressProvider != null) { - if (FeatureFlags.RECEIVE_UNFOLD_EVENTS_FROM_SYSUI.get()) { - SystemUiProxy.INSTANCE.get(this).setUnfoldAnimationListener(null); - } - mUnfoldTransitionProgressProvider.destroy(); }
diff --git a/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java b/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java index e0b5272..6d15e8b 100644 --- a/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java +++ b/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java
@@ -60,8 +60,6 @@ private final NaturalRotationUnfoldProgressProvider mNaturalOrientationProgressProvider; private final UnfoldMoveFromCenterHotseatAnimator mUnfoldMoveFromCenterHotseatAnimator; private final UnfoldMoveFromCenterWorkspaceAnimator mUnfoldMoveFromCenterWorkspaceAnimator; - private final TransitionStatusProvider mExternalTransitionStatusProvider = - new TransitionStatusProvider(); private PreemptiveUnfoldTransitionProgressProvider mPreemptiveProgressProvider = null; private Boolean mIsTablet = null; @@ -90,8 +88,6 @@ unfoldTransitionProgressProvider); } - unfoldTransitionProgressProvider.addCallback(mExternalTransitionStatusProvider); - mUnfoldMoveFromCenterHotseatAnimator = new UnfoldMoveFromCenterHotseatAnimator(launcher, windowManager, rotationChangeProvider); mUnfoldMoveFromCenterWorkspaceAnimator = new UnfoldMoveFromCenterWorkspaceAnimator(launcher, @@ -170,26 +166,11 @@ } if (mIsTablet != null && dp.isTablet != mIsTablet) { - // We should preemptively start the animation only if: - // - We changed to the unfolded screen - // - SystemUI IPC connection is alive, so we won't end up in a situation that we won't - // receive transition progress events from SystemUI later because there was no - // IPC connection established (e.g. because of SystemUI crash) - // - SystemUI has not already sent unfold animation progress events. This might happen - // if Launcher was not open during unfold, in this case we receive the configuration - // change only after we went back to home screen and we don't want to start the - // animation in this case. - if (dp.isTablet - && SystemUiProxy.INSTANCE.get(mLauncher).isActive() - && !mExternalTransitionStatusProvider.hasRun()) { + if (dp.isTablet && SystemUiProxy.INSTANCE.get(mLauncher).isActive()) { // Preemptively start the unfold animation to make sure that we have drawn // the first frame of the animation before the screen gets unblocked preemptivelyStartAnimationOnNextFrame(); } - - if (!dp.isTablet) { - mExternalTransitionStatusProvider.onFolded(); - } } mIsTablet = dp.isTablet; @@ -241,48 +222,4 @@ HOTSEAT_SCALE_PROPERTY.setValue(mLauncher.getHotseat(), value); } } - - /** - * Class to track the current status of the external transition provider (the events are coming - * from the SystemUI side through IPC), it allows to check if the transition has already - * finished or currently running on the SystemUI side since last unfold. - */ - private static class TransitionStatusProvider implements TransitionProgressListener { - - private boolean mHasRun = false; - - @Override - public void onTransitionStarted() { - markAsRun(); - } - - @Override - public void onTransitionProgress(float progress) { - markAsRun(); - } - - @Override - public void onTransitionFinished() { - markAsRun(); - } - - /** - * Called when the device is folded, so we can reset the status of the animation - */ - public void onFolded() { - mHasRun = false; - } - - /** - * Returns true if there was an animation already (or it is currently running) after - * unfolding the device - */ - public boolean hasRun() { - return mHasRun; - } - - private void markAsRun() { - mHasRun = true; - } - } }
diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java index 76574b6..b255ea8 100644 --- a/src/com/android/launcher3/config/FeatureFlags.java +++ b/src/com/android/launcher3/config/FeatureFlags.java
@@ -302,7 +302,7 @@ "Enable widget transition animation when resizing the widgets"); public static final BooleanFlag PREEMPTIVE_UNFOLD_ANIMATION_START = getDebugFlag(270397209, - "PREEMPTIVE_UNFOLD_ANIMATION_START", ENABLED, + "PREEMPTIVE_UNFOLD_ANIMATION_START", DISABLED, "Enables starting the unfold animation preemptively when unfolding, without" + "waiting for SystemUI and then merging the SystemUI progress whenever we " + "start receiving the events");