diff options
| -rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java | 18 | ||||
| -rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/device_config_service.aconfig | 11 |
2 files changed, 29 insertions, 0 deletions
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index e8ef620d6c0c..ba59ce81d362 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -3264,6 +3264,24 @@ public class SettingsProvider extends ContentProvider { if (forceNotify || success) { notifyForSettingsChange(key, name); + + // If this is an aconfig flag, it will be written as a staged flag. + // Notify that its staged flag value will be updated. + if (Flags.notifyIndividualAconfigSyspropChanged() && type == SETTINGS_TYPE_CONFIG) { + int slashIndex = name.indexOf('/'); + boolean validSlashIndex = slashIndex != -1 + && slashIndex != 0 + && slashIndex != name.length(); + if (validSlashIndex) { + String namespace = name.substring(0, slashIndex); + String flagName = name.substring(slashIndex + 1); + if (settingsState.getAconfigDefaultFlags().containsKey(flagName)) { + String stagedName = "staged/" + namespace + "*" + flagName; + notifyForSettingsChange(key, stagedName); + } + } + } + if (wasUnsetNonPredefinedSetting) { // Increment the generation number for all non-predefined, unset settings, // because a new non-predefined setting has been inserted diff --git a/packages/SettingsProvider/src/com/android/providers/settings/device_config_service.aconfig b/packages/SettingsProvider/src/com/android/providers/settings/device_config_service.aconfig index 4f5955b1c6ca..f53dec6dc713 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/device_config_service.aconfig +++ b/packages/SettingsProvider/src/com/android/providers/settings/device_config_service.aconfig @@ -52,3 +52,14 @@ flag { purpose: PURPOSE_BUGFIX } } + +flag { + name: "notify_individual_aconfig_sysprop_changed" + namespace: "core_experiments_team_internal" + description: "When enabled, propagate individual aconfig sys props on flag stage." + bug: "331963764" + is_fixed_read_only: true + metadata { + purpose: PURPOSE_BUGFIX + } +} |