From 99a146525f97db01425190064e36ba0883c72b6a Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Wed, 7 May 2025 20:11:46 +0800 Subject: [PATCH] fix: transient navigation bar in Android 9, closes #1059 (#1085) --- .../android/src/main/java/NativeBridgePlugin.kt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/android/src/main/java/NativeBridgePlugin.kt b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/android/src/main/java/NativeBridgePlugin.kt index f9d5469d..ab576a19 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/android/src/main/java/NativeBridgePlugin.kt +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/android/src/main/java/NativeBridgePlugin.kt @@ -225,7 +225,7 @@ class NativeBridgePlugin(private val activity: Activity): Plugin(activity) { controller.hide(WindowInsets.Type.systemBars()) } } - } else { + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { val compatController = WindowCompat.getInsetsController(window, decorView) compatController?.let { it.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE @@ -240,6 +240,21 @@ class NativeBridgePlugin(private val activity: Activity): Plugin(activity) { it.hide(WindowInsetsCompat.Type.systemBars()) } } + } else { + @Suppress("DEPRECATION") + decorView.systemUiVisibility = when { + visible && !isDarkMode -> View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR or + View.SYSTEM_UI_FLAG_LAYOUT_STABLE or + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + visible -> View.SYSTEM_UI_FLAG_LAYOUT_STABLE or + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + else -> View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or + View.SYSTEM_UI_FLAG_LAYOUT_STABLE or + View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or + View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or + View.SYSTEM_UI_FLAG_FULLSCREEN + } } window.statusBarColor = Color.TRANSPARENT window.navigationBarColor = Color.TRANSPARENT