summaryrefslogtreecommitdiff
path: root/core/java/android/os/AggregateBatteryConsumer.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/os/AggregateBatteryConsumer.java')
-rw-r--r--core/java/android/os/AggregateBatteryConsumer.java60
1 files changed, 21 insertions, 39 deletions
diff --git a/core/java/android/os/AggregateBatteryConsumer.java b/core/java/android/os/AggregateBatteryConsumer.java
index 802387c675b5..e088f306cd98 100644
--- a/core/java/android/os/AggregateBatteryConsumer.java
+++ b/core/java/android/os/AggregateBatteryConsumer.java
@@ -31,51 +31,33 @@ import java.io.PrintWriter;
*
* {@hide}
*/
-public final class AggregateBatteryConsumer extends BatteryConsumer implements Parcelable {
+public final class AggregateBatteryConsumer extends BatteryConsumer {
+ static final int CONSUMER_TYPE_AGGREGATE = 0;
- private final double mConsumedPowerMah;
+ static final int COLUMN_INDEX_SCOPE = BatteryConsumer.COLUMN_COUNT;
+ static final int COLUMN_INDEX_CONSUMED_POWER = COLUMN_INDEX_SCOPE + 1;
+ static final int COLUMN_COUNT = BatteryConsumer.COLUMN_COUNT + 2;
- public AggregateBatteryConsumer(@NonNull Builder builder) {
- super(builder.mPowerComponentsBuilder.build());
- mConsumedPowerMah = builder.mConsumedPowerMah;
+ AggregateBatteryConsumer(BatteryConsumerData data) {
+ super(data);
}
- private AggregateBatteryConsumer(@NonNull Parcel source) {
- super(new PowerComponents(source));
- mConsumedPowerMah = source.readDouble();
+ private AggregateBatteryConsumer(@NonNull Builder builder) {
+ super(builder.mData, builder.mPowerComponentsBuilder.build());
}
- @Override
- public void dump(PrintWriter pw, boolean skipEmptyComponents) {
- mPowerComponents.dump(pw, skipEmptyComponents);
+ int getScope() {
+ return mData.getInt(COLUMN_INDEX_SCOPE);
}
@Override
- public void writeToParcel(@NonNull Parcel dest, int flags) {
- super.writeToParcel(dest, flags);
- dest.writeDouble(mConsumedPowerMah);
- }
-
- @Override
- public int describeContents() {
- return 0;
+ public void dump(PrintWriter pw, boolean skipEmptyComponents) {
+ mPowerComponents.dump(pw, skipEmptyComponents);
}
- @NonNull
- public static final Creator<AggregateBatteryConsumer> CREATOR =
- new Creator<AggregateBatteryConsumer>() {
- public AggregateBatteryConsumer createFromParcel(@NonNull Parcel source) {
- return new AggregateBatteryConsumer(source);
- }
-
- public AggregateBatteryConsumer[] newArray(int size) {
- return new AggregateBatteryConsumer[size];
- }
- };
-
@Override
public double getConsumedPower() {
- return mConsumedPowerMah;
+ return mData.getDouble(COLUMN_INDEX_CONSUMED_POWER);
}
/** Serializes this object to XML */
@@ -83,7 +65,7 @@ public final class AggregateBatteryConsumer extends BatteryConsumer implements P
@BatteryUsageStats.AggregateBatteryConsumerScope int scope) throws IOException {
serializer.startTag(null, BatteryUsageStats.XML_TAG_AGGREGATE);
serializer.attributeInt(null, BatteryUsageStats.XML_ATTR_SCOPE, scope);
- serializer.attributeDouble(null, BatteryUsageStats.XML_ATTR_POWER, mConsumedPowerMah);
+ serializer.attributeDouble(null, BatteryUsageStats.XML_ATTR_POWER, getConsumedPower());
mPowerComponents.writeToXml(serializer);
serializer.endTag(null, BatteryUsageStats.XML_TAG_AGGREGATE);
}
@@ -119,17 +101,16 @@ public final class AggregateBatteryConsumer extends BatteryConsumer implements P
* Builder for DeviceBatteryConsumer.
*/
public static final class Builder extends BaseBuilder<AggregateBatteryConsumer.Builder> {
- private double mConsumedPowerMah;
-
- public Builder(@NonNull String[] customPowerComponentNames, boolean includePowerModels) {
- super(customPowerComponentNames, includePowerModels);
+ public Builder(BatteryConsumer.BatteryConsumerData data, int scope) {
+ super(data, CONSUMER_TYPE_AGGREGATE);
+ data.putInt(COLUMN_INDEX_SCOPE, scope);
}
/**
* Sets the total power included in this aggregate.
*/
public Builder setConsumedPower(double consumedPowerMah) {
- mConsumedPowerMah = consumedPowerMah;
+ mData.putDouble(COLUMN_INDEX_CONSUMED_POWER, consumedPowerMah);
return this;
}
@@ -137,7 +118,8 @@ public final class AggregateBatteryConsumer extends BatteryConsumer implements P
* Adds power and usage duration from the supplied AggregateBatteryConsumer.
*/
public void add(AggregateBatteryConsumer aggregateBatteryConsumer) {
- mConsumedPowerMah += aggregateBatteryConsumer.mConsumedPowerMah;
+ setConsumedPower(mData.getDouble(COLUMN_INDEX_CONSUMED_POWER)
+ + aggregateBatteryConsumer.getConsumedPower());
mPowerComponentsBuilder.addPowerAndDuration(aggregateBatteryConsumer.mPowerComponents);
}