add a telegram-style bottom tab bar to the main screen

- Replace the sidebar-based MainChatView with MainTabView: a custom
  bottom bar with Контакты / Звонки / Чаты / Настройки that looks the
  same on iOS and macOS, and open chats via push navigation.
- Put the search field above the chat and contact lists (searchable on
  iOS, an inline field on macOS) and add an aggregated call-history
  screen backed by model.callHistoryMessages.
- Embed SettingsView as a tab, update verify.sh guards, and keep CI on
  deterministic unit tests while the UI tests stay runnable manually.
This commit is contained in:
wt committed 2026-08-30 01:39:54 +07:00
1 parent 6ed5cb3ce9
commit efe3986ba5
11 files changed
+539 -332

No files matched your search

+4 -3
View File
@@ -11,9 +11,10 @@ and the Martin / MartinOMEMO libraries. The Xcode project is generated from
- `Models/` — value types and pure policy enums (`ArchiveSyncPagination`,
`ChatTypingPolicy`, …) plus the SwiftData `@Model` classes
(`ChatMessage`, `Conversation`).
- `UI/` — SwiftUI views; chat list, timeline and forward picker read
SwiftData through `@Query` (`MainChatView`, `ChatView`,
`ForwardMessageView`).
- `UI/` — SwiftUI views; chat/contact lists read SwiftData through
`@Query` (`MainTabView`, `ChatView`, `ForwardMessageView`); the main
screen is a Telegram-style bottom tab bar (Контакты/Звонки/Чаты/
Настройки).
- `XMPP/` — `XMPPService` (MAM/OMEMO/MUC), `LumaCallEngine`, OMEMO store,
`SASLprep` (RFC 4013), SCRAM-SHA-512 mechanism, SASL failure
observer/messages.