Карточка альбома устройства получает третью строку: метку режима («Копии»/ «Перенос») и ход загрузки. Процент считается как (uploaded + running) / total для обоих синхронизируемых режимов, пульсирует только при активной загрузке, показывает очередь, ожидание Wi-Fi и ошибку. В режиме переноса карточка показывает и карту памяти, и облако — режимы различает метка, а не значки. Разгрузка оригиналов теперь требует подтверждённой серверной копии в текущем целевом альбоме: устаревший serverPhotoId перепроверяется по альбому, смена цели переносит уже загруженные фото и отклоняется, если перенести нельзя. Потеря серверной копии видна на карточке и на экране альбома, автозатирания превью нет. Изменения OpenSpec: android-album-card-sync-status, safe-album-offload.
74 lines
5.3 KiB
Markdown
74 lines
5.3 KiB
Markdown
# Spec Delta
|
|
|
|
## MODIFIED Requirements
|
|
|
|
### Requirement: Подпись карточки альбома
|
|
Карточка альбома SHALL показывать в первой строке имя альбома, а для связанной пары — со
|
|
стрелкой имя связанного серверного альбома, и только когда имена различаются. Вторая строка
|
|
SHALL показывать значками расположение содержимого и число элементов: значок карты памяти для
|
|
локального без синхронизации, значки карты памяти и облака для режимов копий и переноса; для
|
|
серверного альбома — значок облака. Третья строка SHALL называть режим синхронизации
|
|
(«Копии» или «Перенос») и SHALL отсутствовать у выключенной синхронизации и у серверного
|
|
альбома.
|
|
|
|
#### Scenario: Локальный без синхронизации
|
|
- **WHEN** показан локальный альбом без синхронизации
|
|
- **THEN** вторая строка показывает значок карты памяти и число элементов, а третьей строки нет
|
|
|
|
#### Scenario: Режим копий
|
|
- **WHEN** локальный альбом синхронизируется в режиме копий
|
|
- **THEN** вторая строка показывает значки карты памяти и облака и число элементов, а третья называет режим «Копии»
|
|
|
|
#### Scenario: Режим переноса
|
|
- **WHEN** локальный альбом синхронизируется в режиме переноса
|
|
- **THEN** вторая строка показывает значки карты памяти и облака и число элементов, а третья называет режим «Перенос»
|
|
|
|
#### Scenario: Серверный альбом
|
|
- **WHEN** показан серверный альбом
|
|
- **THEN** вторая строка показывает значок облака и число фото, а третьей строки нет
|
|
|
|
#### Scenario: Разные имена связанной пары
|
|
- **WHEN** имя локального альбома не совпадает с именем связанного серверного
|
|
- **THEN** первая строка показывает «имя → имя серверного»
|
|
|
|
#### Scenario: Одинаковые имена
|
|
- **WHEN** имена совпадают
|
|
- **THEN** стрелка и имя серверного не показываются
|
|
|
|
## ADDED Requirements
|
|
|
|
### Requirement: Прогресс операции загрузки
|
|
Для альбома устройства с включённой синхронизацией (копии или перенос) карточка SHALL
|
|
показывать ход загрузки в третьей строке: процент, пока есть работающие загрузки (текст
|
|
пульсирует); число ожидающих без активной работы; отдельные состояния ожидания Wi-Fi и
|
|
ошибки; в простое — только метку режима. Процент SHALL считаться по альбому и SHALL NOT
|
|
убывать при завершении отдельных файлов.
|
|
|
|
#### Scenario: Идёт копирование
|
|
- **WHEN** у альбома в режиме копий есть хотя бы одна работающая загрузка
|
|
- **THEN** третья строка показывает «Копии <процент>%», и текст пульсирует
|
|
|
|
#### Scenario: Идёт перенос
|
|
- **WHEN** у альбома в режиме переноса есть хотя бы одна работающая загрузка
|
|
- **THEN** третья строка показывает «Перенос <процент>%», и текст пульсирует
|
|
|
|
#### Scenario: Очередь без активной работы
|
|
- **WHEN** загрузки альбома ожидают, но ни одна не работает
|
|
- **THEN** третья строка показывает число ожидающих, и пульсации нет
|
|
|
|
#### Scenario: Ожидание Wi-Fi
|
|
- **WHEN** загрузки ждут только из-за ограничения «только Wi-Fi»
|
|
- **THEN** третья строка сообщает ожидание Wi-Fi, и пульсации нет
|
|
|
|
#### Scenario: Ошибка
|
|
- **WHEN** последняя попытка загрузки файла провалилась
|
|
- **THEN** третья строка показывает ошибку выделенным цветом, и пульсации нет
|
|
|
|
#### Scenario: Простой
|
|
- **WHEN** незавершённых загрузок нет
|
|
- **THEN** третья строка показывает только метку режима
|
|
|
|
#### Scenario: Монотонность
|
|
- **WHEN** один файл завершается, пока остальные ещё загружаются
|
|
- **THEN** показанный процент не уменьшается
|