# Proposal ## Why Список альбомов в Android-клиенте упорядочивался жёстко (`ORDER BY updatedAt DESC, title ASC` в запросе Room), а серверный порядок процедура `refresh` и вовсе теряла: `created_at` приходил в DTO и отбрасывался при записи в кэш. Пользователь не мог ни выбрать порядок, ни развернуть его. Дополнительно выяснилось, что выбранный порядок должен охватывать **весь** список: альбомы устройства и серверные карточки видны вместе, а не живут двумя независимыми блоками. ## What Changes - Список альбомов получает выбор порядка: по времени изменения (по умолчанию), по названию или по числу фото, плюс обратный порядок для выбранного варианта. - Порядок применяется ко **всему списку**: карточки альбомов устройства и серверных альбомов упорядочиваются вместе, а не двумя блоками. Связанная пара «устройство → серверный альбом» остаётся одной карточкой устройства и участвует в общем порядке как она. - Альбом устройства получает дату последнего изменения (самый свежий его элемент, как уже делается при выборе обложки), поэтому вариант «по времени изменения» осмыслен и для него. - Пара (вариант, направление) сохраняется локально на устройстве (DataStore) и применяется при следующем запуске. Это настройка отображения: она не синхронизируется между устройствами. - Сортировка выполняется при сборке списка, а не запросом Room: кэш остаётся хранилищем без собственного порядка, поэтому события реального времени не знают о выбранной сортировке. - **BREAKING**: нет. Значения по умолчанию (по времени изменения, без обратного порядка) сохраняют прежнее поведение. ## Capabilities ### New Capabilities _Нет — поведение расширяет существующую способность `android-client`._ ### Modified Capabilities - `android-client`: добавляется выбор порядка карточек и направления с локальным сохранением; фиксируется, что порядок охватывает весь список, включая альбомы устройства. ## Impact - **Код (Android):** `domain/model/AlbumSort`, `domain/model/DeviceAlbums` (дата изменения), `data/media/MediaStoreDeviceSource` (дата в маппинге), `data/prefs/SettingsRepository` (порт `AlbumSortPreference` и хранение пары), `ui/albums/AlbumListItem` (единый компаратор), `ui/albums/AlbumsViewModel`, `ui/albums/AlbumsScreen` (меню и переключатель). - **Схема Room:** без изменений; новые колонки не добавляются. - **API и бэкенд:** не затрагиваются. - **Веб-клиент:** не затрагивается, своей сортировки у него нет. - **Не затрагивается:** подписка на персональный поток и живое обновление списка — это отдельный change (`android-live-albums`).