diff options
| author | 2021-07-08 02:18:20 +0000 | |
|---|---|---|
| committer | 2021-07-08 02:18:20 +0000 | |
| commit | 4c09aa412b65d14efb2b02e3f13af18f8b5b4150 (patch) | |
| tree | 6e60ebe126570b0cd65153e4c91bd552319e1d97 | |
| parent | bc807558ce856c140029dff947889253f3bd3687 (diff) | |
| parent | d9c20d2b639bfd39d7ed61738852a97b8bd75907 (diff) | |
Merge "Fix ui_mode change have not schedule configuration change to client" into sc-dev
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowProcessController.java | 4 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/WindowProcessControllerTests.java | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/WindowProcessController.java b/services/core/java/com/android/server/wm/WindowProcessController.java index 1c57aef8a5af..1364c72e6275 100644 --- a/services/core/java/com/android/server/wm/WindowProcessController.java +++ b/services/core/java/com/android/server/wm/WindowProcessController.java @@ -812,7 +812,9 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio void updateNightModeForAllActivities(int nightMode) { for (int i = mActivities.size() - 1; i >= 0; --i) { final ActivityRecord r = mActivities.get(i); - r.setOverrideNightMode(nightMode); + if (r.setOverrideNightMode(nightMode) && r.mVisibleRequested) { + r.ensureActivityConfiguration(0 /* globalChanges */, true /* preserveWindow */); + } } } diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowProcessControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowProcessControllerTests.java index f848ce5e5579..ed18d26f8448 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WindowProcessControllerTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/WindowProcessControllerTests.java @@ -28,6 +28,8 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; @@ -360,6 +362,15 @@ public class WindowProcessControllerTests extends WindowTestsBase { } @Test + public void testTopActivityUiModeChangeScheduleConfigChange() { + final ActivityRecord activity = createActivityRecord(mWpc); + activity.mVisibleRequested = true; + doReturn(true).when(activity).setOverrideNightMode(anyInt()); + mWpc.updateNightModeForAllActivities(Configuration.UI_MODE_NIGHT_YES); + verify(activity).ensureActivityConfiguration(anyInt(), anyBoolean()); + } + + @Test public void testTopActivityDisplayAreaMatchesTopMostActivity_noActivities() { assertNull(mWpc.getTopActivityDisplayArea()); } |