From e7e28ff44c51519bd2ce749de8f83fcb101b921d Mon Sep 17 00:00:00 2001 From: Hafiz Date: Mon, 9 Jun 2025 13:54:12 -0500 Subject: [PATCH] Fix chat box sliding under keyboard when long pressing text Slide ChatBarView under IME instead of padding to preserve text selection handles --- .../habitica/ui/views/social/ChatBarView.kt | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/ChatBarView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/ChatBarView.kt index 4d8fcce21..07013644c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/ChatBarView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/ChatBarView.kt @@ -164,19 +164,15 @@ class ChatBarView : LinearLayout, OnImeVisibilityChangedListener { override fun onImeVisibilityChanged(visible: Boolean, height: Int, safeInsets: Insets) { this.safeInsets = safeInsets - imeHeight = if (visible) { - height - } else { - 0 - } - applyAllPadding() - } + imeHeight = if (visible) height else 0 - private fun applyAllPadding() { - Log.e("ChatBarView", "applyAllPadding: safeInsets = $safeInsets, imeHeight = $imeHeight") updatePadding( left = safeInsets.left, right = safeInsets.right, - bottom = if (imeHeight > 0) imeHeight else safeInsets.bottom) + bottom = safeInsets.bottom + ) + + // slide the bar up under the keyboard + translationY = if (imeHeight > 0) -imeHeight.toFloat() else 0f } }