Loading packages/SettingsProvider/src/com/android/providers/settings/device_config_service.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -81,3 +81,13 @@ flag { purpose: PURPOSE_BUGFIX } } flag { name: "sync_local_overrides_removal_new_storage" namespace: "core_experiments_team_internal" description: "When DeviceConfig overrides are deleted, delete new storage overrides too." bug: "361643653" metadata { purpose: PURPOSE_BUGFIX } } services/core/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -233,6 +233,7 @@ java_library_static { "stats_flags_lib", "core_os_flags_lib", "connectivity_flags_lib", "device_config_service_flags_java", "dreams_flags_lib", "aconfig_new_storage_flags_lib", "powerstats_flags_lib", Loading services/core/java/com/android/server/am/SettingsToPropertiesMapper.java +36 −3 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.util.proto.ProtoInputStream; import android.util.proto.ProtoOutputStream; import com.android.internal.annotations.VisibleForTesting; import com.android.providers.settings.Flags; import android.aconfigd.Aconfigd.StorageRequestMessage; import android.aconfigd.Aconfigd.StorageRequestMessages; Loading @@ -51,6 +52,7 @@ import java.util.HashMap; import java.util.Map; import java.util.List; import java.util.ArrayList; import java.util.Set; import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor; /** Loading Loading @@ -456,6 +458,24 @@ public class SettingsToPropertiesMapper { proto.end(msgsToken); } /** * Send a request to aconfig storage to remove a flag local override. * * @param proto * @param packageName the package of the flag * @param flagName the name of the flag */ static void writeFlagOverrideRemovalRequest( ProtoOutputStream proto, String packageName, String flagName) { long msgsToken = proto.start(StorageRequestMessages.MSGS); long msgToken = proto.start(StorageRequestMessage.REMOVE_LOCAL_OVERRIDE_MESSAGE); proto.write(StorageRequestMessage.RemoveLocalOverrideMessage.PACKAGE_NAME, packageName); proto.write(StorageRequestMessage.RemoveLocalOverrideMessage.FLAG_NAME, flagName); proto.write(StorageRequestMessage.RemoveLocalOverrideMessage.REMOVE_ALL, false); proto.end(msgToken); proto.end(msgsToken); } /** * deserialize a flag input proto stream and log * @param proto Loading Loading @@ -501,9 +521,16 @@ public class SettingsToPropertiesMapper { ProtoOutputStream requests = new ProtoOutputStream(); for (String flagName : props.getKeyset()) { String flagValue = props.getString(flagName, null); if (Flags.syncLocalOverridesRemovalNewStorage()) { if (flagName == null) { continue; } } else { if (flagName == null || flagValue == null) { continue; } } int idx = flagName.indexOf(":"); if (idx == -1 || idx == flagName.length() - 1 || idx == 0) { Loading @@ -519,7 +546,13 @@ public class SettingsToPropertiesMapper { } String packageName = fullFlagName.substring(0, idx); String realFlagName = fullFlagName.substring(idx+1); if (Flags.syncLocalOverridesRemovalNewStorage() && flagValue == null) { writeFlagOverrideRemovalRequest(requests, packageName, realFlagName); } else { writeFlagOverrideRequest(requests, packageName, realFlagName, flagValue, true); } ++num_requests; } Loading Loading
packages/SettingsProvider/src/com/android/providers/settings/device_config_service.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -81,3 +81,13 @@ flag { purpose: PURPOSE_BUGFIX } } flag { name: "sync_local_overrides_removal_new_storage" namespace: "core_experiments_team_internal" description: "When DeviceConfig overrides are deleted, delete new storage overrides too." bug: "361643653" metadata { purpose: PURPOSE_BUGFIX } }
services/core/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -233,6 +233,7 @@ java_library_static { "stats_flags_lib", "core_os_flags_lib", "connectivity_flags_lib", "device_config_service_flags_java", "dreams_flags_lib", "aconfig_new_storage_flags_lib", "powerstats_flags_lib", Loading
services/core/java/com/android/server/am/SettingsToPropertiesMapper.java +36 −3 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.util.proto.ProtoInputStream; import android.util.proto.ProtoOutputStream; import com.android.internal.annotations.VisibleForTesting; import com.android.providers.settings.Flags; import android.aconfigd.Aconfigd.StorageRequestMessage; import android.aconfigd.Aconfigd.StorageRequestMessages; Loading @@ -51,6 +52,7 @@ import java.util.HashMap; import java.util.Map; import java.util.List; import java.util.ArrayList; import java.util.Set; import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor; /** Loading Loading @@ -456,6 +458,24 @@ public class SettingsToPropertiesMapper { proto.end(msgsToken); } /** * Send a request to aconfig storage to remove a flag local override. * * @param proto * @param packageName the package of the flag * @param flagName the name of the flag */ static void writeFlagOverrideRemovalRequest( ProtoOutputStream proto, String packageName, String flagName) { long msgsToken = proto.start(StorageRequestMessages.MSGS); long msgToken = proto.start(StorageRequestMessage.REMOVE_LOCAL_OVERRIDE_MESSAGE); proto.write(StorageRequestMessage.RemoveLocalOverrideMessage.PACKAGE_NAME, packageName); proto.write(StorageRequestMessage.RemoveLocalOverrideMessage.FLAG_NAME, flagName); proto.write(StorageRequestMessage.RemoveLocalOverrideMessage.REMOVE_ALL, false); proto.end(msgToken); proto.end(msgsToken); } /** * deserialize a flag input proto stream and log * @param proto Loading Loading @@ -501,9 +521,16 @@ public class SettingsToPropertiesMapper { ProtoOutputStream requests = new ProtoOutputStream(); for (String flagName : props.getKeyset()) { String flagValue = props.getString(flagName, null); if (Flags.syncLocalOverridesRemovalNewStorage()) { if (flagName == null) { continue; } } else { if (flagName == null || flagValue == null) { continue; } } int idx = flagName.indexOf(":"); if (idx == -1 || idx == flagName.length() - 1 || idx == 0) { Loading @@ -519,7 +546,13 @@ public class SettingsToPropertiesMapper { } String packageName = fullFlagName.substring(0, idx); String realFlagName = fullFlagName.substring(idx+1); if (Flags.syncLocalOverridesRemovalNewStorage() && flagValue == null) { writeFlagOverrideRemovalRequest(requests, packageName, realFlagName); } else { writeFlagOverrideRequest(requests, packageName, realFlagName, flagValue, true); } ++num_requests; } Loading