Add JobScheduler support in factor controller

Initializes the JobScheduler constants string in Global Settings and
takes it through the parsing of creating a map with the key:value pairs
linked to the JobScheduler policy. Also changes the way the getter
methods work to take a factor policy so we can know what policy to
change.

Bug: 195056296
Bug: 195056102
Bug: 195055895

Test: Manual
Change-Id: Id82101b2a045dd14bb8eacfbe51c363b4bafb1ce
This commit is contained in:
Joshua
2021-08-11 22:20:48 +00:00
parent 347f58ad6e
commit 76ca8923ab

View File

@@ -41,7 +41,9 @@ public class TareFactorController {
private final KeyValueListParser mParser = new KeyValueListParser(','); private final KeyValueListParser mParser = new KeyValueListParser(',');
private final Resources mResources; private final Resources mResources;
private final ArrayMap<String, TareFactorData> mAlarmManagerMap = new ArrayMap<>(); private final ArrayMap<String, TareFactorData> mAlarmManagerMap = new ArrayMap<>();
private final ArrayMap<String, TareFactorData> mJobSchedulerMap = new ArrayMap<>();
private String mAlarmManagerConstants; private String mAlarmManagerConstants;
private String mJobSchedulerConstants;
public TareFactorController(Context context) { public TareFactorController(Context context) {
mContentResolver = context.getContentResolver(); mContentResolver = context.getContentResolver();
@@ -50,13 +52,19 @@ public class TareFactorController {
mAlarmManagerConstants = Settings.Global mAlarmManagerConstants = Settings.Global
.getString(mContentResolver, Settings.Global.TARE_ALARM_MANAGER_CONSTANTS); .getString(mContentResolver, Settings.Global.TARE_ALARM_MANAGER_CONSTANTS);
mJobSchedulerConstants = Settings.Global
.getString(mContentResolver, Settings.Global.TARE_JOB_SCHEDULER_CONSTANTS);
initAlarmManagerMap(); initAlarmManagerMap();
parseAlarmManagerGlobalSettings(); parseAlarmManagerGlobalSettings();
initJobSchedulerMap();
parseJobSchedulerGlobalSettings();
} }
/** /**
* Initialization for AlarmManager Map that sets a AM factor key to a default value and title * Initialization for AlarmManager Map that sets a AM factor key to a title, default value, and
* in the form of a string. * policy type in a data object.
*/ */
private void initAlarmManagerMap() { private void initAlarmManagerMap() {
mAlarmManagerMap.put(EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_EXEMPTED, mAlarmManagerMap.put(EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_EXEMPTED,
@@ -237,12 +245,206 @@ public class TareFactorController {
} }
/** /**
* Takes a key as input and grabs the default value linked to it. * Initialization for JobScheduler Map that sets a JS factor key to a title, default value, and
* policy type in a data object.
*/
private void initJobSchedulerMap() {
mJobSchedulerMap.put(EconomyManager.KEY_JS_MIN_SATIATED_BALANCE_EXEMPTED,
new TareFactorData(mResources.getString(R.string.tare_min_satiated_balance),
EconomyManager.DEFAULT_JS_MIN_SATIATED_BALANCE_EXEMPTED,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP,
new TareFactorData(mResources.getString(R.string.tare_headless_app),
EconomyManager.DEFAULT_JS_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_MIN_SATIATED_BALANCE_OTHER_APP,
new TareFactorData(mResources.getString(R.string.tare_other_app),
EconomyManager.DEFAULT_JS_MIN_SATIATED_BALANCE_OTHER_APP,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_MAX_SATIATED_BALANCE,
new TareFactorData(mResources.getString(R.string.tare_max_satiated_balance),
EconomyManager.DEFAULT_JS_MAX_SATIATED_BALANCE,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_MAX_CIRCULATION,
new TareFactorData(mResources.getString(R.string.tare_max_circulation),
EconomyManager.DEFAULT_JS_MAX_CIRCULATION,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_TOP_ACTIVITY_INSTANT,
new TareFactorData(mResources.getString(R.string.tare_top_activity),
EconomyManager.DEFAULT_JS_REWARD_TOP_ACTIVITY_INSTANT,
POLICY_JOB_SCHEDULER));
// TODO: Add support to handle floats
// mAlarmManagerMap.put(EconomyManager.KEY_JS_REWARD_TOP_ACTIVITY_ONGOING,
// new TareFactorData(mResources.getString(R.string.tare_top_activity),
// EconomyManager.DEFAULT_JS_REWARD_TOP_ACTIVITY_ONGOING));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_TOP_ACTIVITY_MAX,
new TareFactorData(mResources.getString(R.string.tare_top_activity),
EconomyManager.DEFAULT_JS_REWARD_TOP_ACTIVITY_MAX, POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_NOTIFICATION_SEEN_INSTANT,
new TareFactorData(mResources.getString(R.string.tare_notification_seen),
EconomyManager.DEFAULT_JS_REWARD_NOTIFICATION_SEEN_INSTANT,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_NOTIFICATION_SEEN_ONGOING,
new TareFactorData(mResources.getString(R.string.tare_notification_seen),
EconomyManager.DEFAULT_JS_REWARD_NOTIFICATION_SEEN_ONGOING,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_NOTIFICATION_SEEN_MAX,
new TareFactorData(mResources.getString(R.string.tare_notification_seen),
EconomyManager.DEFAULT_JS_REWARD_NOTIFICATION_SEEN_MAX,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_NOTIFICATION_INTERACTION_INSTANT,
new TareFactorData(mResources.getString(R.string.tare_notification_interaction),
EconomyManager.DEFAULT_JS_REWARD_NOTIFICATION_INTERACTION_INSTANT,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_NOTIFICATION_INTERACTION_ONGOING,
new TareFactorData(mResources.getString(R.string.tare_notification_interaction),
EconomyManager.DEFAULT_JS_REWARD_NOTIFICATION_INTERACTION_ONGOING,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_NOTIFICATION_INTERACTION_MAX,
new TareFactorData(mResources.getString(R.string.tare_notification_interaction),
EconomyManager.DEFAULT_JS_REWARD_NOTIFICATION_INTERACTION_MAX,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_WIDGET_INTERACTION_INSTANT,
new TareFactorData(mResources.getString(R.string.tare_widget_interaction),
EconomyManager.DEFAULT_JS_REWARD_WIDGET_INTERACTION_INSTANT,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_WIDGET_INTERACTION_ONGOING,
new TareFactorData(mResources.getString(R.string.tare_widget_interaction),
EconomyManager.DEFAULT_JS_REWARD_WIDGET_INTERACTION_ONGOING,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_WIDGET_INTERACTION_MAX,
new TareFactorData(mResources.getString(R.string.tare_widget_interaction),
EconomyManager.DEFAULT_JS_REWARD_WIDGET_INTERACTION_MAX,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_OTHER_USER_INTERACTION_INSTANT,
new TareFactorData(mResources.getString(R.string.tare_other_interaction),
EconomyManager.DEFAULT_JS_REWARD_OTHER_USER_INTERACTION_INSTANT,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_OTHER_USER_INTERACTION_ONGOING,
new TareFactorData(mResources.getString(R.string.tare_other_interaction),
EconomyManager.DEFAULT_JS_REWARD_OTHER_USER_INTERACTION_ONGOING,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_OTHER_USER_INTERACTION_MAX,
new TareFactorData(mResources.getString(R.string.tare_other_interaction),
EconomyManager.DEFAULT_JS_REWARD_OTHER_USER_INTERACTION_MAX,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_MAX_START_CTP,
new TareFactorData(mResources.getString(R.string.tare_job_max_start),
EconomyManager.DEFAULT_JS_ACTION_JOB_MAX_START_CTP,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_MAX_RUNNING_CTP,
new TareFactorData(mResources.getString(R.string.tare_job_max_running),
EconomyManager.DEFAULT_JS_ACTION_JOB_MAX_RUNNING_CTP,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_HIGH_START_CTP,
new TareFactorData(mResources.getString(R.string.tare_job_high_start),
EconomyManager.DEFAULT_JS_ACTION_JOB_HIGH_START_CTP,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_HIGH_RUNNING_CTP,
new TareFactorData(mResources.getString(R.string.tare_job_high_running),
EconomyManager.DEFAULT_JS_ACTION_JOB_HIGH_RUNNING_CTP,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_DEFAULT_START_CTP,
new TareFactorData(mResources.getString(R.string.tare_job_default_start),
EconomyManager.DEFAULT_JS_ACTION_JOB_DEFAULT_START_CTP,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_DEFAULT_RUNNING_CTP,
new TareFactorData(mResources.getString(R.string.tare_job_default_running),
EconomyManager.DEFAULT_JS_ACTION_JOB_DEFAULT_RUNNING_CTP,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_LOW_START_CTP,
new TareFactorData(mResources.getString(R.string.tare_job_low_start),
EconomyManager.DEFAULT_JS_ACTION_JOB_LOW_START_CTP,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(
EconomyManager.KEY_JS_ACTION_JOB_LOW_RUNNING_CTP,
new TareFactorData(mResources.getString(R.string.tare_job_low_running),
EconomyManager.DEFAULT_JS_ACTION_JOB_LOW_RUNNING_CTP,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_MIN_START_CTP,
new TareFactorData(mResources.getString(R.string.tare_job_min_start),
EconomyManager.DEFAULT_JS_ACTION_JOB_MIN_START_CTP,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(
EconomyManager.KEY_JS_ACTION_JOB_MIN_RUNNING_CTP,
new TareFactorData(mResources.getString(R.string.tare_job_min_running),
EconomyManager.DEFAULT_JS_ACTION_JOB_MIN_RUNNING_CTP,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_TIMEOUT_PENALTY_CTP,
new TareFactorData(mResources.getString(R.string.tare_job_timeout_penalty),
EconomyManager.DEFAULT_JS_ACTION_JOB_TIMEOUT_PENALTY_CTP,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_MAX_START_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_job_max_start),
EconomyManager.DEFAULT_JS_ACTION_JOB_MAX_START_BASE_PRICE,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(
EconomyManager.KEY_JS_ACTION_JOB_MAX_RUNNING_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_job_max_running),
EconomyManager.DEFAULT_JS_ACTION_JOB_MAX_RUNNING_BASE_PRICE,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(
EconomyManager.KEY_JS_ACTION_JOB_HIGH_START_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_job_high_start),
EconomyManager.DEFAULT_JS_ACTION_JOB_HIGH_START_BASE_PRICE,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_HIGH_RUNNING_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_job_high_running),
EconomyManager.DEFAULT_JS_ACTION_JOB_HIGH_RUNNING_BASE_PRICE,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_DEFAULT_START_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_job_default_start),
EconomyManager.DEFAULT_JS_ACTION_JOB_DEFAULT_START_BASE_PRICE,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(
EconomyManager.KEY_JS_ACTION_JOB_DEFAULT_RUNNING_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_job_default_running),
EconomyManager.DEFAULT_JS_ACTION_JOB_DEFAULT_RUNNING_BASE_PRICE,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_LOW_START_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_job_low_start),
EconomyManager.DEFAULT_JS_ACTION_JOB_LOW_START_BASE_PRICE,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(
EconomyManager.KEY_JS_ACTION_JOB_LOW_RUNNING_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_job_low_running),
EconomyManager
.DEFAULT_JS_ACTION_JOB_LOW_RUNNING_BASE_PRICE,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_MIN_START_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_job_min_start),
EconomyManager.DEFAULT_JS_ACTION_JOB_MIN_START_BASE_PRICE,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_MIN_RUNNING_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_job_min_running),
EconomyManager.DEFAULT_JS_ACTION_JOB_MIN_RUNNING_BASE_PRICE,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_ACTION_JOB_TIMEOUT_PENALTY_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_job_timeout_penalty),
EconomyManager.DEFAULT_JS_ACTION_JOB_TIMEOUT_PENALTY_BASE_PRICE,
POLICY_JOB_SCHEDULER));
}
/**
* Takes a key and factor policy as input and grabs the default value 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 default value of
* @param factorPolicy the policy you want the default value of
*/ */
private int getDefaultValue(String key) { private int getDefaultValue(String key, int factorPolicy) {
return mAlarmManagerMap.get(key).defaultValue; ArrayMap<String, TareFactorData> currentMap;
switch (factorPolicy) {
case POLICY_ALARM_MANAGER:
currentMap = mAlarmManagerMap;
break;
case POLICY_JOB_SCHEDULER:
currentMap = mJobSchedulerMap;
break;
default:
throw new IllegalArgumentException("Invalid factor policy given");
}
return currentMap.get(key).defaultValue;
} }
/** /**
@@ -259,26 +461,68 @@ public class TareFactorController {
for (int i = 0; i < size - 1; i++) { for (int i = 0; i < size - 1; i++) {
String key = mParser.keyAt(i); String key = mParser.keyAt(i);
TareFactorData data = mAlarmManagerMap.get(key); TareFactorData data = mAlarmManagerMap.get(key);
data.currentValue = mParser.getInt(key, getDefaultValue(key)); data.currentValue = mParser.getInt(key, getDefaultValue(key, getFactorType(key)));
} }
} }
/** /**
* Takes a key as input and grabs the title linked to it. * Parses the JS constant from Settings.Global to get to the current value.
*
* @param key the key of the factor you want to get the title of
*/ */
private String getTitle(String key) { private void parseJobSchedulerGlobalSettings() {
return mAlarmManagerMap.get(key).title; try {
mParser.setString(mJobSchedulerConstants);
} catch (Exception e) {
Slog.e(TAG, "Bad value string constants", e);
}
int size = mParser.size();
for (int i = 0; i < size - 1; i++) {
String key = mParser.keyAt(i);
TareFactorData data = mJobSchedulerMap.get(key);
data.currentValue = mParser.getInt(key, getDefaultValue(key, getFactorType(key)));
}
} }
/** /**
* Takes a key as input and grabs the current value linked to it. * Takes a key and factor policy as input and grabs the title linked to it.
*
* @param key the key of the factor you want to get the title of
* @param factorPolicy the policy you want the title of
*/
private String getTitle(String key, int factorPolicy) {
ArrayMap<String, TareFactorData> currentMap;
switch (factorPolicy) {
case POLICY_ALARM_MANAGER:
currentMap = mAlarmManagerMap;
break;
case POLICY_JOB_SCHEDULER:
currentMap = mJobSchedulerMap;
break;
default:
throw new IllegalArgumentException("Invalid factor policy given");
}
return currentMap.get(key).title;
}
/**
* Takes a key and factor policy as input and grabs the current value 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 default value of
* @param factorPolicy the policy you want the current value of
*/ */
private int getCurrentValue(String key) { private int getCurrentValue(String key, int factorPolicy) {
return mAlarmManagerMap.get(key).currentValue; ArrayMap<String, TareFactorData> currentMap;
switch (factorPolicy) {
case POLICY_ALARM_MANAGER:
currentMap = mAlarmManagerMap;
break;
case POLICY_JOB_SCHEDULER:
currentMap = mJobSchedulerMap;
break;
default:
throw new IllegalArgumentException("Invalid factor policy given");
}
return currentMap.get(key).currentValue;
} }
/** /**
@@ -287,56 +531,98 @@ public class TareFactorController {
* @param key the key of the factor you want to get the factor type of * @param key the key of the factor you want to get the factor type of
*/ */
private int getFactorType(String key) { private int getFactorType(String key) {
return mAlarmManagerMap.get(key).factorPolicy; ArrayMap<String, TareFactorData> currentMap;
if (mAlarmManagerMap.containsKey(key)) {
currentMap = mAlarmManagerMap;
} else if (mJobSchedulerMap.containsKey(key)) {
currentMap = mJobSchedulerMap;
} else {
throw new IllegalArgumentException("Couldn't link key to policy map");
}
return currentMap.get(key).factorPolicy;
} }
/** /**
* Takes a key and edited value as input and assigns the new edited value to be the new current * Takes a key,edited value, and factor policy as input and assigns the new edited value to
* value for that factors key. * 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 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 * @param editedValue the value entered by the user in the dialog
* @param factorPolicy policy being updated
*/ */
public void updateValue(String key, int editedValue, int factorPolicy) { public void updateValue(String key, int editedValue, int factorPolicy) {
switch (factorPolicy) { switch (factorPolicy) {
case POLICY_ALARM_MANAGER: case POLICY_ALARM_MANAGER:
mAlarmManagerMap.get(key).currentValue = editedValue; mAlarmManagerMap.get(key).currentValue = editedValue;
rebuildAlarmManagerConstants(); rebuildPolicyConstants(factorPolicy);
break; break;
case POLICY_JOB_SCHEDULER: case POLICY_JOB_SCHEDULER:
// TODO: Add JobScheduler mJobSchedulerMap.get(key).currentValue = editedValue;
rebuildPolicyConstants(factorPolicy);
break; break;
default: default:
Slog.e(TAG, "Invalid factor policy given"); throw new IllegalArgumentException("Invalid factor policy given");
break;
} }
} }
/** /**
* Iterates through the AM map for keys and current values to rebuild a current string that is * Iterates through the factor policy map for keys and current values to
* then assigned to be the new global settings string. * rebuild a current string that is then assigned to be the new global settings string.
*
* @param factorPolicy policy being updated
*/ */
private void rebuildAlarmManagerConstants() { private void rebuildPolicyConstants(int factorPolicy) {
StringBuilder newConstantsStringBuilder = new StringBuilder(); StringBuilder newConstantsStringBuilder = new StringBuilder();
int size = mAlarmManagerMap.size(); switch (factorPolicy) {
case POLICY_ALARM_MANAGER:
int sizeAM = mAlarmManagerMap.size();
for (int i = 0; i < size; i++) { for (int i = 0; i < sizeAM; i++) {
if (i > 0) { if (i > 0) {
newConstantsStringBuilder.append(","); newConstantsStringBuilder.append(",");
} }
String key = mAlarmManagerMap.keyAt(i); String key = mAlarmManagerMap.keyAt(i);
newConstantsStringBuilder.append(key + "=" + mAlarmManagerMap.get(key).currentValue); newConstantsStringBuilder.append(key + "=" + mAlarmManagerMap.get(key)
.currentValue);
}
String newAMConstantsString = newConstantsStringBuilder.toString();
Settings.Global.putString(mContentResolver, Settings.Global
.TARE_ALARM_MANAGER_CONSTANTS,
newAMConstantsString);
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);
mJobSchedulerConstants = Settings.Global
.getString(mContentResolver, Settings.Global
.TARE_JOB_SCHEDULER_CONSTANTS);
break;
} }
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);
} }
/** /**
@@ -345,8 +631,9 @@ public class TareFactorController {
* @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 default value of
*/ */
public TareFactorDialogFragment createDialog(String key) { public TareFactorDialogFragment createDialog(String key) {
return new TareFactorDialogFragment(getTitle(key), key, getCurrentValue(key), int policy = getFactorType(key);
getFactorType(key), this); return new TareFactorDialogFragment(getTitle(key, policy), key,
getCurrentValue(key, policy), policy , this);
} }
/** /**