summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mady Mellor <madym@google.com> 2021-04-01 09:49:39 -0700
committer Mady Mellor <madym@google.com> 2021-04-09 13:40:39 -0700
commit64be82e0bc2da9ab8dd83d714df7b5fa46bdd80a (patch)
tree62c3bd9851dada81a1fb7c7e1bfef6b387e56bcc
parent94424ac41b9429b3a9480f40059f4bc68e5f0969 (diff)
Fix bubbles appearing in recent task list
Test: atest RecentTasksTest Test: add bubble, expand it, collapse it, check the activity for it is not in recents. Fixes: 182581373 Change-Id: Iafd1c5204da0858dce44449c3cb208f6c0df16c1
-rw-r--r--services/core/java/com/android/server/wm/RecentTasks.java5
-rw-r--r--services/core/java/com/android/server/wm/Task.java7
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java2
3 files changed, 11 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/RecentTasks.java b/services/core/java/com/android/server/wm/RecentTasks.java
index 20c0d4189ad8..6631a3e61e77 100644
--- a/services/core/java/com/android/server/wm/RecentTasks.java
+++ b/services/core/java/com/android/server/wm/RecentTasks.java
@@ -58,8 +58,6 @@ import android.content.pm.ParceledListSlice;
import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.graphics.Bitmap;
-import android.graphics.Point;
-import android.graphics.Rect;
import android.os.Environment;
import android.os.IBinder;
import android.os.RemoteException;
@@ -1345,6 +1343,7 @@ class RecentTasks {
+ " inactiveDuration=" + task.getInactiveDuration()
+ " activityType=" + task.getActivityType()
+ " windowingMode=" + task.getWindowingMode()
+ + " isAlwaysOnTopWhenVisible=" + task.isAlwaysOnTopWhenVisible()
+ " intentFlags=" + task.getBaseIntent().getFlags());
}
@@ -1380,7 +1379,7 @@ class RecentTasks {
break;
case WINDOWING_MODE_MULTI_WINDOW:
// Ignore tasks that are always on top
- if (task.isAlwaysOnTop()) {
+ if (task.isAlwaysOnTopWhenVisible()) {
return false;
}
break;
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index c293a159ec4b..bd21e9c2b8dd 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -5277,6 +5277,13 @@ class Task extends WindowContainer<WindowContainer> {
}
/**
+ * @return whether this task is always on top without taking visibility into account.
+ */
+ public boolean isAlwaysOnTopWhenVisible() {
+ return super.isAlwaysOnTop();
+ }
+
+ /**
* Returns whether this task is currently forced to be hidden for any reason.
*/
protected boolean isForceHidden() {
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
index 6ffdb099695d..8b812a93d091 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
@@ -34,6 +34,7 @@ import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
+import static com.android.server.wm.Task.FLAG_FORCE_HIDDEN_FOR_TASK_ORG;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;
@@ -754,6 +755,7 @@ public class RecentTasksTest extends WindowTestsBase {
final Task alwaysOnTopTask = taskDisplayArea.createRootTask(WINDOWING_MODE_MULTI_WINDOW,
ACTIVITY_TYPE_STANDARD, true /* onTop */);
alwaysOnTopTask.setAlwaysOnTop(true);
+ alwaysOnTopTask.setForceHidden(FLAG_FORCE_HIDDEN_FOR_TASK_ORG, true);
assertFalse("Always on top tasks should not be visible recents",
mRecentTasks.isVisibleRecentTask(alwaysOnTopTask));