Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82b0e1cc authored by Kweku Adams's avatar Kweku Adams
Browse files

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
parent 6368af8b
Loading
Loading
Loading
Loading
+27 −37
Original line number Diff line number Diff line
@@ -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,56 +572,47 @@ 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();
                writeConstantsToSettings(mJobSchedulerMap,
                        Settings.Global.TARE_JOB_SCHEDULER_CONSTANTS);

                for (int i = 0; i < sizeJS; i++) {
                    if (i > 0) {
                        newConstantsStringBuilder.append(",");
                mJobSchedulerConstants = Settings.Global
                        .getString(mContentResolver, Settings.Global
                                .TARE_JOB_SCHEDULER_CONSTANTS);
                break;
        }

                    String key = mJobSchedulerMap.keyAt(i);
                    newConstantsStringBuilder.append(key + "=" + mJobSchedulerMap.get(key)
                            .currentValue);
    }

                String newJSConstantsString = newConstantsStringBuilder.toString();
    private void writeConstantsToSettings(ArrayMap<String, TareFactorData> factorMap,
            String settingsKey) {
        final StringBuilder constantsStringBuilder = new StringBuilder();

                Settings.Global.putString(mContentResolver, Settings.Global
                                .TARE_JOB_SCHEDULER_CONSTANTS,
                        newJSConstantsString);
        for (int i = 0, size = factorMap.size(); i < size; ++i) {
            final TareFactorData factor = factorMap.valueAt(i);
            if (factor.currentValue == factor.defaultValue) {
                continue;
            }

                mJobSchedulerConstants = Settings.Global
                        .getString(mContentResolver, Settings.Global
                                .TARE_JOB_SCHEDULER_CONSTANTS);
                break;
            if (constantsStringBuilder.length() > 0) {
                constantsStringBuilder.append(",");
            }

            constantsStringBuilder
                    .append(factorMap.keyAt(i))
                    .append("=")
                    .append(factor.currentValue);
        }

        Settings.Global.putString(mContentResolver, settingsKey, constantsStringBuilder.toString());
    }

    /**