Релиз 1.4.9: QR-коды, forward parity, звонки, онбординг, UI

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-08 23:36:51 +05:00
parent 3bef589274
commit 66cc21fc29
2 changed files with 57 additions and 13 deletions

View File

@@ -23,8 +23,8 @@ val gitShortSha = safeGitOutput("rev-parse", "--short", "HEAD") ?: "unknown"
// ═══════════════════════════════════════════════════════════
// Rosetta versioning — bump here on each release
// ═══════════════════════════════════════════════════════════
val rosettaVersionName = "1.4.8"
val rosettaVersionCode = 50 // Increment on each release
val rosettaVersionName = "1.4.9"
val rosettaVersionCode = 51 // Increment on each release
val customWebRtcAar = file("libs/libwebrtc-custom.aar")
android {

View File

@@ -17,19 +17,63 @@ object ReleaseNotes {
val RELEASE_NOTICE = """
Update v$VERSION_PLACEHOLDER
Синхронизация (как на Desktop)
- Во время sync экран чатов показывает "Updating..." и скрывает шумящие промежуточные индикаторы
- На период синхронизации скрываются badge'ы непрочитанного и requests, чтобы список не "прыгал"
QR-коды и шеринг
- Новый экран QR-кода профиля в стиле Telegram (обои, цветной QR, логотип Rosetta по центру)
- 6 тем оформления (3 тёмных + 3 светлых) с circular reveal анимацией при смене
- Кнопка смены темы приложения прямо с экрана QR (sun/moon)
- QR-сканер через камеру (CameraX + ML Kit) — распознаёт профили и группы
- Кнопки Share и Copy Link для шеринга профиля
- Deep link поддержка: rosetta:// и https://rosetta.im
- Scan QR в боковом меню
Медиа и вложения
- Исправлен кейс, когда фото уже отправлено, но локально оставалось в ERROR с красным индикатором
- Для исходящих медиа стабилизирован переход статусов: после успешной отправки фиксируется SENT без ложного timeout->ERROR
- Таймаут/ретрай WAITING из БД больше не портит медиа-вложения (применяется только к обычным текстовым ожиданиям)
- Для legacy/неподдерживаемых attachment добавлен desktop-style fallback:
"This attachment is no longer available because it was sent for a previous version of the app."
Группы
- Telegram-style выбор участников при создании группы (поиск, чекмарки, чипы)
- Автоматическая отправка приглашений выбранным участникам после создания
Группы и UI
- Исправлена геометрия входящих фото в группах: пузырь больше не прилипает к аватарке
Forward сообщений
- Полностью переработан: убран ре-аплоад картинок на CDN (Desktop/iOS parity)
- Добавлен chacha_key_plain для кросс-платформенной совместимости шифрования
- Forward bubble подстраивается под размер контента (фотки, текста)
- Длинные имена обрезаются "Forwarded from Alex M..." вместо растяжения пузыря
- Исправлена отправка forward — сообщения теперь реально доставляются
Звонки
- Анимированный градиентный фон при звонке (3 blob-а, как в iOS)
- Аватарки в уведомлениях звонков и на экране входящего
- Кнопка Call на экране чужого профиля
- Мгновенное сообщение "Missed call" / "Rejected call" для обеих сторон
Доставка сообщений
- Исправлен баг когда галочки доставки не появлялись (DELIVERED → SENT откат)
- Статус доставки теперь монотонный: SENDING → SENT → DELIVERED → READ
Просмотр фото
- Исправлен "Failed to load image" в полноэкранном просмотре (fallback на transportTag)
- Глобальный ImageBitmapCache доступен в viewer
- Исправлена расшифровка фото в reply (chachaKey оригинального сообщения)
- Листание предыдущих аватарок пользователя (как на Desktop)
Онбординг
- Новый экран установки профиля (имя + username + аватар) после регистрации
- Отдельный экран биометрии с красивым UI
- Проверка доступности username в реальном времени
- Биометрия теперь привязана к аккаунту (per-account)
- Убран экран подтверждения seed phrase
- Экран пароля переработан (Telegram-style, без дёрганья)
UI улучшения
- Подсказка эмодзи в стиле Telegram (floating карточка, press-эффект)
- Аватарки в результатах поиска
- Унифицированы иконки навигации (ChevronLeft) по всему приложению
- Статус-бар: чёрные иконки на белом фоне, восстановление при уходе с экрана
- Плавная анимация navbar при смене темы
- Клавиатура прячется при скролле профиля и навигации между экранами
- Emoji-safe обрезка текста в reply-превью
- Сепараторы участников в группах
- Исправлены дубли дат в чате
Уведомления
- Исправлено декодирование аватарки в push-уведомлениях (base64 prefix)
""".trimIndent()
fun getNotice(version: String): String =