mirror of
https://github.com/fcitx5-android/fcitx5-android.git
synced 2026-08-02 04:44:35 +08:00
Create PopupMenu with themedContext
fix candidate long-press menu not following system dark mode
This commit is contained in:
parent
d0364b8387
commit
4dda210837
@ -16,6 +16,7 @@ import androidx.core.view.WindowInsetsCompat
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
import org.fcitx.fcitx5.android.R
|
||||
import org.fcitx.fcitx5.android.core.FcitxEvent
|
||||
import org.fcitx.fcitx5.android.daemon.FcitxConnection
|
||||
import org.fcitx.fcitx5.android.data.InputFeedbacks
|
||||
@ -26,6 +27,7 @@ import org.fcitx.fcitx5.android.data.theme.ThemePrefs
|
||||
import org.fcitx.fcitx5.android.utils.item
|
||||
import org.fcitx.fcitx5.android.utils.navbarFrameHeight
|
||||
import splitties.resources.styledColor
|
||||
import splitties.views.dsl.core.withTheme
|
||||
import kotlin.math.max
|
||||
|
||||
abstract class BaseInputView(
|
||||
@ -71,6 +73,8 @@ abstract class BaseInputView(
|
||||
|
||||
private var candidateActionMenu: PopupMenu? = null
|
||||
|
||||
val themedContext = context.withTheme(R.style.Theme_InputViewTheme)
|
||||
|
||||
fun showCandidateActionMenu(idx: Int, text: String, view: View) {
|
||||
candidateActionMenu?.dismiss()
|
||||
candidateActionMenu = null
|
||||
@ -78,7 +82,7 @@ abstract class BaseInputView(
|
||||
val actions = fcitx.runOnReady { getCandidateActions(idx) }
|
||||
if (actions.isEmpty()) return@launch
|
||||
InputFeedbacks.hapticFeedback(view, longPress = true)
|
||||
candidateActionMenu = PopupMenu(context, view).apply {
|
||||
candidateActionMenu = PopupMenu(themedContext, view).apply {
|
||||
menu.add(buildSpannedString {
|
||||
bold {
|
||||
color(context.styledColor(android.R.attr.colorAccent)) {
|
||||
|
||||
@ -16,7 +16,6 @@ import android.widget.ImageView
|
||||
import androidx.annotation.Keep
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import org.fcitx.fcitx5.android.R
|
||||
import org.fcitx.fcitx5.android.core.CapabilityFlags
|
||||
import org.fcitx.fcitx5.android.core.FcitxEvent
|
||||
import org.fcitx.fcitx5.android.daemon.FcitxConnection
|
||||
@ -60,7 +59,6 @@ import splitties.views.dsl.core.add
|
||||
import splitties.views.dsl.core.imageView
|
||||
import splitties.views.dsl.core.matchParent
|
||||
import splitties.views.dsl.core.view
|
||||
import splitties.views.dsl.core.withTheme
|
||||
import splitties.views.dsl.core.wrapContent
|
||||
import splitties.views.imageDrawable
|
||||
|
||||
@ -93,7 +91,6 @@ class InputView(
|
||||
}
|
||||
|
||||
private val scope = DynamicScope()
|
||||
private val themedContext = context.withTheme(R.style.Theme_InputViewTheme)
|
||||
private val broadcaster = InputBroadcaster()
|
||||
private val popup = PopupComponent()
|
||||
private val punctuation = PunctuationComponent()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user