diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2021-09-20 20:48:13 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-09-20 20:48:13 +0000 |
| commit | 0ef5152b17d5636c00dfd033f07183bc88d9aa1e (patch) | |
| tree | bfa381de78052a27225d8100b1fd8d8afc5a4853 /core/java | |
| parent | 40ab23303df18322e245dfc64a32fac63dd49d88 (diff) | |
| parent | 0c561475c3aff676a50358c9280cb805b2c99f57 (diff) | |
Merge "Check custom component names before aggregating BatteryUsageStats snapshots" into sc-qpr1-dev
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/os/BatteryUsageStats.java | 10 | ||||
| -rw-r--r-- | core/java/com/android/internal/os/BatteryUsageStatsProvider.java | 13 |
2 files changed, 21 insertions, 2 deletions
diff --git a/core/java/android/os/BatteryUsageStats.java b/core/java/android/os/BatteryUsageStats.java index f48375246616..0f94cbef3886 100644 --- a/core/java/android/os/BatteryUsageStats.java +++ b/core/java/android/os/BatteryUsageStats.java @@ -271,6 +271,16 @@ public final class BatteryUsageStats implements Parcelable { } /** + * Returns the names of custom power components in order, so the first name in the array + * corresponds to the custom componentId + * {@link BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID}. + */ + @NonNull + public String[] getCustomPowerComponentNames() { + return mCustomPowerComponentNames; + } + + /** * Returns an iterator for {@link android.os.BatteryStats.HistoryItem}'s. */ @NonNull diff --git a/core/java/com/android/internal/os/BatteryUsageStatsProvider.java b/core/java/com/android/internal/os/BatteryUsageStatsProvider.java index 00385793b62b..980aec196079 100644 --- a/core/java/com/android/internal/os/BatteryUsageStatsProvider.java +++ b/core/java/com/android/internal/os/BatteryUsageStatsProvider.java @@ -29,6 +29,7 @@ import android.util.SparseArray; import com.android.internal.annotations.VisibleForTesting; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -234,8 +235,9 @@ public class BatteryUsageStatsProvider { final boolean includePowerModels = (query.getFlags() & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_POWER_MODELS) != 0; + final String[] customEnergyConsumerNames = mStats.getCustomEnergyConsumerNames(); final BatteryUsageStats.Builder builder = new BatteryUsageStats.Builder( - mStats.getCustomEnergyConsumerNames(), includePowerModels); + customEnergyConsumerNames, includePowerModels); if (mBatteryUsageStatsStore == null) { Log.e(TAG, "BatteryUsageStatsStore is unavailable"); return builder.build(); @@ -247,7 +249,14 @@ public class BatteryUsageStatsProvider { final BatteryUsageStats snapshot = mBatteryUsageStatsStore.loadBatteryUsageStats(timestamp); if (snapshot != null) { - builder.add(snapshot); + if (Arrays.equals(snapshot.getCustomPowerComponentNames(), + customEnergyConsumerNames)) { + builder.add(snapshot); + } else { + Log.w(TAG, "Ignoring older BatteryUsageStats snapshot, which has different " + + "custom power components: " + + Arrays.toString(snapshot.getCustomPowerComponentNames())); + } } } } |
