Files
ds-galo/openspec/changes/phone-album-two-way-sync/specs/android-client/spec.md
T
iu d17f62f676 chore(openspec): предложить phone-album-two-way-sync и обновить спеку phone-album-sync
Новое изменение: двусторонний миррор альбома устройства и серверного альбома
(материализация серверных фото, признак происхождения, двусторонние удаления с
явным намерением, устойчивое выключение, первый проход, n:1). Purpose основной
спеки phone-album-sync обновлён под двустороннюю синхронизацию.

Change проходит `openspec validate --strict`.
2026-10-16 23:19:08 +03:00

3.5 KiB

Spec Delta

MODIFIED Requirements

Requirement: Экран альбома устройства и настройки синхронизации

Приложение SHALL открывать альбом устройства с сеткой медиа и SHALL предоставлять настройки синхронизации этого альбома по свайпу вправо. Настройки SHALL содержать только выбор режима синхронизации. Сетка SHALL включать как локальные элементы, так и скачанные с сервера при двусторонней синхронизации.

Scenario: Открытие альбома устройства

  • WHEN пользователь выбирает альбом устройства в списке
  • THEN открывается сетка медиа этого альбома

Scenario: Настройки по свайпу

  • WHEN пользователь свайпает вправо в открытом альбоме устройства
  • THEN открываются настройки синхронизации с выбором режима и только им

Scenario: Метка перенесённого элемента

  • WHEN оригинал элемента разгружен на сервер в режиме переноса
  • THEN в сетке на элементе показывается значок облака

Scenario: Метка потерянного элемента

  • WHEN серверной копии разгруженного элемента больше нет в целевом альбоме
  • THEN в сетке на элементе показывается перечёркнутый значок облака

Scenario: Скачанный элемент в сетке

  • WHEN серверное фото материализовано на устройстве
  • THEN элемент показывается в сетке альбома устройства наряду с локальными

ADDED Requirements

Requirement: Серверный состав в сетке альбома устройства

Сетка альбома устройства SHALL отражать состав целевого серверного альбома: новые серверные фото SHALL появляться, а удалённые SHALL исчезать по мере синхронизации, без ручного обновления.

Scenario: Новое фото с сервера

  • WHEN в целевом серверном альбоме появилось новое фото, и синхронизация прошла
  • THEN материализованный элемент появляется в сетке альбома устройства

Scenario: Фото удалено на сервере

  • WHEN серверное фото удалено на сервере, и синхронизация прошла
  • THEN соответствующий элемент исчезает из сетки альбома устройства

Scenario: Обновление открытого экрана

  • WHEN экран альбома устройства открыт, и синхронизация изменила состав
  • THEN сетка обновляется без ручного действия пользователя