diff --git a/app/src/main/java/com/osfans/trime/data/schema/Schema.kt b/app/src/main/java/com/osfans/trime/data/schema/Schema.kt index edfde4406c..afc30f45ef 100644 --- a/app/src/main/java/com/osfans/trime/data/schema/Schema.kt +++ b/app/src/main/java/com/osfans/trime/data/schema/Schema.kt @@ -3,9 +3,6 @@ package com.osfans.trime.data.schema import com.osfans.trime.util.config.Config import kotlinx.serialization.Serializable import kotlinx.serialization.Transient -import kotlinx.serialization.builtins.ListSerializer -import kotlinx.serialization.builtins.MapSerializer -import kotlinx.serialization.builtins.serializer class Schema(schemaId: String = ".default") { private val config = @@ -17,11 +14,9 @@ class Schema(schemaId: String = ".default") { val switches get() = config?.getList("switches") - ?.decode(ListSerializer(Switch.serializer())) val symbols get() = config?.getMap("punctuator/symbols") - ?.decode(MapSerializer(String.serializer(), ListSerializer(String.serializer()))) val alphabet get() = config?.getString("speller/alphabet") diff --git a/app/src/main/java/com/osfans/trime/data/schema/SchemaManager.kt b/app/src/main/java/com/osfans/trime/data/schema/SchemaManager.kt index 17a2a30ab3..2ccec7c9f6 100644 --- a/app/src/main/java/com/osfans/trime/data/schema/SchemaManager.kt +++ b/app/src/main/java/com/osfans/trime/data/schema/SchemaManager.kt @@ -3,6 +3,7 @@ package com.osfans.trime.data.schema import com.osfans.trime.core.CandidateListItem import com.osfans.trime.core.Rime import com.osfans.trime.data.AppPrefs +import kotlinx.serialization.builtins.ListSerializer object SchemaManager { private lateinit var currentSchema: Schema @@ -16,6 +17,7 @@ object SchemaManager { fun init(schemaId: String) { currentSchema = runCatching { Schema(schemaId) }.getOrDefault(defaultSchema) visibleSwitches = currentSchema.switches + ?.decode(ListSerializer(Schema.Switch.serializer())) ?.filter { !it.states.isNullOrEmpty() } ?: listOf() // 剔除没有 states 条目项的值,它们不作为开关使用 updateSwitchOptions() } diff --git a/app/src/main/java/com/osfans/trime/ime/symbol/TabManager.kt b/app/src/main/java/com/osfans/trime/ime/symbol/TabManager.kt index 44181a781b..65b3403682 100644 --- a/app/src/main/java/com/osfans/trime/ime/symbol/TabManager.kt +++ b/app/src/main/java/com/osfans/trime/ime/symbol/TabManager.kt @@ -111,7 +111,7 @@ object TabManager { val symbolMaps = SchemaManager.getActiveSchema().symbols for ((key, value) in p) { - if (symbolMaps != null && symbolMaps.containsKey(value)) { + if (symbolMaps?.containsKey(value) == true) { keysList.add(SimpleKeyBean(value, key)) } }