Карточка альбома устройства получает третью строку: метку режима («Копии»/ «Перенос») и ход загрузки. Процент считается как (uploaded + running) / total для обоих синхронизируемых режимов, пульсирует только при активной загрузке, показывает очередь, ожидание Wi-Fi и ошибку. В режиме переноса карточка показывает и карту памяти, и облако — режимы различает метка, а не значки. Разгрузка оригиналов теперь требует подтверждённой серверной копии в текущем целевом альбоме: устаревший serverPhotoId перепроверяется по альбому, смена цели переносит уже загруженные фото и отклоняется, если перенести нельзя. Потеря серверной копии видна на карточке и на экране альбома, автозатирания превью нет. Изменения OpenSpec: android-album-card-sync-status, safe-album-offload.
5.3 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 первая строка показывает «имя → имя серверного»
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 показанный процент не уменьшается