Files
Wallenc/Report/puml/fig_01_start_sync.puml

66 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 (Есть сохранённые vault?) then (нет)
:Экран «первый запуск» /
создание локального vault;
else (да)
endif
if (Нужен удалённый провайдер
и нет учётной записи?) then (да)
:Экран удалённых vault /
OAuth Яндекс;
else (нет)
endif
partition "**Основной поток (UI)**" {
:(A) Главный экран:
список локальных и удалённых vault;
:Действия пользователя
(открыть, зашифровать, содержимое…);
}
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