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

Commit deae8db7 authored by Kweku Adams's avatar Kweku Adams Committed by Android (Google) Code Review
Browse files

Merge "Implementing TIP1."

parents 907bb3d7 5cb3d10f
Loading
Loading
Loading
Loading
+13 −5
Original line number Original line Diff line number Diff line
@@ -39,7 +39,9 @@ public class EconomyManager {
    /** @hide */
    /** @hide */
    public static final String KEY_AM_MAX_SATIATED_BALANCE = "am_max_satiated_balance";
    public static final String KEY_AM_MAX_SATIATED_BALANCE = "am_max_satiated_balance";
    /** @hide */
    /** @hide */
    public static final String KEY_AM_MAX_CIRCULATION = "am_max_circulation";
    public static final String KEY_AM_INITIAL_CONSUMPTION_LIMIT = "am_initial_consumption_limit";
    /** @hide */
    public static final String KEY_AM_HARD_CONSUMPTION_LIMIT = "am_hard_consumption_limit";
    // TODO: Add AlarmManager modifier keys
    // TODO: Add AlarmManager modifier keys
    /** @hide */
    /** @hide */
    public static final String KEY_AM_REWARD_TOP_ACTIVITY_INSTANT =
    public static final String KEY_AM_REWARD_TOP_ACTIVITY_INSTANT =
@@ -163,7 +165,9 @@ public class EconomyManager {
    public static final String KEY_JS_MAX_SATIATED_BALANCE =
    public static final String KEY_JS_MAX_SATIATED_BALANCE =
            "js_max_satiated_balance";
            "js_max_satiated_balance";
    /** @hide */
    /** @hide */
    public static final String KEY_JS_MAX_CIRCULATION = "js_max_circulation";
    public static final String KEY_JS_INITIAL_CONSUMPTION_LIMIT = "js_initial_consumption_limit";
    /** @hide */
    public static final String KEY_JS_HARD_CONSUMPTION_LIMIT = "js_hard_consumption_limit";
    // TODO: Add JobScheduler modifier keys
    // TODO: Add JobScheduler modifier keys
    /** @hide */
    /** @hide */
    public static final String KEY_JS_REWARD_TOP_ACTIVITY_INSTANT =
    public static final String KEY_JS_REWARD_TOP_ACTIVITY_INSTANT =
@@ -280,7 +284,9 @@ public class EconomyManager {
    /** @hide */
    /** @hide */
    public static final int DEFAULT_AM_MAX_SATIATED_BALANCE = 1440;
    public static final int DEFAULT_AM_MAX_SATIATED_BALANCE = 1440;
    /** @hide */
    /** @hide */
    public static final int DEFAULT_AM_MAX_CIRCULATION = 52000;
    public static final int DEFAULT_AM_INITIAL_CONSUMPTION_LIMIT = 28800;
    /** @hide */
    public static final int DEFAULT_AM_HARD_CONSUMPTION_LIMIT = 52000;
    // TODO: add AlarmManager modifier default values
    // TODO: add AlarmManager modifier default values
    /** @hide */
    /** @hide */
    public static final int DEFAULT_AM_REWARD_TOP_ACTIVITY_INSTANT = 0;
    public static final int DEFAULT_AM_REWARD_TOP_ACTIVITY_INSTANT = 0;
@@ -359,7 +365,7 @@ public class EconomyManager {
    // Default values JobScheduler factors
    // Default values JobScheduler factors
    // TODO: add time_since_usage variable to min satiated balance factors
    // TODO: add time_since_usage variable to min satiated balance factors
    /** @hide */
    /** @hide */
    public static final int DEFAULT_JS_MIN_SATIATED_BALANCE_EXEMPTED = 50000;
    public static final int DEFAULT_JS_MIN_SATIATED_BALANCE_EXEMPTED = 20000;
    /** @hide */
    /** @hide */
    public static final int DEFAULT_JS_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP = 10000;
    public static final int DEFAULT_JS_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP = 10000;
    /** @hide */
    /** @hide */
@@ -367,7 +373,9 @@ public class EconomyManager {
    /** @hide */
    /** @hide */
    public static final int DEFAULT_JS_MAX_SATIATED_BALANCE = 60000;
    public static final int DEFAULT_JS_MAX_SATIATED_BALANCE = 60000;
    /** @hide */
    /** @hide */
    public static final int DEFAULT_JS_MAX_CIRCULATION = 691200;
    public static final int DEFAULT_JS_INITIAL_CONSUMPTION_LIMIT = 460_000;
    /** @hide */
    public static final int DEFAULT_JS_HARD_CONSUMPTION_LIMIT = 900_000;
    // TODO: add JobScheduler modifier default values
    // TODO: add JobScheduler modifier default values
    /** @hide */
    /** @hide */
    public static final int DEFAULT_JS_REWARD_TOP_ACTIVITY_INSTANT = 0;
    public static final int DEFAULT_JS_REWARD_TOP_ACTIVITY_INSTANT = 0;
+1 −1
Original line number Original line Diff line number Diff line
@@ -3007,7 +3007,7 @@ public class JobSchedulerService extends com.android.server.SystemService
                    }
                    }
                } else if (BatteryManager.ACTION_DISCHARGING.equals(action)) {
                } else if (BatteryManager.ACTION_DISCHARGING.equals(action)) {
                    if (DEBUG) {
                    if (DEBUG) {
                        Slog.d(TAG, "Disconnected from power @ " + sElapsedRealtimeClock.millis());
                        Slog.d(TAG, "Battery discharging @ " + sElapsedRealtimeClock.millis());
                    }
                    }
                    if (mCharging) {
                    if (mCharging) {
                        mCharging = false;
                        mCharging = false;
+163 −78

File changed.

Preview size limit exceeded, changes collapsed.

+23 −8
Original line number Original line Diff line number Diff line
@@ -33,7 +33,8 @@ import static android.app.tare.EconomyManager.DEFAULT_AM_ACTION_ALARM_INEXACT_NO
import static android.app.tare.EconomyManager.DEFAULT_AM_ACTION_ALARM_INEXACT_NONWAKEUP_CTP;
import static android.app.tare.EconomyManager.DEFAULT_AM_ACTION_ALARM_INEXACT_NONWAKEUP_CTP;
import static android.app.tare.EconomyManager.DEFAULT_AM_ACTION_ALARM_INEXACT_WAKEUP_BASE_PRICE;
import static android.app.tare.EconomyManager.DEFAULT_AM_ACTION_ALARM_INEXACT_WAKEUP_BASE_PRICE;
import static android.app.tare.EconomyManager.DEFAULT_AM_ACTION_ALARM_INEXACT_WAKEUP_CTP;
import static android.app.tare.EconomyManager.DEFAULT_AM_ACTION_ALARM_INEXACT_WAKEUP_CTP;
import static android.app.tare.EconomyManager.DEFAULT_AM_MAX_CIRCULATION;
import static android.app.tare.EconomyManager.DEFAULT_AM_HARD_CONSUMPTION_LIMIT;
import static android.app.tare.EconomyManager.DEFAULT_AM_INITIAL_CONSUMPTION_LIMIT;
import static android.app.tare.EconomyManager.DEFAULT_AM_MAX_SATIATED_BALANCE;
import static android.app.tare.EconomyManager.DEFAULT_AM_MAX_SATIATED_BALANCE;
import static android.app.tare.EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_EXEMPTED;
import static android.app.tare.EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_EXEMPTED;
import static android.app.tare.EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_OTHER_APP;
import static android.app.tare.EconomyManager.DEFAULT_AM_MIN_SATIATED_BALANCE_OTHER_APP;
@@ -70,7 +71,8 @@ import static android.app.tare.EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_NONWAK
import static android.app.tare.EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_NONWAKEUP_CTP;
import static android.app.tare.EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_NONWAKEUP_CTP;
import static android.app.tare.EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_WAKEUP_BASE_PRICE;
import static android.app.tare.EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_WAKEUP_BASE_PRICE;
import static android.app.tare.EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_WAKEUP_CTP;
import static android.app.tare.EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_WAKEUP_CTP;
import static android.app.tare.EconomyManager.KEY_AM_MAX_CIRCULATION;
import static android.app.tare.EconomyManager.KEY_AM_HARD_CONSUMPTION_LIMIT;
import static android.app.tare.EconomyManager.KEY_AM_INITIAL_CONSUMPTION_LIMIT;
import static android.app.tare.EconomyManager.KEY_AM_MAX_SATIATED_BALANCE;
import static android.app.tare.EconomyManager.KEY_AM_MAX_SATIATED_BALANCE;
import static android.app.tare.EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_EXEMPTED;
import static android.app.tare.EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_EXEMPTED;
import static android.app.tare.EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_OTHER_APP;
import static android.app.tare.EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_OTHER_APP;
@@ -143,7 +145,8 @@ public class AlarmManagerEconomicPolicy extends EconomicPolicy {
    private long mMinSatiatedBalanceExempted;
    private long mMinSatiatedBalanceExempted;
    private long mMinSatiatedBalanceOther;
    private long mMinSatiatedBalanceOther;
    private long mMaxSatiatedBalance;
    private long mMaxSatiatedBalance;
    private long mMaxSatiatedCirculation;
    private long mInitialSatiatedConsumptionLimit;
    private long mHardSatiatedConsumptionLimit;


    private final KeyValueListParser mParser = new KeyValueListParser(',');
    private final KeyValueListParser mParser = new KeyValueListParser(',');
    private final InternalResourceService mInternalResourceService;
    private final InternalResourceService mInternalResourceService;
@@ -179,8 +182,13 @@ public class AlarmManagerEconomicPolicy extends EconomicPolicy {
    }
    }


    @Override
    @Override
    long getMaxSatiatedCirculation() {
    long getInitialSatiatedConsumptionLimit() {
        return mMaxSatiatedCirculation;
        return mInitialSatiatedConsumptionLimit;
    }

    @Override
    long getHardSatiatedConsumptionLimit() {
        return mHardSatiatedConsumptionLimit;
    }
    }


    @NonNull
    @NonNull
@@ -217,8 +225,11 @@ public class AlarmManagerEconomicPolicy extends EconomicPolicy {
                DEFAULT_AM_MIN_SATIATED_BALANCE_OTHER_APP));
                DEFAULT_AM_MIN_SATIATED_BALANCE_OTHER_APP));
        mMaxSatiatedBalance = arcToNarc(mParser.getInt(KEY_AM_MAX_SATIATED_BALANCE,
        mMaxSatiatedBalance = arcToNarc(mParser.getInt(KEY_AM_MAX_SATIATED_BALANCE,
                DEFAULT_AM_MAX_SATIATED_BALANCE));
                DEFAULT_AM_MAX_SATIATED_BALANCE));
        mMaxSatiatedCirculation = arcToNarc(mParser.getInt(KEY_AM_MAX_CIRCULATION,
        mInitialSatiatedConsumptionLimit = arcToNarc(mParser.getInt(
                DEFAULT_AM_MAX_CIRCULATION));
                KEY_AM_INITIAL_CONSUMPTION_LIMIT, DEFAULT_AM_INITIAL_CONSUMPTION_LIMIT));
        mHardSatiatedConsumptionLimit = Math.max(mInitialSatiatedConsumptionLimit,
                arcToNarc(mParser.getInt(
                        KEY_AM_HARD_CONSUMPTION_LIMIT, DEFAULT_AM_HARD_CONSUMPTION_LIMIT)));


        final long exactAllowWhileIdleWakeupBasePrice = arcToNarc(
        final long exactAllowWhileIdleWakeupBasePrice = arcToNarc(
                mParser.getInt(KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_BASE_PRICE,
                mParser.getInt(KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_BASE_PRICE,
@@ -357,7 +368,11 @@ public class AlarmManagerEconomicPolicy extends EconomicPolicy {
        pw.print("Other", narcToString(mMinSatiatedBalanceOther)).println();
        pw.print("Other", narcToString(mMinSatiatedBalanceOther)).println();
        pw.decreaseIndent();
        pw.decreaseIndent();
        pw.print("Max satiated balance", narcToString(mMaxSatiatedBalance)).println();
        pw.print("Max satiated balance", narcToString(mMaxSatiatedBalance)).println();
        pw.print("Max satiated circulation", narcToString(mMaxSatiatedCirculation)).println();
        pw.print("Consumption limits: [");
        pw.print(narcToString(mInitialSatiatedConsumptionLimit));
        pw.print(", ");
        pw.print(narcToString(mHardSatiatedConsumptionLimit));
        pw.println("]");


        pw.println();
        pw.println();
        pw.println("Actions:");
        pw.println("Actions:");
+10 −5
Original line number Original line Diff line number Diff line
@@ -34,7 +34,7 @@ public class CompleteEconomicPolicy extends EconomicPolicy {
    private final SparseArray<Reward> mRewards = new SparseArray<>();
    private final SparseArray<Reward> mRewards = new SparseArray<>();
    private final int[] mCostModifiers;
    private final int[] mCostModifiers;
    private long mMaxSatiatedBalance;
    private long mMaxSatiatedBalance;
    private long mMaxSatiatedCirculation;
    private long mConsumptionLimit;


    CompleteEconomicPolicy(@NonNull InternalResourceService irs) {
    CompleteEconomicPolicy(@NonNull InternalResourceService irs) {
        super(irs);
        super(irs);
@@ -74,9 +74,9 @@ public class CompleteEconomicPolicy extends EconomicPolicy {


        max = 0;
        max = 0;
        for (int i = 0; i < mEnabledEconomicPolicies.size(); ++i) {
        for (int i = 0; i < mEnabledEconomicPolicies.size(); ++i) {
            max += mEnabledEconomicPolicies.valueAt(i).getMaxSatiatedCirculation();
            max += mEnabledEconomicPolicies.valueAt(i).getInitialSatiatedConsumptionLimit();
        }
        }
        mMaxSatiatedCirculation = max;
        mConsumptionLimit = max;
    }
    }


    @Override
    @Override
@@ -94,8 +94,13 @@ public class CompleteEconomicPolicy extends EconomicPolicy {
    }
    }


    @Override
    @Override
     long getMaxSatiatedCirculation() {
    long getInitialSatiatedConsumptionLimit() {
        return mMaxSatiatedCirculation;
        return mConsumptionLimit;
    }

    @Override
    long getHardSatiatedConsumptionLimit() {
        return mConsumptionLimit;
    }
    }


    @NonNull
    @NonNull
Loading