Дельта перенесена в основные спеки: android-client («Прогресс восстановления оригиналов») и phone-album-sync («Ход и устойчивость восстановления оригиналов»). Изменение перемещено в openspec/changes/archive/2026-10-16-android-album-restore-progress.
2.7 KiB
2.7 KiB
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
- Заархивировать изменение после прохождения ревью проекта.
- Проверить результат архивации.