Files
iu 1eb1177273 feat(android): статус синхронизации на карточке и безопасная разгрузка
Карточка альбома устройства получает третью строку: метку режима («Копии»/
«Перенос») и ход загрузки. Процент считается как (uploaded + running) / total
для обоих синхронизируемых режимов, пульсирует только при активной загрузке,
показывает очередь, ожидание Wi-Fi и ошибку. В режиме переноса карточка
показывает и карту памяти, и облако — режимы различает метка, а не значки.

Разгрузка оригиналов теперь требует подтверждённой серверной копии в текущем
целевом альбоме: устаревший serverPhotoId перепроверяется по альбому, смена
цели переносит уже загруженные фото и отклоняется, если перенести нельзя.
Потеря серверной копии видна на карточке и на экране альбома, автозатирания
превью нет.

Изменения OpenSpec: android-album-card-sync-status, safe-album-offload.
2026-10-16 18:36:51 +03:00

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 показанный процент не уменьшается