diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 0fb4af04e15..6661410891e 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1512,12 +1512,20 @@
- @string/enhanced_4g_lte_mode_summary_4g_calling
-
+
- "com.google.android.googlequicksearchbox"
+
+
+ - "com.google.android.gms.persistent"
+ - "dex2oat64"
+
+
- @string/color_red
diff --git a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
index 70495217f71..f75094d2ffa 100644
--- a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
@@ -86,6 +86,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
private final InstrumentedPreferenceFragment mFragment;
private final Handler mHandler = new Handler(Looper.getMainLooper());
private final CharSequence[] mNotAllowShowSummaryPackages;
+ private final CharSequence[] mNotAllowShowEntryPackages;
// Preference cache to avoid create new instance each time.
@VisibleForTesting
@@ -103,6 +104,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
mPreferenceKey = preferenceKey;
mNotAllowShowSummaryPackages = context.getResources()
.getTextArray(R.array.allowlist_hide_summary_in_battery_usage);
+ mNotAllowShowEntryPackages = context.getResources()
+ .getTextArray(R.array.allowlist_hide_entry_in_battery_usage);
if (lifecycle != null) {
lifecycle.addObserver(this);
}
@@ -180,8 +183,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
isValidPackage = mBatteryUtils.getPackageUid(packageName)
!= BatteryUtils.UID_NULL;
}
- Log.d(TAG, String.format("handleClick() label=%s key=%s isValid:%b %s",
- diffEntry.getAppLabel(), histEntry.getKey(), isValidPackage, packageName));
+ Log.d(TAG, String.format("handleClick() label=%s key=%s isValid:%b\n%s",
+ diffEntry.getAppLabel(), histEntry.getKey(), isValidPackage, histEntry));
if (isValidPackage) {
AdvancedPowerUsageDetail.startBatteryDetailPage(
mActivity, mFragment, diffEntry, powerPref.getPercent(),
@@ -315,6 +318,11 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
final List appEntries = new ArrayList<>();
mSystemEntries.clear();
entries.forEach(entry -> {
+ final String packageName = entry.getPackageName();
+ if (!isValidToShowEntry(packageName)) {
+ Log.w(TAG, "ignore showing item:" + packageName);
+ return;
+ }
if (entry.isSystemEntry()) {
mSystemEntries.add(entry);
} else {
@@ -510,15 +518,14 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
return mPrefContext.getString(resourceId, timeSequence);
}
- private boolean isValidToShowSummary(String packageName) {
- if (mNotAllowShowSummaryPackages != null) {
- for (CharSequence notAllowPackageName : mNotAllowShowSummaryPackages) {
- if (TextUtils.equals(packageName, notAllowPackageName)) {
- return false;
- }
- }
- }
- return true;
+ @VisibleForTesting
+ boolean isValidToShowSummary(String packageName) {
+ return !contains(packageName, mNotAllowShowSummaryPackages);
+ }
+
+ @VisibleForTesting
+ boolean isValidToShowEntry(String packageName) {
+ return !contains(packageName, mNotAllowShowEntryPackages);
}
@VisibleForTesting
@@ -552,6 +559,17 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
return builder.toString();
}
+ private static boolean contains(String target, CharSequence[] packageNames) {
+ if (target != null && packageNames != null) {
+ for (CharSequence packageName : packageNames) {
+ if (TextUtils.equals(target, packageName)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
@VisibleForTesting
static boolean validateUsageTime(BatteryDiffEntry entry) {
final long foregroundUsageTimeInMs = entry.mForegroundUsageTimeInMs;
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java
index 87070409607..f6a2ed15dfe 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java
@@ -581,6 +581,33 @@ public final class BatteryChartPreferenceControllerTest {
assertThat(mBatteryChartPreferenceController.mIsExpanded).isTrue();
}
+ @Test
+ public void testIsValidToShowSummary_returnExpectedResult() {
+ assertThat(mBatteryChartPreferenceController
+ .isValidToShowSummary("com.google.android.apps.scone"))
+ .isTrue();
+
+ // Verifies the item which is defined in the array list.
+ assertThat(mBatteryChartPreferenceController
+ .isValidToShowSummary("com.google.android.googlequicksearchbox"))
+ .isFalse();
+ }
+
+ @Test
+ public void testIsValidToShowEntry_returnExpectedResult() {
+ assertThat(mBatteryChartPreferenceController
+ .isValidToShowEntry("com.google.android.apps.scone"))
+ .isTrue();
+
+ // Verifies the items which are defined in the array list.
+ assertThat(mBatteryChartPreferenceController
+ .isValidToShowEntry("com.google.android.gms.persistent"))
+ .isFalse();
+ assertThat(mBatteryChartPreferenceController
+ .isValidToShowEntry("dex2oat64"))
+ .isFalse();
+ }
+
private static Map> createBatteryHistoryMap() {
final Map> batteryHistoryMap = new HashMap<>();
for (int index = 0; index < DESIRED_HISTORY_SIZE; index++) {