Merge "Fix split divider flash if swipe again quickly" into tm-qpr-dev am: ade8b9d753

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/19903469

Change-Id: Ic450af25bf003bced928f761e4709f4a8fed5fed
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Tony Huang
2022-09-15 05:03:48 +00:00
committed by Automerger Merge Worker
2 changed files with 7 additions and 12 deletions
@@ -881,11 +881,6 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
// properly cleaned up the screenshot without accidentally using it.
mDeferredCleanupRecentsAnimationController = mRecentsAnimationController;
mStateCallback.setStateOnUiThread(STATE_GESTURE_CANCELLED | STATE_HANDLER_INVALIDATED);
if (mRecentsAnimationTargets != null) {
setDividerShown(true /* shown */, false /* immediate */);
}
// Defer clearing the controller and the targets until after we've updated the state
mRecentsAnimationController = null;
mRecentsAnimationTargets = null;
@@ -1783,10 +1778,6 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
boolean wasVisible = mWasLauncherAlreadyVisible || mGestureStarted;
mActivityInterface.onTransitionCancelled(wasVisible, mGestureState.getEndTarget());
if (mRecentsAnimationTargets != null && wasVisible) {
setDividerShown(true /* shown */, true /* immediate */);
}
// Leave the pending invisible flag, as it may be used by wallpaper open animation.
if (mActivity != null) {
mActivity.clearForceInvisibleFlag(INVISIBLE_BY_STATE_HANDLER);
@@ -672,7 +672,7 @@ public final class TaskViewUtils {
for (int i = 0; i < nonApps.length; ++i) {
final RemoteAnimationTargetCompat targ = nonApps[i];
final SurfaceControl leash = targ.leash;
if (targ.windowType == TYPE_DOCK_DIVIDER && leash != null) {
if (targ.windowType == TYPE_DOCK_DIVIDER && leash != null && leash.isValid()) {
auxiliarySurfaces.add(leash);
hasSurfaceToAnimate = true;
}
@@ -685,7 +685,9 @@ public final class TaskViewUtils {
dockFadeAnimator.addUpdateListener(valueAnimator -> {
float progress = valueAnimator.getAnimatedFraction();
for (SurfaceControl leash : auxiliarySurfaces) {
t.setAlpha(leash, shown ? progress : 1 - progress);
if (leash != null && leash.isValid()) {
t.setAlpha(leash, shown ? progress : 1 - progress);
}
}
t.apply();
});
@@ -706,7 +708,9 @@ public final class TaskViewUtils {
public void onAnimationEnd(Animator animation) {
if (!shown) {
for (SurfaceControl leash : auxiliarySurfaces) {
t.hide(leash);
if (leash != null && leash.isValid()) {
t.hide(leash);
}
}
t.apply();
}