Adjust remaining supply as needed.
1. Update the remaining supply when TARE loads (from being turned on or the device booting up) in case the battery level changed significantly since the last time it was on. 2. Don't let the remaining supply go negative since that would negatively impact allowing free actions. Bug: 242605499 Bug: 242769323 Test: atest --rerun-until-failure 100 CtsAlarmManagerTestCases:BasicApiTests Change-Id: I2659c5823baab45dc3f40cbbe85078a03c5ce5fe
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user