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