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

View File

@@ -8,18 +8,22 @@ package androidx.preference;
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
import android.content.Context; import android.content.Context;
import com.fasterxml.jackson.annotation.JsonIgnore;
/** A minimal implementation of androidx.preference.Preference */ /** A minimal implementation of androidx.preference.Preference */
public class Preference { public class Preference {
// reference: https://android.googlesource.com/platform/frameworks/support/+/996971f962fcd554339a7cb2859cef9ca89dbcb7/preference/preference/src/main/java/androidx/preference/Preference.java // 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. // 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; protected Context context;
private String key; private String key;
private CharSequence title; private CharSequence title;
private Object defaultValue; private Object defaultValue;
private OnPreferenceChangeListener onChangeListener;
@JsonIgnore
public OnPreferenceChangeListener onChangeListener;
public Preference(Context context) { public Preference(Context context) {
this.context = context; this.context = context;
@@ -29,7 +33,6 @@ public class Preference {
return context; return context;
} }
public String getKey() { public String getKey() {
return key; return key;
} }
@@ -54,6 +57,10 @@ public class Preference {
return onChangeListener == null || onChangeListener.onPreferenceChange(this, newValue); return onChangeListener == null || onChangeListener.onPreferenceChange(this, newValue);
} }
public Object getDefaultValue() {
return defaultValue;
}
public interface OnPreferenceChangeListener { public interface OnPreferenceChangeListener {
boolean onPreferenceChange(Preference preference, Object newValue); boolean onPreferenceChange(Preference preference, Object newValue);
} }

View File

@@ -84,5 +84,8 @@ configure(projects) {
// APK parser // APK parser
implementation("net.dongliu:apk-parser:2.6.10") implementation("net.dongliu:apk-parser:2.6.10")
// Jackson
implementation("com.fasterxml.jackson.core:jackson-annotations:2.10.3")
} }
} }

View File

@@ -58,7 +58,12 @@ object Source {
private val context by DI.global.instance<CustomContext>() 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) val source = getHttpSource(sourceId)
if (source is ConfigurableSource) { if (source is ConfigurableSource) {
@@ -66,7 +71,10 @@ object Source {
source.setupPreferenceScreen(screen) source.setupPreferenceScreen(screen)
screen.preferences.forEach { println(it) } return screen.preferences.map {
PreferenceObject(it::class.java.name, it)
} }
} }
return emptyList()
}
} }

View File

@@ -1,5 +1,12 @@
package suwayomi.tachidesk.server 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 io.javalin.Javalin
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@@ -13,13 +20,6 @@ import java.io.IOException
import java.util.concurrent.CompletableFuture import java.util.concurrent.CompletableFuture
import kotlin.concurrent.thread 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 { object JavalinSetup {
private val logger = KotlinLogging.logger {} private val logger = KotlinLogging.logger {}