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;