chore(openspec): архивировать android-album-sort и синхронизировать основные спеки

android-client: +1 требование — выбор порядка карточек и направления, порядок
охватывает весь список вместе с альбомами устройства.
This commit is contained in:
iu
2026-10-16 13:27:30 +03:00
parent 8010ff26f9
commit e4fc6f0ce9
6 changed files with 234 additions and 0 deletions
@@ -0,0 +1,32 @@
# Tasks
## 1. Ключи сортировки и хранение выбора
- [x] 1.1 Перечисление `AlbumSort` (время изменения, название, число фото) с разбором сохранённого значения и дефолтом «по времени изменения»; проверено unit-тестами
- [x] 1.2 Хранить пару (ключ, обратный порядок) в DataStore и отдавать её узким портом `AlbumSortPreference`; проверить тестом дефолт (по времени изменения, без обратного порядка) и чтение сохранённой пары обратно
## 2. Дата альбома устройства
- [x] 2.1 Добавить альбому устройства дату последнего изменения — самый свежий его элемент, как при выборе обложки, — и заполнять её в маппинге MediaStore; проверить тестом маппинга, что дата соответствует самому свежему элементу
## 3. Единый порядок списка
- [x] 3.1 Сортировать один общий список карточек (альбомы устройства и серверные вместе) по выбранному ключу; проверить тестами `AlbumListBuilder`, что порядок соответствует ключу и что карточки обоих источников перемешаны, а не сгруппированы
- [x] 3.2 Обратный порядок инвертирует выбранный ключ; проверить тестом, что направление меняет порядок для каждого ключа, а отсутствие даты не ломает сравнение
- [x] 3.3 Связанная пара «устройство → серверный» участвует в общем порядке как карточка устройства; проверить тестом, что связанный серверный альбом не появляется отдельной записью и остаётся в общем порядке
## 4. Выбор в интерфейсе
- [x] 4.1 Пробросить пару (ключ, обратный порядок) в `AlbumsViewModel` и перестраивать список без перезапроса; проверить тестом ViewModel, что смена ключа и включение обратного порядка меняют порядок
- [x] 4.2 Меню сортировки: три ключа с отметкой текущего и переключатель «Обратный порядок»; проверить Compose-тестом, что выбор меняет порядок, а отметки следуют за выбором
- [x] 4.3 Обновить `android/README.md`: сортировка охватывает весь список, есть обратный порядок
## 5. Проверка
- [x] 5.1 Проверить на устройстве сохранение выбора между запусками: выбрать «по названию» вместе с обратным порядком, перезапустить экран и убедиться, что порядок сохранился
- [x] 5.2 Прогнать на финальной ревизии `cd android && ./gradlew test` и `cd android && ./gradlew :app:assembleDebug`; зафиксировать, что обе команды проходят
## Workflow follow-up
- Заархивировать change после прохождения ревью проекта (`openspec archive android-album-sort`).
- Проверить, что после архивации требование вошло в `openspec/specs/android-client/spec.md`, а `openspec validate --strict android-album-sort` не выдаёт ошибок.