summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Martins <bgcngm@gmail.com>2020-10-25 16:48:41 +0000
committerBruno Martins <bgcngm@gmail.com>2020-10-25 20:04:12 +0200
commit88daa87a94c63abc790d5fe04f442d1916d0fe45 (patch)
treeb38de2d07afca77c4be46e8d28eb71d9b0403a4a
parent7bf74325e4fd355064132c920fae5b786b667d67 (diff)
ConstraintsHelper: Allow replacing multiple keys at once
Change-Id: Ic676aaf12abd4d4b7a6a60b66308774a944ffdd8
-rw-r--r--sdk/src/java/lineageos/preference/ConstraintsHelper.java17
1 files changed, 14 insertions, 3 deletions
diff --git a/sdk/src/java/lineageos/preference/ConstraintsHelper.java b/sdk/src/java/lineageos/preference/ConstraintsHelper.java
index 26f4e228..f883cb98 100644
--- a/sdk/src/java/lineageos/preference/ConstraintsHelper.java
+++ b/sdk/src/java/lineageos/preference/ConstraintsHelper.java
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2016 The CyanogenMod Project
+ * 2017,2019-2020 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,6 +37,7 @@ import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceViewHolder;
+import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.Set;
@@ -67,7 +69,7 @@ public class ConstraintsHelper {
private int mSummaryMinLines = -1;
- private String mReplacesKey = null;
+ private String[] mReplacesKey = null;
public ConstraintsHelper(Context context, AttributeSet attrs, Preference pref) {
mContext = context;
@@ -77,7 +79,10 @@ public class ConstraintsHelper {
TypedArray a = context.getResources().obtainAttributes(attrs,
R.styleable.lineage_SelfRemovingPreference);
mSummaryMinLines = a.getInteger(R.styleable.lineage_SelfRemovingPreference_minSummaryLines, -1);
- mReplacesKey = a.getString(R.styleable.lineage_SelfRemovingPreference_replacesKey);
+ String replacesKey = a.getString(R.styleable.lineage_SelfRemovingPreference_replacesKey);
+ if (replacesKey != null) {
+ mReplacesKey = replacesKey.split("\\|");
+ }
setAvailable(checkConstraints());
Log.d(TAG, "construct key=" + mPref.getKey() + " available=" + mAvailable);
@@ -305,7 +310,7 @@ public class ConstraintsHelper {
checkIntent();
if (isAvailable() && mReplacesKey != null) {
- Graveyard.get(mContext).addTombstone(mReplacesKey);
+ Graveyard.get(mContext).addTombstones(mReplacesKey);
}
Graveyard.get(mContext).summonReaper(mPref.getPreferenceManager());
@@ -355,6 +360,12 @@ public class ConstraintsHelper {
}
}
+ public void addTombstones(String[] prefs) {
+ synchronized (mDeathRow) {
+ mDeathRow.addAll(Arrays.asList(prefs));
+ }
+ }
+
private PreferenceGroup getParent(Preference p1, Preference p2) {
return getParent(p1.getPreferenceManager().getPreferenceScreen(), p2);
}