diff options
| -rw-r--r-- | apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java | 3 | ||||
| -rw-r--r-- | apex/jobscheduler/service/java/com/android/server/tare/Scribe.java | 13 |
2 files changed, 13 insertions, 3 deletions
diff --git a/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java b/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java index da5a0c0e1e3f..2b8272208c3e 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java @@ -783,6 +783,9 @@ public class InternalResourceService extends SystemService { // Reset the consumption limit since several factors may have changed. mScribe.setConsumptionLimitLocked( mCompleteEconomicPolicy.getInitialSatiatedConsumptionLimit()); + } else { + // Adjust the supply in case battery level changed while the device was off. + adjustCreditSupplyLocked(true); } } scheduleUnusedWealthReclamationLocked(); diff --git a/apex/jobscheduler/service/java/com/android/server/tare/Scribe.java b/apex/jobscheduler/service/java/com/android/server/tare/Scribe.java index ed915cd88ebe..2cae83f4aad5 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/Scribe.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/Scribe.java @@ -19,6 +19,7 @@ package com.android.server.tare; import static android.text.format.DateUtils.HOUR_IN_MILLIS; import static com.android.server.tare.TareUtils.appToString; +import static com.android.server.tare.TareUtils.cakeToString; import android.annotation.NonNull; import android.annotation.Nullable; @@ -136,9 +137,15 @@ public class Scribe { @GuardedBy("mIrs.getLock()") void adjustRemainingConsumableCakesLocked(long delta) { - if (delta != 0) { - // No point doing any work if the change is 0. - mRemainingConsumableCakes += delta; + final long staleCakes = mRemainingConsumableCakes; + mRemainingConsumableCakes += delta; + if (mRemainingConsumableCakes < 0) { + Slog.w(TAG, "Overdrew consumable cakes by " + cakeToString(-mRemainingConsumableCakes)); + // A negative value would interfere with allowing free actions, so set the minimum as 0. + mRemainingConsumableCakes = 0; + } + if (mRemainingConsumableCakes != staleCakes) { + // No point doing any work if there was no functional change. postWrite(); } } |