Files
ds-galo/openspec/changes/archive/2026-10-13-add-phone-album-sync/specs/android-client/spec.md
T
2026-10-13 17:10:50 +03:00

72 lines
4.4 KiB
Markdown

# Spec Delta
## MODIFIED Requirements
### Requirement: Список альбомов
Приложение SHALL показывать доступные пользователю альбомы одним смешанным списком:
серверные альбомы, получаемые из API, а при отсутствии сети — из локального кэша, и
альбомы устройства. Элементы SHALL различать источник. Связанная пара «альбом
устройства → серверный альбом» SHALL отображаться одной карточкой альбома устройства
с указателем связи и меткой режима; связанный серверный альбом SHALL NOT показываться
в списке отдельной записью.
#### 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** в сетке на элементе показывается значок облака
### Requirement: Доступ к альбомам устройства
Приложение SHALL запрашивать доступ к медиа устройства, нужный для перечисления
альбомов и чтения файлов, и SHALL работать без него, не показывая альбомы
устройства.
#### Scenario: Доступ предоставлен
- **WHEN** пользователь предоставляет доступ к медиа устройства
- **THEN** приложение перечисляет альбомы устройства и их содержимое
#### Scenario: Доступ не предоставлен
- **WHEN** доступ к медиа устройства не предоставлен
- **THEN** приложение продолжает работать с серверными альбомами и не показывает альбомы устройства