52 lines
1.8 KiB
Plaintext
52 lines
1.8 KiB
Plaintext
@startuml wallenc_03_navigation_hub
|
||
scale 3
|
||
title
|
||
Wallenc — навигация от главного экрана
|
||
и связь с фоновой синхронизацией (проект)
|
||
end title
|
||
|
||
skinparam defaultFontName "DejaVu Sans"
|
||
skinparam activityBackgroundColor #F8F8F8
|
||
skinparam activityBorderColor #333333
|
||
skinparam noteBackgroundColor #FCE4EC
|
||
skinparam noteBorderColor #C2185B
|
||
|
||
start
|
||
|
||
:(A) Главный экран:
|
||
список локальных vault;
|
||
|
||
repeat
|
||
:Ожидание действия пользователя;
|
||
backward:Назад с подэкрана;
|
||
switch (Действие?)
|
||
case (FAB / новый vault)
|
||
:Создание локального vault;
|
||
case (Выбор vault)
|
||
:Карточка / детали vault;
|
||
case (Удалённые vault)
|
||
:Экран удалённых vault;
|
||
if (Нужен OAuth Яндекс?) then (да)
|
||
:Авторизация Яндекс;
|
||
endif
|
||
case (Настройки)
|
||
:Экран настроек;
|
||
endswitch
|
||
repeat while (Пользователь в приложении?) is (да)
|
||
-> нет;
|
||
|
||
stop
|
||
|
||
floating note right
|
||
**Фон: SyncWorker (по таймеру Android) — проект**
|
||
• Room: таблица очереди с **UUID storage**
|
||
• Периодический запуск метода синхронизации
|
||
• Для каждого Storage — история **коммитов** (как git)
|
||
• Сравнение локальной и удалённой истории,
|
||
приведение зашифрованного содержимого
|
||
к одному состоянию (ключи на сервер не уходят)
|
||
• Работает **независимо** от текущего экрана UI
|
||
end note
|
||
|
||
@enduml
|