# Proposal ## Why Карточка альбома в Android-клиенте кодирует режим синхронизации одними значками, и это перестало быть информативным. В режиме переноса (C) на телефоне остаются превью, но карточка показывает только облако — «локальной копии» не видно. Добавить карте памяти в C нельзя без последствий: тогда карты памяти и облако будут у копий (B) и переноса (C) одинаковы, и режимы станут неразличимы. Отдельно невидим прогресс копирования (B). Единственный след работы — счётчик в рейле и экран «Загрузки»; на самой карточке не понять, сколько уже на сервере, идёт ли заливка, ждёт ли она Wi‑Fi или упала. Провал заливки сейчас вообще не проявляется в списке альбомов. ## What Changes - Карточка альбома устройства получает **метку режима** третьей строкой: «Копии» для B, «Перенос» для C, ничего для выключенной синхронизации (A) и серверных альбомов. - Карта памяти (SD) теперь показывается и для режима переноса: `[SD][Cloud]`. Режимы различаются не значками, а меткой режима, поэтому SD читается как «есть локальная копия» (оригинал в B, превью в C). - Для режима копий третья строка показывает **процент операции**, пока заливка активна: `«Копии 62%»`. Текст процента пульсирует, пока есть работающие загрузки. - Состояния вместо/рядом с процентом: `«Копии 8 в очереди»` для ожидающих, `«Копии — ждёт Wi‑Fi»` для ожидающих по ограничению сети, `«Копии — ошибка»` при провале, просто `«Копии»` в простое. - Процент считается по альбому: `(uploaded + running) / total`, где `uploaded` — записи индекса провенанса с серверным фото, `running` — дроби `progress/100` работающих загрузок, `total` — число элементов альбома устройства. Формула держит монотонность и не «едет назад» при завершении файлов. - Пульсация включается только при наличии работающей загрузки, поэтому альбом, ждущий Wi‑Fi, не выглядит как активный. - **BREAKING**: нет. Для серверных альбомов и выключенной синхронизации карточка не меняется; меняется только вид карточек альбомов устройства с включённой синхронизацией. ## Capabilities ### New Capabilities _Нет — поведение расширяет существующую способность `android-client`._ ### Modified Capabilities - `android-client`: требование «Подпись карточки альбома» переформулируется (метка режима третьей строкой; карта памяти показывается и для переноса) и дополняется новым требованием о прогрессе операции копирования с его состояниями. ## Impact - **Код (Android):** `ui/albums/AlbumListItem` (модель строки: метка режима и прогресс), `ui/albums/AlbumListBuilder` (сборка прогресса в элемент списка), `ui/albums/AlbumsViewModel` (агрегат очереди загрузок и индекса), `ui/albums/AlbumsScreen` (`AlbumCardBody`: третья строка, пульсация), доменная модель `domain/model/Upload` (поле привязки к альбому устройства), `data/upload/UploadRepository`, `data/db/dao/UploadDao` и `SyncDao` (счётные запросы по альбому). - **Схема Room:** новых таблиц/колонок не требуется — `upload_jobs.deviceAlbumId` и `device_assets` уже хранят всё нужное; добавляются только запросы. - **API и бэкенд:** не затрагиваются. - **Веб-клиент:** не затрагивается. - **Не затрагивается / отдельно:** прогресс в фазе загрузки режима переноса (C) — тот же механизм применим, но в объём этого изменения не входит; ручные загрузки в серверный альбом на карточке не отражаются (у них нет привязки к альбому устройства).