From db55225d8421867ed672b47e822647d31034a400 Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Sun, 22 Mar 2026 02:21:03 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=BB=D0=B8=D0=B7=201.2.9:=20fulls?= =?UTF-8?q?creen=20=D1=84=D0=BE=D1=82=D0=BE=20edge-to-edge=20=D0=B1=D0=B5?= =?UTF-8?q?=D0=B7=20=D1=87=D0=B5=D1=80=D0=BD=D1=8B=D1=85=20=D0=B1=D0=BE?= =?UTF-8?q?=D1=80=D0=B4=D0=B5=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 4 ++-- .../com/rosetta/messenger/data/ReleaseNotes.kt | 16 +++------------- .../ui/chats/components/ImageViewerScreen.kt | 9 +-------- 3 files changed, 6 insertions(+), 23 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1c4d19b..649e87f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -23,8 +23,8 @@ val gitShortSha = safeGitOutput("rev-parse", "--short", "HEAD") ?: "unknown" // ═══════════════════════════════════════════════════════════ // Rosetta versioning — bump here on each release // ═══════════════════════════════════════════════════════════ -val rosettaVersionName = "1.2.8" -val rosettaVersionCode = 30 // Increment on each release +val rosettaVersionName = "1.2.9" +val rosettaVersionCode = 31 // Increment on each release android { namespace = "com.rosetta.messenger" diff --git a/app/src/main/java/com/rosetta/messenger/data/ReleaseNotes.kt b/app/src/main/java/com/rosetta/messenger/data/ReleaseNotes.kt index 33b02d3..356cfa5 100644 --- a/app/src/main/java/com/rosetta/messenger/data/ReleaseNotes.kt +++ b/app/src/main/java/com/rosetta/messenger/data/ReleaseNotes.kt @@ -17,20 +17,10 @@ object ReleaseNotes { val RELEASE_NOTICE = """ Update v$VERSION_PLACEHOLDER - Emoji и совместимость iOS - - Входящие Unicode-эмодзи теперь стабильно рендерятся как наши Apple Emoji - - Поддержаны составные эмодзи (ZWJ), флаги, keycap и тон кожи - - Добавлена нормализация и fallback-резолв emoji asset кодов (fe0f/fe0e и вариации unified) - - Стабильность - - Исправлен краш при вводе обычного текста/пароля в полях после обновления emoji-резолвера - - Профиль и визуал - - Сделан чуть более тёмный blur-фон за аватаркой в экране чужого профиля для лучшей читаемости - Полноэкранный просмотр фото - - Добавлено kebab-меню в fullscreen фото с действием Save to Gallery - - Исправлено перекрытие системных чёрных зон: большие фото теперь корректно адаптируются во вьюпорте + - Убраны лишние искусственные отступы в fullscreen viewer + - Фото (включая большие скриншоты) снова открываются edge-to-edge, как в Telegram + - Исправлены большие чёрные бордеры вокруг изображения при открытии """.trimIndent() fun getNotice(version: String): String = 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 b11ece4..6835d66 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 @@ -339,14 +339,7 @@ fun ImageViewerScreen( // Current image info val currentImage = images.getOrNull(pagerState.currentPage) - val currentCaption = currentImage?.caption ?: "" val dateFormat = remember { SimpleDateFormat("d MMMM, HH:mm", Locale.getDefault()) } - val statusBarsTopInset = WindowInsets.statusBars.asPaddingValues().calculateTopPadding() - val navigationBarBottomInset = WindowInsets.navigationBars.asPaddingValues().calculateBottomPadding() - // Reserve space for top controls + bottom area so large images never overlap black UI zones. - val imageViewportTopInset = statusBarsTopInset + 64.dp - val imageViewportBottomInset = - navigationBarBottomInset + if (currentCaption.isNotEmpty()) 84.dp else 16.dp // Prefetch ближайших изображений, чтобы при свайпе не было спиннера. LaunchedEffect(pagerState.currentPage, images, privateKey) { @@ -389,7 +382,6 @@ fun ImageViewerScreen( state = pagerState, modifier = Modifier .fillMaxSize() - .padding(top = imageViewportTopInset, bottom = imageViewportBottomInset) .graphicsLayer { alpha = dismissAlpha.value * edgeTapFadeAlpha.value translationY = animatedOffsetY.value @@ -641,6 +633,7 @@ fun ImageViewerScreen( // ═══════════════════════════════════════════════════════════ // 📝 CAPTION BAR - Telegram-style снизу с анимацией // ═══════════════════════════════════════════════════════════ + val currentCaption = currentImage?.caption ?: "" if (currentCaption.isNotEmpty()) { AnimatedVisibility( visible = showControls && animationState == 1 && !isClosing,