From 06f43b9d4ef8a164cc6a2a7dcf8d216fa094e61a Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Fri, 10 Apr 2026 01:43:38 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81:=20=D0=B7=D0=B0=D1=88?= =?UTF-8?q?=D0=B8=D1=84=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=BA=D0=BB=D1=8E=D1=87=D0=B8=20=D0=BD=D0=B5=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B0=D1=8E=D1=82=D1=81=D1=8F=20?= =?UTF-8?q?=D0=BA=D0=B0=D0=BA=20caption=20=D0=B2=20=D1=84=D0=BE=D1=82?= =?UTF-8?q?=D0=BE=20viewer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit decryptStoredMessageText возвращал зашифрованный текст при неудачной расшифровке. Теперь возвращает пустую строку. Дополнительно: фильтр base64-like строк в caption viewer. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../messenger/ui/chats/components/ImageViewerScreen.kt | 4 +++- .../com/rosetta/messenger/ui/settings/OtherProfileScreen.kt | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) 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 367c709..225ca0c 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 @@ -637,7 +637,9 @@ fun ImageViewerScreen( // ═══════════════════════════════════════════════════════════ // 📝 CAPTION BAR - Telegram-style снизу с анимацией // ═══════════════════════════════════════════════════════════ - val currentCaption = currentImage?.caption ?: "" + val rawCaption = currentImage?.caption ?: "" + // Filter out encrypted/garbled captions (base64 strings without spaces) + val currentCaption = if (rawCaption.isNotBlank() && !rawCaption.contains(' ') && rawCaption.length > 40 && rawCaption.matches(Regex("^[A-Za-z0-9+/=:]+$"))) "" else rawCaption if (currentCaption.isNotEmpty()) { AnimatedVisibility( visible = showControls && animationState == 1 && !isClosing, diff --git a/app/src/main/java/com/rosetta/messenger/ui/settings/OtherProfileScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/settings/OtherProfileScreen.kt index f224484..225f2c3 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/settings/OtherProfileScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/settings/OtherProfileScreen.kt @@ -1391,11 +1391,11 @@ private fun extractDownloadTagFromPreview(preview: String): String { private fun decryptStoredMessageText(encryptedText: String, privateKey: String): String { if (encryptedText.isBlank()) return "" - if (privateKey.isBlank()) return encryptedText + if (privateKey.isBlank()) return "" return try { - CryptoManager.decryptWithPassword(encryptedText, privateKey) ?: encryptedText + CryptoManager.decryptWithPassword(encryptedText, privateKey) ?: "" } catch (_: Exception) { - encryptedText + "" } }