diff options
author | Sam Mortimer <sam@mortimer.me.uk> | 2017-12-10 15:10:38 -0800 |
---|---|---|
committer | Bruno Martins <bgcngm@gmail.com> | 2017-12-19 01:18:53 +0000 |
commit | 7ab8aadc8a2fdf48bcc6a6b749b30c798aa7d377 (patch) | |
tree | 93fb2d01d4271e071cbb289b788b1ceee773cb7d | |
parent | 34d6da24071ed0fe92d3de74a3c6769321013d5a (diff) | |
download | lineage-sdk-7ab8aadc8a2fdf48bcc6a6b749b30c798aa7d377.tar.gz lineage-sdk-7ab8aadc8a2fdf48bcc6a6b749b30c798aa7d377.tar.bz2 lineage-sdk-7ab8aadc8a2fdf48bcc6a6b749b30c798aa7d377.zip |
Revert "Revert "lineage-sdk self-removing prefs: move reap from onBindViewHolder to onAttached""
This reverts commit 9f648b7046d1f921707c749b02b911ae126fd0fa.
Change-Id: Ia102cfb55c16eb52e1412e815abd081d504fc96f
5 files changed, 29 insertions, 11 deletions
diff --git a/sdk/src/java/lineageos/preference/ConstraintsHelper.java b/sdk/src/java/lineageos/preference/ConstraintsHelper.java index 35e1d5d1..b48b00ee 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 onBindViewHolder(PreferenceViewHolder holder) { + public void onAttached() { checkIntent(); if (isAvailable() && mReplacesKey != null) { @@ -308,7 +308,9 @@ public class ConstraintsHelper { } Graveyard.get(mContext).summonReaper(mPref.getPreferenceManager()); + } + public void onBindViewHolder(PreferenceViewHolder holder) { if (!isAvailable()) { return; } @@ -325,7 +327,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 during the first call to onBindViewHolder. + * of this, and will reap the dead when onAttached is called. */ private static class Graveyard { @@ -370,20 +372,12 @@ 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) { - removePreference(mgr, deadPref); + deadPref.setVisible(false); } } mDeathRow.clear(); diff --git a/sdk/src/java/lineageos/preference/SelfRemovingDropDownPreference.java b/sdk/src/java/lineageos/preference/SelfRemovingDropDownPreference.java index 76e73461..03097cfe 100644 --- a/sdk/src/java/lineageos/preference/SelfRemovingDropDownPreference.java +++ b/sdk/src/java/lineageos/preference/SelfRemovingDropDownPreference.java @@ -44,6 +44,12 @@ 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 d1d3ec5a..0b8c7985 100644 --- a/sdk/src/java/lineageos/preference/SelfRemovingListPreference.java +++ b/sdk/src/java/lineageos/preference/SelfRemovingListPreference.java @@ -44,6 +44,12 @@ 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 a148a09c..5271f561 100644 --- a/sdk/src/java/lineageos/preference/SelfRemovingPreference.java +++ b/sdk/src/java/lineageos/preference/SelfRemovingPreference.java @@ -49,6 +49,12 @@ 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 c8663227..a637f220 100644 --- a/sdk/src/java/lineageos/preference/SelfRemovingSwitchPreference.java +++ b/sdk/src/java/lineageos/preference/SelfRemovingSwitchPreference.java @@ -44,6 +44,12 @@ 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); |