Hide the SelfAvailablePreference if it is not available.
- instead of removing it from the preference screen, set its visibility to false, so that if it becomes available later, it will still be found on the screen. Bug: 119838520 Test: make RunSettingsRoboTests Change-Id: Idc7079bb5846aef247dd87c0b0dba2546f2d8f8f
This commit is contained in:
@@ -155,13 +155,14 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
|
||||
checkAvailablePrefs(getPreferenceScreen());
|
||||
}
|
||||
|
||||
private void checkAvailablePrefs(PreferenceGroup preferenceGroup) {
|
||||
@VisibleForTesting
|
||||
void checkAvailablePrefs(PreferenceGroup preferenceGroup) {
|
||||
if (preferenceGroup == null) return;
|
||||
for (int i = 0; i < preferenceGroup.getPreferenceCount(); i++) {
|
||||
Preference pref = preferenceGroup.getPreference(i);
|
||||
if (pref instanceof SelfAvailablePreference
|
||||
&& !((SelfAvailablePreference) pref).isAvailable(getContext())) {
|
||||
preferenceGroup.removePreference(pref);
|
||||
pref.setVisible(false);
|
||||
} else if (pref instanceof PreferenceGroup) {
|
||||
checkAvailablePrefs((PreferenceGroup) pref);
|
||||
}
|
||||
|
Reference in New Issue
Block a user