diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java index 339cabe52d1..5b40e93bf8f 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java @@ -152,6 +152,11 @@ public interface PowerUsageFeatureProvider { */ Set getOthersSystemComponentSet(); + /** + * Returns {@link Set} for the custom system component names which are combined into others + */ + Set getOthersCustomComponentNameSet(); + /** * Returns {@link Set} for hiding system component ids in the usage screen */ diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java index 5d1e2e56bab..b6858fc6977 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java @@ -172,6 +172,11 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider return new ArraySet<>(); } + @Override + public Set getOthersCustomComponentNameSet() { + return new ArraySet<>(); + } + @Override public Set getHideSystemComponentSet() { return new ArraySet<>(); diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java index a07cfdde856..67613ff406c 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java @@ -17,6 +17,7 @@ package com.android.settings.fuelgauge.batteryusage; import android.content.Context; +import android.os.BatteryConsumer; import androidx.annotation.NonNull; @@ -151,11 +152,17 @@ public class BatteryDiffData { final PowerUsageFeatureProvider featureProvider, final List systemEntries) { final Set othersSystemComponentSet = featureProvider.getOthersSystemComponentSet(); + final Set othersCustomComponentNameSet = + featureProvider.getOthersCustomComponentNameSet(); BatteryDiffEntry.OthersBatteryDiffEntry othersDiffEntry = null; final Iterator systemListIterator = systemEntries.iterator(); while (systemListIterator.hasNext()) { final BatteryDiffEntry batteryDiffEntry = systemListIterator.next(); - if (othersSystemComponentSet.contains(batteryDiffEntry.mBatteryHistEntry.mDrainType)) { + final int componentId = batteryDiffEntry.mBatteryHistEntry.mDrainType; + if (othersSystemComponentSet.contains(componentId) || ( + componentId >= BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID + && othersCustomComponentNameSet.contains( + batteryDiffEntry.getAppLabel()))) { if (othersDiffEntry == null) { othersDiffEntry = new BatteryDiffEntry.OthersBatteryDiffEntry(context); }