summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/HighRefreshRateBlacklist.java6
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/HighRefreshRateBlacklistTest.java17
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))