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>
This commit is contained in:
ykhung
2021-09-09 17:25:08 +08:00
parent 88cd5025e1
commit b62cdecc67
7 changed files with 26 additions and 14 deletions

View File

@@ -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>

View File

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

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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];
}
}

View File

@@ -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);

View File

@@ -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;