aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Mortimer <sam@mortimer.me.uk>2017-12-10 15:10:38 -0800
committerBruno Martins <bgcngm@gmail.com>2017-12-19 01:18:53 +0000
commit7ab8aadc8a2fdf48bcc6a6b749b30c798aa7d377 (patch)
tree93fb2d01d4271e071cbb289b788b1ceee773cb7d
parent34d6da24071ed0fe92d3de74a3c6769321013d5a (diff)
downloadlineage-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
-rw-r--r--sdk/src/java/lineageos/preference/ConstraintsHelper.java16
-rw-r--r--sdk/src/java/lineageos/preference/SelfRemovingDropDownPreference.java6
-rw-r--r--sdk/src/java/lineageos/preference/SelfRemovingListPreference.java6
-rw-r--r--sdk/src/java/lineageos/preference/SelfRemovingPreference.java6
-rw-r--r--sdk/src/java/lineageos/preference/SelfRemovingSwitchPreference.java6
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);