diff --git a/res/layout/dialog_edittext_dropdown.xml b/res/layout/dialog_edittext_dropdown.xml
new file mode 100644
index 00000000000..0e77968023a
--- /dev/null
+++ b/res/layout/dialog_edittext_dropdown.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
diff --git a/res/layout/tare_homepage.xml b/res/layout/tare_homepage.xml
index ddc93337314..4cd649f189e 100644
--- a/res/layout/tare_homepage.xml
+++ b/res/layout/tare_homepage.xml
@@ -27,7 +27,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
- android:text="On"
+ android:textOff="@string/tare_off"
+ android:textOn="@string/tare_on"
+ android:showText="true"
android:background="?android:attr/colorBackground" />
TARE Settings
+
+ On
+
+ Off
Revert to Default Settings
- Rewards for total event duration
+ Rewards per second of event duration
Maximum Rewards Per Day
@@ -14075,6 +14079,13 @@
Confirm
+
+
+ - ARC
+ - Cake
+
+
Preview
diff --git a/src/com/android/settings/development/tare/AlarmManagerFragment.java b/src/com/android/settings/development/tare/AlarmManagerFragment.java
index 980954d7bf9..b9de81db62a 100644
--- a/src/com/android/settings/development/tare/AlarmManagerFragment.java
+++ b/src/com/android/settings/development/tare/AlarmManagerFragment.java
@@ -98,6 +98,7 @@ public class AlarmManagerFragment extends Fragment implements
resources.getString(R.string.tare_actions_ctp),
resources.getString(R.string.tare_actions_base_price),
resources.getString(R.string.tare_rewards_instantaneous),
+ resources.getString(R.string.tare_rewards_ongoing),
resources.getString(R.string.tare_rewards_max)
};
@@ -109,6 +110,7 @@ public class AlarmManagerFragment extends Fragment implements
resources.getStringArray(R.array.tare_alarm_manager_actions),
resources.getStringArray(R.array.tare_alarm_manager_actions),
resources.getStringArray(R.array.tare_rewards_subfactors),
+ {resources.getString(R.string.tare_top_activity)},
resources.getStringArray(R.array.tare_rewards_subfactors)
};
@@ -150,12 +152,13 @@ public class AlarmManagerFragment extends Fragment implements
EconomyManager.KEY_AM_ACTION_ALARM_ALARMCLOCK_BASE_PRICE
},
{
- EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_MAX,
- EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_MAX,
- EconomyManager.KEY_AM_REWARD_NOTIFICATION_INTERACTION_MAX,
- EconomyManager.KEY_AM_REWARD_WIDGET_INTERACTION_MAX,
- EconomyManager.KEY_AM_REWARD_OTHER_USER_INTERACTION_MAX,
+ EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_INSTANT,
+ EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_INSTANT,
+ EconomyManager.KEY_AM_REWARD_NOTIFICATION_INTERACTION_INSTANT,
+ EconomyManager.KEY_AM_REWARD_WIDGET_INTERACTION_INSTANT,
+ EconomyManager.KEY_AM_REWARD_OTHER_USER_INTERACTION_INSTANT,
},
+ {EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_ONGOING},
{
EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_MAX,
EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_MAX,
diff --git a/src/com/android/settings/development/tare/JobSchedulerFragment.java b/src/com/android/settings/development/tare/JobSchedulerFragment.java
index bffd648c6be..4c5fcc69724 100644
--- a/src/com/android/settings/development/tare/JobSchedulerFragment.java
+++ b/src/com/android/settings/development/tare/JobSchedulerFragment.java
@@ -99,7 +99,7 @@ public class JobSchedulerFragment extends Fragment implements
resources.getString(R.string.tare_actions_ctp),
resources.getString(R.string.tare_actions_base_price),
resources.getString(R.string.tare_rewards_instantaneous),
- // resources.getString(R.string.tare_rewards_ongoing),
+ resources.getString(R.string.tare_rewards_ongoing),
resources.getString(R.string.tare_rewards_max)
};
@@ -111,7 +111,7 @@ public class JobSchedulerFragment extends Fragment implements
resources.getStringArray(R.array.tare_job_scheduler_actions),
resources.getStringArray(R.array.tare_job_scheduler_actions),
resources.getStringArray(R.array.tare_rewards_subfactors),
- // {resources.getString(R.string.tare_top_activity)},
+ {resources.getString(R.string.tare_top_activity)},
resources.getStringArray(R.array.tare_rewards_subfactors)
};
@@ -154,13 +154,13 @@ public class JobSchedulerFragment extends Fragment implements
EconomyManager.KEY_JS_ACTION_JOB_TIMEOUT_PENALTY_BASE_PRICE
},
{
- EconomyManager.KEY_JS_REWARD_TOP_ACTIVITY_MAX,
- EconomyManager.KEY_JS_REWARD_NOTIFICATION_SEEN_MAX,
- EconomyManager.KEY_JS_REWARD_NOTIFICATION_INTERACTION_MAX,
- EconomyManager.KEY_JS_REWARD_WIDGET_INTERACTION_MAX,
- EconomyManager.KEY_JS_REWARD_OTHER_USER_INTERACTION_MAX,
+ EconomyManager.KEY_JS_REWARD_TOP_ACTIVITY_INSTANT,
+ EconomyManager.KEY_JS_REWARD_NOTIFICATION_SEEN_INSTANT,
+ EconomyManager.KEY_JS_REWARD_NOTIFICATION_INTERACTION_INSTANT,
+ EconomyManager.KEY_JS_REWARD_WIDGET_INTERACTION_INSTANT,
+ EconomyManager.KEY_JS_REWARD_OTHER_USER_INTERACTION_INSTANT,
},
- // {EconomyManager.KEY_JS_REWARD_TOP_ACTIVITY_ONGOING},
+ {EconomyManager.KEY_JS_REWARD_TOP_ACTIVITY_ONGOING},
{
EconomyManager.KEY_JS_REWARD_TOP_ACTIVITY_MAX,
EconomyManager.KEY_JS_REWARD_NOTIFICATION_SEEN_MAX,
diff --git a/src/com/android/settings/development/tare/TareFactorController.java b/src/com/android/settings/development/tare/TareFactorController.java
index 62fde6d4829..57723927510 100644
--- a/src/com/android/settings/development/tare/TareFactorController.java
+++ b/src/com/android/settings/development/tare/TareFactorController.java
@@ -16,6 +16,12 @@
package com.android.settings.development.tare;
+import static android.app.tare.EconomyManager.CAKE_IN_ARC;
+import static android.app.tare.EconomyManager.DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_BASE_PRICE_CAKES;
+import static android.app.tare.EconomyManager.DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_BASE_PRICE_CAKES;
+import static android.app.tare.EconomyManager.DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_CTP_CAKES;
+import static android.app.tare.EconomyManager.DEFAULT_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_BASE_PRICE_CAKES;
+import static android.app.tare.EconomyManager.parseCreditValue;
import static android.provider.Settings.Global.TARE_ALARM_MANAGER_CONSTANTS;
import static android.provider.Settings.Global.TARE_JOB_SCHEDULER_CONSTANTS;
@@ -93,182 +99,180 @@ public class TareFactorController {
private void initAlarmManagerMap() {
mAlarmManagerMap.put(EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_EXEMPTED,
new TareFactorData(mResources.getString(R.string.tare_min_balance_exempted),
- EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_EXEMPTED,
+ EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_EXEMPTED_CAKES,
POLICY_ALARM_MANAGER));
mAlarmManagerMap.put(EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP,
new TareFactorData(mResources.getString(R.string.tare_min_balance_headless_app),
- EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP,
+ EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP_CAKES,
POLICY_ALARM_MANAGER));
mAlarmManagerMap.put(EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_OTHER_APP,
new TareFactorData(mResources.getString(R.string.tare_min_balance_other_app),
- EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_OTHER_APP,
+ EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_OTHER_APP_CAKES,
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_CAKES,
POLICY_ALARM_MANAGER));
mAlarmManagerMap.put(EconomyManager.KEY_AM_INITIAL_CONSUMPTION_LIMIT,
new TareFactorData(mResources.getString(R.string.tare_initial_consumption_limit),
- EconomyManager.DEFAULT_AM_INITIAL_CONSUMPTION_LIMIT,
+ EconomyManager.DEFAULT_AM_INITIAL_CONSUMPTION_LIMIT_CAKES,
POLICY_ALARM_MANAGER));
mAlarmManagerMap.put(EconomyManager.KEY_AM_HARD_CONSUMPTION_LIMIT,
new TareFactorData(mResources.getString(R.string.tare_hard_consumption_limit),
- EconomyManager.DEFAULT_AM_HARD_CONSUMPTION_LIMIT,
+ EconomyManager.DEFAULT_AM_HARD_CONSUMPTION_LIMIT_CAKES,
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_CAKES,
+ POLICY_ALARM_MANAGER));
+ 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_CAKES,
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, POLICY_ALARM_MANAGER));
+ EconomyManager.DEFAULT_AM_REWARD_TOP_ACTIVITY_MAX_CAKES,
+ 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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
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_CAKES,
POLICY_ALARM_MANAGER));
}
@@ -279,180 +283,181 @@ public class TareFactorController {
private void initJobSchedulerMap() {
mJobSchedulerMap.put(EconomyManager.KEY_JS_MIN_SATIATED_BALANCE_EXEMPTED,
new TareFactorData(mResources.getString(R.string.tare_min_balance_exempted),
- EconomyManager.DEFAULT_JS_MIN_SATIATED_BALANCE_EXEMPTED,
+ EconomyManager.DEFAULT_JS_MIN_SATIATED_BALANCE_EXEMPTED_CAKES,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP,
new TareFactorData(mResources.getString(R.string.tare_min_balance_headless_app),
- EconomyManager.DEFAULT_JS_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP,
+ EconomyManager.DEFAULT_JS_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP_CAKES,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_MIN_SATIATED_BALANCE_OTHER_APP,
new TareFactorData(mResources.getString(R.string.tare_min_balance_other_app),
- EconomyManager.DEFAULT_JS_MIN_SATIATED_BALANCE_OTHER_APP,
+ EconomyManager.DEFAULT_JS_MIN_SATIATED_BALANCE_OTHER_APP_CAKES,
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,
+ EconomyManager.DEFAULT_JS_MAX_SATIATED_BALANCE_CAKES,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_INITIAL_CONSUMPTION_LIMIT,
new TareFactorData(mResources.getString(R.string.tare_initial_consumption_limit),
- EconomyManager.DEFAULT_JS_INITIAL_CONSUMPTION_LIMIT,
+ EconomyManager.DEFAULT_JS_INITIAL_CONSUMPTION_LIMIT_CAKES,
POLICY_JOB_SCHEDULER));
mJobSchedulerMap.put(EconomyManager.KEY_JS_HARD_CONSUMPTION_LIMIT,
new TareFactorData(mResources.getString(R.string.tare_hard_consumption_limit),
- EconomyManager.DEFAULT_JS_HARD_CONSUMPTION_LIMIT,
+ EconomyManager.DEFAULT_JS_HARD_CONSUMPTION_LIMIT_CAKES,
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,
+ EconomyManager.DEFAULT_JS_REWARD_TOP_ACTIVITY_INSTANT_CAKES,
+ POLICY_JOB_SCHEDULER));
+ mJobSchedulerMap.put(EconomyManager.KEY_JS_REWARD_TOP_ACTIVITY_ONGOING,
+ new TareFactorData(mResources.getString(R.string.tare_top_activity),
+ EconomyManager.DEFAULT_JS_REWARD_TOP_ACTIVITY_ONGOING_CAKES,
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));
+ EconomyManager.DEFAULT_JS_REWARD_TOP_ACTIVITY_MAX_CAKES,
+ 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,
+ EconomyManager.DEFAULT_JS_REWARD_NOTIFICATION_SEEN_INSTANT_CAKES,
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,
+ EconomyManager.DEFAULT_JS_REWARD_NOTIFICATION_SEEN_ONGOING_CAKES,
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,
+ EconomyManager.DEFAULT_JS_REWARD_NOTIFICATION_SEEN_MAX_CAKES,
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,
+ EconomyManager.DEFAULT_JS_REWARD_NOTIFICATION_INTERACTION_INSTANT_CAKES,
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,
+ EconomyManager.DEFAULT_JS_REWARD_NOTIFICATION_INTERACTION_ONGOING_CAKES,
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,
+ EconomyManager.DEFAULT_JS_REWARD_NOTIFICATION_INTERACTION_MAX_CAKES,
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,
+ EconomyManager.DEFAULT_JS_REWARD_WIDGET_INTERACTION_INSTANT_CAKES,
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,
+ EconomyManager.DEFAULT_JS_REWARD_WIDGET_INTERACTION_ONGOING_CAKES,
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,
+ EconomyManager.DEFAULT_JS_REWARD_WIDGET_INTERACTION_MAX_CAKES,
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,
+ EconomyManager.DEFAULT_JS_REWARD_OTHER_USER_INTERACTION_INSTANT_CAKES,
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,
+ EconomyManager.DEFAULT_JS_REWARD_OTHER_USER_INTERACTION_ONGOING_CAKES,
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,
+ EconomyManager.DEFAULT_JS_REWARD_OTHER_USER_INTERACTION_MAX_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_MAX_START_CTP_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_MAX_RUNNING_CTP_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_HIGH_START_CTP_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_HIGH_RUNNING_CTP_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_DEFAULT_START_CTP_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_DEFAULT_RUNNING_CTP_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_LOW_START_CTP_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_LOW_RUNNING_CTP_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_MIN_START_CTP_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_MIN_RUNNING_CTP_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_TIMEOUT_PENALTY_CTP_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_MAX_START_BASE_PRICE_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_MAX_RUNNING_BASE_PRICE_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_HIGH_START_BASE_PRICE_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_HIGH_RUNNING_BASE_PRICE_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_DEFAULT_START_BASE_PRICE_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_DEFAULT_RUNNING_BASE_PRICE_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_LOW_START_BASE_PRICE_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_LOW_RUNNING_BASE_PRICE_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_MIN_START_BASE_PRICE_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_MIN_RUNNING_BASE_PRICE_CAKES,
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,
+ EconomyManager.DEFAULT_JS_ACTION_JOB_TIMEOUT_PENALTY_BASE_PRICE_CAKES,
POLICY_JOB_SCHEDULER));
}
@@ -480,7 +485,7 @@ public class TareFactorController {
for (int i = map.size() - 1; i >= 0; --i) {
final String key = map.keyAt(i);
final TareFactorData data = map.valueAt(i);
- data.currentValue = mParser.getInt(key, data.defaultValue);
+ data.currentValue = parseCreditValue(mParser.getString(key, null), data.defaultValue);
}
}
@@ -513,7 +518,7 @@ public class TareFactorController {
* @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, int factorPolicy) {
+ private long getCurrentValue(String key, int factorPolicy) {
final ArrayMap currentMap = getMap(factorPolicy);
return currentMap.get(key).currentValue;
}
@@ -535,7 +540,7 @@ public class TareFactorController {
return currentMap.get(key).factorPolicy;
}
- int getValue(String key) {
+ long getValue(String key) {
final int policy = getFactorType(key);
return getCurrentValue(key, policy);
}
@@ -548,7 +553,7 @@ public class TareFactorController {
* @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, long editedValue, int factorPolicy) {
final ArrayMap map = getMap(factorPolicy);
final TareFactorData data = map.get(key);
@@ -592,8 +597,16 @@ public class TareFactorController {
constantsStringBuilder
.append(factorMap.keyAt(i))
- .append("=")
- .append(factor.currentValue);
+ .append("=");
+ if (factor.currentValue % CAKE_IN_ARC == 0) {
+ constantsStringBuilder
+ .append(factor.currentValue / CAKE_IN_ARC)
+ .append("A");
+ } else {
+ constantsStringBuilder
+ .append(factor.currentValue)
+ .append("ck");
+ }
}
Settings.Global.putString(mContentResolver, settingsKey, constantsStringBuilder.toString());
@@ -615,11 +628,11 @@ public class TareFactorController {
*/
private static class TareFactorData {
public final String title;
- public final int defaultValue;
+ public final long defaultValue;
public final int factorPolicy;
- public int currentValue;
+ public long currentValue;
- TareFactorData(String title, int defaultValue, int factorPolicy) {
+ TareFactorData(String title, long defaultValue, int factorPolicy) {
this.title = title;
this.defaultValue = defaultValue;
this.factorPolicy = factorPolicy;
diff --git a/src/com/android/settings/development/tare/TareFactorDialogFragment.java b/src/com/android/settings/development/tare/TareFactorDialogFragment.java
index 8d2f3415651..6d2f5ca3713 100644
--- a/src/com/android/settings/development/tare/TareFactorDialogFragment.java
+++ b/src/com/android/settings/development/tare/TareFactorDialogFragment.java
@@ -16,6 +16,8 @@
package com.android.settings.development.tare;
+import static android.app.tare.EconomyManager.CAKE_IN_ARC;
+
import android.annotation.NonNull;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -26,7 +28,10 @@ import android.text.InputType;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
import android.widget.EditText;
+import android.widget.Spinner;
import com.android.settings.R;
import com.android.settings.Utils;
@@ -35,39 +40,35 @@ import com.android.settings.Utils;
* Dialog Fragment for changing tare factor values
*/
public class TareFactorDialogFragment extends DialogFragment {
-
private static final String TAG = "TareDialogFragment";
+ // This follows the order in strings.xml:tare_units array.
+ private static final int UNIT_IDX_ARC = 0;
+ private static final int UNIT_IDX_CAKE = 1;
+
private final String mFactorKey;
private final String mFactorTitle;
- private final int mFactorValue;
+ private final long mFactorValue;
private final int mFactorPolicy;
- private int mFactorEditedValue;
+ private final TareFactorController mTareFactorController;
private EditText mFactorValueView;
- private TareFactorController mTareFactorController;
+ private Spinner mUnitSpinner;
/**
* @param title the title that will show at the top of the Dialog for the Factor
* @param key the key of the Factor being initialized.
- * @param defaultValue the initial value set for the Factor before any changes
+ * @param currentValue the current value set for the Factor
*/
- public TareFactorDialogFragment(@NonNull String title, @NonNull String key, int defaultValue,
+ public TareFactorDialogFragment(@NonNull String title, @NonNull String key, long currentValue,
int factorPolicy, TareFactorController tareFactorController) {
mFactorTitle = title;
mFactorKey = key;
- mFactorValue = defaultValue;
+ mFactorValue = currentValue;
mFactorPolicy = factorPolicy;
mTareFactorController = tareFactorController;
}
- /**
- * Gets the current value of the Factor
- */
- private String getFactorValue() {
- return Integer.toString(mFactorValue);
- }
-
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
@@ -78,15 +79,18 @@ public class TareFactorDialogFragment extends DialogFragment {
.setPositiveButton(R.string.tare_dialog_confirm_button_title, (dialog, which) -> {
final String stringValue = mFactorValueView.getText().toString();
- mFactorEditedValue = mFactorValue;
+ long newVal = mFactorValue;
try {
- mFactorEditedValue = Integer.parseInt(stringValue);
+ newVal = Long.parseLong(stringValue);
+ if (mUnitSpinner.getSelectedItemPosition() == UNIT_IDX_ARC) {
+ // Convert ARC to cake
+ newVal *= CAKE_IN_ARC;
+ }
} catch (NumberFormatException e) {
- Log.e(TAG, "Error converting '" + stringValue + "' to integer. Using "
+ Log.e(TAG, "Error parsing '" + stringValue + "'. Using "
+ mFactorValue + " instead", e);
}
- mTareFactorController.updateValue(mFactorKey, mFactorEditedValue,
- mFactorPolicy);
+ mTareFactorController.updateValue(mFactorKey, newVal, mFactorPolicy);
})
.setNegativeButton(android.R.string.cancel, (dialog, which) -> {
// When the negative button is clicked do nothing
@@ -102,12 +106,58 @@ public class TareFactorDialogFragment extends DialogFragment {
private View createDialogView() {
final LayoutInflater layoutInflater = (LayoutInflater) getActivity()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- View layout = layoutInflater.inflate(R.layout.dialog_edittext, null);
+ View layout = layoutInflater.inflate(R.layout.dialog_edittext_dropdown, null);
mFactorValueView = layout.findViewById(R.id.edittext);
mFactorValueView.setInputType(InputType.TYPE_CLASS_NUMBER);
- mFactorValueView.setText(getFactorValue());
- Utils.setEditTextCursorPosition(mFactorValueView);
+ mUnitSpinner = layout.findViewById(R.id.spinner);
+ final String[] units = getResources().getStringArray(R.array.tare_units);
+ ArrayAdapter spinnerArrayAdapter = new ArrayAdapter<>(
+ getActivity(), android.R.layout.simple_spinner_item, units);
+ mUnitSpinner.setAdapter(spinnerArrayAdapter);
+
+ final int unitIdx;
+ if (mFactorValue % CAKE_IN_ARC == 0) {
+ mFactorValueView.setText(String.format("%d", mFactorValue / CAKE_IN_ARC));
+ unitIdx = UNIT_IDX_ARC;
+ } else {
+ mFactorValueView.setText(String.format("%d", mFactorValue));
+ unitIdx = UNIT_IDX_CAKE;
+ }
+ mUnitSpinner.setSelection(unitIdx);
+ mUnitSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ private int mSelectedPosition = unitIdx;
+
+ @Override
+ public void onItemSelected(AdapterView> parent, View view, int position, long id) {
+ if (mSelectedPosition == position) {
+ return;
+ }
+ mSelectedPosition = position;
+ final String stringValue = mFactorValueView.getText().toString();
+
+ try {
+ long newVal = Long.parseLong(stringValue);
+ if (mUnitSpinner.getSelectedItemPosition() == UNIT_IDX_ARC) {
+ // Convert cake to ARC
+ newVal /= CAKE_IN_ARC;
+ } else {
+ // Convert ARC to cake
+ newVal *= CAKE_IN_ARC;
+ }
+ mFactorValueView.setText(String.format("%d", newVal));
+ } catch (NumberFormatException e) {
+ Log.e(TAG, "Error parsing '" + stringValue + "'", e);
+ }
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView> parent) {
+
+ }
+ });
+
+ Utils.setEditTextCursorPosition(mFactorValueView);
return layout;
}
}
diff --git a/src/com/android/settings/development/tare/TareFactorExpandableListAdapter.java b/src/com/android/settings/development/tare/TareFactorExpandableListAdapter.java
index 8fe4c058207..79b7d41f9ec 100644
--- a/src/com/android/settings/development/tare/TareFactorExpandableListAdapter.java
+++ b/src/com/android/settings/development/tare/TareFactorExpandableListAdapter.java
@@ -16,6 +16,8 @@
package com.android.settings.development.tare;
+import static android.app.tare.EconomyManager.CAKE_IN_ARC;
+
import android.annotation.NonNull;
import android.annotation.SuppressLint;
import android.view.LayoutInflater;
@@ -130,12 +132,32 @@ public class TareFactorExpandableListAdapter extends BaseExpandableListAdapter {
TextView value = convertView.findViewById(R.id.factor_number);
factor.setText(getChild(groupPosition, childPosition).toString());
- value.setText(String.valueOf(
+ value.setText(cakeToString(
mFactorController.getValue(getKey(groupPosition, childPosition))));
return convertView;
}
+ @NonNull
+ private static String cakeToString(long cakes) {
+ // Resources.getQuantityString doesn't handle floating point numbers, so doing this manually
+ if (cakes == 0) {
+ return "0";
+ }
+ final long sub = cakes % CAKE_IN_ARC;
+ final long arcs = (int) (cakes / CAKE_IN_ARC);
+ if (arcs == 0) {
+ return sub + " c";
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.append(arcs);
+ if (sub > 0) {
+ sb.append(".").append(String.format("%03d", sub / (CAKE_IN_ARC / 1000)));
+ }
+ sb.append(" A");
+ return sb.toString();
+ }
+
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;