Релиз 1.4.9: QR-коды, forward parity, звонки, онбординг, UI
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -23,8 +23,8 @@ val gitShortSha = safeGitOutput("rev-parse", "--short", "HEAD") ?: "unknown"
|
|||||||
// ═══════════════════════════════════════════════════════════
|
// ═══════════════════════════════════════════════════════════
|
||||||
// Rosetta versioning — bump here on each release
|
// Rosetta versioning — bump here on each release
|
||||||
// ═══════════════════════════════════════════════════════════
|
// ═══════════════════════════════════════════════════════════
|
||||||
val rosettaVersionName = "1.4.8"
|
val rosettaVersionName = "1.4.9"
|
||||||
val rosettaVersionCode = 50 // Increment on each release
|
val rosettaVersionCode = 51 // Increment on each release
|
||||||
val customWebRtcAar = file("libs/libwebrtc-custom.aar")
|
val customWebRtcAar = file("libs/libwebrtc-custom.aar")
|
||||||
|
|
||||||
android {
|
android {
|
||||||
|
|||||||
@@ -17,19 +17,63 @@ object ReleaseNotes {
|
|||||||
val RELEASE_NOTICE = """
|
val RELEASE_NOTICE = """
|
||||||
Update v$VERSION_PLACEHOLDER
|
Update v$VERSION_PLACEHOLDER
|
||||||
|
|
||||||
Синхронизация (как на Desktop)
|
QR-коды и шеринг
|
||||||
- Во время sync экран чатов показывает "Updating..." и скрывает шумящие промежуточные индикаторы
|
- Новый экран QR-кода профиля в стиле Telegram (обои, цветной QR, логотип Rosetta по центру)
|
||||||
- На период синхронизации скрываются badge'ы непрочитанного и requests, чтобы список не "прыгал"
|
- 6 тем оформления (3 тёмных + 3 светлых) с circular reveal анимацией при смене
|
||||||
|
- Кнопка смены темы приложения прямо с экрана QR (sun/moon)
|
||||||
|
- QR-сканер через камеру (CameraX + ML Kit) — распознаёт профили и группы
|
||||||
|
- Кнопки Share и Copy Link для шеринга профиля
|
||||||
|
- Deep link поддержка: rosetta:// и https://rosetta.im
|
||||||
|
- Scan QR в боковом меню
|
||||||
|
|
||||||
Медиа и вложения
|
Группы
|
||||||
- Исправлен кейс, когда фото уже отправлено, но локально оставалось в ERROR с красным индикатором
|
- Telegram-style выбор участников при создании группы (поиск, чекмарки, чипы)
|
||||||
- Для исходящих медиа стабилизирован переход статусов: после успешной отправки фиксируется 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."
|
|
||||||
|
|
||||||
Группы и 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()
|
""".trimIndent()
|
||||||
|
|
||||||
fun getNotice(version: String): String =
|
fun getNotice(version: String): String =
|
||||||
|
|||||||
Reference in New Issue
Block a user