From dca9cf22a6fc54e6f338470e26bbb9dbbe6f3841 Mon Sep 17 00:00:00 2001 From: Kweku Adams Date: Thu, 2 Dec 2021 11:28:29 -0800 Subject: [PATCH] Fix updating max circulation value. The individual EconomicPolicies were correctly reading the Settings constants for the max circulation in setup(), but CompleteEconomicPolicy treated those values as final upon initialization, so it wasn't updating the max circulation. Bug: 158300259 Test: set value via adb and confirm limit increased in dumpsys Change-Id: Ic9769a4173d652d8dc2ca43677e4618c57869613 --- .../tare/AlarmManagerEconomicPolicy.java | 2 +- .../server/tare/CompleteEconomicPolicy.java | 25 +++++++++++-------- .../tare/JobSchedulerEconomicPolicy.java | 2 +- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/apex/jobscheduler/service/java/com/android/server/tare/AlarmManagerEconomicPolicy.java b/apex/jobscheduler/service/java/com/android/server/tare/AlarmManagerEconomicPolicy.java index d7290191dc3c4..e1e6e47155aa4 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/AlarmManagerEconomicPolicy.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/AlarmManagerEconomicPolicy.java @@ -357,7 +357,7 @@ public class AlarmManagerEconomicPolicy extends EconomicPolicy { pw.print("Other", narcToString(mMinSatiatedBalanceOther)).println(); pw.decreaseIndent(); pw.print("Max satiated balance", narcToString(mMaxSatiatedBalance)).println(); - pw.print("Min satiated circulation", narcToString(mMaxSatiatedCirculation)).println(); + pw.print("Max satiated circulation", narcToString(mMaxSatiatedCirculation)).println(); pw.println(); pw.println("Actions:"); diff --git a/apex/jobscheduler/service/java/com/android/server/tare/CompleteEconomicPolicy.java b/apex/jobscheduler/service/java/com/android/server/tare/CompleteEconomicPolicy.java index 7bf0e6defb582..a4e7b808ca6c7 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/CompleteEconomicPolicy.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/CompleteEconomicPolicy.java @@ -33,8 +33,8 @@ public class CompleteEconomicPolicy extends EconomicPolicy { /** Lazily populated set of rewards covered by this policy. */ private final SparseArray mRewards = new SparseArray<>(); private final int[] mCostModifiers; - private final long mMaxSatiatedBalance; - private final long mMaxSatiatedCirculation; + private long mMaxSatiatedBalance; + private long mMaxSatiatedCirculation; CompleteEconomicPolicy(@NonNull InternalResourceService irs) { super(irs); @@ -53,6 +53,19 @@ public class CompleteEconomicPolicy extends EconomicPolicy { mCostModifiers[i] = costModifiers.valueAt(i); } + updateMaxBalances(); + } + + @Override + void setup() { + super.setup(); + for (int i = 0; i < mEnabledEconomicPolicies.size(); ++i) { + mEnabledEconomicPolicies.valueAt(i).setup(); + } + updateMaxBalances(); + } + + private void updateMaxBalances() { long max = 0; for (int i = 0; i < mEnabledEconomicPolicies.size(); ++i) { max += mEnabledEconomicPolicies.valueAt(i).getMaxSatiatedBalance(); @@ -66,14 +79,6 @@ public class CompleteEconomicPolicy extends EconomicPolicy { mMaxSatiatedCirculation = max; } - @Override - void setup() { - super.setup(); - for (int i = 0; i < mEnabledEconomicPolicies.size(); ++i) { - mEnabledEconomicPolicies.valueAt(i).setup(); - } - } - @Override long getMinSatiatedBalance(final int userId, @NonNull final String pkgName) { long min = 0; diff --git a/apex/jobscheduler/service/java/com/android/server/tare/JobSchedulerEconomicPolicy.java b/apex/jobscheduler/service/java/com/android/server/tare/JobSchedulerEconomicPolicy.java index 2318026d9f16b..1f8ce26a3fd9b 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/JobSchedulerEconomicPolicy.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/JobSchedulerEconomicPolicy.java @@ -332,7 +332,7 @@ public class JobSchedulerEconomicPolicy extends EconomicPolicy { pw.print("Other", narcToString(mMinSatiatedBalanceOther)).println(); pw.decreaseIndent(); pw.print("Max satiated balance", narcToString(mMaxSatiatedBalance)).println(); - pw.print("Min satiated circulation", narcToString(mMaxSatiatedCirculation)).println(); + pw.print("Max satiated circulation", narcToString(mMaxSatiatedCirculation)).println(); pw.println(); pw.println("Actions:");