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

Commit 7025c3c3 authored by Makoto Onuki's avatar Makoto Onuki
Browse files

Also show "last BS off time" in dumpsys power

Change-Id: I53d7727847b84b29bdc8285c50ce59def4378684
Fix: 75024658
Bug: 75024658
Test: Manual test with dumpsys power
Test: atest $ANDROID_BUILD_TOP/frameworks/base/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySavingStatsTest.java
parent 65e2dda7
Loading
Loading
Loading
Loading
+30 −13
Original line number Diff line number Diff line
@@ -162,9 +162,15 @@ public class BatterySavingStats {
    @GuardedBy("mLock")
    private int mBatterySaverEnabledCount = 0;

    @GuardedBy("mLock")
    private boolean mIsBatterySaverEnabled;

    @GuardedBy("mLock")
    private long mLastBatterySaverEnabledTime = 0;

    @GuardedBy("mLock")
    private long mLastBatterySaverDisabledTime = 0;

    private final MetricsLoggerHelper mMetricsLoggerHelper = new MetricsLoggerHelper();

    @VisibleForTesting
@@ -312,11 +318,12 @@ public class BatterySavingStats {
        final boolean newBatterySaverEnabled =
                BatterySaverState.fromIndex(newState) != BatterySaverState.OFF;
        if (oldBatterySaverEnabled != newBatterySaverEnabled) {
            mIsBatterySaverEnabled = newBatterySaverEnabled;
            if (newBatterySaverEnabled) {
                mBatterySaverEnabledCount++;
                mLastBatterySaverEnabledTime = injectCurrentTime();
            } else {
                mLastBatterySaverEnabledTime = 0;
                mLastBatterySaverDisabledTime = injectCurrentTime();
            }
        }

@@ -391,25 +398,35 @@ public class BatterySavingStats {

            indent = indent + "  ";

            pw.print(indent);
            pw.print("Battery Saver state: ");
            if (mLastBatterySaverEnabledTime == 0) {
                pw.print("OFF");
            } else {
                pw.print("ON since ");

            final long now = System.currentTimeMillis();
            final long nowElapsed = injectCurrentTime();
            final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
            pw.print(indent);
            pw.print("Battery Saver is currently: ");
            pw.println(mIsBatterySaverEnabled ? "ON" : "OFF");
            if (mLastBatterySaverEnabledTime > 0) {
                pw.print(indent);
                pw.print("  ");
                pw.print("Last ON time: ");
                pw.print(sdf.format(new Date(now - nowElapsed + mLastBatterySaverEnabledTime)));

                pw.print(" ");
                TimeUtils.formatDuration(mLastBatterySaverEnabledTime, nowElapsed, pw);
                pw.println();
            }

            if (mLastBatterySaverDisabledTime > 0) {
                pw.print(indent);
                pw.print("  ");
                pw.print("Last OFF time: ");
                pw.print(sdf.format(new Date(now - nowElapsed + mLastBatterySaverDisabledTime)));
                pw.print(" ");
                TimeUtils.formatDuration(mLastBatterySaverDisabledTime, nowElapsed, pw);
                pw.println();
            }

            pw.print(indent);
            pw.print("  ");
            pw.print("Times enabled: ");
            pw.println(mBatterySaverEnabledCount);