Flutter Client / Logic Layers

Провайдеры управления состоянием

Бизнес-логика интерфейса на базе ChangeNotifier.

AuthProvider

Файл: lib/logic/auth_provider.dart

Управляет авторизационным состоянием приложения:

  • Хранит информацию о текущем авторизованном пользователе и JWT токене.
  • Отвечает за логику входа по логину/паролю и TOTP.
  • Реализует локальную блокировку приложения (пин-код, FaceID/TouchID).
  • Хранит расшифрованный X25519 приватный ключ в оперативной памяти (в незашифрованном виде на диске он никогда не хранится).

ContactProvider

Файл: lib/logic/contact_provider.dart

Основной провайдер, координирующий работу чатов и сообщений:

  • Загружает список активных диалогов пользователя при старте.
  • Подключается к WebSocket и слушает события реального времени.
  • Отправляет текстовые и медиа сообщения, отслеживает их статус отправки (появление ACK с сервера).
  • Управляет статусом «Печатает...» (отправляет уведомления и слушает события печати от собеседников).