[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
Change-Id: I909522c0244ebb012a27d6aff34120a4f90128c6
This commit is contained in:
Bonian Chen
2022-10-21 13:42:38 +00:00
parent 61d661feb9
commit af614b823a
4 changed files with 34 additions and 1 deletions

View File

@@ -67,9 +67,18 @@ 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(
(Application) getContext().getApplicationContext());
mDataSaverBackend = new DataSaverBackend(getContext());
mDataUsageBridge = new AppStateDataUsageBridge(mApplicationsState, this, mDataSaverBackend);
mSession = mApplicationsState.newSession(this, getSettingsLifecycle());
}
@Override
@@ -202,12 +211,18 @@ public class DataSaverSummary extends SettingsPreferenceFragment
R.plurals.data_saver_unrestricted_summary, count, count));
}
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;
}