diff options
Diffstat (limited to 'sdk')
5 files changed, 11 insertions, 29 deletions
diff --git a/sdk/src/java/lineageos/preference/ConstraintsHelper.java b/sdk/src/java/lineageos/preference/ConstraintsHelper.java index b48b00ee..35e1d5d1 100644 --- a/sdk/src/java/lineageos/preference/ConstraintsHelper.java +++ b/sdk/src/java/lineageos/preference/ConstraintsHelper.java @@ -300,7 +300,7 @@ public class ConstraintsHelper { return fallbackAttr; } - public void onAttached() { + public void onBindViewHolder(PreferenceViewHolder holder) { checkIntent(); if (isAvailable() && mReplacesKey != null) { @@ -308,9 +308,7 @@ public class ConstraintsHelper { } Graveyard.get(mContext).summonReaper(mPref.getPreferenceManager()); - } - public void onBindViewHolder(PreferenceViewHolder holder) { if (!isAvailable()) { return; } @@ -327,7 +325,7 @@ public class ConstraintsHelper { * If we want to keep this at the preference level vs the fragment level, we need to * collate all the preferences that need to be removed when attached to the * hierarchy, then purge them all when loading is complete. The Graveyard keeps track - * of this, and will reap the dead when onAttached is called. + * of this, and will reap the dead during the first call to onBindViewHolder. */ private static class Graveyard { @@ -372,12 +370,20 @@ public class ConstraintsHelper { return null; } + private void removePreference(PreferenceManager mgr, Preference pref) { + final PreferenceGroup group = getParent(pref, pref); + group.removePreference(pref); + if (group.getPreferenceCount() == 0) { + getParent(pref, group).removePreference(group); + } + } + public void summonReaper(PreferenceManager mgr) { synchronized (mDeathRow) { for (String dead : mDeathRow) { Preference deadPref = mgr.findPreference(dead); if (deadPref != null) { - deadPref.setVisible(false); + removePreference(mgr, deadPref); } } mDeathRow.clear(); diff --git a/sdk/src/java/lineageos/preference/SelfRemovingDropDownPreference.java b/sdk/src/java/lineageos/preference/SelfRemovingDropDownPreference.java index 03097cfe..76e73461 100644 --- a/sdk/src/java/lineageos/preference/SelfRemovingDropDownPreference.java +++ b/sdk/src/java/lineageos/preference/SelfRemovingDropDownPreference.java @@ -44,12 +44,6 @@ public class SelfRemovingDropDownPreference extends DropDownPreference { } @Override - public void onAttached() { - super.onAttached(); - mConstraints.onAttached(); - } - - @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); mConstraints.onBindViewHolder(holder); diff --git a/sdk/src/java/lineageos/preference/SelfRemovingListPreference.java b/sdk/src/java/lineageos/preference/SelfRemovingListPreference.java index 0b8c7985..d1d3ec5a 100644 --- a/sdk/src/java/lineageos/preference/SelfRemovingListPreference.java +++ b/sdk/src/java/lineageos/preference/SelfRemovingListPreference.java @@ -44,12 +44,6 @@ public class SelfRemovingListPreference extends ListPreference { } @Override - public void onAttached() { - super.onAttached(); - mConstraints.onAttached(); - } - - @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); mConstraints.onBindViewHolder(holder); diff --git a/sdk/src/java/lineageos/preference/SelfRemovingPreference.java b/sdk/src/java/lineageos/preference/SelfRemovingPreference.java index 5271f561..a148a09c 100644 --- a/sdk/src/java/lineageos/preference/SelfRemovingPreference.java +++ b/sdk/src/java/lineageos/preference/SelfRemovingPreference.java @@ -49,12 +49,6 @@ public class SelfRemovingPreference extends Preference { } @Override - public void onAttached() { - super.onAttached(); - mConstraints.onAttached(); - } - - @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); mConstraints.onBindViewHolder(holder); diff --git a/sdk/src/java/lineageos/preference/SelfRemovingSwitchPreference.java b/sdk/src/java/lineageos/preference/SelfRemovingSwitchPreference.java index a637f220..c8663227 100644 --- a/sdk/src/java/lineageos/preference/SelfRemovingSwitchPreference.java +++ b/sdk/src/java/lineageos/preference/SelfRemovingSwitchPreference.java @@ -44,12 +44,6 @@ public class SelfRemovingSwitchPreference extends SwitchPreference { } @Override - public void onAttached() { - super.onAttached(); - mConstraints.onAttached(); - } - - @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); mConstraints.onBindViewHolder(holder); |