[Settings] enhancing data saver config control

Enhancing the control of R.bool.config_show_data_saver when false, which including:
1. Initial presentation is invisible
2. Leaving UI when triggered
3. Avoid from getting searched
4. Robolectric test case support

Bug: 243877672
Test: test cases and local testing
Merged-In: I909522c0244ebb012a27d6aff34120a4f90128c6
Change-Id: I909522c0244ebb012a27d6aff34120a4f90128c6
This commit is contained in:
Bonian Chen
2022-10-21 13:42:38 +00:00
parent b93416b26d
commit 2a6792540b
4 changed files with 30 additions and 1 deletions

View File

@@ -59,6 +59,11 @@ public class DataSaverSummary extends SettingsPreferenceFragment
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
if (!isDataSaverVisible(getContext())) {
finishFragment();
return;
}
addPreferencesFromResource(R.xml.data_saver);
mUnrestrictedAccess = findPreference(KEY_UNRESTRICTED_ACCESS);
mApplicationsState = ApplicationsState.getInstance(
@@ -192,12 +197,18 @@ public class DataSaverSummary extends SettingsPreferenceFragment
}
public static boolean isDataSaverVisible(Context context) {
return context.getResources()
.getBoolean(R.bool.config_show_data_saver);
}
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider(R.xml.data_saver) {
@Override
protected boolean isPageSearchEnabled(Context context) {
return DataUsageUtils.hasMobileData(context)
return isDataSaverVisible(context)
&& DataUsageUtils.hasMobileData(context)
&& DataUsageUtils.getDefaultSubscriptionId(context)
!= SubscriptionManager.INVALID_SUBSCRIPTION_ID;
}