Улучшение соответсвия

This commit is contained in:
2026-05-28 17:23:54 +03:00
parent 5c40687011
commit 0c15c7b786
39 changed files with 161 additions and 204 deletions

View File

@@ -1,8 +1,8 @@
@startuml fig_03_navigation_hub
scale 2
title
Wallenc — навигация от главного экрана
и связь с фоновой синхронизацией (проект)
Wallenc — навигация (Main) и доменная иерархия
VaultsManager → IVault → IStorage → файлы
end title
skinparam defaultFontName "DejaVu Sans"
@@ -13,39 +13,42 @@ skinparam noteBorderColor #C2185B
start
:(A) Главный экран:
список локальных vault;
partition "**Main: нижняя навигация**" {
:(A) Вкладка LocalVault\n(один LocalVault на устройстве);
note right
На экране — список **IStorage**,
не список vault
end note
repeat
:Ожидание действия пользователя;
backward:Назад с подэкрана;
switch (Действие?)
case (FAB / новый vault)
:Создание локального vault;
case (Выбор vault)
:Карточка / детали vault;
case (Удалённые vault)
:Экран удалённых vault;
if (Нужен OAuth Яндекс?) then (да)
:Авторизация Яндекс;
endif
case (Настройки)
:Экран настроек;
endswitch
repeat while (Пользователь в приложении?) is (да)
-> нет;
repeat
:Ожидание действия;
backward:Назад с вложенного экрана;
switch (Действие?)
case (FAB)
:createStorage()\nновый **storage** в LocalVault;
case (Выбор storage)
:StorageHome:\nфайлы, 2FA, текстовые секреты;
case (Вкладка «Удалённые vault»)
:Список **IVault** (Yandex по OAuth);
if (Нужен OAuth?) then (да)
:Авторизация Яндекс;
endif
:Выбор vault → VaultBrowser;
:Список **storage** в выбранном vault;
:StorageHome;
endswitch
repeat while (Пользователь в Main?) is (да)
-> нет;
}
stop
floating note right
**Фон: SyncWorker (по таймеру Android) — проект**
Room: таблица очереди с **UUID storage**
Периодический запуск метода синхронизации
Для каждого Storage — история **коммитов** (как git)
Сравнение локальной и удалённой истории,
приведение зашифрованного содержимого
к одному состоянию (ключи на сервер не уходят)
• Работает **независимо** от текущего экрана UI
**Фон: StorageSyncEngine**
DbStorageSyncGroup: UUID **storage** в группе
Журнал изменений по путям, merge ревизий
Независимо от текущего экрана UI
Ключи шифрования провайдеру не передаются
end note
@enduml