diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/HighRefreshRateBlacklist.java | 6 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/HighRefreshRateBlacklistTest.java | 17 |
2 files changed, 21 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/HighRefreshRateBlacklist.java b/services/core/java/com/android/server/wm/HighRefreshRateBlacklist.java index 29b6bc479f72..d9cf637ffaf8 100644 --- a/services/core/java/com/android/server/wm/HighRefreshRateBlacklist.java +++ b/services/core/java/com/android/server/wm/HighRefreshRateBlacklist.java @@ -105,8 +105,10 @@ class HighRefreshRateBlacklist { private class OnPropertiesChangedListener implements DeviceConfig.OnPropertiesChangedListener { public void onPropertiesChanged(@NonNull DeviceConfig.Properties properties) { - updateBlacklist( - properties.getString(KEY_HIGH_REFRESH_RATE_BLACKLIST, null /*default*/)); + if (properties.getKeyset().contains(KEY_HIGH_REFRESH_RATE_BLACKLIST)) { + updateBlacklist( + properties.getString(KEY_HIGH_REFRESH_RATE_BLACKLIST, null /*default*/)); + } } } } diff --git a/services/tests/wmtests/src/com/android/server/wm/HighRefreshRateBlacklistTest.java b/services/tests/wmtests/src/com/android/server/wm/HighRefreshRateBlacklistTest.java index 5fb6f45b400e..56cb447e65b0 100644 --- a/services/tests/wmtests/src/com/android/server/wm/HighRefreshRateBlacklistTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/HighRefreshRateBlacklistTest.java @@ -120,6 +120,23 @@ public class HighRefreshRateBlacklistTest { assertFalse(mBlacklist.isBlacklisted(APP3)); } + @Test + public void testOverriddenByDeviceConfigUnrelatedFlagChanged() { + final Resources r = createResources(APP1); + final FakeDeviceConfig config = new FakeDeviceConfig(); + mBlacklist = new HighRefreshRateBlacklist(r, config); + config.setBlacklist(APP2 + "," + APP3); + assertFalse(mBlacklist.isBlacklisted(APP1)); + assertTrue(mBlacklist.isBlacklisted(APP2)); + assertTrue(mBlacklist.isBlacklisted(APP3)); + + // Change an unrelated flag in our namespace and verify that the blacklist is intact + config.putPropertyAndNotify(DeviceConfig.NAMESPACE_DISPLAY_MANAGER, "someKey", "someValue"); + assertFalse(mBlacklist.isBlacklisted(APP1)); + assertTrue(mBlacklist.isBlacklisted(APP2)); + assertTrue(mBlacklist.isBlacklisted(APP3)); + } + private Resources createResources(String... defaultBlacklist) { Resources r = mock(Resources.class); when(r.getStringArray(R.array.config_highRefreshRateBlacklist)) |