100 lines
2.7 KiB
Java
100 lines
2.7 KiB
Java
package androidx.preference;
|
|
|
|
/*
|
|
* Copyright (C) Contributors to the Suwayomi project
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
import android.content.Context;
|
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
|
|
/**
|
|
* A minimal implementation of androidx.preference.Preference
|
|
*/
|
|
public class Preference {
|
|
// reference: https://android.googlesource.com/platform/frameworks/support/+/996971f962fcd554339a7cb2859cef9ca89dbcb7/preference/preference/src/main/java/androidx/preference/Preference.java
|
|
// Note: `Preference` doesn't actually hold or persist the value, `OnPreferenceChangeListener` is called and it's up to the extension to persist it.
|
|
|
|
@JsonIgnore
|
|
protected Context context;
|
|
|
|
private String key;
|
|
private CharSequence title;
|
|
private CharSequence summary;
|
|
private Object defaultValue;
|
|
|
|
@JsonIgnore
|
|
public OnPreferenceChangeListener onChangeListener;
|
|
|
|
public Preference(Context context) {
|
|
this.context = context;
|
|
}
|
|
|
|
public Context getContext() {
|
|
return context;
|
|
}
|
|
|
|
public void setOnPreferenceChangeListener(OnPreferenceChangeListener onPreferenceChangeListener) {
|
|
this.onChangeListener = onPreferenceChangeListener;
|
|
}
|
|
|
|
public void setOnPreferenceClickListener(OnPreferenceClickListener onPreferenceClickListener) {
|
|
throw new RuntimeException("Stub!");
|
|
}
|
|
|
|
public CharSequence getTitle() {
|
|
return title;
|
|
}
|
|
|
|
public void setTitle(CharSequence title) {
|
|
this.title = title;
|
|
}
|
|
|
|
public CharSequence getSummary() {
|
|
return summary;
|
|
}
|
|
|
|
public void setSummary(CharSequence summary) {
|
|
this.summary = summary;
|
|
}
|
|
|
|
public void setEnabled(boolean enabled) {
|
|
throw new RuntimeException("Stub!");
|
|
}
|
|
|
|
public String getKey() {
|
|
return key;
|
|
}
|
|
|
|
public void setKey(String key) {
|
|
this.key = key;
|
|
}
|
|
|
|
public void setDefaultValue(Object defaultValue) {
|
|
this.defaultValue = defaultValue;
|
|
}
|
|
|
|
public boolean callChangeListener(Object newValue) {
|
|
return onChangeListener == null || onChangeListener.onPreferenceChange(this, newValue);
|
|
}
|
|
|
|
public Object getDefaultValue() {
|
|
return defaultValue;
|
|
}
|
|
|
|
/** Tachidesk specific API */
|
|
public String getDefaultValueType() {
|
|
return defaultValue.getClass().getSimpleName();
|
|
}
|
|
|
|
public interface OnPreferenceChangeListener {
|
|
boolean onPreferenceChange(Preference preference, Object newValue);
|
|
}
|
|
|
|
public interface OnPreferenceClickListener {
|
|
boolean onPreferenceClick(Preference preference);
|
|
}
|
|
}
|