From b62cdecc67ec674b25b86517afca7075e9d2311e Mon Sep 17 00:00:00 2001 From: ykhung Date: Thu, 9 Sep 2021 17:25:08 +0800 Subject: [PATCH] Move allowed list definition in the battery usage to feature provider Bug: 199367609 Test: make SettingsRoboTests Change-Id: I321426e6ff1b9586ee493792f1d39aed35ecc34d Signed-off-by: ykhung --- res/values/arrays.xml | 5 ----- .../fuelgauge/BatteryAppListPreferenceController.java | 7 +++++-- .../fuelgauge/BatteryChartPreferenceController.java | 10 ++++++---- .../settings/fuelgauge/PowerUsageFeatureProvider.java | 5 +++++ .../fuelgauge/PowerUsageFeatureProviderImpl.java | 5 +++++ .../BatteryAppListPreferenceControllerTest.java | 5 +++-- .../BatteryChartPreferenceControllerTest.java | 3 ++- 7 files changed, 26 insertions(+), 14 deletions(-) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 1ecddf5a79f..0fe13feb3e6 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -1536,11 +1536,6 @@ @string/enhanced_4g_lte_mode_summary_4g_calling - - - - @string/color_red diff --git a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java index 29872ac4d40..bf464a8c364 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.R; 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 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro } 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 da98d2df8b1..854117978f2 100644 --- a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java @@ -121,14 +121,16 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll 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 559c72ba368..a8e0317ff1d 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java @@ -163,4 +163,9 @@ public interface PowerUsageFeatureProvider { * 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 1380e2ecdae..e2c7800472c 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java @@ -190,4 +190,9 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider 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 c3b3075612f..5e69b8fb05b 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 @@ public class BatteryAppListPreferenceControllerTest { 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 @@ public class BatteryAppListPreferenceControllerTest { 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 43fbe81a3a1..32e4000a480 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 @@ public final class BatteryChartPreferenceControllerTest { 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;