Notify all running users of DeviceConfig changes
Test: adb shell pm create-user dude
adb shell am switch-user 10
atest CtsDeviceConfigTestCases
Bug: 133793612
Change-Id: If614c4a6fea92d858994b113fcdf0f537a94a054
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index f7132e3..d07bc32 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -3043,15 +3043,16 @@
// Increment the generation first, so observers always see the new value
mGenerationRegistry.incrementGeneration(key);
- if (isGlobalSettingsKey(key)) {
+ if (isGlobalSettingsKey(key) || isConfigSettingsKey(key)) {
final long token = Binder.clearCallingIdentity();
try {
- if (Global.LOCATION_GLOBAL_KILL_SWITCH.equals(name)) {
+ if (Global.LOCATION_GLOBAL_KILL_SWITCH.equals(name)
+ && isGlobalSettingsKey(key)) {
// When the global kill switch is updated, send the
// change notification for the location setting.
notifyLocationChangeForRunningUsers();
}
- notifyGlobalSettingChangeForRunningUsers(key, name);
+ notifySettingChangeForRunningUsers(key, name);
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -3091,7 +3092,7 @@
}
}
- private void notifyGlobalSettingChangeForRunningUsers(int key, String name) {
+ private void notifySettingChangeForRunningUsers(int key, String name) {
// Important: No need to update generation for each user as there
// is a singleton generation entry for the global settings which
// is already incremented be the caller.