From c2283fe0e5ce58693dd5300f474569d0f377c7f0 Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Tue, 3 Feb 2026 16:58:25 +0500 Subject: [PATCH] fix: smooth sidebar --- .../com/rosetta/messenger/ui/chats/ChatDetailScreen.kt | 7 +++++++ .../messenger/ui/chats/components/ImageViewerScreen.kt | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) 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(