Add new field for data interpolation usage
reference the decription in cl/371645876 Bug: 184807417 Test: make SettingsRoboTests Change-Id: I944399dc205cad9b96fe22e82e4c651b4ccc4e37
This commit is contained in:
@@ -30,6 +30,8 @@ public class BatteryHistEntry {
|
||||
public static final String KEY_APP_LABEL = "appLabel";
|
||||
public static final String KEY_PACKAGE_NAME = "packageName";
|
||||
public static final String KEY_IS_HIDDEN = "isHidden";
|
||||
// Device booting elapsed time from SystemClock.elapsedRealtime().
|
||||
public static final String KEY_BOOT_TIMESTAMP = "bootTimestamp";
|
||||
public static final String KEY_TIMESTAMP = "timestamp";
|
||||
public static final String KEY_ZONE_ID = "zoneId";
|
||||
public static final String KEY_TOTAL_POWER = "totalPower";
|
||||
@@ -50,6 +52,7 @@ public class BatteryHistEntry {
|
||||
// Whether the data is represented as system component or not?
|
||||
public final boolean mIsHidden;
|
||||
// Records the timestamp relative information.
|
||||
public final long mBootTimestamp;
|
||||
public final long mTimestamp;
|
||||
public final String mZoneId;
|
||||
// Records the battery usage relative information.
|
||||
@@ -74,6 +77,7 @@ public class BatteryHistEntry {
|
||||
mAppLabel = getString(values, KEY_APP_LABEL);
|
||||
mPackageName = getString(values, KEY_PACKAGE_NAME);
|
||||
mIsHidden = getBoolean(values, KEY_IS_HIDDEN);
|
||||
mBootTimestamp = getLong(values, KEY_BOOT_TIMESTAMP);
|
||||
mTimestamp = getLong(values, KEY_TIMESTAMP);
|
||||
mZoneId = getString(values, KEY_ZONE_ID);
|
||||
mTotalPower = getDouble(values, KEY_TOTAL_POWER);
|
||||
@@ -94,6 +98,7 @@ public class BatteryHistEntry {
|
||||
mAppLabel = getString(cursor, KEY_APP_LABEL);
|
||||
mPackageName = getString(cursor, KEY_PACKAGE_NAME);
|
||||
mIsHidden = getBoolean(cursor, KEY_IS_HIDDEN);
|
||||
mBootTimestamp = getLong(cursor, KEY_BOOT_TIMESTAMP);
|
||||
mTimestamp = getLong(cursor, KEY_TIMESTAMP);
|
||||
mZoneId = getString(cursor, KEY_ZONE_ID);
|
||||
mTotalPower = getDouble(cursor, KEY_TOTAL_POWER);
|
||||
@@ -153,7 +158,8 @@ public class BatteryHistEntry {
|
||||
.append("\nBatteryHistEntry{")
|
||||
.append(String.format("\n\tpackage=%s|label=%s|uid=%d|userId=%d|isHidden=%b",
|
||||
mPackageName, mAppLabel, mUid, mUserId, mIsHidden))
|
||||
.append(String.format("\n\ttimestamp=%s|zoneId=%s", recordAtDateTime, mZoneId))
|
||||
.append(String.format("\n\ttimestamp=%s|zoneId=%s|bootTimestamp=%d",
|
||||
recordAtDateTime, mZoneId, Duration.ofMillis(mBootTimestamp).getSeconds()))
|
||||
.append(String.format("\n\tusage=%f|total=%f|consume=%f|elapsedTime=%d|%d",
|
||||
mPercentOfTotal, mTotalPower, mConsumePower,
|
||||
Duration.ofMillis(mForegroundUsageTimeInMs).getSeconds(),
|
||||
@@ -249,5 +255,4 @@ public class BatteryHistEntry {
|
||||
mIsValidEntry = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -107,33 +107,40 @@ public final class ConvertUtils {
|
||||
int batteryLevel,
|
||||
int batteryStatus,
|
||||
int batteryHealth,
|
||||
long bootTimestamp,
|
||||
long timestamp) {
|
||||
final ContentValues values = new ContentValues();
|
||||
if (entry != null && batteryUsageStats != null) {
|
||||
values.put("uid", Long.valueOf(entry.getUid()));
|
||||
values.put("userId",
|
||||
values.put(BatteryHistEntry.KEY_UID, Long.valueOf(entry.getUid()));
|
||||
values.put(BatteryHistEntry.KEY_USER_ID,
|
||||
Long.valueOf(UserHandle.getUserId(entry.getUid())));
|
||||
values.put("appLabel", entry.getLabel());
|
||||
values.put("packageName", entry.getDefaultPackageName());
|
||||
values.put("isHidden", Boolean.valueOf(entry.isHidden()));
|
||||
values.put("totalPower",
|
||||
values.put(BatteryHistEntry.KEY_APP_LABEL, entry.getLabel());
|
||||
values.put(BatteryHistEntry.KEY_PACKAGE_NAME,
|
||||
entry.getDefaultPackageName());
|
||||
values.put(BatteryHistEntry.KEY_IS_HIDDEN, Boolean.valueOf(entry.isHidden()));
|
||||
values.put(BatteryHistEntry.KEY_TOTAL_POWER,
|
||||
Double.valueOf(batteryUsageStats.getConsumedPower()));
|
||||
values.put("consumePower", Double.valueOf(entry.getConsumedPower()));
|
||||
values.put("percentOfTotal", Double.valueOf(entry.percent));
|
||||
values.put("foregroundUsageTimeInMs",
|
||||
values.put(BatteryHistEntry.KEY_CONSUME_POWER,
|
||||
Double.valueOf(entry.getConsumedPower()));
|
||||
values.put(BatteryHistEntry.KEY_PERCENT_OF_TOTAL,
|
||||
Double.valueOf(entry.percent));
|
||||
values.put(BatteryHistEntry.KEY_FOREGROUND_USAGE_TIME,
|
||||
Long.valueOf(entry.getTimeInForegroundMs()));
|
||||
values.put("backgroundUsageTimeInMs",
|
||||
values.put(BatteryHistEntry.KEY_BACKGROUND_USAGE_TIME,
|
||||
Long.valueOf(entry.getTimeInBackgroundMs()));
|
||||
values.put("drainType", getDrainType(entry.getBatteryConsumer()));
|
||||
values.put("consumerType", getConsumerType(entry.getBatteryConsumer()));
|
||||
values.put(BatteryHistEntry.KEY_DRAIN_TYPE,
|
||||
getDrainType(entry.getBatteryConsumer()));
|
||||
values.put(BatteryHistEntry.KEY_CONSUMER_TYPE,
|
||||
getConsumerType(entry.getBatteryConsumer()));
|
||||
} else {
|
||||
values.put("packageName", FAKE_PACKAGE_NAME);
|
||||
values.put(BatteryHistEntry.KEY_PACKAGE_NAME, FAKE_PACKAGE_NAME);
|
||||
}
|
||||
values.put("timestamp", Long.valueOf(timestamp));
|
||||
values.put("zoneId", TimeZone.getDefault().getID());
|
||||
values.put("batteryLevel", Integer.valueOf(batteryLevel));
|
||||
values.put("batteryStatus", Integer.valueOf(batteryStatus));
|
||||
values.put("batteryHealth", Integer.valueOf(batteryHealth));
|
||||
values.put(BatteryHistEntry.KEY_BOOT_TIMESTAMP, Long.valueOf(bootTimestamp));
|
||||
values.put(BatteryHistEntry.KEY_TIMESTAMP, Long.valueOf(timestamp));
|
||||
values.put(BatteryHistEntry.KEY_ZONE_ID, TimeZone.getDefault().getID());
|
||||
values.put(BatteryHistEntry.KEY_BATTERY_LEVEL, Integer.valueOf(batteryLevel));
|
||||
values.put(BatteryHistEntry.KEY_BATTERY_STATUS, Integer.valueOf(batteryStatus));
|
||||
values.put(BatteryHistEntry.KEY_BATTERY_HEALTH, Integer.valueOf(batteryHealth));
|
||||
return values;
|
||||
}
|
||||
|
||||
|
@@ -75,6 +75,7 @@ public final class BatteryHistEntryTest {
|
||||
/*batteryLevel=*/ 12,
|
||||
/*batteryStatus=*/ BatteryManager.BATTERY_STATUS_FULL,
|
||||
/*batteryHealth=*/ BatteryManager.BATTERY_HEALTH_COLD,
|
||||
/*bootTimestamp=*/ 101L,
|
||||
/*timestamp=*/ 10001L);
|
||||
|
||||
assertBatteryHistEntry(
|
||||
@@ -98,6 +99,7 @@ public final class BatteryHistEntryTest {
|
||||
BatteryHistEntry.KEY_APP_LABEL,
|
||||
BatteryHistEntry.KEY_PACKAGE_NAME,
|
||||
BatteryHistEntry.KEY_IS_HIDDEN,
|
||||
BatteryHistEntry.KEY_BOOT_TIMESTAMP,
|
||||
BatteryHistEntry.KEY_TIMESTAMP,
|
||||
BatteryHistEntry.KEY_ZONE_ID,
|
||||
BatteryHistEntry.KEY_TOTAL_POWER,
|
||||
@@ -117,6 +119,7 @@ public final class BatteryHistEntryTest {
|
||||
"Settings",
|
||||
"com.google.android.settings.battery",
|
||||
Integer.valueOf(1),
|
||||
Long.valueOf(101l),
|
||||
Long.valueOf(10001L),
|
||||
TimeZone.getDefault().getID(),
|
||||
Double.valueOf(5.1),
|
||||
@@ -141,7 +144,7 @@ public final class BatteryHistEntryTest {
|
||||
public void testGetKey_consumerUidType_returnExpectedString() {
|
||||
final ContentValues values = getContentValuesWithType(
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
|
||||
values.put("uid", 3);
|
||||
values.put(BatteryHistEntry.KEY_UID, 3);
|
||||
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
|
||||
|
||||
assertThat(batteryHistEntry.getKey()).isEqualTo("3");
|
||||
@@ -151,7 +154,7 @@ public final class BatteryHistEntryTest {
|
||||
public void testGetKey_consumerUserType_returnExpectedString() {
|
||||
final ContentValues values = getContentValuesWithType(
|
||||
ConvertUtils.CONSUMER_TYPE_USER_BATTERY);
|
||||
values.put("userId", 2);
|
||||
values.put(BatteryHistEntry.KEY_USER_ID, 2);
|
||||
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
|
||||
|
||||
assertThat(batteryHistEntry.getKey()).isEqualTo("U|2");
|
||||
@@ -161,7 +164,7 @@ public final class BatteryHistEntryTest {
|
||||
public void testGetKey_consumerSystemType_returnExpectedString() {
|
||||
final ContentValues values = getContentValuesWithType(
|
||||
ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
|
||||
values.put("drainType", 1);
|
||||
values.put(BatteryHistEntry.KEY_DRAIN_TYPE, 1);
|
||||
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
|
||||
|
||||
assertThat(batteryHistEntry.getKey()).isEqualTo("S|1");
|
||||
@@ -203,7 +206,8 @@ public final class BatteryHistEntryTest {
|
||||
|
||||
private static ContentValues getContentValuesWithType(int consumerType) {
|
||||
final ContentValues values = new ContentValues();
|
||||
values.put("consumerType", Integer.valueOf(consumerType));
|
||||
values.put(BatteryHistEntry.KEY_CONSUMER_TYPE,
|
||||
Integer.valueOf(consumerType));
|
||||
return values;
|
||||
}
|
||||
|
||||
@@ -216,6 +220,7 @@ public final class BatteryHistEntryTest {
|
||||
assertThat(entry.mPackageName)
|
||||
.isEqualTo("com.google.android.settings.battery");
|
||||
assertThat(entry.mIsHidden).isTrue();
|
||||
assertThat(entry.mBootTimestamp).isEqualTo(101L);
|
||||
assertThat(entry.mTimestamp).isEqualTo(10001L);
|
||||
assertThat(entry.mZoneId).isEqualTo(TimeZone.getDefault().getID());
|
||||
assertThat(entry.mTotalPower).isEqualTo(5.1);
|
||||
|
@@ -95,30 +95,36 @@ public final class ConvertUtilsTest {
|
||||
/*batteryLevel=*/ 12,
|
||||
/*batteryStatus=*/ BatteryManager.BATTERY_STATUS_FULL,
|
||||
/*batteryHealth=*/ BatteryManager.BATTERY_HEALTH_COLD,
|
||||
/*bootTimestamp=*/ 101L,
|
||||
/*timestamp=*/ 10001L);
|
||||
|
||||
assertThat(values.getAsLong("uid")).isEqualTo(1001L);
|
||||
assertThat(values.getAsLong("userId"))
|
||||
assertThat(values.getAsLong(BatteryHistEntry.KEY_UID)).isEqualTo(1001L);
|
||||
assertThat(values.getAsLong(BatteryHistEntry.KEY_USER_ID))
|
||||
.isEqualTo(UserHandle.getUserId(1001));
|
||||
assertThat(values.getAsString("appLabel")).isEqualTo("Settings");
|
||||
assertThat(values.getAsString("packageName"))
|
||||
assertThat(values.getAsString(BatteryHistEntry.KEY_APP_LABEL))
|
||||
.isEqualTo("Settings");
|
||||
assertThat(values.getAsString(BatteryHistEntry.KEY_PACKAGE_NAME))
|
||||
.isEqualTo("com.google.android.settings.battery");
|
||||
assertThat(values.getAsBoolean("isHidden")).isTrue();
|
||||
assertThat(values.getAsLong("timestamp")).isEqualTo(10001L);
|
||||
assertThat(values.getAsString("zoneId"))
|
||||
assertThat(values.getAsBoolean(BatteryHistEntry.KEY_IS_HIDDEN)).isTrue();
|
||||
assertThat(values.getAsLong(BatteryHistEntry.KEY_BOOT_TIMESTAMP))
|
||||
.isEqualTo(101L);
|
||||
assertThat(values.getAsLong(BatteryHistEntry.KEY_TIMESTAMP)).isEqualTo(10001L);
|
||||
assertThat(values.getAsString(BatteryHistEntry.KEY_ZONE_ID))
|
||||
.isEqualTo(TimeZone.getDefault().getID());
|
||||
assertThat(values.getAsDouble("totalPower")).isEqualTo(5.1);
|
||||
assertThat(values.getAsDouble("consumePower")).isEqualTo(1.1);
|
||||
assertThat(values.getAsDouble("percentOfTotal")).isEqualTo(0.3);
|
||||
assertThat(values.getAsLong("foregroundUsageTimeInMs")).isEqualTo(1234L);
|
||||
assertThat(values.getAsLong("backgroundUsageTimeInMs")).isEqualTo(5689L);
|
||||
assertThat(values.getAsInteger("drainType")).isEqualTo(expectedType);
|
||||
assertThat(values.getAsInteger("consumerType"))
|
||||
assertThat(values.getAsDouble(BatteryHistEntry.KEY_TOTAL_POWER)).isEqualTo(5.1);
|
||||
assertThat(values.getAsDouble(BatteryHistEntry.KEY_CONSUME_POWER)).isEqualTo(1.1);
|
||||
assertThat(values.getAsDouble(BatteryHistEntry.KEY_PERCENT_OF_TOTAL)).isEqualTo(0.3);
|
||||
assertThat(values.getAsLong(BatteryHistEntry.KEY_FOREGROUND_USAGE_TIME))
|
||||
.isEqualTo(1234L);
|
||||
assertThat(values.getAsLong(BatteryHistEntry.KEY_BACKGROUND_USAGE_TIME))
|
||||
.isEqualTo(5689L);
|
||||
assertThat(values.getAsInteger(BatteryHistEntry.KEY_DRAIN_TYPE)).isEqualTo(expectedType);
|
||||
assertThat(values.getAsInteger(BatteryHistEntry.KEY_CONSUMER_TYPE))
|
||||
.isEqualTo(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
|
||||
assertThat(values.getAsInteger("batteryLevel")).isEqualTo(12);
|
||||
assertThat(values.getAsInteger("batteryStatus"))
|
||||
assertThat(values.getAsInteger(BatteryHistEntry.KEY_BATTERY_LEVEL)).isEqualTo(12);
|
||||
assertThat(values.getAsInteger(BatteryHistEntry.KEY_BATTERY_STATUS))
|
||||
.isEqualTo(BatteryManager.BATTERY_STATUS_FULL);
|
||||
assertThat(values.getAsInteger("batteryHealth"))
|
||||
assertThat(values.getAsInteger(BatteryHistEntry.KEY_BATTERY_HEALTH))
|
||||
.isEqualTo(BatteryManager.BATTERY_HEALTH_COLD);
|
||||
}
|
||||
|
||||
@@ -131,17 +137,21 @@ public final class ConvertUtilsTest {
|
||||
/*batteryLevel=*/ 12,
|
||||
/*batteryStatus=*/ BatteryManager.BATTERY_STATUS_FULL,
|
||||
/*batteryHealth=*/ BatteryManager.BATTERY_HEALTH_COLD,
|
||||
/*bootTimestamp=*/ 101L,
|
||||
/*timestamp=*/ 10001L);
|
||||
|
||||
assertThat(values.getAsLong("timestamp")).isEqualTo(10001L);
|
||||
assertThat(values.getAsString("zoneId"))
|
||||
assertThat(values.getAsLong(BatteryHistEntry.KEY_BOOT_TIMESTAMP))
|
||||
.isEqualTo(101L);
|
||||
assertThat(values.getAsLong(BatteryHistEntry.KEY_TIMESTAMP))
|
||||
.isEqualTo(10001L);
|
||||
assertThat(values.getAsString(BatteryHistEntry.KEY_ZONE_ID))
|
||||
.isEqualTo(TimeZone.getDefault().getID());
|
||||
assertThat(values.getAsInteger("batteryLevel")).isEqualTo(12);
|
||||
assertThat(values.getAsInteger("batteryStatus"))
|
||||
assertThat(values.getAsInteger(BatteryHistEntry.KEY_BATTERY_LEVEL)).isEqualTo(12);
|
||||
assertThat(values.getAsInteger(BatteryHistEntry.KEY_BATTERY_STATUS))
|
||||
.isEqualTo(BatteryManager.BATTERY_STATUS_FULL);
|
||||
assertThat(values.getAsInteger("batteryHealth"))
|
||||
assertThat(values.getAsInteger(BatteryHistEntry.KEY_BATTERY_HEALTH))
|
||||
.isEqualTo(BatteryManager.BATTERY_HEALTH_COLD);
|
||||
assertThat(values.getAsString("packageName"))
|
||||
assertThat(values.getAsString(BatteryHistEntry.KEY_PACKAGE_NAME))
|
||||
.isEqualTo(ConvertUtils.FAKE_PACKAGE_NAME);
|
||||
}
|
||||
|
||||
@@ -287,14 +297,16 @@ public final class ConvertUtilsTest {
|
||||
long uid, long foregroundUsageTimeInMs, long backgroundUsageTimeInMs) {
|
||||
// Only insert required fields.
|
||||
final ContentValues values = new ContentValues();
|
||||
values.put("packageName", packageName);
|
||||
values.put("appLabel", appLabel);
|
||||
values.put("uid", Long.valueOf(uid));
|
||||
values.put("consumerType",
|
||||
values.put(BatteryHistEntry.KEY_PACKAGE_NAME, packageName);
|
||||
values.put(BatteryHistEntry.KEY_APP_LABEL, appLabel);
|
||||
values.put(BatteryHistEntry.KEY_UID, Long.valueOf(uid));
|
||||
values.put(BatteryHistEntry.KEY_CONSUMER_TYPE,
|
||||
Integer.valueOf(ConvertUtils.CONSUMER_TYPE_UID_BATTERY));
|
||||
values.put("consumePower", consumePower);
|
||||
values.put("foregroundUsageTimeInMs", Long.valueOf(foregroundUsageTimeInMs));
|
||||
values.put("backgroundUsageTimeInMs", Long.valueOf(backgroundUsageTimeInMs));
|
||||
values.put(BatteryHistEntry.KEY_CONSUME_POWER, consumePower);
|
||||
values.put(BatteryHistEntry.KEY_FOREGROUND_USAGE_TIME,
|
||||
Long.valueOf(foregroundUsageTimeInMs));
|
||||
values.put(BatteryHistEntry.KEY_BACKGROUND_USAGE_TIME,
|
||||
Long.valueOf(backgroundUsageTimeInMs));
|
||||
return new BatteryHistEntry(values);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user