Move allowed list definition in the battery usage to feature provider
Bug: 199367609
Test: make SettingsRoboTests
Change-Id: I321426e6ff1b9586ee493792f1d39aed35ecc34d
Signed-off-by: ykhung <ykhung@google.com>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 1ecddf5..0fe13fe 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1536,11 +1536,6 @@
<item>@string/enhanced_4g_lte_mode_summary_4g_calling</item>
</string-array>
- <!-- An allowlist which packages won't show summary in battery usage screen.
- [CHAR LIMIT=NONE] -->
- <string-array name="allowlist_hide_summary_in_battery_usage" translatable="false">
- </string-array>
-
<!-- Array of titles palette list for accessibility. -->
<string-array name="setting_palette_data" translatable="false" >
<item>@string/color_red</item>
diff --git a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
index 29872ac..bf464a8 100644
--- a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
@@ -47,6 +47,7 @@
import com.android.settings.SettingsActivity;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -440,8 +441,10 @@
}
private boolean shouldShowSummary(BatteryEntry entry) {
- final CharSequence[] allowlistPackages = mContext.getResources()
- .getTextArray(R.array.allowlist_hide_summary_in_battery_usage);
+ final CharSequence[] allowlistPackages =
+ FeatureFactory.getFactory(mContext)
+ .getPowerUsageFeatureProvider(mContext)
+ .getHideApplicationSummary(mContext);
final String target = entry.getDefaultPackageName();
for (CharSequence packageName : allowlistPackages) {
diff --git a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
index da98d2d..8541179 100644
--- a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
@@ -121,14 +121,16 @@
mFragment = fragment;
mPreferenceKey = preferenceKey;
mIs24HourFormat = DateFormat.is24HourFormat(context);
- mNotAllowShowSummaryPackages = context.getResources()
- .getTextArray(R.array.allowlist_hide_summary_in_battery_usage);
mMetricsFeatureProvider =
FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
mNotAllowShowEntryPackages =
- FeatureFactory.getFactory(mContext)
+ FeatureFactory.getFactory(context)
.getPowerUsageFeatureProvider(context)
- .getHideApplicationEntries(mContext);
+ .getHideApplicationEntries(context);
+ mNotAllowShowSummaryPackages =
+ FeatureFactory.getFactory(context)
+ .getPowerUsageFeatureProvider(context)
+ .getHideApplicationSummary(context);
if (lifecycle != null) {
lifecycle.addObserver(this);
}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
index 559c72b..a8e0317 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
@@ -163,4 +163,9 @@
* Returns package names for hidding application in the usage screen.
*/
CharSequence[] getHideApplicationEntries(Context context);
+
+ /**
+ * Returns package names for hidding summary in the usage screen.
+ */
+ CharSequence[] getHideApplicationSummary(Context context);
}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
index 1380e2e..e2c7800 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
@@ -190,4 +190,9 @@
public CharSequence[] getHideApplicationEntries(Context context) {
return new CharSequence[0];
}
+
+ @Override
+ public CharSequence[] getHideApplicationSummary(Context context) {
+ return new CharSequence[0];
+ }
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java
index c3b3075..5e69b8f 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java
@@ -67,11 +67,13 @@
private Context mContext;
private PowerGaugePreference mPreference;
private BatteryAppListPreferenceController mPreferenceController;
+ private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ mFeatureFactory = FakeFeatureFactory.setupForTest();
mContext = spy(RuntimeEnvironment.application);
final Resources resources = spy(mContext.getResources());
when(mContext.getResources()).thenReturn(resources);
@@ -79,9 +81,8 @@
when(mContext.getApplicationContext()).thenReturn(mContext);
when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
when(mUserManager.getProfileIdsWithDisabled(anyInt())).thenReturn(new int[] {});
- when(resources.getTextArray(R.array.allowlist_hide_summary_in_battery_usage))
+ when(mFeatureFactory.powerUsageFeatureProvider.getHideApplicationSummary(mContext))
.thenReturn(new String[] {"com.android.googlequicksearchbox"});
- FakeFeatureFactory.setupForTest();
mPreference = new PowerGaugePreference(mContext);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java
index 43fbe81..32e4000 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java
@@ -103,7 +103,8 @@
resources.getConfiguration().setLocales(new LocaleList(new Locale("en_US")));
doReturn(resources).when(mContext).getResources();
doReturn(new String[] {"com.android.googlequicksearchbox"})
- .when(resources).getTextArray(R.array.allowlist_hide_summary_in_battery_usage);
+ .when(mFeatureFactory.powerUsageFeatureProvider)
+ .getHideApplicationSummary(mContext);
mBatteryChartPreferenceController = createController();
mBatteryChartPreferenceController.mPrefContext = mContext;
mBatteryChartPreferenceController.mAppListPrefGroup = mAppListGroup;