diff --git a/src/com/android/settings/development/tare/TareFactorController.java b/src/com/android/settings/development/tare/TareFactorController.java index 95803b57ac5..9dd0fdae81a 100644 --- a/src/com/android/settings/development/tare/TareFactorController.java +++ b/src/com/android/settings/development/tare/TareFactorController.java @@ -34,13 +34,15 @@ import com.android.settings.R; public class TareFactorController { private static final String TAG = "TareFactorController"; + private static final int POLICY_ALARM_MANAGER = 0; + private static final int POLICY_JOB_SCHEDULER = 1; + private final ContentResolver mContentResolver; private final KeyValueListParser mParser = new KeyValueListParser(','); private final Resources mResources; private final ArrayMap mAlarmManagerMap = new ArrayMap<>(); private String mAlarmManagerConstants; - public TareFactorController(Context context) { mContentResolver = context.getContentResolver(); mResources = context.getResources(); @@ -59,140 +61,179 @@ public class TareFactorController { private void initAlarmManagerMap() { mAlarmManagerMap.put(EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_EXEMPTED, new TareFactorData(mResources.getString(R.string.tare_min_satiated_balance), - EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_EXEMPTED)); + EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_EXEMPTED, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP, new TareFactorData(mResources.getString(R.string.tare_headless_app), - EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP)); + EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_OTHER_APP, new TareFactorData(mResources.getString(R.string.tare_other_app), - EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_OTHER_APP)); + EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_OTHER_APP, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_MAX_SATIATED_BALANCE, new TareFactorData(mResources.getString(R.string.tare_max_satiated_balance), - EconomyManager.DEFAULT_AM_MAX_SATIATED_BALANCE)); + EconomyManager.DEFAULT_AM_MAX_SATIATED_BALANCE, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_MAX_CIRCULATION, new TareFactorData(mResources.getString(R.string.tare_max_circulation), - EconomyManager.DEFAULT_AM_MAX_CIRCULATION)); + EconomyManager.DEFAULT_AM_MAX_CIRCULATION, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_INSTANT, new TareFactorData(mResources.getString(R.string.tare_top_activity), - EconomyManager.DEFAULT_AM_REWARD_TOP_ACTIVITY_INSTANT)); + EconomyManager.DEFAULT_AM_REWARD_TOP_ACTIVITY_INSTANT, + POLICY_ALARM_MANAGER)); // TODO: Add support to handle floats // mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_ONGOING, // new TareFactorData(mResources.getString(R.string.tare_top_activity), // EconomyManager.DEFAULT_AM_REWARD_TOP_ACTIVITY_ONGOING)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_MAX, new TareFactorData(mResources.getString(R.string.tare_top_activity), - EconomyManager.DEFAULT_AM_REWARD_TOP_ACTIVITY_MAX)); + EconomyManager.DEFAULT_AM_REWARD_TOP_ACTIVITY_MAX, POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_INSTANT, new TareFactorData(mResources.getString(R.string.tare_notification_seen), - EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_SEEN_INSTANT)); + EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_SEEN_INSTANT, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_ONGOING, new TareFactorData(mResources.getString(R.string.tare_notification_seen), - EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_SEEN_ONGOING)); + EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_SEEN_ONGOING, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_MAX, new TareFactorData(mResources.getString(R.string.tare_notification_seen), - EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_SEEN_MAX)); + EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_SEEN_MAX, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_WITHIN_15_INSTANT, new TareFactorData(mResources.getString(R.string.tare_notification_seen_15_min), - EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_SEEN_WITHIN_15_INSTANT)); + EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_SEEN_WITHIN_15_INSTANT, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_WITHIN_15_ONGOING, new TareFactorData(mResources.getString(R.string.tare_notification_seen_15_min), - EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_SEEN_WITHIN_15_ONGOING)); + EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_SEEN_WITHIN_15_ONGOING, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_WITHIN_15_MAX, new TareFactorData(mResources.getString(R.string.tare_notification_seen_15_min), - EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_SEEN_WITHIN_15_MAX)); + EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_SEEN_WITHIN_15_MAX, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_INTERACTION_INSTANT, new TareFactorData(mResources.getString(R.string.tare_notification_interaction), - EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_INTERACTION_INSTANT)); + EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_INTERACTION_INSTANT, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_INTERACTION_ONGOING, new TareFactorData(mResources.getString(R.string.tare_notification_interaction), - EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_INTERACTION_ONGOING)); + EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_INTERACTION_ONGOING, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_INTERACTION_MAX, new TareFactorData(mResources.getString(R.string.tare_notification_interaction), - EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_INTERACTION_MAX)); + EconomyManager.DEFAULT_AM_REWARD_NOTIFICATION_INTERACTION_MAX, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_WIDGET_INTERACTION_INSTANT, new TareFactorData(mResources.getString(R.string.tare_widget_interaction), - EconomyManager.DEFAULT_AM_REWARD_WIDGET_INTERACTION_INSTANT)); + EconomyManager.DEFAULT_AM_REWARD_WIDGET_INTERACTION_INSTANT, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_WIDGET_INTERACTION_ONGOING, new TareFactorData(mResources.getString(R.string.tare_widget_interaction), - EconomyManager.DEFAULT_AM_REWARD_WIDGET_INTERACTION_ONGOING)); + EconomyManager.DEFAULT_AM_REWARD_WIDGET_INTERACTION_ONGOING, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_WIDGET_INTERACTION_MAX, new TareFactorData(mResources.getString(R.string.tare_widget_interaction), - EconomyManager.DEFAULT_AM_REWARD_WIDGET_INTERACTION_MAX)); + EconomyManager.DEFAULT_AM_REWARD_WIDGET_INTERACTION_MAX, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_OTHER_USER_INTERACTION_INSTANT, new TareFactorData(mResources.getString(R.string.tare_other_interaction), - EconomyManager.DEFAULT_AM_REWARD_OTHER_USER_INTERACTION_INSTANT)); + EconomyManager.DEFAULT_AM_REWARD_OTHER_USER_INTERACTION_INSTANT, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_OTHER_USER_INTERACTION_ONGOING, new TareFactorData(mResources.getString(R.string.tare_other_interaction), - EconomyManager.DEFAULT_AM_REWARD_OTHER_USER_INTERACTION_ONGOING)); + EconomyManager.DEFAULT_AM_REWARD_OTHER_USER_INTERACTION_ONGOING, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_OTHER_USER_INTERACTION_MAX, new TareFactorData(mResources.getString(R.string.tare_other_interaction), - EconomyManager.DEFAULT_AM_REWARD_OTHER_USER_INTERACTION_MAX)); + EconomyManager.DEFAULT_AM_REWARD_OTHER_USER_INTERACTION_MAX, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_CTP, new TareFactorData(mResources.getString(R.string.tare_wakeup_exact_idle), - EconomyManager.DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_CTP)); + EconomyManager.DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_CTP, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_CTP, new TareFactorData(mResources.getString(R.string.tare_wakeup_inexact_idle), EconomyManager - .DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_CTP)); + .DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_CTP, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_EXACT_WAKEUP_CTP, new TareFactorData(mResources.getString(R.string.tare_wakeup_exact), - EconomyManager.DEFAULT_AM_ACTION_ALARM_EXACT_WAKEUP_CTP)); + EconomyManager.DEFAULT_AM_ACTION_ALARM_EXACT_WAKEUP_CTP, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_WAKEUP_CTP, new TareFactorData(mResources.getString(R.string.tare_wakeup_inexact), - EconomyManager.DEFAULT_AM_ACTION_ALARM_INEXACT_WAKEUP_CTP)); + EconomyManager.DEFAULT_AM_ACTION_ALARM_INEXACT_WAKEUP_CTP, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put( EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_NONWAKEUP_CTP, new TareFactorData(mResources.getString(R.string.tare_nonwakeup_exact_idle), EconomyManager - .DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_NONWAKEUP_CTP)); + .DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_NONWAKEUP_CTP, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_EXACT_NONWAKEUP_CTP, new TareFactorData(mResources.getString(R.string.tare_nonwakeup_exact), - EconomyManager.DEFAULT_AM_ACTION_ALARM_EXACT_NONWAKEUP_CTP)); + EconomyManager.DEFAULT_AM_ACTION_ALARM_EXACT_NONWAKEUP_CTP, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put( EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_CTP, new TareFactorData(mResources.getString(R.string.tare_nonwakeup_inexact_idle), EconomyManager - .DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_CTP)); + .DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_CTP, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_NONWAKEUP_CTP, new TareFactorData(mResources.getString(R.string.tare_nonwakeup_inexact), - EconomyManager.DEFAULT_AM_ACTION_ALARM_INEXACT_NONWAKEUP_CTP)); + EconomyManager.DEFAULT_AM_ACTION_ALARM_INEXACT_NONWAKEUP_CTP, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_ALARMCLOCK_CTP, new TareFactorData(mResources.getString(R.string.tare_alarm_clock), - EconomyManager.DEFAULT_AM_ACTION_ALARM_ALARMCLOCK_CTP)); + EconomyManager.DEFAULT_AM_ACTION_ALARM_ALARMCLOCK_CTP, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put( EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_BASE_PRICE, new TareFactorData(mResources.getString(R.string.tare_alarm_clock), EconomyManager - .DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_BASE_PRICE)); + .DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_BASE_PRICE, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put( EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_BASE_PRICE, new TareFactorData(mResources.getString(R.string.tare_alarm_clock), EconomyManager - .DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_BASE_PRICE)); + .DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_BASE_PRICE, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE, new TareFactorData(mResources.getString(R.string.tare_alarm_clock), - EconomyManager.DEFAULT_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE)); + EconomyManager.DEFAULT_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_WAKEUP_BASE_PRICE, new TareFactorData(mResources.getString(R.string.tare_alarm_clock), - EconomyManager.DEFAULT_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE)); + EconomyManager.DEFAULT_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put( EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_NONWAKEUP_BASE_PRICE, new TareFactorData(mResources.getString(R.string.tare_alarm_clock), - EconomyManager.DEFAULT_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE)); + EconomyManager.DEFAULT_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_EXACT_NONWAKEUP_BASE_PRICE, new TareFactorData(mResources.getString(R.string.tare_alarm_clock), - EconomyManager.DEFAULT_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE)); + EconomyManager.DEFAULT_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put( EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_BASE_PRICE, new TareFactorData(mResources.getString(R.string.tare_alarm_clock), EconomyManager - .DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_BASE_PRICE)); + .DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_BASE_PRICE, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_NONWAKEUP_BASE_PRICE, new TareFactorData(mResources.getString(R.string.tare_alarm_clock), - EconomyManager.DEFAULT_AM_ACTION_ALARM_INEXACT_NONWAKEUP_BASE_PRICE)); + EconomyManager.DEFAULT_AM_ACTION_ALARM_INEXACT_NONWAKEUP_BASE_PRICE, + POLICY_ALARM_MANAGER)); mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_ALARMCLOCK_BASE_PRICE, new TareFactorData(mResources.getString(R.string.tare_alarm_clock), - EconomyManager.DEFAULT_AM_ACTION_ALARM_ALARMCLOCK_BASE_PRICE)); + EconomyManager.DEFAULT_AM_ACTION_ALARM_ALARMCLOCK_BASE_PRICE, + POLICY_ALARM_MANAGER)); } /** @@ -213,9 +254,9 @@ public class TareFactorController { } catch (Exception e) { Slog.e(TAG, "Bad value string constants", e); } - int mSize = mParser.size(); + int size = mParser.size(); - for (int i = 0; i < mSize - 1; i++) { + for (int i = 0; i < size - 1; i++) { String key = mParser.keyAt(i); TareFactorData data = mAlarmManagerMap.get(key); data.currentValue = mParser.getInt(key, getDefaultValue(key)); @@ -225,7 +266,7 @@ public class TareFactorController { /** * Takes a key as input and grabs the title linked to it. * - * @param key the key of the factor you want to get the default value of + * @param key the key of the factor you want to get the title of */ private String getTitle(String key) { return mAlarmManagerMap.get(key).title; @@ -240,13 +281,72 @@ public class TareFactorController { return mAlarmManagerMap.get(key).currentValue; } + /** + * Takes a key as input and grabs the factor type linked to it. + * + * @param key the key of the factor you want to get the factor type of + */ + private int getFactorType(String key) { + return mAlarmManagerMap.get(key).factorPolicy; + } + + /** + * Takes a key and edited value as input and assigns the new edited value to be the new current + * value for that factors key. + * + * @param key the key of the factor you want to get the default value of + * @param editedValue the value entered by the user in the dialog + */ + public void updateValue(String key, int editedValue, int factorPolicy) { + switch (factorPolicy) { + case POLICY_ALARM_MANAGER: + mAlarmManagerMap.get(key).currentValue = editedValue; + rebuildAlarmManagerConstants(); + break; + case POLICY_JOB_SCHEDULER: + // TODO: Add JobScheduler + break; + default: + Slog.e(TAG, "Invalid factor policy given"); + break; + } + } + + /** + * Iterates through the AM map for keys and current values to rebuild a current string that is + * then assigned to be the new global settings string. + */ + private void rebuildAlarmManagerConstants() { + StringBuilder newConstantsStringBuilder = new StringBuilder(); + + int size = mAlarmManagerMap.size(); + + for (int i = 0; i < size; i++) { + if (i > 0) { + newConstantsStringBuilder.append(","); + } + + String key = mAlarmManagerMap.keyAt(i); + newConstantsStringBuilder.append(key + "=" + mAlarmManagerMap.get(key).currentValue); + } + + String newConstantsString = newConstantsStringBuilder.toString(); + + Settings.Global.putString(mContentResolver, Settings.Global.TARE_ALARM_MANAGER_CONSTANTS, + newConstantsString); + + mAlarmManagerConstants = Settings.Global + .getString(mContentResolver, Settings.Global.TARE_ALARM_MANAGER_CONSTANTS); + } + /** * Creates a dialog with the values linked to the key. * * @param key the key of the factor you want to get the default value of */ public TareFactorDialogFragment createDialog(String key) { - return new TareFactorDialogFragment(getTitle(key), key, getCurrentValue(key), this); + return new TareFactorDialogFragment(getTitle(key), key, getCurrentValue(key), + getFactorType(key), this); } /** @@ -255,12 +355,14 @@ public class TareFactorController { private static class TareFactorData { public final String title; public final int defaultValue; + public final int factorPolicy; public int currentValue; - TareFactorData(String title, int defaultValue) { + TareFactorData(String title, int defaultValue, int factorPolicy) { this.title = title; this.defaultValue = defaultValue; - currentValue = defaultValue; + this.factorPolicy = factorPolicy; + this.currentValue = defaultValue; } } -} +} \ No newline at end of file diff --git a/src/com/android/settings/development/tare/TareFactorDialogFragment.java b/src/com/android/settings/development/tare/TareFactorDialogFragment.java index 515eb8f0a47..ff7f5f9d0a8 100644 --- a/src/com/android/settings/development/tare/TareFactorDialogFragment.java +++ b/src/com/android/settings/development/tare/TareFactorDialogFragment.java @@ -42,6 +42,7 @@ public class TareFactorDialogFragment extends DialogFragment { private final String mFactorKey; private final String mFactorTitle; private final int mFactorValue; + private final int mFactorPolicy; private int mFactorEditedValue; private EditText mFactorValueView; @@ -53,10 +54,11 @@ public class TareFactorDialogFragment extends DialogFragment { * @param defaultValue the initial value set for the Factor before any changes */ public TareFactorDialogFragment(@NonNull String title, @NonNull String key, int defaultValue, - TareFactorController tareFactorController) { + int factorPolicy, TareFactorController tareFactorController) { mFactorTitle = title; mFactorKey = key; mFactorValue = defaultValue; + mFactorPolicy = factorPolicy; mTareFactorController = tareFactorController; } @@ -84,7 +86,8 @@ public class TareFactorDialogFragment extends DialogFragment { Log.e(TAG, "Error converting '" + stringValue + "' to integer. Using " + mFactorValue + " instead", e); } - // TODO: Update csv with new factor value + mTareFactorController.updateValue(mFactorKey, mFactorEditedValue, + mFactorPolicy); }) .setNegativeButton(android.R.string.cancel, (dialog, which) -> { // When the negative button is clicked do nothing