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

Commit 4a4cfbe7 authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Android (Google) Code Review
Browse files

Merge "Add "start time" timestamp to battery stats."

parents e742799c 5f4a5f95
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import java.util.Map;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.telephony.SignalStrength;
import android.text.format.DateFormat;
import android.util.Printer;
import android.util.SparseArray;
import android.util.TimeUtils;
@@ -894,6 +895,11 @@ public abstract class BatteryStats implements Parcelable {
    public abstract long getNetworkActivityBytes(int type, int which);
    public abstract long getNetworkActivityPackets(int type, int which);

    /**
     * Return the wall clock time when battery stats data collection started.
     */
    public abstract long getStartClockTime();

    /**
     * Return whether we are currently running on battery.
     */
@@ -1210,7 +1216,8 @@ public abstract class BatteryStats implements Parcelable {
        dumpLine(pw, 0 /* uid */, category, BATTERY_DATA, 
                which == STATS_SINCE_CHARGED ? getStartCount() : "N/A",
                whichBatteryRealtime / 1000, whichBatteryUptime / 1000,
                totalRealtime / 1000, totalUptime / 1000); 
                totalRealtime / 1000, totalUptime / 1000,
                getStartClockTime());
        
        // Calculate wakelock times across all uids.
        long fullWakeLockTimeTotal = 0;
@@ -1587,6 +1594,8 @@ public abstract class BatteryStats implements Parcelable {
                formatTimeMs(sb, totalUptime / 1000);
                sb.append("uptime, ");
        pw.println(sb.toString());
        pw.print("  Start clock time: ");
        pw.println(DateFormat.format("yyyy-MM-dd-HH-mm-ss", getStartClockTime()).toString());

        final long screenOnTime = getScreenOnTime(batteryRealtime, which);
        final long phoneOnTime = getPhoneOnTime(batteryRealtime, which);
+13 −4
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ public final class BatteryStatsImpl extends BatteryStats {
    private static final int MAGIC = 0xBA757475; // 'BATSTATS'

    // Current on-disk Parcel version
    private static final int VERSION = 70 + (USE_OLD_HISTORY ? 1000 : 0);
    private static final int VERSION = 71 + (USE_OLD_HISTORY ? 1000 : 0);

    // Maximum number of items we will record in the history.
    private static final int MAX_HISTORY_ITEMS = 2000;
@@ -209,6 +209,8 @@ public final class BatteryStatsImpl extends BatteryStats {

    int mStartCount;

    long mStartClockTime;

    long mBatteryUptime;
    long mBatteryLastUptime;
    long mBatteryRealtime;
@@ -2842,6 +2844,10 @@ public final class BatteryStatsImpl extends BatteryStats {
        }
    }

    @Override public long getStartClockTime() {
        return mStartClockTime;
    }

    @Override public boolean getIsOnBattery() {
        return mOnBattery;
    }
@@ -4959,6 +4965,7 @@ public final class BatteryStatsImpl extends BatteryStats {
    }

    void initTimes() {
        mStartClockTime = System.currentTimeMillis();
        mBatteryRealtime = mTrackBatteryPastUptime = 0;
        mBatteryUptime = mTrackBatteryPastRealtime = 0;
        mUptimeStart = mTrackBatteryUptimeStart = SystemClock.uptimeMillis() * 1000;
@@ -5832,6 +5839,7 @@ public final class BatteryStatsImpl extends BatteryStats {
        mBatteryRealtime = in.readLong();
        mUptime = in.readLong();
        mRealtime = in.readLong();
        mStartClockTime = in.readLong();
        mDischargeUnplugLevel = in.readInt();
        mDischargeCurrentLevel = in.readInt();
        mLowDischargeAmountSinceCharge = in.readInt();
@@ -6040,9 +6048,7 @@ public final class BatteryStatsImpl extends BatteryStats {
     * @param out the Parcel to be written to.
     */
    public void writeSummaryToParcel(Parcel out) {
        // Need to update with current kernel wake lock counts.
        updateKernelWakelocksLocked();
        updateNetworkActivityLocked();
        pullPendingStateUpdatesLocked();

        final long NOW_SYS = SystemClock.uptimeMillis() * 1000;
        final long NOWREAL_SYS = SystemClock.elapsedRealtime() * 1000;
@@ -6058,6 +6064,7 @@ public final class BatteryStatsImpl extends BatteryStats {
        out.writeLong(computeBatteryRealtime(NOWREAL_SYS, STATS_SINCE_CHARGED));
        out.writeLong(computeUptime(NOW_SYS, STATS_SINCE_CHARGED));
        out.writeLong(computeRealtime(NOWREAL_SYS, STATS_SINCE_CHARGED));
        out.writeLong(mStartClockTime);
        out.writeInt(mDischargeUnplugLevel);
        out.writeInt(mDischargeCurrentLevel);
        out.writeInt(getLowDischargeAmountSinceCharge());
@@ -6293,6 +6300,7 @@ public final class BatteryStatsImpl extends BatteryStats {
        mBatteryLastUptime = 0;
        mBatteryRealtime = in.readLong();
        mBatteryLastRealtime = 0;
        mStartClockTime = in.readLong();
        mScreenOn = false;
        mScreenOnTimer = new StopwatchTimer(null, -1, null, mUnpluggables, in);
        for (int i=0; i<NUM_SCREEN_BRIGHTNESS_BINS; i++) {
@@ -6408,6 +6416,7 @@ public final class BatteryStatsImpl extends BatteryStats {
        out.writeInt(mStartCount);
        out.writeLong(mBatteryUptime);
        out.writeLong(mBatteryRealtime);
        out.writeLong(mStartClockTime);
        mScreenOnTimer.writeToParcel(out, batteryRealtime);
        for (int i=0; i<NUM_SCREEN_BRIGHTNESS_BINS; i++) {
            mScreenBrightnessTimer[i].writeToParcel(out, batteryRealtime);