convert EditTextPreference to json successfully

This commit is contained in:
Aria Moradi
2021-07-30 18:48:07 +04:30
parent 74f3b9b609
commit 7c03c73419
4 changed files with 29 additions and 11 deletions
@@ -8,18 +8,22 @@ package androidx.preference;
* 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 Object defaultValue;
private OnPreferenceChangeListener onChangeListener;
@JsonIgnore
public OnPreferenceChangeListener onChangeListener;
public Preference(Context context) {
this.context = context;
@@ -29,7 +33,6 @@ public class Preference {
return context;
}
public String getKey() {
return key;
}
@@ -54,6 +57,10 @@ public class Preference {
return onChangeListener == null || onChangeListener.onPreferenceChange(this, newValue);
}
public Object getDefaultValue() {
return defaultValue;
}
public interface OnPreferenceChangeListener {
boolean onPreferenceChange(Preference preference, Object newValue);
}
+3
View File
@@ -84,5 +84,8 @@ configure(projects) {
// APK parser
implementation("net.dongliu:apk-parser:2.6.10")
// Jackson
implementation("com.fasterxml.jackson.core:jackson-annotations:2.10.3")
}
}
@@ -58,7 +58,12 @@ object Source {
private val context by DI.global.instance<CustomContext>()
fun getSourcePreferences(sourceId: Long) {
data class PreferenceObject(
val type: String,
val props: Any
)
fun getSourcePreferences(sourceId: Long): List<PreferenceObject> {
val source = getHttpSource(sourceId)
if (source is ConfigurableSource) {
@@ -66,7 +71,10 @@ object Source {
source.setupPreferenceScreen(screen)
screen.preferences.forEach { println(it) }
return screen.preferences.map {
PreferenceObject(it::class.java.name, it)
}
}
return emptyList()
}
}
@@ -1,5 +1,12 @@
package suwayomi.tachidesk.server
/*
* 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 io.javalin.Javalin
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -13,13 +20,6 @@ import java.io.IOException
import java.util.concurrent.CompletableFuture
import kotlin.concurrent.thread
/*
* 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/. */
object JavalinSetup {
private val logger = KotlinLogging.logger {}