Files
ds-galo/openspec/changes/archive/2026-10-16-android-album-restore-progress/tasks.md
T
iu 19309e2ac0 chore(openspec): архивировать android-album-restore-progress и синхронизировать спеки
Дельта перенесена в основные спеки: android-client («Прогресс восстановления
оригиналов») и phone-album-sync («Ход и устойчивость восстановления оригиналов»).
Изменение перемещено в openspec/changes/archive/2026-10-16-android-album-restore-progress.
2026-10-16 20:15:57 +03:00

2.7 KiB
Raw Blame History

Tasks

1. Ход восстановления в менеджере

  • 1.1 Вынести у восстановления интерфейс AlbumRestorer и добавить в RestoreManager.restore обратный вызов хода (после каждого элемента, включая пропуски); покрыть тестом, что ход доходит до «всего» при успехе и при неудачной записи (cd android && ./gradlew :app:testDebugUnitTest --tests "*RestoreManagerTest").

2. Координатор восстановления

  • 2.1 Добавить RestoreCoordinator: карта «альбом → ход», запуск в области приложения, защита от повторного запуска по одному альбому; покрыть тестом «ход появляется и исчезает», «пустой набор — хода нет», «повторный запуск игнорируется» (cd android && ./gradlew :app:testDebugUnitTest --tests "*RestoreCoordinatorTest").

3. Подключение вызывающих

  • 3.1 Создать координатора в AppContainer и перевести DeviceAlbumViewModel.restoreOriginals на start, а SyncCheck — на ожидаемый run; проверить, что SyncCheck по-прежнему выполняет восстановление до конца (cd android && ./gradlew :app:testDebugUnitTest --tests "*SyncCoordinatorTest" --tests "*DeviceAlbum*").

4. Ход на карточке и на экране

  • 4.1 Добавить ход восстановления в AlbumSyncProgress (restorePercent) с приоритетом над загрузкой и в пульсацию; покрыть AlbumSyncProgressTest и связать с координатором в AlbumsViewModel (cd android && ./gradlew :app:testDebugUnitTest --tests "*AlbumSyncProgressTest" --tests "*AlbumsViewModelTest").
  • 4.2 Показать ход отдельной строкой на экране альбома устройства и проверить на карточке в списке; покрыть DeviceAlbumContentTest и AlbumsContentTest (cd android && ./gradlew :app:testDebugUnitTest --tests "*DeviceAlbumContentTest" --tests "*AlbumsContentTest").

5. Интеграционная проверка

  • 5.1 Прогнать весь Android-набор и собрать debug-APK (cd android && ./gradlew test :app:assembleDebug).

Workflow follow-up

  • Заархивировать изменение после прохождения ревью проекта.
  • Проверить результат архивации.