Merge "Revert "Revert^2 "Cancel gestures on launcher destroy""" into tm-qpr-dev
diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
index deeb027..e3427b7 100644
--- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
+++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
@@ -51,7 +51,6 @@
import static com.android.quickstep.MultiStateCallback.DEBUG_STATES;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.CANCEL_RECENTS_ANIMATION;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.EXPECTING_TASK_APPEARED;
-import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.LAUNCHER_DESTROYED;
import static com.android.quickstep.util.ActiveGestureErrorDetector.GestureEvent.ON_SETTLED_ON_END_TARGET;
import static com.android.quickstep.views.RecentsView.UPDATE_SYSUI_FLAGS_THRESHOLD;
import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_RECENTS;
@@ -183,7 +182,6 @@
if (mActivity != activity) {
return;
}
- handleActivityDestroyed();
mRecentsView = null;
mActivity = null;
}
@@ -464,7 +462,6 @@
if (mStateCallback.hasStates(STATE_HANDLER_INVALIDATED)) {
return false;
}
- mStateCallback.resumeCallbacks();
T createdActivity = mActivityInterface.getCreatedActivity();
if (createdActivity != null) {
@@ -534,15 +531,6 @@
return true;
}
- private void handleActivityDestroyed() {
- ActiveGestureLog.INSTANCE.addLog("Launcher activity destroyed", LAUNCHER_DESTROYED);
- if (mActivityInterface.shouldCancelGestureOnDestroy()) {
- onGestureCancelled();
- } else {
- mStateCallback.pauseCallbacks();
- }
- }
-
/**
* Return true if the window should be translated horizontally if the recents view scrolls
*/
diff --git a/quickstep/src/com/android/quickstep/BaseActivityInterface.java b/quickstep/src/com/android/quickstep/BaseActivityInterface.java
index 22eaa97..274b686 100644
--- a/quickstep/src/com/android/quickstep/BaseActivityInterface.java
+++ b/quickstep/src/com/android/quickstep/BaseActivityInterface.java
@@ -123,14 +123,6 @@
public abstract AnimationFactory prepareRecentsUI(RecentsAnimationDeviceState deviceState,
boolean activityVisible, Consumer<AnimatorControllerWithResistance> callback);
- /**
- * Returns {@code true} iff an ongoing navigational gesture should be cancelled on activity
- * destroy. Otherwise, the MultiStateCallbacks will be paused until the activity is recreated.
- */
- public boolean shouldCancelGestureOnDestroy() {
- return true;
- }
-
public abstract ActivityInitListener createActivityInitListener(
Predicate<Boolean> onInitListener);
diff --git a/quickstep/src/com/android/quickstep/FallbackActivityInterface.java b/quickstep/src/com/android/quickstep/FallbackActivityInterface.java
index 4cb4665..ae9fb0b 100644
--- a/quickstep/src/com/android/quickstep/FallbackActivityInterface.java
+++ b/quickstep/src/com/android/quickstep/FallbackActivityInterface.java
@@ -88,11 +88,6 @@
}
@Override
- public boolean shouldCancelGestureOnDestroy() {
- return false;
- }
-
- @Override
public ActivityInitListener createActivityInitListener(
Predicate<Boolean> onInitListener) {
return new ActivityInitListener<>((activity, alreadyOnHome) ->
diff --git a/quickstep/src/com/android/quickstep/MultiStateCallback.java b/quickstep/src/com/android/quickstep/MultiStateCallback.java
index 6d767ed..a68bea2 100644
--- a/quickstep/src/com/android/quickstep/MultiStateCallback.java
+++ b/quickstep/src/com/android/quickstep/MultiStateCallback.java
@@ -31,7 +31,6 @@
import java.util.ArrayList;
import java.util.LinkedList;
-import java.util.List;
import java.util.StringJoiner;
import java.util.function.Consumer;
@@ -53,9 +52,6 @@
private int mState = 0;
- private boolean mCallbacksPaused = false;
- private final List<Runnable> mPendingCallbacks = new ArrayList<>();
-
public MultiStateCallback(String[] stateNames) {
this(stateNames, stateFlag -> null);
}
@@ -82,24 +78,6 @@
}
}
- /** Pauses callbacks. */
- public void pauseCallbacks() {
- mCallbacksPaused = true;
- }
-
- /** Immediately queues any callbacks that were pending paused. */
- public void resumeCallbacks() {
- if (!mCallbacksPaused) {
- return;
- }
- mCallbacksPaused = false;
- List<Runnable> queuedCallbacks = new ArrayList<>(mPendingCallbacks);
- mPendingCallbacks.clear();
- for (Runnable runnable : queuedCallbacks) {
- runnable.run();
- }
- }
-
/**
* Adds the provided state flags to the global state and executes any callbacks as a result.
*/
@@ -121,12 +99,7 @@
if ((mState & state) == state) {
LinkedList<Runnable> callbacks = mCallbacks.valueAt(i);
while (!callbacks.isEmpty()) {
- Runnable cb = callbacks.pollFirst();
- if (mCallbacksPaused) {
- mPendingCallbacks.add(cb);
- } else {
- cb.run();
- }
+ callbacks.pollFirst().run();
}
}
}
@@ -178,11 +151,7 @@
if (wasOn != isOn) {
ArrayList<Consumer<Boolean>> listeners = mStateChangeListeners.valueAt(i);
for (Consumer<Boolean> listener : listeners) {
- if (mCallbacksPaused) {
- mPendingCallbacks.add(() -> listener.accept(isOn));
- } else {
- listener.accept(isOn);
- }
+ listener.accept(isOn);
}
}
}
diff --git a/quickstep/src/com/android/quickstep/util/ActiveGestureErrorDetector.java b/quickstep/src/com/android/quickstep/util/ActiveGestureErrorDetector.java
index 0fdd8b5..60065fb 100644
--- a/quickstep/src/com/android/quickstep/util/ActiveGestureErrorDetector.java
+++ b/quickstep/src/com/android/quickstep/util/ActiveGestureErrorDetector.java
@@ -37,7 +37,7 @@
ON_SETTLED_ON_END_TARGET, START_RECENTS_ANIMATION, FINISH_RECENTS_ANIMATION,
CANCEL_RECENTS_ANIMATION, SET_ON_PAGE_TRANSITION_END_CALLBACK, CANCEL_CURRENT_ANIMATION,
CLEANUP_SCREENSHOT, SCROLLER_ANIMATION_ABORTED, TASK_APPEARED, EXPECTING_TASK_APPEARED,
- FLAG_USING_OTHER_ACTIVITY_INPUT_CONSUMER, LAUNCHER_DESTROYED,
+ FLAG_USING_OTHER_ACTIVITY_INPUT_CONSUMER,
/**
* These GestureEvents are specifically associated to state flags that get set in
@@ -162,13 +162,6 @@
+ "before/without setting end target to new task",
writer);
break;
- case LAUNCHER_DESTROYED:
- errorDetected |= printErrorIfTrue(
- true,
- prefix,
- /* errorMessage= */ "Launcher destroyed mid-gesture",
- writer);
- break;
case STATE_GESTURE_COMPLETED:
errorDetected |= printErrorIfTrue(
!encounteredEvents.contains(GestureEvent.MOTION_UP),
diff --git a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java
index a4dbf6a..62d46d3 100644
--- a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java
+++ b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java
@@ -32,6 +32,8 @@
import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
import static com.android.launcher3.util.rule.ShellCommandRule.disableHeadsUpNotification;
import static com.android.launcher3.util.rule.ShellCommandRule.getLauncherCommand;
+import static com.android.launcher3.util.rule.TestStabilityRule.LOCAL;
+import static com.android.launcher3.util.rule.TestStabilityRule.PLATFORM_POSTSUBMIT;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -59,6 +61,7 @@
import com.android.launcher3.util.rule.FailureWatcher;
import com.android.launcher3.util.rule.SamplerRule;
import com.android.launcher3.util.rule.ScreenRecordRule;
+import com.android.launcher3.util.rule.TestStabilityRule;
import com.android.quickstep.views.RecentsView;
import org.junit.After;
@@ -168,6 +171,7 @@
// b/143488140
//@NavigationModeSwitch
+ @TestStabilityRule.Stability(flavors = LOCAL | PLATFORM_POSTSUBMIT) // b/266606727
@Test
public void goToOverviewFromHome() {
mDevice.pressHome();
@@ -215,6 +219,7 @@
// b/143488140
//@NavigationModeSwitch
+ @TestStabilityRule.Stability(flavors = LOCAL | PLATFORM_POSTSUBMIT) // b/266606727
@Test
public void testOverview() {
startAppFast(getAppPackageName());