# Принципы Android-клиента **Коротко:** принципы те же, что у десктопного клиента. Меняется не смысл, а обёртка — телефон всегда узкий, у него своя кнопка «Назад», нет курсора и есть клавиатура со шторками. Ниже: что берём как есть, что своё. **Обговорённые принципы лежат в репозитории десктопного клиента** (он — эталон требований и макетов): - https://git.binom.pw/subochev/agentik-desktop — файл `REQUIREMENTS.md` (требования R1…, разделы «Общее», «Раскладка и адаптивность», «Список диалогов» и далее), плюс `approved/README.md` (что одобрено и почему), `THEMES.md` (тема и имена цветов), `STORAGE.md`, `CACHE.md`. Ссылки даны на `main`; для точного среза — коммит `2c5b3f9`. Мы **не копируем** эти документы себе: один источник правды лучше двух копий, которые разъедутся. Здесь только список того, что для телефона иначе. --- ## ЧАСТЬ 1. Берём как есть 1. **Состав экрана.** Что видно в любой момент: список диалогов и открытый диалог с полем ввода. Больше обязательного нет (`R2`). 2. **Список диалогов.** Лента папок («Все чаты», группы, «+»), поиск, список со значком, названием, последней строкой, временем, кружком непрочитанных. 3. **Группы.** «Все чаты» — встроенная: не удаляется и не переименовывается. Удаление группы диалоги не удаляет — они возвращаются в «Все чаты». У группы только название. 4. **Ассистенты.** Имя придумывает человек (сервер своего имени не сообщает), адрес целиком вместе с путём `/agentik`, отличие в списке — цветом **или** картинкой, что-то одно. Картинка **копируется внутрь клиента**, не берётся по исходному адресу. 5. **Проверка связи.** Отдельным экраном поверх: идёт → отвечает → не отвечает, внизу «Проверить снова»; добавление доступно только при успехе. Запросы — из исходников агента, оба ничего не меняют. 6. **Цвета.** Берём из схемы по смыслу, **не числом в коде** (`R1.1`). Имена по смыслу, а не по виду: «фон», «панель», «акцент», «ошибка», «успех» (`R1.2`). Цвета различения ассистентов — **не из схемы**: они пользовательские и в другой теме остаются собой (`R1.5`). 7. **«Нет данных — нет цифры».** Не показываем счётчик, которого нет в источниках. 8. **Сообщения — единственный источник правды.** События от агента — только «будильник»; после сигнала догоняем сообщения запросом «что после такого-то». ## ЧАСТЬ 2. На телефоне иначе 9. **Узких и широких окон нет.** Десктопные `R3`–`R6` (две панели рядом, порог ширины, кнопка «Назад» внутри узкого окна) **к нам не относятся**: телефон всегда узкий. Вместо них — системная кнопка и жест «Назад» (предсказуемый переход), и он же закрывает открытый диалог. 10. **Модальные окна → шторки снизу.** Где на десктопе два окна друг над другом (настройки + проверка связи) — на телефоне полноэкранный экран или шторка снизу. Одно действие — один экран. 11. **Курсора нет** — нет «наведения». Вместо него отклик на нажатие (подсветка/рябь). Десктопное требование про цвета наведения (`R1.4`) на телефоне превращается в проверку цвета нажатия. 12. **Клавиатура.** Поле ввода поднимается над клавиатурой, список сообщений сдвигается, а не перекрывается. Открытая клавиатура — обычное состояние, а не край. 13. **Запись голоса — с разрешением.** На десктопе микрофон доступен без спроса, на телефоне нужно системное разрешение; отказ — состояние экрана, а не ошибка. 14. **Файлы.** Картинки ассистентов и вложения — во внутреннем каталоге приложения (на телефоне свои правила доступа к файлам). Пользователь выбирает файл системным диалогом. 15. **Экран и поворот.** Края экрана (строка состояния, «подбородок» с жестами) учитываем; при повороте и смене размера ничего не теряется. 16. **Тёмная тема — стартовая, не единственная.** Как и на десктопе, схем несколько (`R1.1`). ## ЧАСТЬ 3. Что решаем позже - Порог, с которого телефон считать «широким» (планшет, разворот) — пока не нужен: рисуем узкий вид. - Системная цветовая схема телефона: следовать за ней или держать свою. --- **Кода в этих документах нет намеренно** — здесь поведение. Реализация — по задачам, через правки в этом репозитории.