lineage-sdk: Hide a pref group if all child prefs are themselves hidden
*) The change https://review.lineageos.org/#/c/193263/ knowingly removed the functionality where a pref group itself would be removed if all child prefs were removed (see comments around PS8/9). *) bgcngm discovered cases where this is needed so add this functionality back. Change-Id: Ibe684a6a21a2989623df71b08c2f5241682988ac
This commit is contained in:
committed by
Bruno Martins
parent
0991abb0c3
commit
211a874c39
@@ -372,13 +372,29 @@ public class ConstraintsHelper {
|
||||
return null;
|
||||
}
|
||||
|
||||
private void hidePreference(PreferenceManager mgr, Preference pref) {
|
||||
pref.setVisible(false);
|
||||
// Hide the group if nothing is visible
|
||||
final PreferenceGroup group = getParent(pref, pref);
|
||||
boolean allHidden = true;
|
||||
for (int i = 0; i < group.getPreferenceCount(); i++) {
|
||||
if (group.getPreference(i).isVisible()) {
|
||||
allHidden = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (allHidden) {
|
||||
group.setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
public void summonReaper(PreferenceManager mgr) {
|
||||
synchronized (mDeathRow) {
|
||||
Set<String> notReadyForReap = new ArraySet<>();
|
||||
for (String dead : mDeathRow) {
|
||||
Preference deadPref = mgr.findPreference(dead);
|
||||
if (deadPref != null) {
|
||||
deadPref.setVisible(false);
|
||||
hidePreference(mgr, deadPref);
|
||||
} else {
|
||||
notReadyForReap.add(dead);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user