Loading core/java/android/os/BatteryStats.java +2 −2 Original line number Diff line number Diff line Loading @@ -1899,7 +1899,7 @@ public abstract class BatteryStats { public short batteryTemperature; // Battery voltage in millivolts (mV). @UnsupportedAppUsage public char batteryVoltage; public short batteryVoltage; // The charge of the battery in micro-Ampere-hours. public int batteryChargeUah; Loading Loading @@ -2161,7 +2161,7 @@ public abstract class BatteryStats { batteryPlugType = (byte)((bat>>24)&0xf); int bat2 = src.readInt(); batteryTemperature = (short)(bat2&0xffff); batteryVoltage = (char)((bat2>>16)&0xffff); batteryVoltage = (short) ((bat2 >> 16) & 0xffff); batteryChargeUah = src.readInt(); modemRailChargeMah = src.readDouble(); wifiRailChargeMah = src.readDouble(); Loading core/java/com/android/internal/os/BatteryStatsHistory.java +6 −2 Original line number Diff line number Diff line Loading @@ -1146,7 +1146,7 @@ public class BatteryStatsHistory { mHistoryCur.batteryHealth = (byte) health; mHistoryCur.batteryPlugType = (byte) plugType; mHistoryCur.batteryTemperature = (short) temperature; mHistoryCur.batteryVoltage = (char) voltageMv; mHistoryCur.batteryVoltage = (short) voltageMv; mHistoryCur.batteryChargeUah = chargeUah; } } Loading Loading @@ -2010,7 +2010,11 @@ public class BatteryStatsHistory { int bits = 0; bits = setBitField(bits, h.batteryLevel, 25, 0xfe000000 /* 7F << 25 */); bits = setBitField(bits, h.batteryTemperature, 15, 0x01ff8000 /* 3FF << 15 */); bits = setBitField(bits, h.batteryVoltage, 1, 0x00007ffe /* 3FFF << 1 */); short voltage = (short) h.batteryVoltage; if (voltage == -1) { voltage = 0x3FFF; } bits = setBitField(bits, voltage, 1, 0x00007ffe /* 3FFF << 1 */); return bits; } Loading core/java/com/android/internal/os/BatteryStatsHistoryIterator.java +6 −1 Original line number Diff line number Diff line Loading @@ -309,7 +309,12 @@ public class BatteryStatsHistoryIterator implements Iterator<BatteryStats.Histor private static void readBatteryLevelInt(int batteryLevelInt, BatteryStats.HistoryItem out) { out.batteryLevel = (byte) ((batteryLevelInt & 0xfe000000) >>> 25); out.batteryTemperature = (short) ((batteryLevelInt & 0x01ff8000) >>> 15); out.batteryVoltage = (char) ((batteryLevelInt & 0x00007ffe) >>> 1); int voltage = ((batteryLevelInt & 0x00007ffe) >>> 1); if (voltage == 0x3FFF) { voltage = -1; } out.batteryVoltage = (short) voltage; } /** Loading services/core/java/com/android/server/power/stats/BatteryStatsImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -842,7 +842,7 @@ public class BatteryStatsImpl extends BatteryStats { private int mBatteryChargeUah; private int mBatteryHealth; private int mBatteryTemperature; private int mBatteryVoltageMv = -1; private int mBatteryVoltageMv; @NonNull private final BatteryStatsHistory mHistory; Loading services/tests/powerstatstests/src/com/android/server/power/stats/BatteryStatsHistoryIteratorTest.java +7 −6 Original line number Diff line number Diff line Loading @@ -95,24 +95,24 @@ public class BatteryStatsHistoryIteratorTest { assertThat(item = iterator.next()).isNotNull(); assertHistoryItem(item, BatteryStats.HistoryItem.CMD_UPDATE, BatteryStats.HistoryItem.EVENT_NONE, null, 0, 3_600_000, 90, 1_000_000); null, 0, -1, 3_600_000, 90, 1_000_000); assertThat(item = iterator.next()).isNotNull(); assertHistoryItem(item, BatteryStats.HistoryItem.CMD_UPDATE, BatteryStats.HistoryItem.EVENT_NONE, null, 0, 2_400_000, 80, 2_000_000); null, 0, 3700, 2_400_000, 80, 2_000_000); assertThat(item = iterator.next()).isNotNull(); assertHistoryItem(item, BatteryStats.HistoryItem.CMD_UPDATE, BatteryStats.HistoryItem.EVENT_ALARM | BatteryStats.HistoryItem.EVENT_FLAG_START, "foo", APP_UID, 2_400_000, 80, 3_000_000); "foo", APP_UID, 3700, 2_400_000, 80, 3_000_000); assertThat(item = iterator.next()).isNotNull(); assertHistoryItem(item, BatteryStats.HistoryItem.CMD_UPDATE, BatteryStats.HistoryItem.EVENT_ALARM | BatteryStats.HistoryItem.EVENT_FLAG_FINISH, "foo", APP_UID, 2_400_000, 80, 3_001_000); "foo", APP_UID, 3700, 2_400_000, 80, 3_001_000); assertThat(iterator.hasNext()).isFalse(); assertThat(iterator.next()).isNull(); Loading Loading @@ -140,7 +140,7 @@ public class BatteryStatsHistoryIteratorTest { mMockClock.currentTime = 3000; mBatteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_DISCHARGING, 100, /* plugType */ 0, 90, 72, 3700, 3_600_000, 4_000_000, 0, 1_000_000, 100, /* plugType */ 0, 90, 72, -1, 3_600_000, 4_000_000, 0, 1_000_000, 1_000_000, 1_000_000); mBatteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_DISCHARGING, 100, /* plugType */ 0, 80, 72, 3700, 2_400_000, 4_000_000, 0, 2_000_000, Loading Loading @@ -303,7 +303,7 @@ public class BatteryStatsHistoryIteratorTest { } private void assertHistoryItem(BatteryStats.HistoryItem item, int command, int eventCode, String tag, int uid, int batteryChargeUah, int batteryLevel, String tag, int uid, int voltageMv, int batteryChargeUah, int batteryLevel, long elapsedTimeMs) { assertThat(item.cmd).isEqualTo(command); assertThat(item.eventCode).isEqualTo(eventCode); Loading @@ -313,6 +313,7 @@ public class BatteryStatsHistoryIteratorTest { assertThat(item.eventTag.string).isEqualTo(tag); assertThat(item.eventTag.uid).isEqualTo(uid); } assertThat((int) item.batteryVoltage).isEqualTo(voltageMv); assertThat(item.batteryChargeUah).isEqualTo(batteryChargeUah); assertThat(item.batteryLevel).isEqualTo(batteryLevel); Loading Loading
core/java/android/os/BatteryStats.java +2 −2 Original line number Diff line number Diff line Loading @@ -1899,7 +1899,7 @@ public abstract class BatteryStats { public short batteryTemperature; // Battery voltage in millivolts (mV). @UnsupportedAppUsage public char batteryVoltage; public short batteryVoltage; // The charge of the battery in micro-Ampere-hours. public int batteryChargeUah; Loading Loading @@ -2161,7 +2161,7 @@ public abstract class BatteryStats { batteryPlugType = (byte)((bat>>24)&0xf); int bat2 = src.readInt(); batteryTemperature = (short)(bat2&0xffff); batteryVoltage = (char)((bat2>>16)&0xffff); batteryVoltage = (short) ((bat2 >> 16) & 0xffff); batteryChargeUah = src.readInt(); modemRailChargeMah = src.readDouble(); wifiRailChargeMah = src.readDouble(); Loading
core/java/com/android/internal/os/BatteryStatsHistory.java +6 −2 Original line number Diff line number Diff line Loading @@ -1146,7 +1146,7 @@ public class BatteryStatsHistory { mHistoryCur.batteryHealth = (byte) health; mHistoryCur.batteryPlugType = (byte) plugType; mHistoryCur.batteryTemperature = (short) temperature; mHistoryCur.batteryVoltage = (char) voltageMv; mHistoryCur.batteryVoltage = (short) voltageMv; mHistoryCur.batteryChargeUah = chargeUah; } } Loading Loading @@ -2010,7 +2010,11 @@ public class BatteryStatsHistory { int bits = 0; bits = setBitField(bits, h.batteryLevel, 25, 0xfe000000 /* 7F << 25 */); bits = setBitField(bits, h.batteryTemperature, 15, 0x01ff8000 /* 3FF << 15 */); bits = setBitField(bits, h.batteryVoltage, 1, 0x00007ffe /* 3FFF << 1 */); short voltage = (short) h.batteryVoltage; if (voltage == -1) { voltage = 0x3FFF; } bits = setBitField(bits, voltage, 1, 0x00007ffe /* 3FFF << 1 */); return bits; } Loading
core/java/com/android/internal/os/BatteryStatsHistoryIterator.java +6 −1 Original line number Diff line number Diff line Loading @@ -309,7 +309,12 @@ public class BatteryStatsHistoryIterator implements Iterator<BatteryStats.Histor private static void readBatteryLevelInt(int batteryLevelInt, BatteryStats.HistoryItem out) { out.batteryLevel = (byte) ((batteryLevelInt & 0xfe000000) >>> 25); out.batteryTemperature = (short) ((batteryLevelInt & 0x01ff8000) >>> 15); out.batteryVoltage = (char) ((batteryLevelInt & 0x00007ffe) >>> 1); int voltage = ((batteryLevelInt & 0x00007ffe) >>> 1); if (voltage == 0x3FFF) { voltage = -1; } out.batteryVoltage = (short) voltage; } /** Loading
services/core/java/com/android/server/power/stats/BatteryStatsImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -842,7 +842,7 @@ public class BatteryStatsImpl extends BatteryStats { private int mBatteryChargeUah; private int mBatteryHealth; private int mBatteryTemperature; private int mBatteryVoltageMv = -1; private int mBatteryVoltageMv; @NonNull private final BatteryStatsHistory mHistory; Loading
services/tests/powerstatstests/src/com/android/server/power/stats/BatteryStatsHistoryIteratorTest.java +7 −6 Original line number Diff line number Diff line Loading @@ -95,24 +95,24 @@ public class BatteryStatsHistoryIteratorTest { assertThat(item = iterator.next()).isNotNull(); assertHistoryItem(item, BatteryStats.HistoryItem.CMD_UPDATE, BatteryStats.HistoryItem.EVENT_NONE, null, 0, 3_600_000, 90, 1_000_000); null, 0, -1, 3_600_000, 90, 1_000_000); assertThat(item = iterator.next()).isNotNull(); assertHistoryItem(item, BatteryStats.HistoryItem.CMD_UPDATE, BatteryStats.HistoryItem.EVENT_NONE, null, 0, 2_400_000, 80, 2_000_000); null, 0, 3700, 2_400_000, 80, 2_000_000); assertThat(item = iterator.next()).isNotNull(); assertHistoryItem(item, BatteryStats.HistoryItem.CMD_UPDATE, BatteryStats.HistoryItem.EVENT_ALARM | BatteryStats.HistoryItem.EVENT_FLAG_START, "foo", APP_UID, 2_400_000, 80, 3_000_000); "foo", APP_UID, 3700, 2_400_000, 80, 3_000_000); assertThat(item = iterator.next()).isNotNull(); assertHistoryItem(item, BatteryStats.HistoryItem.CMD_UPDATE, BatteryStats.HistoryItem.EVENT_ALARM | BatteryStats.HistoryItem.EVENT_FLAG_FINISH, "foo", APP_UID, 2_400_000, 80, 3_001_000); "foo", APP_UID, 3700, 2_400_000, 80, 3_001_000); assertThat(iterator.hasNext()).isFalse(); assertThat(iterator.next()).isNull(); Loading Loading @@ -140,7 +140,7 @@ public class BatteryStatsHistoryIteratorTest { mMockClock.currentTime = 3000; mBatteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_DISCHARGING, 100, /* plugType */ 0, 90, 72, 3700, 3_600_000, 4_000_000, 0, 1_000_000, 100, /* plugType */ 0, 90, 72, -1, 3_600_000, 4_000_000, 0, 1_000_000, 1_000_000, 1_000_000); mBatteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_DISCHARGING, 100, /* plugType */ 0, 80, 72, 3700, 2_400_000, 4_000_000, 0, 2_000_000, Loading Loading @@ -303,7 +303,7 @@ public class BatteryStatsHistoryIteratorTest { } private void assertHistoryItem(BatteryStats.HistoryItem item, int command, int eventCode, String tag, int uid, int batteryChargeUah, int batteryLevel, String tag, int uid, int voltageMv, int batteryChargeUah, int batteryLevel, long elapsedTimeMs) { assertThat(item.cmd).isEqualTo(command); assertThat(item.eventCode).isEqualTo(eventCode); Loading @@ -313,6 +313,7 @@ public class BatteryStatsHistoryIteratorTest { assertThat(item.eventTag.string).isEqualTo(tag); assertThat(item.eventTag.uid).isEqualTo(uid); } assertThat((int) item.batteryVoltage).isEqualTo(voltageMv); assertThat(item.batteryChargeUah).isEqualTo(batteryChargeUah); assertThat(item.batteryLevel).isEqualTo(batteryLevel); Loading