Merge "Update AlarmManager Global Settings String"

This commit is contained in:
Joshua Lewis
2021-08-13 22:00:30 +00:00
committed by Android (Google) Code Review
2 changed files with 155 additions and 50 deletions

View File

@@ -34,13 +34,15 @@ import com.android.settings.R;
public class TareFactorController { public class TareFactorController {
private static final String TAG = "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 ContentResolver mContentResolver;
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 String mAlarmManagerConstants; private String mAlarmManagerConstants;
public TareFactorController(Context context) { public TareFactorController(Context context) {
mContentResolver = context.getContentResolver(); mContentResolver = context.getContentResolver();
mResources = context.getResources(); mResources = context.getResources();
@@ -59,140 +61,179 @@ public class TareFactorController {
private void initAlarmManagerMap() { private void initAlarmManagerMap() {
mAlarmManagerMap.put(EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_EXEMPTED, mAlarmManagerMap.put(EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_EXEMPTED,
new TareFactorData(mResources.getString(R.string.tare_min_satiated_balance), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP,
new TareFactorData(mResources.getString(R.string.tare_headless_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, mAlarmManagerMap.put(EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_OTHER_APP,
new TareFactorData(mResources.getString(R.string.tare_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, mAlarmManagerMap.put(EconomyManager.KEY_AM_MAX_SATIATED_BALANCE,
new TareFactorData(mResources.getString(R.string.tare_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, mAlarmManagerMap.put(EconomyManager.KEY_AM_MAX_CIRCULATION,
new TareFactorData(mResources.getString(R.string.tare_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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_INSTANT,
new TareFactorData(mResources.getString(R.string.tare_top_activity), 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 // TODO: Add support to handle floats
// mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_ONGOING, // mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_ONGOING,
// new TareFactorData(mResources.getString(R.string.tare_top_activity), // new TareFactorData(mResources.getString(R.string.tare_top_activity),
// EconomyManager.DEFAULT_AM_REWARD_TOP_ACTIVITY_ONGOING)); // EconomyManager.DEFAULT_AM_REWARD_TOP_ACTIVITY_ONGOING));
mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_MAX, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_MAX,
new TareFactorData(mResources.getString(R.string.tare_top_activity), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_INSTANT,
new TareFactorData(mResources.getString(R.string.tare_notification_seen), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_ONGOING,
new TareFactorData(mResources.getString(R.string.tare_notification_seen), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_MAX,
new TareFactorData(mResources.getString(R.string.tare_notification_seen), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_WITHIN_15_INSTANT,
new TareFactorData(mResources.getString(R.string.tare_notification_seen_15_min), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_WITHIN_15_ONGOING,
new TareFactorData(mResources.getString(R.string.tare_notification_seen_15_min), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_WITHIN_15_MAX,
new TareFactorData(mResources.getString(R.string.tare_notification_seen_15_min), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_INTERACTION_INSTANT,
new TareFactorData(mResources.getString(R.string.tare_notification_interaction), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_INTERACTION_ONGOING,
new TareFactorData(mResources.getString(R.string.tare_notification_interaction), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_NOTIFICATION_INTERACTION_MAX,
new TareFactorData(mResources.getString(R.string.tare_notification_interaction), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_WIDGET_INTERACTION_INSTANT,
new TareFactorData(mResources.getString(R.string.tare_widget_interaction), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_WIDGET_INTERACTION_ONGOING,
new TareFactorData(mResources.getString(R.string.tare_widget_interaction), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_WIDGET_INTERACTION_MAX,
new TareFactorData(mResources.getString(R.string.tare_widget_interaction), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_OTHER_USER_INTERACTION_INSTANT,
new TareFactorData(mResources.getString(R.string.tare_other_interaction), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_OTHER_USER_INTERACTION_ONGOING,
new TareFactorData(mResources.getString(R.string.tare_other_interaction), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_REWARD_OTHER_USER_INTERACTION_MAX,
new TareFactorData(mResources.getString(R.string.tare_other_interaction), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_CTP,
new TareFactorData(mResources.getString(R.string.tare_wakeup_exact_idle), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_CTP,
new TareFactorData(mResources.getString(R.string.tare_wakeup_inexact_idle), new TareFactorData(mResources.getString(R.string.tare_wakeup_inexact_idle),
EconomyManager 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_EXACT_WAKEUP_CTP,
new TareFactorData(mResources.getString(R.string.tare_wakeup_exact), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_WAKEUP_CTP,
new TareFactorData(mResources.getString(R.string.tare_wakeup_inexact), 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( mAlarmManagerMap.put(
EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_NONWAKEUP_CTP, EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_NONWAKEUP_CTP,
new TareFactorData(mResources.getString(R.string.tare_nonwakeup_exact_idle), new TareFactorData(mResources.getString(R.string.tare_nonwakeup_exact_idle),
EconomyManager 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_EXACT_NONWAKEUP_CTP,
new TareFactorData(mResources.getString(R.string.tare_nonwakeup_exact), 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( mAlarmManagerMap.put(
EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_CTP, EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_CTP,
new TareFactorData(mResources.getString(R.string.tare_nonwakeup_inexact_idle), new TareFactorData(mResources.getString(R.string.tare_nonwakeup_inexact_idle),
EconomyManager 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_NONWAKEUP_CTP,
new TareFactorData(mResources.getString(R.string.tare_nonwakeup_inexact), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_ALARMCLOCK_CTP,
new TareFactorData(mResources.getString(R.string.tare_alarm_clock), 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( mAlarmManagerMap.put(
EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_BASE_PRICE, EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_alarm_clock), new TareFactorData(mResources.getString(R.string.tare_alarm_clock),
EconomyManager 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( mAlarmManagerMap.put(
EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_BASE_PRICE, EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_alarm_clock), new TareFactorData(mResources.getString(R.string.tare_alarm_clock),
EconomyManager 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_alarm_clock), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_WAKEUP_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_alarm_clock), 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( mAlarmManagerMap.put(
EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_NONWAKEUP_BASE_PRICE, EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_NONWAKEUP_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_alarm_clock), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_EXACT_NONWAKEUP_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_alarm_clock), 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( mAlarmManagerMap.put(
EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_BASE_PRICE, EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_alarm_clock), new TareFactorData(mResources.getString(R.string.tare_alarm_clock),
EconomyManager 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_NONWAKEUP_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_alarm_clock), 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, mAlarmManagerMap.put(EconomyManager.KEY_AM_ACTION_ALARM_ALARMCLOCK_BASE_PRICE,
new TareFactorData(mResources.getString(R.string.tare_alarm_clock), 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) { } catch (Exception e) {
Slog.e(TAG, "Bad value string constants", 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); 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));
@@ -225,7 +266,7 @@ public class TareFactorController {
/** /**
* Takes a key as input and grabs the title linked to it. * 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) { private String getTitle(String key) {
return mAlarmManagerMap.get(key).title; return mAlarmManagerMap.get(key).title;
@@ -240,13 +281,72 @@ public class TareFactorController {
return mAlarmManagerMap.get(key).currentValue; 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. * 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 * @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), this); return new TareFactorDialogFragment(getTitle(key), key, getCurrentValue(key),
getFactorType(key), this);
} }
/** /**
@@ -255,12 +355,14 @@ public class TareFactorController {
private static class TareFactorData { private static class TareFactorData {
public final String title; public final String title;
public final int defaultValue; public final int defaultValue;
public final int factorPolicy;
public int currentValue; public int currentValue;
TareFactorData(String title, int defaultValue) { TareFactorData(String title, int defaultValue, int factorPolicy) {
this.title = title; this.title = title;
this.defaultValue = defaultValue; this.defaultValue = defaultValue;
currentValue = defaultValue; this.factorPolicy = factorPolicy;
this.currentValue = defaultValue;
} }
} }
} }

View File

@@ -42,6 +42,7 @@ public class TareFactorDialogFragment extends DialogFragment {
private final String mFactorKey; private final String mFactorKey;
private final String mFactorTitle; private final String mFactorTitle;
private final int mFactorValue; private final int mFactorValue;
private final int mFactorPolicy;
private int mFactorEditedValue; private int mFactorEditedValue;
private EditText mFactorValueView; private EditText mFactorValueView;
@@ -53,10 +54,11 @@ public class TareFactorDialogFragment extends DialogFragment {
* @param defaultValue the initial value set for the Factor before any changes * @param defaultValue the initial value set for the Factor before any changes
*/ */
public TareFactorDialogFragment(@NonNull String title, @NonNull String key, int defaultValue, public TareFactorDialogFragment(@NonNull String title, @NonNull String key, int defaultValue,
TareFactorController tareFactorController) { int factorPolicy, TareFactorController tareFactorController) {
mFactorTitle = title; mFactorTitle = title;
mFactorKey = key; mFactorKey = key;
mFactorValue = defaultValue; mFactorValue = defaultValue;
mFactorPolicy = factorPolicy;
mTareFactorController = tareFactorController; mTareFactorController = tareFactorController;
} }
@@ -84,7 +86,8 @@ public class TareFactorDialogFragment extends DialogFragment {
Log.e(TAG, "Error converting '" + stringValue + "' to integer. Using " Log.e(TAG, "Error converting '" + stringValue + "' to integer. Using "
+ mFactorValue + " instead", e); + mFactorValue + " instead", e);
} }
// TODO: Update csv with new factor value mTareFactorController.updateValue(mFactorKey, mFactorEditedValue,
mFactorPolicy);
}) })
.setNegativeButton(android.R.string.cancel, (dialog, which) -> { .setNegativeButton(android.R.string.cancel, (dialog, which) -> {
// When the negative button is clicked do nothing // When the negative button is clicked do nothing