Files
Wallenc/Report/puml/fig_01_start_sync.puml

65 lines
2.0 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
' Увеличенный растр для вставки в отчёт (Word / печать)
scale 3
title
Wallenc — старт приложения и фоновая синхронизация
end title
skinparam defaultFontName "DejaVu Sans"
skinparam activity {
BackgroundColor #F8F8F8
BorderColor #333333
DiamondBackgroundColor #E8F4FF
}
skinparam noteBackgroundColor #FFFDE7
skinparam noteBorderColor #F9A825
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\nна отстающие Storage;
endwhile (нет)
}
end fork
stop
@enduml