Files
mobile-android/RELEASE_NOTES.md
k1ngsterr1 876c1ab4df
Some checks failed
Android Kernel Build / build (push) Failing after 4m6s
Релиз 1.4.3: полноэкранные входящие звонки, аватарки в уведомлениях, фиксы
Звонки:
- IncomingCallActivity — полноэкранный UI входящего звонка поверх lock screen
- fullScreenIntent на нотификации для Android 12+
- ForegroundService синхронизируется при смене фазы и имени
- Запрос fullScreenIntent permission на Android 14+
- dispose() PeerConnection при завершении звонка
- Защита от CREATE_ROOM без ключей (звонок на другом устройстве)
- Дедупликация push + WebSocket сигналов
- setIncomingFromPush — CallManager сразу в INCOMING по push
- Accept ждёт до 5 сек если WebSocket не доставил сигнал
- Decline работает во всех фазах (не только INCOMING)
- Баннер активного звонка внутри диалога

Уведомления:
- Аватарки и имена по publicKey в уведомлениях (message + call)
- Настройка "Avatars in Notifications" в разделе Notifications

UI:
- Ограничение fontScale до 1.3x (вёрстка не ломается на огромном тексте)
- Новые обои: Light 1-3 для светлой темы, убраны старые back_*
- ContentScale.Crop для превью обоев (без растяжения)

CI/CD:
- NDK/CMake в CI, local.properties, ANDROID_NDK_HOME
- Ограничение JVM heap для CI раннера

Диагностика:
- Логирование call notification flow в crash_reports (rosettadev1)
- FCM токен в crash_reports
2026-04-02 01:18:20 +05:00

7.0 KiB
Raw Permalink Blame History

Release Notes

1.4.2

Звонки

  • Полноэкранный incoming call через ForegroundService — кнопки Accept/Decline, будит экран, работает когда приложение свёрнуто или убито (и из push, и из WebSocket).
  • Синхронизация ForegroundService с фазами звонка — notification обновляется при INCOMING → CONNECTING → ACTIVE → IDLE.
  • Защита от CREATE_ROOM без ключей шифрования — сброс сессии если звонок принят на другом устройстве.
  • Корректное освобождение PeerConnection (dispose()) при завершении звонка — фикс зависания ICE портов ~30 сек.

E2EE диагностика

  • Диагностический файл E2EE включён для всех билдов (был только debug).
  • Периодический health-лог E2EE с счётчиками фреймов enc/dec из нативного кода.
  • Уменьшен спам scan receivers — логирование только при изменении состояния.
  • Нативные методы FrameCount() / BadStreak() для мониторинга шифрования в реальном времени.

Push-уведомления

  • Добавлены tokenType и deviceId в пакет push-подписки (совместимость с новым сервером).
  • Сохранение FCM токена в crash_reports для просмотра через rosettadev1.

CI/CD

  • Установка NDK и CMake в CI для сборки нативного модуля rosetta_e2ee.so.

1.3.4

Звонки и UI

  • Реализован Telegram-style фон звонка в приложении: full-screen звонок теперь можно свернуть в закрепленную верхнюю плашку в чат-листе.
  • Плашка звонка перенесена внутрь ChatsListScreen и ведет обратно в экран звонка по нажатию.
  • Обновлен UI звонка: иконка сворачивания в стиле Telegram, улучшено поведение call overlay.
  • Исправлено автоматическое скрытие клавиатуры при открытии экрана звонка.

Поиск в диалоге

  • В kebab-меню каждого чата добавлен пункт Search.
  • Добавлен встроенный поиск сообщений внутри текущего диалога (через локальный индекс message_search_index и dialog_key).
  • Добавлена навигация по результатам (prev/next) со скроллом и подсветкой найденного сообщения.

1.3.3

E2EE, чаты и производительность

  • В release-сборке отключена frame-диагностика E2EE (детальный frame dump теперь только в debug).
  • В ChatsListScreen убран двойной collectAsState(chatsState) и вынесены route-блоки в подкомпоненты (CallsRouteContent, RequestsRouteContent, общий SwipeBackContainer).
  • Добавлена денормализация primary_attachment_type в таблице messages + индекс (account, primary_attachment_type, timestamp).
  • Обновлена миграция БД 14 -> 15: добавление колонки, индекс и backfill значения типа вложения для уже сохраненных сообщений.
  • Поисковые и call-history запросы переведены на primary_attachment_type с fallback на legacy attachments LIKE для старых записей.

1.2.3

Групповые чаты и медиа

  • Исправлено отображение групповых баблов: логика стеков и аватаров приведена ближе к desktop-версии.
  • Исправлено позиционирование аватарки в группе: аватар и имя теперь отображаются на одном сообщении (без «разъезда»).
  • Исправлена обрезка имени отправителя в медиа-баблах группового чата.
  • Исправлено растяжение и кривые пропорции фото в forwarded/media-пузырях.

Sidebar

  • Убрана лишняя рамка (border) вокруг аватарки в сайдбаре.

1.2.1

Синхронизация Android ↔ iOS

  • Исправлена критическая проблема: сообщения зависали на «часиках» при одновременном использовании Android и iOS.
  • Добавлен механизм автоматического повтора отправки (retry) — как в iOS: 3 попытки с интервалом 4 сек, таймаут 80 сек.
  • Исправлена нормализация sync-курсора (секунды → миллисекунды) для корректной синхронизации между устройствами.

UI-улучшения

  • Дата «today/yesterday» и пустой стейт чата теперь белые при тёмных обоях или тёмной теме.
  • Исправлена обрезка имени отправителя в групповых чатах — бабл расширяется под имя.

1.2.0 (обновление с 1.1.9)

  • Синхронизированы индикаторы отправки между чат-листом и диалогом:
    • до фактической доставки показываются часы;
    • ошибки отправки корректно отображаются внутри диалога.
  • Доработан skeleton загрузки сообщений в диалоге в стиле Telegram:
    • shimmer-анимация;
    • более реалистичные размеры и форма пузырей;
    • поддержка групповых аватаров в skeleton.
  • Добавлен плавный автоскролл вверх в чат-листе при появлении плашки подтверждения нового устройства.
  • Выровнены verified-галочки по имени:
    • в моем профиле;
    • в чужом профиле;
    • в боковом меню (sidebar).
  • Улучшено выравнивание Apple-like emoji в тексте сообщений.
  • В светлой теме кнопка Copy Seed Phrase отображается с белым текстом.
  • Выполнены дополнительные UI-правки и полировка отображения в чате и профилях.