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++) {