From 693215723a5a517dbe2a699dcdc9248e47498782 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 18 Dec 2025 00:07:58 +0100 Subject: [PATCH] Android: enable immersive fullscreen --- .../com/steipete/clawdis/node/MainActivity.kt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/apps/android/app/src/main/java/com/steipete/clawdis/node/MainActivity.kt b/apps/android/app/src/main/java/com/steipete/clawdis/node/MainActivity.kt index 8f8059525..e0190a71b 100644 --- a/apps/android/app/src/main/java/com/steipete/clawdis/node/MainActivity.kt +++ b/apps/android/app/src/main/java/com/steipete/clawdis/node/MainActivity.kt @@ -11,6 +11,9 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.ui.Modifier import androidx.core.content.ContextCompat +import androidx.core.view.WindowCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.WindowInsetsControllerCompat import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle @@ -22,6 +25,7 @@ class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + applyImmersiveMode() requestDiscoveryPermissionsIfNeeded() requestNotificationPermissionIfNeeded() NodeForegroundService.start(this) @@ -48,6 +52,18 @@ class MainActivity : ComponentActivity() { } } + override fun onResume() { + super.onResume() + applyImmersiveMode() + } + + override fun onWindowFocusChanged(hasFocus: Boolean) { + super.onWindowFocusChanged(hasFocus) + if (hasFocus) { + applyImmersiveMode() + } + } + override fun onStart() { super.onStart() viewModel.setForeground(true) @@ -58,6 +74,14 @@ class MainActivity : ComponentActivity() { super.onStop() } + private fun applyImmersiveMode() { + WindowCompat.setDecorFitsSystemWindows(window, false) + val controller = WindowInsetsControllerCompat(window, window.decorView) + controller.systemBarsBehavior = + WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE + controller.hide(WindowInsetsCompat.Type.systemBars()) + } + private fun requestDiscoveryPermissionsIfNeeded() { if (Build.VERSION.SDK_INT >= 33) { val ok =