From 7e64a03c90942abbc8f058f488673d682bc5ddac Mon Sep 17 00:00:00 2001 From: charlie Date: Thu, 14 May 2026 14:10:23 +0800 Subject: [PATCH] fix(ui): improve visibility handling for IME in NativeEditorToolbarPlugin --- .../java/com/logseq/app/NativeEditorToolbarPlugin.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/android/app/src/main/java/com/logseq/app/NativeEditorToolbarPlugin.kt b/android/app/src/main/java/com/logseq/app/NativeEditorToolbarPlugin.kt index 29a8ecb40c..d6217323e9 100644 --- a/android/app/src/main/java/com/logseq/app/NativeEditorToolbarPlugin.kt +++ b/android/app/src/main/java/com/logseq/app/NativeEditorToolbarPlugin.kt @@ -182,7 +182,9 @@ private class EditorToolbarView(context: android.content.Context) : FrameLayout( ) { val imeInsets = insets.getInsets(WindowInsetsCompat.Type.ime()) val navInsets = insets.getInsets(WindowInsetsCompat.Type.navigationBars()) - val coveredBySystemUi = if (insets.isVisible(WindowInsetsCompat.Type.ime())) { + val imeVisible = insets.isVisible(WindowInsetsCompat.Type.ime()) + updateVisibilityForIme(imeVisible) + val coveredBySystemUi = if (imeVisible) { bottomOverlap(root, decorView, imeInsets.bottom) } else { bottomOverlap(root, decorView, navInsets.bottom) @@ -190,6 +192,13 @@ private class EditorToolbarView(context: android.content.Context) : FrameLayout( updateBottomMargin(coveredBySystemUi + margin) } + private fun updateVisibilityForIme(imeVisible: Boolean) { + val targetVisibility = if (imeVisible) VISIBLE else GONE + if (visibility != targetVisibility) { + visibility = targetVisibility + } + } + private fun bottomOverlap(root: View, decorView: View, bottomInset: Int): Int { if (bottomInset <= 0 || root.height <= 0) return 0