@startuml fig_02_vault_lifecycle scale 3 title Wallenc — пользовательский поток: жизненный цикл vault и точки постановки в очередь синхронизации (проект) end title skinparam defaultFontName "DejaVu Sans" skinparam state { BackgroundColor #F8F8F8 BorderColor #333333 } skinparam noteBackgroundColor #E3F2FD skinparam noteBorderColor #1565C0 state "(Б) Список vault" as List List --> Create : Создать vault Create --> List : Vault создан List --> EncryptDlg : Включить шифрование EncryptDlg --> Encrypting : Подтверждение, мастер-ключ state Encrypting { state "Шифрование данных + запись метаданных" as EncWork } Encrypting --> List : Готово note right of Encrypting После успешной записи **коммита** в историю Storage (проект): UUID storage → **очередь синхронизации** в Room (для таймера) end note List --> OpenDlg : Открыть зашифрованный OpenDlg --> Opened : Ключ верный OpenDlg --> List : Отмена / неверный ключ state Opened { state "Просмотр / работа с содержимым" as Browse } Opened --> List : Закрыть vault / блокировка List --> RenameDel : Переименовать / удалить RenameDel --> List : Подтверждение note bottom of List **Синхронизация (проект):** любое изменение, порождающее новый **коммит** в Storage, добавляет storage UUID в таблицу очереди; **SyncService** по таймеру обрабатывает очередь, сравнивает истории коммитов с удалённой копией и приводит зашифрованное содержимое к одному состоянию (без передачи ключей). end note @enduml