Что вошло:\n- Добавлен полноценный Messages-tab в SearchScreen: поиск по тексту сообщений по всей базе, батчевый проход, параллельная дешифровка, кеш расшифровки, подсветка совпадений, сниппеты и быстрый переход в нужный диалог.\n- В Chats-tab добавлены алиасы для Saved Messages (saved/saved messages/избранное/сохраненные и др.), чтобы чат открывался по текстовому поиску даже без точного username/public key.\n- Для search-бэкенда расширен DAO: getAllMessagesPaged() для постраничного обхода сообщений аккаунта.\n- Исправлена логика клика по @тэгам в сообщениях:\n - переход теперь ведет сразу в чат пользователя (а не в профиль);\n - добавлен fallback-резолв username -> user через локальный диалог, кеш протокола и PacketSearch;\n - добавлен DAO getDialogByUsername() (регистронезависимо и с игнором @).\n- Усилена обработка PacketSearch в ProtocolManager:\n - добавлена очередь ожидания pendingSearchQueries;\n - нормализация query (без @, lowercase);\n - устойчивый матч ответов сервера (raw/normalized/by username);\n - добавлены методы getCachedUserByUsername() и searchUsers().\n- Исправлен конфликт тачей между ClickableSpan и bubble-menu:\n - в AppleEmojiText/AppleEmojiTextView добавлен callback начала тапа по span;\n - улучшен hit-test по span (включая пограничные offset/layout fallback);\n - suppress performClick на span-тапах;\n - в MessageBubble добавлен тайм-guard, чтобы tap по span не открывал context menu.\n- Стабилизирован verified-бейдж в заголовке чата: агрегируется из переданного user, кеша протокола, локальной БД и серверного resolve; отображается консистентно в личных чатах.\n- Улучшен пустой экран Saved Messages при обоях: добавлена аккуратная подложка/бордер и выровненный текст, чтобы контент оставался читабельным на любом фоне.\n- Реализована автосвязка обоев между светлой/темной темами:\n - добавлены pairGroup и mapToTheme/resolveWallpaperForTheme в ThemeWallpapers;\n - добавлены отдельные prefs-ключи для light/dark wallpaper;\n - MainActivity теперь автоматически подбирает и сохраняет обои под активную тему и сохраняет выбор по теме.\n- Биометрия: если на устройстве нет hardware fingerprint, экран включения биометрии не показывается (и доступность возвращает NotAvailable).\n- Небольшие UI-фиксы: поправлено позиционирование галочки в сайдбаре.\n- Техдолг: удалена неиспользуемая зависимость jsoup из build.gradle.
Убран лишний Box-обёртка с contentAlignment вокруг Row — Row теперь
сам является кликабельным элементом с фиксированной height(50.dp).
Убран Spacer внутри Box который конфликтовал с измерением высоты.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ChatsListSkeleton:
- Sweep shimmer (градиент слева направо) вместо простого lerp
- Время перенесено в правый верхний угол (как в реальных чатах)
- Разные ширины имени/превью для естественного вида
- Цвета приведены к iOS/Telegram-стилю (2C2C2E/48484A / E5E5EA/FFFFFF)
MessageSkeletonList:
- Пузыри чередуются left/right (incoming/outgoing) — раньше все были слева
- Высоты пузырей 36–68dp вместо 64–128dp (реалистичные размеры)
- Outgoing bubble shape с nearRadius снизу-справа
- Группы сообщений с одной стороны имитируют реальный чат
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- cancelAll() в onResume — сбрасывает все уведомления и бейдж при открытии приложения
- showSimpleNotification принимает senderPublicKey и использует тот же ID что cancelNotificationForChat — теперь fallback-уведомления тоже удаляются при входе в чат
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- dateHeader и empty state текст белые при тёмной теме или обоях
- Увеличена минимальная ширина бабла для групповых сообщений
- Медиа-бабл расширяется для имени отправителя в группе
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Добавлена обработка горизонтального свайпа вправо для автоматического скрытия клавиатуры на SearchScreen.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Поднята версия приложения до 1.2.0 (versionCode 22)\n- Синхронизированы статусы отправки между чат-листом и диалогом: SENT отображается как часы до delivery, ERROR теперь стабильно приходит в открытый диалог\n- Доработан Telegram-подобный skeleton в диалоге: shimmer, геометрия пузырей, поддержка групповых аватаров\n- Добавлен плавный автоскролл к баннеру подтверждения нового устройства в чат-листе\n- Выровнены verified-галочки с именами в профилях и в сайдбаре\n- Кнопка Copy Seed Phrase в светлой теме приведена к белому тексту\n- Мелкие UI-правки в чате и компонентах ввода/эмодзи