Merge "Fix ui_mode change have not schedule configuration change to client" into sc-dev am: 4c09aa412b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15183485 Change-Id: I2289b6b36699303dea79b8f68037ad916bd5aa3d
This commit is contained in:
@@ -812,7 +812,9 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio
|
|||||||
void updateNightModeForAllActivities(int nightMode) {
|
void updateNightModeForAllActivities(int nightMode) {
|
||||||
for (int i = mActivities.size() - 1; i >= 0; --i) {
|
for (int i = mActivities.size() - 1; i >= 0; --i) {
|
||||||
final ActivityRecord r = mActivities.get(i);
|
final ActivityRecord r = mActivities.get(i);
|
||||||
r.setOverrideNightMode(nightMode);
|
if (r.setOverrideNightMode(nightMode) && r.mVisibleRequested) {
|
||||||
|
r.ensureActivityConfiguration(0 /* globalChanges */, true /* preserveWindow */);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ import static org.junit.Assert.assertEquals;
|
|||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
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.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
@@ -365,6 +367,15 @@ public class WindowProcessControllerTests extends WindowTestsBase {
|
|||||||
return new ActivityBuilder(mAtm).setCreateTask(true).setUseProcess(wpc).build();
|
return new ActivityBuilder(mAtm).setCreateTask(true).setUseProcess(wpc).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@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
|
@Test
|
||||||
public void testTopActivityDisplayAreaMatchesTopMostActivity_noActivities() {
|
public void testTopActivityDisplayAreaMatchesTopMostActivity_noActivities() {
|
||||||
assertNull(mWpc.getTopActivityDisplayArea());
|
assertNull(mWpc.getTopActivityDisplayArea());
|
||||||
|
|||||||
Reference in New Issue
Block a user