From 3d1b6fd065e9c032b43879a0a36dbff256ac4115 Mon Sep 17 00:00:00 2001 From: ykhung Date: Wed, 4 May 2022 11:42:26 +0800 Subject: [PATCH] Add a mechanism to configure whether the summary should be set or not Add a mechanism to customize whether the summary information in the battery entry should be set or not. We can consider is as the extension for the ag/18062824. Bug: 220717612 Test: make RunSettingsRoboTests -j56 ROBOTEST_FILTER="com.android.settings.fuelgauge" Change-Id: I3c21148d288f29ce65378f59f9086dab90c14a7b --- res/values/arrays.xml | 4 ++++ .../BatteryAppListPreferenceController.java | 17 +++++++++++++++-- .../PowerUsageFeatureProviderImpl.java | 4 +++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 867fecb2e90..0632f72eb09 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -1646,4 +1646,8 @@ 1875000 + + + diff --git a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java index db4cc536579..1ecde443dce 100644 --- a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java @@ -59,6 +59,7 @@ import com.android.settingslib.utils.StringUtil; import java.util.ArrayList; import java.util.Comparator; import java.util.List; +import java.util.Set; /** * Controller that update the battery header view @@ -72,7 +73,6 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro private static final int MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP = 10; private static final String MEDIASERVER_PACKAGE_NAME = "mediaserver"; - private final String mPreferenceKey; @VisibleForTesting PreferenceGroup mAppListGroup; private BatteryUsageStats mBatteryUsageStats; @@ -83,6 +83,9 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro private final PackageManager mPackageManager; private final SettingsActivity mActivity; private final InstrumentedPreferenceFragment mFragment; + private final Set mNotAllowShowSummaryPackages; + private final String mPreferenceKey; + private Context mPrefContext; /** @@ -159,6 +162,10 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro mPackageManager = context.getPackageManager(); mActivity = activity; mFragment = fragment; + mNotAllowShowSummaryPackages = Set.of( + FeatureFactory.getFactory(context) + .getPowerUsageFeatureProvider(context) + .getHideApplicationSummary(context)); } @Override @@ -425,7 +432,13 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro @VisibleForTesting void setUsageSummary(Preference preference, BatteryEntry entry) { if (entry.getUid() == Process.SYSTEM_UID) { - return; + return; + } + String packageName = entry.getDefaultPackageName(); + if (packageName != null + && mNotAllowShowSummaryPackages != null + && mNotAllowShowSummaryPackages.contains(packageName)) { + return; } // Only show summary when usage time is longer than one minute final long usageTimeMs = entry.getTimeInForegroundMs(); diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java index 45b4886fc9e..bc25381d04d 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java @@ -25,6 +25,7 @@ import android.util.ArraySet; import android.util.SparseIntArray; import com.android.internal.util.ArrayUtils; +import com.android.settings.R; import com.android.settingslib.fuelgauge.Estimate; import java.util.Map; @@ -179,6 +180,7 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider @Override public CharSequence[] getHideApplicationSummary(Context context) { - return new CharSequence[0]; + return context.getResources().getTextArray( + R.array.allowlist_hide_summary_in_battery_usage); } }