# ViewMate — сценарии использования телефонного интерфейса Описание по эскизам `sketches/phone-ui/index.html`. Дизайн — эскизный (раскладка компонентов), но сценарии — рабочие. --- ## Сценарий 1: «Посмотреть фильм» (главный путь) ### Шаг 1 — Открыл приложение → Экран «Каталог» Вижу: поиск (вверху), вкладки **Фильмы / Сериалы / Папки**, ниже — сетка карточек. Каждая карточка — элемент библиотеки Jellyfin: постер + название + **бейдж статуса зеркала**: | Бейдж | Значение | |-------|----------| | ✓ (зелёный) | зеркало **готово** — можно смотреть сразу | | ⟳ 45% (жёлтый) | **конвертируется** прямо сейчас (воркер молотит) | | «нет» (серый) | **не сконвертировано** — надо заказать | | ↓ часть (синий) | **частично скачано** на устройство (видео есть, звук качается) | > **Вкладка «Папки»** — это вход в иерархию Jellyfin: коллекции, папки, подпапки. «Фильмы» и «Сериалы» — удобные фильтры-ярлыки поверх неё. ### Шаг 2 — Тапнул по карточке → Экран «Детали фильма» Открылся экран: постер, название, метаданные (год, жанр, длительность). Ниже — **три блока:** **Блок «Выбор озвучки»** — список аудиодорожек из зеркала (title + language), радио-выбор: ``` ◉ Дубляж (Reanimedia) rus ○ Оригинал eng ○ Профессиональный многоголосый rus ``` Выбор запоминается — это дорожка, которая заиграет при старте. **Блок «Статус конвертации»** — если зеркала нет или оно готовится: ``` Конвертация зеркала ⟳ 45% [██████████░░░░░░░░░░░░] ``` - «нет» в каталоге → здесь будет кнопка/статус «конвертировать» (заказ через media-mirror) - идёт → прогресс, обновляется - готово → блок исчезает или пишет «✓ готово» **Блок «Скачивание на устройства»** — что и где лежит (видео и звук отдельно!): ``` 🕶️ Очки — видео ✓ скачано 🕶️ Очки — звук ↓ качается… 📱 Телефон — видео нет 📱 Телефон — звук ✓ скачано ``` Это и есть ответ на «частично скачано»: **видео и звук — два независимых файла** (видео.mkv на очках, звук.ogg на телефоне). Каждый может быть в своём состоянии. Под блоком — **кнопка «Удалить скачанное (очки + телефон)»** — освободить память обоих устройств разом. ### Шаг 3 — Нажал «▶ Смотреть на очках» **Если зеркало готово и скачано/скачается:** очки переходят в режим КИНО, видео играет на очках, выбранная озвучка — на телефоне (синхронизация по позиции). **Если зеркало ещё не сконвертировано:** кнопка показывает реальное состояние: - «Конвертировать» (если «нет») → заказ в media-mirror → кнопка становится «⟳ 45%» (прогресс) - когда done — кнопка становится «▶ Смотреть» и можно играть ### Шаг 4 — Управление воспроизведением - с телефона: экран «Статус очков» → пульт (перемотка ±30с, плей/пауза) - с очков: жест-клик — пауза/плей, свайп ← → — перемотка --- ## Сценарий 2: «Проверить очки и память» Экран «Статус очков» (вкладка 🕶️ внизу): ``` 🕶️ Связь с очками подключено (WiFi) ● (зелёный) 🔋 Батарея очков 68% [████████░░] 💾 Память очков 41,2 ГБ из 128 ГБ [█████░░░░░] 🎬 Сейчас на очках Дюна 2 · 12:34/56:00 (пауза) ``` - **память очков** — сколько всего и сколько занято (то, что вы просили) - **«Сейчас на очках»** — живое состояние: какой фильм, позиция, играет/пауза - кнопка **«Скачанное на очках →»** — список файлов на очках, оттуда можно удалять (управление памятью очков) Ниже — **пульт**: перемотка, плей/пауза, **переключение режима очков** (Кино ⇄ Чат). --- ## Сценарий 3: «Поговорить с Порфирием» Экран «Чат» (вкладка 💬): 1. **Лента разговора** — сообщения туда-сюда 2. **Индикаторы состояния**: - «Порфирий думает…» (три точки) — когда я соображаю - «● слушаю… 0:07» (красная точка + таймер) — когда вы диктуете 3. **Список сессий** — внизу: «Очки/кино», «Работа», «Общее». Тапнул — переключился на другую сессию (параллельная работа с ассистентом) 4. **🎙** — запись голоса То же самое доступно с очков: режим ЧАТ, клик — начать/закончить диктовку, двойной клик — отмена/локальный агент, свайп — скролл текста ответа. --- ## Сценарий 4: «Фильм не сконвертирован — что я увижу?» 1. В каталоге карточка с бейджем **«нет»** (серый) 2. Тапнул → в деталях блок конвертации: «Конвертировать» 3. Тапнул «Конвертировать» → бейдж в каталоге становится **⟳ x%** (жёлтый), в деталях — прогресс-бар 4. Пока конвертится — «Смотреть» недоступна (или показывает «идёт конвертация») 5. Готово → бейдж **✓**, кнопка «▶ Смотреть» --- ## Сценарий 5: «Скачал, но не до конца» (частично) Ситуация: телефон скачал видео, а звук ещё качается (или наоборот). - В каталоге — бейдж **↓ часть** (синий) - В деталях — блок скачивания показывает покомпонентно: ``` 🕶️ Очки — видео ✓ (есть) 🕶️ Очки — звук ↓ качается… ``` - Кнопка «Смотреть» работает, если **видео на очках готово** — звук докачается в фоне, синхронизация догонит - «Удалить скачанное» — очищает и очки, и телефон --- ## Принципы (кратко) 1. **Каталог — только телефон.** Очки не листают библиотеку — они «экран кинотеатра», ждут команду «включи». 2. **Видео и звук — разные файлы** (видео.mkv на очках, звук.ogg на телефоне), поэтому состояния у них свои — отсюда «частично скачано». 3. **Всё начинается с вопроса «есть ли зеркало?»** — бейдж в каталоге показывает ответ ещё до входа в карточку. 4. **Один локальный агент** — телефон и очки два рендера одного состояния: что видно на экране «Статус очков», то и на очках. 5. **Сессии** — параллельная работа с ассистентом: переключил сессию — разговор продолжается в другом контексте.