Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 93c3855a authored by Linus Tufvesson's avatar Linus Tufvesson
Browse files

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
parent 80b53bd6
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -3043,15 +3043,16 @@ public class SettingsProvider extends ContentProvider {
            // 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 @@ public class SettingsProvider extends ContentProvider {
            }
        }

        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.