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

Commit ff5ee8b3 authored by Kweku Adams's avatar Kweku Adams
Browse files

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
parent a9a51466
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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();
+10 −3
Original line number Diff line number Diff line
@@ -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.
        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();
        }
    }