Merge "Make reward constants configurable." into tm-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ef6a3c7..0ae67e5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -13887,9 +13887,15 @@
     <string name="tare_actions_ctp">Actions (Cost to Produce)</string>
     <!-- Title for the various TARE policy's actions' starting prices [CHAR LIMIT=40]-->
     <string name="tare_actions_base_price">Actions (Base Price)</string>
-    <!-- Title for the instant, ongoing, and max rewards apps can obtain for different actions that
-    benefit the user. [CHAR LIMIT=40]-->
-    <string name="tare_rewards">Rewards</string>
+    <!-- Title for the rewards apps can obtain for each instance of an event that implies the user
+    finds the app behavior useful. [CHAR LIMIT=40]-->
+    <string name="tare_rewards_instantaneous">Rewards per single event</string>
+    <!-- Title for the rewards apps can obtain for the total duration (in seconds) of an event that
+    implies the user finds the app behavior useful. [CHAR LIMIT=40]-->
+    <string name="tare_rewards_ongoing">Rewards for total event duration</string>
+    <!-- Title for the max rewards apps can obtain within a 24 hour period for different actions
+    that benefit the user. [CHAR LIMIT=40]-->
+    <string name="tare_rewards_max">Maximum Rewards Per Day</string>
     <!-- Title for the Allow While Idle Exact Wakeup Alarm set via
     AlarmManager.setExactAndAllowWhileIdle() [CHAR LIMIT=50]-->
     <string name="tare_wakeup_exact_idle" translatable="false">
@@ -14025,7 +14031,7 @@
     <string-array name="tare_rewards_subfactors" translatable="false">
         <item>@string/tare_top_activity</item>
         <item>@string/tare_notification_seen</item>
-        <item>@string/tare_notification_seen_15_min</item>
+        <!-- TODO: add back once supported  <item>@string/tare_notification_seen_15_min</item> -->
         <item>@string/tare_notification_interaction</item>
         <item>@string/tare_widget_interaction</item>
         <item>@string/tare_other_interaction</item>
diff --git a/src/com/android/settings/development/tare/AlarmManagerFragment.java b/src/com/android/settings/development/tare/AlarmManagerFragment.java
index c4dca37..980954d 100644
--- a/src/com/android/settings/development/tare/AlarmManagerFragment.java
+++ b/src/com/android/settings/development/tare/AlarmManagerFragment.java
@@ -97,7 +97,8 @@
                 // resources.getString(R.string.tare_modifiers),
                 resources.getString(R.string.tare_actions_ctp),
                 resources.getString(R.string.tare_actions_base_price),
-                // resources.getString(R.string.tare_rewards)
+                resources.getString(R.string.tare_rewards_instantaneous),
+                resources.getString(R.string.tare_rewards_max)
         };
 
         mChildren = new String[][]{
@@ -107,7 +108,8 @@
                 // resources.getStringArray(R.array.tare_modifiers_subfactors),
                 resources.getStringArray(R.array.tare_alarm_manager_actions),
                 resources.getStringArray(R.array.tare_alarm_manager_actions),
-                // resources.getStringArray(R.array.tare_rewards_subfactors)
+                resources.getStringArray(R.array.tare_rewards_subfactors),
+                resources.getStringArray(R.array.tare_rewards_subfactors)
         };
 
         mKeys = new String[][]{
@@ -147,7 +149,20 @@
                         EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_NONWAKEUP_BASE_PRICE,
                         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_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,
+                }
         };
     }
 }
diff --git a/src/com/android/settings/development/tare/JobSchedulerFragment.java b/src/com/android/settings/development/tare/JobSchedulerFragment.java
index 275e012..bffd648 100644
--- a/src/com/android/settings/development/tare/JobSchedulerFragment.java
+++ b/src/com/android/settings/development/tare/JobSchedulerFragment.java
@@ -98,7 +98,9 @@
                 // mResources.getString(R.string.tare_modifiers),
                 resources.getString(R.string.tare_actions_ctp),
                 resources.getString(R.string.tare_actions_base_price),
-                // mResources.getString(R.string.tare_rewards)
+                resources.getString(R.string.tare_rewards_instantaneous),
+                // resources.getString(R.string.tare_rewards_ongoing),
+                resources.getString(R.string.tare_rewards_max)
         };
 
         mChildren = new String[][]{
@@ -108,7 +110,9 @@
                 // mResources.getStringArray(R.array.tare_modifiers_subfactors),
                 resources.getStringArray(R.array.tare_job_scheduler_actions),
                 resources.getStringArray(R.array.tare_job_scheduler_actions),
-                // mResources.getStringArray(R.array.tare_rewards_subfactors)
+                resources.getStringArray(R.array.tare_rewards_subfactors),
+                // {resources.getString(R.string.tare_top_activity)},
+                resources.getStringArray(R.array.tare_rewards_subfactors)
         };
 
         mKeys = new String[][]{
@@ -149,7 +153,21 @@
                         EconomyManager.KEY_JS_ACTION_JOB_MIN_RUNNING_BASE_PRICE,
                         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_ONGOING},
+                {
+                        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,
+                }
         };
     }
 }
diff --git a/src/com/android/settings/development/tare/TareFactorController.java b/src/com/android/settings/development/tare/TareFactorController.java
index b9f813d..62fde6d 100644
--- a/src/com/android/settings/development/tare/TareFactorController.java
+++ b/src/com/android/settings/development/tare/TareFactorController.java
@@ -530,7 +530,7 @@
         } else if (mJobSchedulerMap.containsKey(key)) {
             currentMap = mJobSchedulerMap;
         } else {
-            throw new IllegalArgumentException("Couldn't link key to policy map");
+            throw new IllegalArgumentException("Couldn't link key '" + key + "' to a policy");
         }
         return currentMap.get(key).factorPolicy;
     }