@@ -8,20 +8,18 @@ package com.osfans.trime.ime.option
88import android.content.Context
99import android.view.View
1010import android.widget.PopupMenu
11- import androidx.lifecycle.lifecycleScope
1211import com.osfans.trime.R
1312import com.osfans.trime.core.RimeMessage
13+ import com.osfans.trime.core.SchemaItem
1414import com.osfans.trime.daemon.RimeSession
1515import com.osfans.trime.daemon.launchOnReady
16- import com.osfans.trime.data.schema.Schema
1716import com.osfans.trime.data.schema.SchemaManager
1817import com.osfans.trime.data.theme.Theme
1918import com.osfans.trime.ime.bar.ui.ToolButton
2019import com.osfans.trime.ime.broadcast.InputBroadcastReceiver
2120import com.osfans.trime.ime.core.TrimeInputMethodService
2221import com.osfans.trime.ime.window.BoardWindow
2322import com.osfans.trime.util.AppUtils
24- import kotlinx.coroutines.launch
2523import splitties.dimensions.dp
2624import splitties.views.dsl.core.add
2725import splitties.views.dsl.core.horizontalLayout
@@ -85,15 +83,20 @@ class SwitchOptionWindow(
8583 }
8684 }
8785
88- private fun updateSchemaOptionEntries (switches : List <Schema .Switch >) {
89- adapter.submitList(switches.map { SwitchOptionEntry .fromSwitch(it) })
86+ private fun updateSchemaOptionEntries () {
87+ adapter.submitList(
88+ SchemaManager .activeSchema.switches
89+ .filter { it.states.size > 1 }
90+ .map { SwitchOptionEntry .fromSwitch(it) },
91+ )
92+ }
93+
94+ override fun onRimeSchemaUpdated (schema : SchemaItem ) {
95+ updateSchemaOptionEntries()
9096 }
9197
9298 override fun onRimeOptionUpdated (value : RimeMessage .OptionMessage .Data ) {
93- val data =
94- SchemaManager .activeSchema.switches
95- .filter { it.states.size > 1 }
96- updateSchemaOptionEntries(data)
99+ updateSchemaOptionEntries()
97100 }
98101
99102 override fun onCreateView () = view
@@ -114,12 +117,7 @@ class SwitchOptionWindow(
114117 override fun onCreateBarView () = barExternalView
115118
116119 override fun onAttached () {
117- val data =
118- SchemaManager .activeSchema.switches
119- .filter { it.states.size > 1 }
120- service.lifecycleScope.launch {
121- updateSchemaOptionEntries(data)
122- }
120+ updateSchemaOptionEntries()
123121 }
124122
125123 override fun onDetached () {
0 commit comments