Reset the frozen recents list state when switching to button navigation

- A quickswitch will freeze the spatial order of the recents list
  (to allow quickswitching back), but if a nav mode change happens
  immediately after, then the recents list will continue to be
  frozen leaving the list in the wrong order (which can cause a
  flake or failure)

Bug: 298544839
Test: atest NexusLauncherTests:com.android.quickstep.TaplTestsQuickstep
Change-Id: Iabac305ea12cf4a2eb704802a315b6feba49f88a
This commit is contained in:
Winson Chung
2023-09-09 16:44:18 +00:00
parent e6747e4caa
commit 8bbfc2b667
@@ -26,7 +26,10 @@ import static com.android.systemui.shared.system.QuickStepContract.NAV_BAR_MODE_
import android.content.Context;
import android.content.pm.PackageManager;
import android.graphics.Point;
import android.os.SystemClock;
import android.util.Log;
import android.view.MotionEvent;
import androidx.test.uiautomator.UiDevice;
@@ -115,6 +118,18 @@ public class NavigationModeSwitchRule implements TestRule {
private void evaluateWithThreeButtons() throws Throwable {
if (setActiveOverlay(mLauncher, NAV_BAR_MODE_3BUTTON_OVERLAY,
LauncherInstrumentation.NavigationModel.THREE_BUTTON, description)) {
// After switching to three button, ensure that we interact with the screen
// within the app area to reset the frozen recents state (if a quickswitch
// was just performed), otherwise the list may be in the wrong order
// spatially when executing the next test
final Point center = new Point(mLauncher.getDevice().getDisplayWidth() / 2,
mLauncher.getDevice().getDisplayHeight() / 2);
final long clickTime = SystemClock.uptimeMillis();
mLauncher.sendPointer(clickTime, clickTime, MotionEvent.ACTION_DOWN, center,
LauncherInstrumentation.GestureScope.DONT_EXPECT_PILFER);
mLauncher.sendPointer(clickTime, clickTime, MotionEvent.ACTION_UP, center,
LauncherInstrumentation.GestureScope.DONT_EXPECT_PILFER);
base.evaluate();
}
}