package com.suno.android.ui.effects import androidx.activity.compose.LocalActivity import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.remember import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsControllerCompat import com.suno.android.common_core_utils.environment.ThemeMode /** * Controls system status bar and navigation bar appearance based on theme mode. * * @param themeMode The current app theme mode (Light/Dark/System) * @param forceDarkMode When true, forces dark appearance regardless of theme mode */ @Composable fun SystemBarsEffect( themeMode: ThemeMode, forceDarkMode: Boolean = false, ) { val insetsController = rememberInsetsController() val isSystemInDarkTheme = isSystemInDarkTheme() LaunchedEffect(themeMode, isSystemInDarkTheme, forceDarkMode) { val isAppDarkTheme = themeMode == ThemeMode.DARK || (themeMode == ThemeMode.SYSTEM && isSystemInDarkTheme) val isBarAppearanceLight = !forceDarkMode && !isAppDarkTheme insetsController?.isAppearanceLightStatusBars = isBarAppearanceLight insetsController?.isAppearanceLightNavigationBars = isBarAppearanceLight } } @Composable private fun rememberInsetsController(): WindowInsetsControllerCompat? { val activity = LocalActivity.current return remember(activity) { activity?.let { val window = it.window WindowCompat.getInsetsController(window, window.decorView) } } }