feat: Implement navigation bar visibility handling based on navigation mode
This commit is contained in:
@@ -13,6 +13,7 @@ import androidx.compose.ui.graphics.toArgb
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalView
|
||||
import androidx.core.view.WindowCompat
|
||||
import com.rosetta.messenger.ui.utils.NavigationModeUtils
|
||||
import kotlinx.coroutines.delay
|
||||
|
||||
private val DarkColorScheme = darkColorScheme(
|
||||
@@ -63,14 +64,17 @@ fun RosettaAndroidTheme(
|
||||
else -> LightColorScheme
|
||||
}
|
||||
val view = LocalView.current
|
||||
val context = LocalContext.current
|
||||
if (!view.isInEditMode) {
|
||||
SideEffect {
|
||||
val window = (view.context as android.app.Activity).window
|
||||
val insetsController = WindowCompat.getInsetsController(window, view)
|
||||
// Make status bar transparent for wave animation overlay
|
||||
window.statusBarColor = AndroidColor.TRANSPARENT
|
||||
// Navigation bar color is managed by OnboardingScreen for smooth transition
|
||||
// Don't change it here to avoid instant color change
|
||||
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
|
||||
insetsController.isAppearanceLightStatusBars = !darkTheme
|
||||
|
||||
// Navigation bar: показываем только если есть нативные кнопки
|
||||
NavigationModeUtils.applyNavigationBarVisibility(insetsController, context, darkTheme)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user