239 lines
8.6 KiB
Java
239 lines
8.6 KiB
Java
package androidx.preference;
|
|
|
|
import android.content.Context;
|
|
import android.content.res.TypedArray;
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
import android.text.TextUtils;
|
|
import android.util.AttributeSet;
|
|
import android.util.Log;
|
|
import androidx.annotation.ArrayRes;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.core.content.res.TypedArrayUtils;
|
|
import androidx.preference.Preference;
|
|
public class ListPreference extends DialogPreference {
|
|
private static final String TAG = "ListPreference";
|
|
private CharSequence[] mEntries;
|
|
private CharSequence[] mEntryValues;
|
|
private String mSummary;
|
|
private String mValue;
|
|
private boolean mValueSet;
|
|
|
|
public static class SavedState extends Preference.BaseSavedState {
|
|
public static final Parcelable.Creator<SavedState> CREATOR = new AnonymousClass1();
|
|
public String mValue;
|
|
|
|
/* renamed from: androidx.preference.ListPreference$SavedState$1 reason: invalid class name */
|
|
public static class AnonymousClass1 implements Parcelable.Creator<SavedState> {
|
|
@Override // android.os.Parcelable.Creator
|
|
public SavedState createFromParcel(Parcel parcel) {
|
|
return new SavedState(parcel);
|
|
}
|
|
|
|
@Override // android.os.Parcelable.Creator
|
|
public SavedState[] newArray(int i) {
|
|
return new SavedState[i];
|
|
}
|
|
}
|
|
|
|
public SavedState(Parcel parcel) {
|
|
super(parcel);
|
|
this.mValue = parcel.readString();
|
|
}
|
|
|
|
public SavedState(Parcelable parcelable) {
|
|
super(parcelable);
|
|
}
|
|
|
|
@Override // android.view.AbsSavedState, android.os.Parcelable
|
|
public void writeToParcel(@NonNull Parcel parcel, int i) {
|
|
super.writeToParcel(parcel, i);
|
|
parcel.writeString(this.mValue);
|
|
}
|
|
}
|
|
|
|
public static final class SimpleSummaryProvider implements Preference.SummaryProvider<ListPreference> {
|
|
private static SimpleSummaryProvider sSimpleSummaryProvider;
|
|
|
|
private SimpleSummaryProvider() {
|
|
}
|
|
|
|
public static SimpleSummaryProvider getInstance() {
|
|
if (sSimpleSummaryProvider == null) {
|
|
sSimpleSummaryProvider = new SimpleSummaryProvider();
|
|
}
|
|
return sSimpleSummaryProvider;
|
|
}
|
|
|
|
public CharSequence provideSummary(ListPreference listPreference) {
|
|
return TextUtils.isEmpty(listPreference.getEntry()) ? listPreference.getContext().getString(R.string.not_set) : listPreference.getEntry();
|
|
}
|
|
}
|
|
|
|
public ListPreference(Context context) {
|
|
this(context, null);
|
|
}
|
|
|
|
public ListPreference(Context context, AttributeSet attributeSet) {
|
|
this(context, attributeSet, TypedArrayUtils.getAttr(context, R.attr.dialogPreferenceStyle, 16842897));
|
|
}
|
|
|
|
public ListPreference(Context context, AttributeSet attributeSet, int i) {
|
|
this(context, attributeSet, i, 0);
|
|
}
|
|
|
|
public ListPreference(Context context, AttributeSet attributeSet, int i, int i2) {
|
|
super(context, attributeSet, i, i2);
|
|
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.ListPreference, i, i2);
|
|
this.mEntries = TypedArrayUtils.getTextArray(obtainStyledAttributes, R.styleable.ListPreference_entries, R.styleable.ListPreference_android_entries);
|
|
this.mEntryValues = TypedArrayUtils.getTextArray(obtainStyledAttributes, R.styleable.ListPreference_entryValues, R.styleable.ListPreference_android_entryValues);
|
|
int i3 = R.styleable.ListPreference_useSimpleSummaryProvider;
|
|
if (TypedArrayUtils.getBoolean(obtainStyledAttributes, i3, i3, false)) {
|
|
setSummaryProvider(SimpleSummaryProvider.getInstance());
|
|
}
|
|
obtainStyledAttributes.recycle();
|
|
TypedArray obtainStyledAttributes2 = context.obtainStyledAttributes(attributeSet, R.styleable.Preference, i, i2);
|
|
this.mSummary = TypedArrayUtils.getString(obtainStyledAttributes2, R.styleable.Preference_summary, R.styleable.Preference_android_summary);
|
|
obtainStyledAttributes2.recycle();
|
|
}
|
|
|
|
private int getValueIndex() {
|
|
return findIndexOfValue(this.mValue);
|
|
}
|
|
|
|
public int findIndexOfValue(String str) {
|
|
CharSequence[] charSequenceArr;
|
|
if (str == null || (charSequenceArr = this.mEntryValues) == null) {
|
|
return -1;
|
|
}
|
|
for (int length = charSequenceArr.length - 1; length >= 0; length--) {
|
|
if (this.mEntryValues[length].equals(str)) {
|
|
return length;
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
public CharSequence[] getEntries() {
|
|
return this.mEntries;
|
|
}
|
|
|
|
public CharSequence getEntry() {
|
|
CharSequence[] charSequenceArr;
|
|
int valueIndex = getValueIndex();
|
|
if (valueIndex < 0 || (charSequenceArr = this.mEntries) == null) {
|
|
return null;
|
|
}
|
|
return charSequenceArr[valueIndex];
|
|
}
|
|
|
|
public CharSequence[] getEntryValues() {
|
|
return this.mEntryValues;
|
|
}
|
|
|
|
/* JADX DEBUG: Can't convert new array creation: APUT found in different block: 0x0024: APUT (r3v1 java.lang.Object[]), (0 ??[int, short, byte, char]), (r0v2 java.lang.CharSequence) */
|
|
@Override // androidx.preference.Preference
|
|
public CharSequence getSummary() {
|
|
if (getSummaryProvider() != null) {
|
|
return getSummaryProvider().provideSummary(this);
|
|
}
|
|
CharSequence entry = getEntry();
|
|
CharSequence summary = super.getSummary();
|
|
String str = this.mSummary;
|
|
if (str == null) {
|
|
return summary;
|
|
}
|
|
Object[] objArr = new Object[1];
|
|
if (entry == null) {
|
|
entry = "";
|
|
}
|
|
objArr[0] = entry;
|
|
String format = String.format(str, objArr);
|
|
if (TextUtils.equals(format, summary)) {
|
|
return summary;
|
|
}
|
|
Log.w("ListPreference", "Setting a summary with a String formatting marker is no longer supported. You should use a SummaryProvider instead.");
|
|
return format;
|
|
}
|
|
|
|
public String getValue() {
|
|
return this.mValue;
|
|
}
|
|
|
|
@Override // androidx.preference.Preference
|
|
public Object onGetDefaultValue(TypedArray typedArray, int i) {
|
|
return typedArray.getString(i);
|
|
}
|
|
|
|
@Override // androidx.preference.Preference
|
|
public void onRestoreInstanceState(Parcelable parcelable) {
|
|
if (parcelable == null || !parcelable.getClass().equals(SavedState.class)) {
|
|
super.onRestoreInstanceState(parcelable);
|
|
return;
|
|
}
|
|
SavedState savedState = (SavedState) parcelable;
|
|
super.onRestoreInstanceState(savedState.getSuperState());
|
|
setValue(savedState.mValue);
|
|
}
|
|
|
|
@Override // androidx.preference.Preference
|
|
public Parcelable onSaveInstanceState() {
|
|
Parcelable onSaveInstanceState = super.onSaveInstanceState();
|
|
if (isPersistent()) {
|
|
return onSaveInstanceState;
|
|
}
|
|
SavedState savedState = new SavedState(onSaveInstanceState);
|
|
savedState.mValue = getValue();
|
|
return savedState;
|
|
}
|
|
|
|
@Override // androidx.preference.Preference
|
|
public void onSetInitialValue(Object obj) {
|
|
setValue(getPersistedString((String) obj));
|
|
}
|
|
|
|
public void setEntries(@ArrayRes int i) {
|
|
setEntries(getContext().getResources().getTextArray(i));
|
|
}
|
|
|
|
public void setEntries(CharSequence[] charSequenceArr) {
|
|
this.mEntries = charSequenceArr;
|
|
}
|
|
|
|
public void setEntryValues(@ArrayRes int i) {
|
|
setEntryValues(getContext().getResources().getTextArray(i));
|
|
}
|
|
|
|
public void setEntryValues(CharSequence[] charSequenceArr) {
|
|
this.mEntryValues = charSequenceArr;
|
|
}
|
|
|
|
@Override // androidx.preference.Preference
|
|
public void setSummary(CharSequence charSequence) {
|
|
super.setSummary(charSequence);
|
|
if (charSequence == null && this.mSummary != null) {
|
|
this.mSummary = null;
|
|
} else if (charSequence != null && !charSequence.equals(this.mSummary)) {
|
|
this.mSummary = charSequence.toString();
|
|
}
|
|
}
|
|
|
|
public void setValue(String str) {
|
|
boolean z2 = !TextUtils.equals(this.mValue, str);
|
|
if (z2 || !this.mValueSet) {
|
|
this.mValue = str;
|
|
this.mValueSet = true;
|
|
persistString(str);
|
|
if (z2) {
|
|
notifyChanged();
|
|
}
|
|
}
|
|
}
|
|
|
|
public void setValueIndex(int i) {
|
|
CharSequence[] charSequenceArr = this.mEntryValues;
|
|
if (charSequenceArr != null) {
|
|
setValue(charSequenceArr[i].toString());
|
|
}
|
|
}
|
|
}
|