diff options
-rw-r--r-- | quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java | 4 | ||||
-rw-r--r-- | quickstep/tests/src/com/android/quickstep/InputConsumerUtilsTest.java | 12 |
2 files changed, 16 insertions, 0 deletions
diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java index 6710096688..9bf63a0ce7 100644 --- a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java +++ b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java @@ -18,6 +18,7 @@ package com.android.quickstep; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.view.Display.DEFAULT_DISPLAY; +import static android.app.ActivityTaskManager.INVALID_TASK_ID; import static com.android.launcher3.MotionEventsUtils.isTrackpadScroll; import static com.android.launcher3.util.DisplayController.CHANGE_ALL; @@ -342,6 +343,9 @@ public class RecentsAnimationDeviceState implements DisplayInfoChangeListener, E * @return whether the given running task info matches the gesture-blocked task. */ public boolean isGestureBlockedTask(CachedTaskInfo taskInfo) { + if (mGestureBlockingTaskId == INVALID_TASK_ID) { + return false; + } if (com.android.wm.shell.Flags.enableShellTopTaskTracking()) { return taskInfo != null && taskInfo.topGroupedTaskContainsTask(mGestureBlockingTaskId); } else { diff --git a/quickstep/tests/src/com/android/quickstep/InputConsumerUtilsTest.java b/quickstep/tests/src/com/android/quickstep/InputConsumerUtilsTest.java index 1464ca8432..655560c0a6 100644 --- a/quickstep/tests/src/com/android/quickstep/InputConsumerUtilsTest.java +++ b/quickstep/tests/src/com/android/quickstep/InputConsumerUtilsTest.java @@ -22,9 +22,11 @@ import static com.android.quickstep.InputConsumerUtils.newConsumer; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import static org.mockito.kotlin.StubberKt.doCallRealMethod; import android.annotation.NonNull; import android.os.Looper; @@ -306,6 +308,16 @@ public class InputConsumerUtilsTest { } @Test + public void testNewBaseConsumer_noGestureBlockedTask_returnsOtherActivityInputConsumer() { + doCallRealMethod().when(mDeviceState).setGestureBlockingTaskId(anyInt()); + mDeviceState.setGestureBlockingTaskId(-1); + when(mDeviceState.isGestureBlockedTask(any())).thenCallRealMethod(); + + assertCorrectInputConsumer(this::createBaseInputConsumer, OtherActivityInputConsumer.class, + InputConsumer.TYPE_OTHER_ACTIVITY); + } + + @Test public void testNewBaseConsumer_containsOtherActivityInputConsumer() { assertCorrectInputConsumer( this::createBaseInputConsumer, |