@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
