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
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user