Some checks failed
Android Kernel Build / build (push) Failing after 4m6s
Звонки: - 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
7.0 KiB
7.0 KiB
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 на legacyattachments 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-правки и полировка отображения в чате и профилях.