Skip to content

Commit

Permalink
refactor: slightly refactor to schema deserialization
Browse files Browse the repository at this point in the history
  • Loading branch information
WhiredPlanck committed Mar 15, 2024
1 parent 844d847 commit d2e23e0
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 6 deletions.
5 changes: 0 additions & 5 deletions app/src/main/java/com/osfans/trime/data/schema/Schema.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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 =
Expand All @@ -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")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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))
}
}
Expand Down

0 comments on commit d2e23e0

Please sign in to comment.