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
This commit is contained in:
Kweku Adams
2022-02-16 17:33:32 +00:00
parent 6368af8bdf
commit 82b0e1ccdb

View File

@@ -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<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.
*