Улучшение соответсвия
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user