@@ -14,7 +14,10 @@ import android.widget.ImageView
14
14
import androidx.annotation.Keep
15
15
import androidx.annotation.RequiresApi
16
16
import androidx.constraintlayout.widget.ConstraintLayout
17
- import androidx.core.view.*
17
+ import androidx.core.view.ViewCompat
18
+ import androidx.core.view.WindowCompat
19
+ import androidx.core.view.WindowInsetsCompat
20
+ import androidx.core.view.updateLayoutParams
18
21
import androidx.lifecycle.lifecycleScope
19
22
import kotlinx.coroutines.Job
20
23
import kotlinx.coroutines.launch
@@ -48,8 +51,24 @@ import org.mechdancer.dependency.DynamicScope
48
51
import org.mechdancer.dependency.manager.wrapToUniqueComponent
49
52
import org.mechdancer.dependency.plusAssign
50
53
import splitties.dimensions.dp
51
- import splitties.views.dsl.constraintlayout.*
52
- import splitties.views.dsl.core.*
54
+ import splitties.views.dsl.constraintlayout.above
55
+ import splitties.views.dsl.constraintlayout.below
56
+ import splitties.views.dsl.constraintlayout.bottomOfParent
57
+ import splitties.views.dsl.constraintlayout.centerHorizontally
58
+ import splitties.views.dsl.constraintlayout.centerVertically
59
+ import splitties.views.dsl.constraintlayout.constraintLayout
60
+ import splitties.views.dsl.constraintlayout.endOfParent
61
+ import splitties.views.dsl.constraintlayout.endToStartOf
62
+ import splitties.views.dsl.constraintlayout.lParams
63
+ import splitties.views.dsl.constraintlayout.startOfParent
64
+ import splitties.views.dsl.constraintlayout.startToEndOf
65
+ import splitties.views.dsl.constraintlayout.topOfParent
66
+ import splitties.views.dsl.core.add
67
+ import splitties.views.dsl.core.imageView
68
+ import splitties.views.dsl.core.matchParent
69
+ import splitties.views.dsl.core.view
70
+ import splitties.views.dsl.core.withTheme
71
+ import splitties.views.dsl.core.wrapContent
53
72
import splitties.views.imageDrawable
54
73
55
74
@SuppressLint(" ViewConstructor" )
@@ -377,6 +396,15 @@ class InputView(
377
396
broadcaster.onImeUpdate(it.data)
378
397
}
379
398
is FcitxEvent .StatusAreaEvent -> {
399
+ // Engine subMode update won't trigger IMChangeEvent, but usually updates StatusArea
400
+ fcitx.launchOnReady {
401
+ val ime = it.currentIme()
402
+ if (ime != it.inputMethodEntryCached) {
403
+ service.lifecycleScope.launch {
404
+ broadcaster.onImeUpdate(ime)
405
+ }
406
+ }
407
+ }
380
408
punctuation.updatePunctuationMapping(it.data)
381
409
broadcaster.onStatusAreaUpdate(it.data)
382
410
}
0 commit comments