From 521785ba74f8f9788dc8973c048b85bd0fd1f9ec Mon Sep 17 00:00:00 2001 From: WhiredPlanck Date: Sun, 10 Mar 2024 04:15:56 +0800 Subject: [PATCH] fix: too large key popup preview and it didn't dismiss after pressing --- .../java/com/osfans/trime/ime/keyboard/KeyboardView.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/osfans/trime/ime/keyboard/KeyboardView.kt b/app/src/main/java/com/osfans/trime/ime/keyboard/KeyboardView.kt index 07741e0ed4..916e600e72 100644 --- a/app/src/main/java/com/osfans/trime/ime/keyboard/KeyboardView.kt +++ b/app/src/main/java/com/osfans/trime/ime/keyboard/KeyboardView.kt @@ -34,6 +34,7 @@ import android.view.GestureDetector.SimpleOnGestureListener import android.view.Gravity import android.view.MotionEvent import android.view.View +import android.view.ViewGroup import android.view.inputmethod.EditorInfo import android.widget.PopupWindow import com.osfans.trime.core.Rime @@ -51,6 +52,8 @@ import splitties.bitflags.hasFlag import splitties.dimensions.dp import splitties.systemservices.layoutInflater import splitties.views.dsl.core.textView +import splitties.views.dsl.core.wrapContent +import splitties.views.gravityBottomCenter import timber.log.Timber import java.util.Arrays import kotlin.math.abs @@ -172,7 +175,7 @@ class KeyboardView // private Drawable mBackground; private val mPreviewText = textView { - textSize = sp(theme.style.getFloat("preview_text_size")) + textSize = theme.style.getFloat("preview_text_size") typeface = FontManager.getTypeface("preview_font") ColorManager.getColor("preview_text_color")?.let { setTextColor(it) } ColorManager.getColor("preview_back_color")?.let { @@ -182,6 +185,8 @@ class KeyboardView cornerRadius = theme.style.getFloat("round_corner") } } + gravity = gravityBottomCenter + layoutParams = ViewGroup.LayoutParams(wrapContent, wrapContent) } private val mPreviewPopup = PopupWindow(context).apply { @@ -365,7 +370,7 @@ class KeyboardView val mKeyboardView = getOwnerInstanceOrNull() ?: return when (msg.what) { MSG_SHOW_PREVIEW -> mKeyboardView.showKey(msg.arg1, msg.arg2) - MSG_REMOVE_PREVIEW -> mKeyboardView.mPreviewText.visibility = INVISIBLE + MSG_REMOVE_PREVIEW -> mKeyboardView.mPreviewPopup.dismiss() MSG_REPEAT -> if (mKeyboardView.repeatKey()) { val repeat = Message.obtain(this, MSG_REPEAT)