Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 10ef5991 authored by Kweku Adams's avatar Kweku Adams
Browse files

Make reward constants configurable.

Make it possible to configure the instant and max values of all
supported actions. Ongoing rewards will be enabled later.

Bug: 158300259
Bug: 189850067
Bug: 191876714
Bug: 191877052
Test: Manual
Change-Id: Ia854f18820f3fe95b3b1448c5fa8411853859052
parent b39ab3e1
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -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>
+18 −3
Original line number Diff line number Diff line
@@ -97,7 +97,8 @@ public class AlarmManagerFragment extends Fragment implements
                // 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 @@ public class AlarmManagerFragment extends Fragment implements
                // 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 @@ public class AlarmManagerFragment extends Fragment implements
                        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,
                }
        };
    }
}
+21 −3
Original line number Diff line number Diff line
@@ -98,7 +98,9 @@ public class JobSchedulerFragment extends Fragment implements
                // 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 @@ public class JobSchedulerFragment extends Fragment implements
                // 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 @@ public class JobSchedulerFragment extends Fragment implements
                        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,
                }
        };
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -530,7 +530,7 @@ public class TareFactorController {
        } 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;
    }