125 lines
4.5 KiB
Java
125 lines
4.5 KiB
Java
package androidx.preference;
|
|
|
|
import android.content.Context;
|
|
import android.content.res.TypedArray;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.util.AttributeSet;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.appcompat.content.res.AppCompatResources;
|
|
import androidx.core.content.res.TypedArrayUtils;
|
|
public abstract class DialogPreference extends Preference {
|
|
private Drawable mDialogIcon;
|
|
private int mDialogLayoutResId;
|
|
private CharSequence mDialogMessage;
|
|
private CharSequence mDialogTitle;
|
|
private CharSequence mNegativeButtonText;
|
|
private CharSequence mPositiveButtonText;
|
|
|
|
public interface TargetFragment {
|
|
@Nullable
|
|
<T extends Preference> T findPreference(@NonNull CharSequence charSequence);
|
|
}
|
|
|
|
public DialogPreference(Context context) {
|
|
this(context, null);
|
|
}
|
|
|
|
public DialogPreference(Context context, AttributeSet attributeSet) {
|
|
this(context, attributeSet, TypedArrayUtils.getAttr(context, R.attr.dialogPreferenceStyle, 16842897));
|
|
}
|
|
|
|
public DialogPreference(Context context, AttributeSet attributeSet, int i) {
|
|
this(context, attributeSet, i, 0);
|
|
}
|
|
|
|
public DialogPreference(Context context, AttributeSet attributeSet, int i, int i2) {
|
|
super(context, attributeSet, i, i2);
|
|
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.DialogPreference, i, i2);
|
|
String string = TypedArrayUtils.getString(obtainStyledAttributes, R.styleable.DialogPreference_dialogTitle, R.styleable.DialogPreference_android_dialogTitle);
|
|
this.mDialogTitle = string;
|
|
if (string == null) {
|
|
this.mDialogTitle = getTitle();
|
|
}
|
|
this.mDialogMessage = TypedArrayUtils.getString(obtainStyledAttributes, R.styleable.DialogPreference_dialogMessage, R.styleable.DialogPreference_android_dialogMessage);
|
|
this.mDialogIcon = TypedArrayUtils.getDrawable(obtainStyledAttributes, R.styleable.DialogPreference_dialogIcon, R.styleable.DialogPreference_android_dialogIcon);
|
|
this.mPositiveButtonText = TypedArrayUtils.getString(obtainStyledAttributes, R.styleable.DialogPreference_positiveButtonText, R.styleable.DialogPreference_android_positiveButtonText);
|
|
this.mNegativeButtonText = TypedArrayUtils.getString(obtainStyledAttributes, R.styleable.DialogPreference_negativeButtonText, R.styleable.DialogPreference_android_negativeButtonText);
|
|
this.mDialogLayoutResId = TypedArrayUtils.getResourceId(obtainStyledAttributes, R.styleable.DialogPreference_dialogLayout, R.styleable.DialogPreference_android_dialogLayout, 0);
|
|
obtainStyledAttributes.recycle();
|
|
}
|
|
|
|
public Drawable getDialogIcon() {
|
|
return this.mDialogIcon;
|
|
}
|
|
|
|
public int getDialogLayoutResource() {
|
|
return this.mDialogLayoutResId;
|
|
}
|
|
|
|
public CharSequence getDialogMessage() {
|
|
return this.mDialogMessage;
|
|
}
|
|
|
|
public CharSequence getDialogTitle() {
|
|
return this.mDialogTitle;
|
|
}
|
|
|
|
public CharSequence getNegativeButtonText() {
|
|
return this.mNegativeButtonText;
|
|
}
|
|
|
|
public CharSequence getPositiveButtonText() {
|
|
return this.mPositiveButtonText;
|
|
}
|
|
|
|
@Override // androidx.preference.Preference
|
|
public void onClick() {
|
|
getPreferenceManager().showDialog(this);
|
|
}
|
|
|
|
public void setDialogIcon(int i) {
|
|
this.mDialogIcon = AppCompatResources.getDrawable(getContext(), i);
|
|
}
|
|
|
|
public void setDialogIcon(Drawable drawable) {
|
|
this.mDialogIcon = drawable;
|
|
}
|
|
|
|
public void setDialogLayoutResource(int i) {
|
|
this.mDialogLayoutResId = i;
|
|
}
|
|
|
|
public void setDialogMessage(int i) {
|
|
setDialogMessage(getContext().getString(i));
|
|
}
|
|
|
|
public void setDialogMessage(CharSequence charSequence) {
|
|
this.mDialogMessage = charSequence;
|
|
}
|
|
|
|
public void setDialogTitle(int i) {
|
|
setDialogTitle(getContext().getString(i));
|
|
}
|
|
|
|
public void setDialogTitle(CharSequence charSequence) {
|
|
this.mDialogTitle = charSequence;
|
|
}
|
|
|
|
public void setNegativeButtonText(int i) {
|
|
setNegativeButtonText(getContext().getString(i));
|
|
}
|
|
|
|
public void setNegativeButtonText(CharSequence charSequence) {
|
|
this.mNegativeButtonText = charSequence;
|
|
}
|
|
|
|
public void setPositiveButtonText(int i) {
|
|
setPositiveButtonText(getContext().getString(i));
|
|
}
|
|
|
|
public void setPositiveButtonText(CharSequence charSequence) {
|
|
this.mPositiveButtonText = charSequence;
|
|
}
|
|
}
|