From 82b0e1ccdb8f1fbf1df86704443510062185168c Mon Sep 17 00:00:00 2001 From: Kweku Adams Date: Wed, 16 Feb 2022 17:33:32 +0000 Subject: [PATCH] Simplifying settings string generation. Remove duplicate code for generating the settings constant strings, and make sure not to write redundant data (setting a value to its default). Bug: 158300259 Test: Android builds Change-Id: Id79bae3685bfecb4858574ee38b67b2a554823fe --- .../tare/TareFactorController.java | 64 ++++++++----------- 1 file changed, 27 insertions(+), 37 deletions(-) diff --git a/src/com/android/settings/development/tare/TareFactorController.java b/src/com/android/settings/development/tare/TareFactorController.java index c05abdba6f7..7e9f3149335 100644 --- a/src/com/android/settings/development/tare/TareFactorController.java +++ b/src/com/android/settings/development/tare/TareFactorController.java @@ -565,7 +565,6 @@ public class TareFactorController { } } - /** * Iterates through the factor policy map for keys and current values to * rebuild a current string that is then assigned to be the new global settings string. @@ -573,50 +572,18 @@ public class TareFactorController { * @param factorPolicy policy being updated */ private void rebuildPolicyConstants(int factorPolicy) { - StringBuilder newConstantsStringBuilder = new StringBuilder(); - switch (factorPolicy) { case POLICY_ALARM_MANAGER: - int sizeAM = mAlarmManagerMap.size(); - - for (int i = 0; i < sizeAM; i++) { - if (i > 0) { - newConstantsStringBuilder.append(","); - } - - String key = mAlarmManagerMap.keyAt(i); - newConstantsStringBuilder.append(key + "=" + mAlarmManagerMap.get(key) - .currentValue); - } - - String newAMConstantsString = newConstantsStringBuilder.toString(); - - Settings.Global.putString(mContentResolver, Settings.Global - .TARE_ALARM_MANAGER_CONSTANTS, - newAMConstantsString); + writeConstantsToSettings(mAlarmManagerMap, + Settings.Global.TARE_ALARM_MANAGER_CONSTANTS); mAlarmManagerConstants = Settings.Global .getString(mContentResolver, Settings.Global .TARE_ALARM_MANAGER_CONSTANTS); break; case POLICY_JOB_SCHEDULER: - int sizeJS = mJobSchedulerMap.size(); - - for (int i = 0; i < sizeJS; i++) { - if (i > 0) { - newConstantsStringBuilder.append(","); - } - - String key = mJobSchedulerMap.keyAt(i); - newConstantsStringBuilder.append(key + "=" + mJobSchedulerMap.get(key) - .currentValue); - } - - String newJSConstantsString = newConstantsStringBuilder.toString(); - - Settings.Global.putString(mContentResolver, Settings.Global - .TARE_JOB_SCHEDULER_CONSTANTS, - newJSConstantsString); + writeConstantsToSettings(mJobSchedulerMap, + Settings.Global.TARE_JOB_SCHEDULER_CONSTANTS); mJobSchedulerConstants = Settings.Global .getString(mContentResolver, Settings.Global @@ -625,6 +592,29 @@ public class TareFactorController { } } + private void writeConstantsToSettings(ArrayMap factorMap, + String settingsKey) { + final StringBuilder constantsStringBuilder = new StringBuilder(); + + for (int i = 0, size = factorMap.size(); i < size; ++i) { + final TareFactorData factor = factorMap.valueAt(i); + if (factor.currentValue == factor.defaultValue) { + continue; + } + + if (constantsStringBuilder.length() > 0) { + constantsStringBuilder.append(","); + } + + constantsStringBuilder + .append(factorMap.keyAt(i)) + .append("=") + .append(factor.currentValue); + } + + Settings.Global.putString(mContentResolver, settingsKey, constantsStringBuilder.toString()); + } + /** * Creates a dialog with the values linked to the key. *