diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt index ae583d5..643bf78 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt @@ -1927,6 +1927,13 @@ fun ChatDetailScreen( showImageViewer = false imageViewerSourceBounds = null }, + onClosingStart = { + // Сразу сбрасываем status bar при начале закрытия (до анимации) + window?.statusBarColor = android.graphics.Color.TRANSPARENT + window?.let { w -> + WindowCompat.getInsetsController(w, view)?.isAppearanceLightStatusBars = !isDarkTheme + } + }, isDarkTheme = isDarkTheme, sourceBounds = imageViewerSourceBounds ) diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/components/ImageViewerScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/components/ImageViewerScreen.kt index 9365873..a6b79f8 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/components/ImageViewerScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/components/ImageViewerScreen.kt @@ -113,6 +113,7 @@ fun ImageViewerScreen( initialIndex: Int, privateKey: String, onDismiss: () -> Unit, + onClosingStart: () -> Unit = {}, // Вызывается сразу при начале закрытия (для status bar) isDarkTheme: Boolean = true, sourceBounds: ImageSourceBounds? = null ) { @@ -159,6 +160,7 @@ fun ImageViewerScreen( fun closeWithAnimation() { if (isClosing) return isClosing = true + onClosingStart() // Сразу сбрасываем status bar scope.launch { if (sourceBounds != null) { @@ -216,7 +218,8 @@ fun ImageViewerScreen( fun smoothDismiss() { if (isClosing) return isClosing = true - + onClosingStart() // Сразу сбрасываем status bar + scope.launch { // Плавно исчезаем - более длинная анимация dismissAlpha.animateTo(