Files
ds-galo/openspec/changes/archive/2026-10-16-android-album-sort/tasks.md
T
iu e4fc6f0ce9 chore(openspec): архивировать android-album-sort и синхронизировать основные спеки
android-client: +1 требование — выбор порядка карточек и направления, порядок
охватывает весь список вместе с альбомами устройства.
2026-10-16 13:27:30 +03:00

4.0 KiB
Raw Blame History

Tasks

1. Ключи сортировки и хранение выбора

  • 1.1 Перечисление AlbumSort (время изменения, название, число фото) с разбором сохранённого значения и дефолтом «по времени изменения»; проверено unit-тестами
  • 1.2 Хранить пару (ключ, обратный порядок) в DataStore и отдавать её узким портом AlbumSortPreference; проверить тестом дефолт (по времени изменения, без обратного порядка) и чтение сохранённой пары обратно

2. Дата альбома устройства

  • 2.1 Добавить альбому устройства дату последнего изменения — самый свежий его элемент, как при выборе обложки, — и заполнять её в маппинге MediaStore; проверить тестом маппинга, что дата соответствует самому свежему элементу

3. Единый порядок списка

  • 3.1 Сортировать один общий список карточек (альбомы устройства и серверные вместе) по выбранному ключу; проверить тестами AlbumListBuilder, что порядок соответствует ключу и что карточки обоих источников перемешаны, а не сгруппированы
  • 3.2 Обратный порядок инвертирует выбранный ключ; проверить тестом, что направление меняет порядок для каждого ключа, а отсутствие даты не ломает сравнение
  • 3.3 Связанная пара «устройство → серверный» участвует в общем порядке как карточка устройства; проверить тестом, что связанный серверный альбом не появляется отдельной записью и остаётся в общем порядке

4. Выбор в интерфейсе

  • 4.1 Пробросить пару (ключ, обратный порядок) в AlbumsViewModel и перестраивать список без перезапроса; проверить тестом ViewModel, что смена ключа и включение обратного порядка меняют порядок
  • 4.2 Меню сортировки: три ключа с отметкой текущего и переключатель «Обратный порядок»; проверить Compose-тестом, что выбор меняет порядок, а отметки следуют за выбором
  • 4.3 Обновить android/README.md: сортировка охватывает весь список, есть обратный порядок

5. Проверка

  • 5.1 Проверить на устройстве сохранение выбора между запусками: выбрать «по названию» вместе с обратным порядком, перезапустить экран и убедиться, что порядок сохранился
  • 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 не выдаёт ошибок.