summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java4
-rw-r--r--quickstep/tests/src/com/android/quickstep/InputConsumerUtilsTest.java12
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,