Files
view-mate/sketches/phone-ui/FLOW.md
T

9.2 KiB
Raw Blame History

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. Сессии — параллельная работа с ассистентом: переключил сессию — разговор продолжается в другом контексте.