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

Commit 674c9bb2 authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Batterystats commands to simulate screen on/off

Needed for batterystats cts tests to measure partial wakelock
duration reporting.

Bug: 34233085
Test: adb shell dumpsys batterystats enable pretend-screen-off
Change-Id: Ia7c76d6a0636d206e04f01be58d1e6dc3332c50d
parent 26dbff35
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -377,6 +377,8 @@ public class BatteryStatsImpl extends BatteryStats {
    int mScreenBrightnessBin = -1;
    final StopwatchTimer[] mScreenBrightnessTimer = new StopwatchTimer[NUM_SCREEN_BRIGHTNESS_BINS];

    boolean mPretendScreenOff;

    boolean mInteractive;
    StopwatchTimer mInteractiveTimer;

@@ -3395,6 +3397,11 @@ public class BatteryStatsImpl extends BatteryStats {
        mNoAutoReset = enabled;
    }

    public void setPretendScreenOff(boolean pretendScreenOff) {
        mPretendScreenOff = pretendScreenOff;
        noteScreenStateLocked(pretendScreenOff ? Display.STATE_OFF : Display.STATE_ON);
    }

    private String mInitialAcquireWakeName;
    private int mInitialAcquireWakeUid = -1;

@@ -3698,6 +3705,7 @@ public class BatteryStatsImpl extends BatteryStats {
    }

    public void noteScreenStateLocked(int state) {
        state = mPretendScreenOff ? Display.STATE_OFF : state;
        if (mScreenState != state) {
            recordDailyStatsIfNeededLocked(true);
            final int oldState = mScreenState;
+6 −1
Original line number Diff line number Diff line
@@ -51,8 +51,8 @@ import android.telephony.SignalStrength;
import android.telephony.TelephonyManager;
import android.util.IntArray;
import android.util.Slog;

import android.util.TimeUtils;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.app.IBatteryStats;
import com.android.internal.os.BatteryStatsHelper;
@@ -1127,6 +1127,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
        pw.println("      full-history: include additional detailed events in battery history:");
        pw.println("          wake_lock_in, alarms and proc events");
        pw.println("      no-auto-reset: don't automatically reset stats when unplugged");
        pw.println("      pretend-screen-off: pretend the screen is off, even if screen state changes");
    }

    private int doEnableOrDisable(PrintWriter pw, int i, String[] args, boolean enable) {
@@ -1144,6 +1145,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub
            synchronized (mStats) {
                mStats.setNoAutoReset(enable);
            }
        } else if ("pretend-screen-off".equals(args[i])) {
            synchronized (mStats) {
                mStats.setPretendScreenOff(enable);
            }
        } else {
            pw.println("Unknown enable/disable option: " + args[i]);
            dumpHelp(pw);