From 8e585640e7e686b1d85e9d49f0fa75dd2d060ad7 Mon Sep 17 00:00:00 2001 From: mrjo118 Date: Sun, 3 Aug 2025 17:30:15 +0100 Subject: [PATCH] Android: Fixes #12821: Fix on screen keyboard covers the markdown toolbar and contents on Android 15+ (#12838) --- .../java/net/cozic/joplin/MainActivity.kt | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainActivity.kt b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainActivity.kt index afccff625d..2e45ce5cc0 100644 --- a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainActivity.kt +++ b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainActivity.kt @@ -6,6 +6,12 @@ import com.facebook.react.ReactActivityDelegate import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled import com.facebook.react.defaults.DefaultReactActivityDelegate +import android.os.Build +import android.os.Bundle +import android.view.View +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat + class MainActivity : ReactActivity() { /** @@ -20,4 +26,25 @@ class MainActivity : ReactActivity() { */ override fun createReactActivityDelegate(): ReactActivityDelegate = ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled)) + + /** + * This is a workaround to fix the upstream issue https://github.com/facebook/react-native/issues/49759#issuecomment-2918934967 + */ + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + if (Build.VERSION.SDK_INT >= 35) { + val rootView = findViewById(android.R.id.content) + ViewCompat.setOnApplyWindowInsetsListener(rootView) { _, insets -> + val innerPadding = insets.getInsets(WindowInsetsCompat.Type.ime()) + rootView.setPadding( + innerPadding.left, + innerPadding.top, + innerPadding.right, + innerPadding.bottom + ) + insets + } + } + } }