summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/EnsureActivitiesVisibleHelper.java2
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/TaskTests.java9
2 files changed, 10 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/EnsureActivitiesVisibleHelper.java b/services/core/java/com/android/server/wm/EnsureActivitiesVisibleHelper.java
index 3123018e9e88..63af5c60b8d3 100644
--- a/services/core/java/com/android/server/wm/EnsureActivitiesVisibleHelper.java
+++ b/services/core/java/com/android/server/wm/EnsureActivitiesVisibleHelper.java
@@ -240,7 +240,7 @@ class EnsureActivitiesVisibleHelper {
}
r.setVisibility(true);
}
- if (r != starting) {
+ if (r != starting && mNotifyClients) {
mTaskFragment.mTaskSupervisor.startSpecificActivity(r, andResume,
true /* checkConfig */);
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java
index 0bf850afb30b..a1ac02a21e35 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java
@@ -390,6 +390,15 @@ public class TaskTests extends WindowTestsBase {
rootTask.ensureActivitiesVisible(null /* starting */);
assertTrue(activity1.isVisible());
assertTrue(activity2.isVisible());
+
+ // If notifyClients is false, it should only update the state without starting the client.
+ activity1.setVisible(false);
+ activity1.setVisibleRequested(false);
+ activity1.detachFromProcess();
+ rootTask.ensureActivitiesVisible(null /* starting */, false /* notifyClients */);
+ verify(mSupervisor, never()).startSpecificActivity(eq(activity1),
+ anyBoolean() /* andResume */, anyBoolean() /* checkConfig */);
+ assertTrue(activity1.isVisibleRequested());
}
@Test