Возврат из переноса в копии скачивает оригиналы с сервера, но ход нигде не отражался: карточка умела показывать только загрузку, а восстановление шло в области экрана и обрывалось при уходе с него. Добавлен RestoreCoordinator: выполняет восстановление в области приложения (уход с экрана больше не прерывает), ведёт ход «альбом -> восстановлено из всего» и защищает от одновременного запуска по одному альбому. RestoreManager сообщает ход по каждому элементу и вынесен за интерфейс AlbumRestorer; SyncCheck ходит через координатора и, как и раньше, дожидается завершения. Карточка альбома показывает «Копии — восстановление N%» (пульсирует), экран альбома устройства — строку «Восстановление оригиналов: X из Y» с полосой. Изменение OpenSpec: android-album-restore-progress.
1.3 KiB
1.3 KiB
Spec Delta
ADDED Requirements
Requirement: Прогресс восстановления оригиналов
Пока идёт восстановление оригиналов, карточка альбома устройства SHALL показывать ход в третьей строке («Копии — восстановление <процент>%»), а экран альбома устройства SHALL показывать ход отдельной строкой. По завершении ход SHALL исчезать.
Scenario: Карточка в списке
- WHEN для альбома устройства идёт восстановление оригиналов
- THEN карточка показывает «<метка режима> — восстановление <процент>%»
Scenario: Экран альбома устройства
- WHEN для альбома устройства идёт восстановление оригиналов
- THEN экран альбома показывает ход восстановления
Scenario: Завершение
- WHEN восстановление оригиналов завершилось
- THEN ход больше не показывается, а карточка возвращается к метке режима