Skip to content

Commit 2fed0f5

Browse files
committed
Detect engine subMode update with StatusAreaEvent
1 parent b1f9d83 commit 2fed0f5

File tree

1 file changed

+31
-3
lines changed
  • app/src/main/java/org/fcitx/fcitx5/android/input

1 file changed

+31
-3
lines changed

app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ import android.widget.ImageView
1414
import androidx.annotation.Keep
1515
import androidx.annotation.RequiresApi
1616
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
1821
import androidx.lifecycle.lifecycleScope
1922
import kotlinx.coroutines.Job
2023
import kotlinx.coroutines.launch
@@ -48,8 +51,24 @@ import org.mechdancer.dependency.DynamicScope
4851
import org.mechdancer.dependency.manager.wrapToUniqueComponent
4952
import org.mechdancer.dependency.plusAssign
5053
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
5372
import splitties.views.imageDrawable
5473

5574
@SuppressLint("ViewConstructor")
@@ -377,6 +396,15 @@ class InputView(
377396
broadcaster.onImeUpdate(it.data)
378397
}
379398
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+
}
380408
punctuation.updatePunctuationMapping(it.data)
381409
broadcaster.onStatusAreaUpdate(it.data)
382410
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy