diff options
| author | 2024-07-23 01:38:04 +0000 | |
|---|---|---|
| committer | 2024-07-23 01:38:04 +0000 | |
| commit | 81f30aa714f1c8c6d4ef23de1bfdfc9c6677060b (patch) | |
| tree | d22ade5b16dc295f5dbd1444266caed070966ef2 | |
| parent | e68e2026dddc19e8fefe6a072050c12baff3d963 (diff) | |
| parent | 2fe88b504dd2fa964d1b4968d4e78c916a1487a1 (diff) | |
Merge "Start client only if requested when ensuring activity visibility" into main
| -rw-r--r-- | services/core/java/com/android/server/wm/EnsureActivitiesVisibleHelper.java | 2 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/TaskTests.java | 9 |
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 |