Files
Wallenc/Report/puml/fig_01_start_sync.puml

55 lines
1.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@startuml fig_01_start_sync
!include _gost-theme.inc.puml
' Увеличенный растр для вставки в отчёт (Word / печать)
scale 3
start
:Старт приложения (Android);
:Инициализация Room,
загрузка метаданных vault;
if (Есть LocalVault / storage?) then (нет)
:Первый запуск;
else (да)
endif
if (Нужен удалённый провайдер
и нет учётной записи?) then (да)
:Экран удалённых vault /
OAuth Яндекс;
else (нет)
endif
partition "**Основной поток (UI)**" {
:(A) Main: LocalVault — список storage,
вкладка удалённых — список IVault;
:Действия с **storage**
(шифрование, открытие, файлы…);
}
fork
partition "**Фон: синхронизация (по таймеру)**" #E8F5E9 {
note right
**Реализовано:** StorageSyncEngine,
журнал изменений по путям, merge ревизий
• Room: DbStorageSyncGroup (UUID группы)
• WorkManager / debounce — запуск sync
• Ключи шифрования провайдеру не передаются
Подробный алгоритм — гл. 4, рис. 35
end note
:Запуск sync (Worker / debounce);
:StorageSyncEngine.syncAllGroups;
while (Есть группа синхронизации?) is (да)
:Слияние журналов → победитель по пути;
:findSourceStorage → applyEntry
на отстающие Storage;
endwhile (нет)
}
end fork
stop
@enduml