diff --git a/app/src/main/java/com/rosetta/messenger/ui/settings/ProfilePhotoPicker.kt b/app/src/main/java/com/rosetta/messenger/ui/settings/ProfilePhotoPicker.kt index 98d249e..e3e6941 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/settings/ProfilePhotoPicker.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/settings/ProfilePhotoPicker.kt @@ -183,24 +183,24 @@ fun ProfilePhotoPicker( // 🎨 Затемнение статус бара когда галерея открыта val view = LocalView.current - DisposableEffect(shouldShow, scrimAlpha) { - if (shouldShow && !view.isInEditMode) { - val window = (view.context as? android.app.Activity)?.window - val originalStatusBarColor = window?.statusBarColor ?: 0 - - // Затемняем статус бар + val window = remember { (view.context as? android.app.Activity)?.window } + val originalStatusBarColor = remember { window?.statusBarColor ?: 0 } + + // Обновляем цвет статус бара при изменении scrimAlpha + LaunchedEffect(scrimAlpha) { + if (window != null && !view.isInEditMode) { val scrimColor = android.graphics.Color.argb( (scrimAlpha * 255).toInt().coerceIn(0, 255), 0, 0, 0 ) - window?.statusBarColor = scrimColor - - onDispose { - // Восстанавливаем оригинальный цвет - window?.statusBarColor = originalStatusBarColor - } - } else { - onDispose { } + window.statusBarColor = scrimColor + } + } + + // Восстанавливаем оригинальный цвет при закрытии + DisposableEffect(Unit) { + onDispose { + window?.statusBarColor = originalStatusBarColor } }