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

Commit f8d63924 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Output doze mode power in BatteryStats"

parents 52c4cf38 15313c92
Loading
Loading
Loading
Loading
+45 −3
Original line number Diff line number Diff line
@@ -222,8 +222,10 @@ public abstract class BatteryStats implements Parcelable {
     *   - Resource power manager (rpm) states [but screenOffRpm is disabled from working properly]
     * New in version 27:
     *   - Always On Display (screen doze mode) time and power
     * New in version 28:
     *   - Light/Deep Doze power
     */
    static final int CHECKIN_VERSION = 27;
    static final int CHECKIN_VERSION = 28;

    /**
     * Old version, we hit 9 and ran out of room, need to remove.
@@ -2695,6 +2697,18 @@ public abstract class BatteryStats implements Parcelable {
     */
    public abstract long getUahDischarge(int which);

    /**
     * @return the amount of battery discharge while the device is in light idle mode, measured in
     * micro-Ampere-hours.
     */
    public abstract long getUahDischargeLightDoze(int which);

    /**
     * @return the amount of battery discharge while the device is in deep idle mode, measured in
     * micro-Ampere-hours.
     */
    public abstract long getUahDischargeDeepDoze(int which);

    /**
     * Returns the estimated real battery capacity, which may be less than the capacity
     * declared by the PowerProfile.
@@ -3327,6 +3341,8 @@ public abstract class BatteryStats implements Parcelable {
        final long dischargeCount = getUahDischarge(which);
        final long dischargeScreenOffCount = getUahDischargeScreenOff(which);
        final long dischargeScreenDozeCount = getUahDischargeScreenDoze(which);
        final long dischargeLightDozeCount = getUahDischargeLightDoze(which);
        final long dischargeDeepDozeCount = getUahDischargeDeepDoze(which);

        final StringBuilder sb = new StringBuilder(128);

@@ -3497,14 +3513,16 @@ public abstract class BatteryStats implements Parcelable {
                    getDischargeStartLevel()-getDischargeCurrentLevel(),
                    getDischargeAmountScreenOn(), getDischargeAmountScreenOff(),
                    dischargeCount / 1000, dischargeScreenOffCount / 1000,
                    getDischargeAmountScreenDoze(), dischargeScreenDozeCount / 1000);
                    getDischargeAmountScreenDoze(), dischargeScreenDozeCount / 1000,
                    dischargeLightDozeCount / 1000, dischargeDeepDozeCount / 1000);
        } else {
            dumpLine(pw, 0 /* uid */, category, BATTERY_DISCHARGE_DATA,
                    getLowDischargeAmountSinceCharge(), getHighDischargeAmountSinceCharge(),
                    getDischargeAmountScreenOnSinceCharge(),
                    getDischargeAmountScreenOffSinceCharge(),
                    dischargeCount / 1000, dischargeScreenOffCount / 1000,
                    getDischargeAmountScreenDozeSinceCharge(), dischargeScreenDozeCount / 1000);
                    getDischargeAmountScreenDozeSinceCharge(), dischargeScreenDozeCount / 1000,
                    dischargeLightDozeCount / 1000, dischargeDeepDozeCount / 1000);
        }

        if (reqUid < 0) {
@@ -4169,6 +4187,26 @@ public abstract class BatteryStats implements Parcelable {
            pw.println(sb.toString());
        }

        final long dischargeLightDozeCount = getUahDischargeLightDoze(which);
        if (dischargeLightDozeCount >= 0) {
            sb.setLength(0);
            sb.append(prefix);
            sb.append("  Device light doze discharge: ");
            sb.append(BatteryStatsHelper.makemAh(dischargeLightDozeCount / 1000.0));
            sb.append(" mAh");
            pw.println(sb.toString());
        }

        final long dischargeDeepDozeCount = getUahDischargeDeepDoze(which);
        if (dischargeDeepDozeCount >= 0) {
            sb.setLength(0);
            sb.append(prefix);
            sb.append("  Device deep doze discharge: ");
            sb.append(BatteryStatsHelper.makemAh(dischargeDeepDozeCount / 1000.0));
            sb.append(" mAh");
            pw.println(sb.toString());
        }

        pw.print("  Start clock time: ");
        pw.println(DateFormat.format("yyyy-MM-dd-HH-mm-ss", getStartClockTime()).toString());

@@ -7131,6 +7169,10 @@ public abstract class BatteryStats implements Parcelable {
                getUahDischargeScreenOff(which) / 1000);
        proto.write(SystemProto.BatteryDischarge.TOTAL_MAH_SCREEN_DOZE,
                getUahDischargeScreenDoze(which) / 1000);
        proto.write(SystemProto.BatteryDischarge.TOTAL_MAH_LIGHT_DOZE,
                getUahDischargeLightDoze(which) / 1000);
        proto.write(SystemProto.BatteryDischarge.TOTAL_MAH_DEEP_DOZE,
                getUahDischargeDeepDoze(which) / 1000);
        proto.end(bdToken);

        // Time remaining
+35 −1
Original line number Diff line number Diff line
@@ -120,7 +120,7 @@ public class BatteryStatsImpl extends BatteryStats {
    private static final int MAGIC = 0xBA757475; // 'BATSTATS'
    // Current on-disk Parcel version
    private static final int VERSION = 168 + (USE_OLD_HISTORY ? 1000 : 0);
    private static final int VERSION = 169 + (USE_OLD_HISTORY ? 1000 : 0);
    // Maximum number of items we will record in the history.
    private static final int MAX_HISTORY_ITEMS;
@@ -599,6 +599,8 @@ public class BatteryStatsImpl extends BatteryStats {
    private LongSamplingCounter mDischargeScreenOffCounter;
    private LongSamplingCounter mDischargeScreenDozeCounter;
    private LongSamplingCounter mDischargeCounter;
    private LongSamplingCounter mDischargeLightDozeCounter;
    private LongSamplingCounter mDischargeDeepDozeCounter;
    static final int MAX_LEVEL_STEPS = 200;
@@ -696,6 +698,16 @@ public class BatteryStatsImpl extends BatteryStats {
        return mDischargeScreenDozeCounter.getCountLocked(which);
    }
    @Override
    public long getUahDischargeLightDoze(int which) {
        return mDischargeLightDozeCounter.getCountLocked(which);
    }
    @Override
    public long getUahDischargeDeepDoze(int which) {
        return mDischargeDeepDozeCounter.getCountLocked(which);
    }
    @Override
    public int getEstimatedBatteryCapacity() {
        return mEstimatedBatteryCapacity;
@@ -9085,6 +9097,8 @@ public class BatteryStatsImpl extends BatteryStats {
        mBluetoothScanTimer = new StopwatchTimer(mClocks, null, -14, null, mOnBatteryTimeBase);
        mDischargeScreenOffCounter = new LongSamplingCounter(mOnBatteryScreenOffTimeBase);
        mDischargeScreenDozeCounter = new LongSamplingCounter(mOnBatteryTimeBase);
        mDischargeLightDozeCounter = new LongSamplingCounter(mOnBatteryTimeBase);
        mDischargeDeepDozeCounter = new LongSamplingCounter(mOnBatteryTimeBase);
        mDischargeCounter = new LongSamplingCounter(mOnBatteryTimeBase);
        mOnBattery = mOnBatteryInternal = false;
        long uptime = mClocks.uptimeMillis() * 1000;
@@ -9664,6 +9678,8 @@ public class BatteryStatsImpl extends BatteryStats {
        mChargeStepTracker.init();
        mDischargeScreenOffCounter.reset(false);
        mDischargeScreenDozeCounter.reset(false);
        mDischargeLightDozeCounter.reset(false);
        mDischargeDeepDozeCounter.reset(false);
        mDischargeCounter.reset(false);
    }
@@ -11263,6 +11279,11 @@ public class BatteryStatsImpl extends BatteryStats {
                if (isScreenDoze(mScreenState)) {
                    mDischargeScreenDozeCounter.addCountLocked(chargeDiff);
                }
                if (mDeviceIdleMode == DEVICE_IDLE_MODE_LIGHT) {
                    mDischargeLightDozeCounter.addCountLocked(chargeDiff);
                } else if (mDeviceIdleMode == DEVICE_IDLE_MODE_DEEP) {
                    mDischargeDeepDozeCounter.addCountLocked(chargeDiff);
                }
            }
            mHistoryCur.batteryChargeUAh = chargeUAh;
            setOnBatteryLocked(elapsedRealtime, uptime, onBattery, oldStatus, level, chargeUAh);
@@ -11308,6 +11329,11 @@ public class BatteryStatsImpl extends BatteryStats {
                    if (isScreenDoze(mScreenState)) {
                        mDischargeScreenDozeCounter.addCountLocked(chargeDiff);
                    }
                    if (mDeviceIdleMode == DEVICE_IDLE_MODE_LIGHT) {
                        mDischargeLightDozeCounter.addCountLocked(chargeDiff);
                    } else if (mDeviceIdleMode == DEVICE_IDLE_MODE_DEEP) {
                        mDischargeDeepDozeCounter.addCountLocked(chargeDiff);
                    }
                }
                mHistoryCur.batteryChargeUAh = chargeUAh;
                changed = true;
@@ -12069,6 +12095,8 @@ public class BatteryStatsImpl extends BatteryStats {
        mDischargeCounter.readSummaryFromParcelLocked(in);
        mDischargeScreenOffCounter.readSummaryFromParcelLocked(in);
        mDischargeScreenDozeCounter.readSummaryFromParcelLocked(in);
        mDischargeLightDozeCounter.readSummaryFromParcelLocked(in);
        mDischargeDeepDozeCounter.readSummaryFromParcelLocked(in);
        int NPKG = in.readInt();
        if (NPKG > 0) {
            mDailyPackageChanges = new ArrayList<>(NPKG);
@@ -12493,6 +12521,8 @@ public class BatteryStatsImpl extends BatteryStats {
        mDischargeCounter.writeSummaryFromParcelLocked(out);
        mDischargeScreenOffCounter.writeSummaryFromParcelLocked(out);
        mDischargeScreenDozeCounter.writeSummaryFromParcelLocked(out);
        mDischargeLightDozeCounter.writeSummaryFromParcelLocked(out);
        mDischargeDeepDozeCounter.writeSummaryFromParcelLocked(out);
        if (mDailyPackageChanges != null) {
            final int NPKG = mDailyPackageChanges.size();
            out.writeInt(NPKG);
@@ -13044,6 +13074,8 @@ public class BatteryStatsImpl extends BatteryStats {
        mDischargeCounter = new LongSamplingCounter(mOnBatteryTimeBase, in);
        mDischargeScreenOffCounter = new LongSamplingCounter(mOnBatteryScreenOffTimeBase, in);
        mDischargeScreenDozeCounter = new LongSamplingCounter(mOnBatteryTimeBase, in);
        mDischargeLightDozeCounter = new LongSamplingCounter(mOnBatteryTimeBase, in);
        mDischargeDeepDozeCounter = new LongSamplingCounter(mOnBatteryTimeBase, in);
        mLastWriteTime = in.readLong();
        mRpmStats.clear();
@@ -13230,6 +13262,8 @@ public class BatteryStatsImpl extends BatteryStats {
        mDischargeCounter.writeToParcel(out);
        mDischargeScreenOffCounter.writeToParcel(out);
        mDischargeScreenDozeCounter.writeToParcel(out);
        mDischargeLightDozeCounter.writeToParcel(out);
        mDischargeDeepDozeCounter.writeToParcel(out);
        out.writeLong(mLastWriteTime);
        out.writeInt(mRpmStats.size());
+8 −0
Original line number Diff line number Diff line
@@ -120,6 +120,14 @@ message SystemProto {
    // via a coulomb counter. For historical reasons, total_mah_screen_doze is
    // a subset of total_mah_screen_off.
    optional int64 total_mah_screen_doze = 8;
    // Total amount of battery discharged in mAh while the device was in light doze mode.
    // This will only be non-zero for devices that report battery discharge
    // via a coulomb counter.
    optional int64 total_mah_light_doze = 9;
    // Total amount of battery discharged in mAh while the device was in deep doze mode.
    // This will only be non-zero for devices that report battery discharge
    // via a coulomb counter.
    optional int64 total_mah_deep_doze = 10;
  };
  optional BatteryDischarge battery_discharge = 2;