55 lines
1.7 KiB
Plaintext
55 lines
1.7 KiB
Plaintext
@startuml fig_03_navigation_hub
|
||
scale 2
|
||
title
|
||
Wallenc — навигация (Main) и доменная иерархия
|
||
VaultsManager → IVault → IStorage → файлы
|
||
end title
|
||
|
||
skinparam defaultFontName "DejaVu Sans"
|
||
skinparam activityBackgroundColor #F8F8F8
|
||
skinparam activityBorderColor #333333
|
||
skinparam noteBackgroundColor #FCE4EC
|
||
skinparam noteBorderColor #C2185B
|
||
|
||
start
|
||
|
||
partition "**Main: нижняя навигация**" {
|
||
:(A) Вкладка LocalVault\n(один LocalVault на устройстве);
|
||
note right
|
||
На экране — список **IStorage**,
|
||
не список vault
|
||
end note
|
||
|
||
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
|
||
**Фон: StorageSyncEngine**
|
||
• DbStorageSyncGroup: UUID **storage** в группе
|
||
• Журнал изменений по путям, merge ревизий
|
||
• Независимо от текущего экрана UI
|
||
• Ключи шифрования провайдеру не передаются
|
||
end note
|
||
|
||
@enduml
|