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
diff --git a/src/com/android/settings/development/tare/TareFactorController.java b/src/com/android/settings/development/tare/TareFactorController.java
index c05abdb..7e9f314 100644
--- a/src/com/android/settings/development/tare/TareFactorController.java
+++ b/src/com/android/settings/development/tare/TareFactorController.java
@@ -565,7 +565,6 @@
}
}
-
/**
* 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 @@
* @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 @@
}
}
+ private void writeConstantsToSettings(ArrayMap<String, TareFactorData> 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.
*