Files
ds-galo/openspec/changes/archive/2026-10-13-add-mobile-photo-zoom/proposal.md
T

2.7 KiB
Raw Blame History

Proposal

Why

В веб-просмотрщике фото можно приблизить (колесо, Space), а в Android-клиенте изображения в полноэкранном просмотре открываются только во вписанном виде — в 360-панораме зум есть, в обычных фото нет. Пользователь не может рассмотреть деталь снимка на телефоне.

What Changes

  • В полноэкранный просмотр обычных изображений добавляется зум пальцами:
    • pinch увеличивает/уменьшает, панорамирование при увеличении, двойной тап переключает вписанный вид и 100% натурального размера с якорем в точку тапа.
  • Предел зума — 200% натурального размера изображения, минимум — вписанный вид (семантика веб-просмотрщика, адаптированная под тач).
  • При входе в зум догружается оригинал (originalUrl), другие фото сбрасываются во вписанный вид при переходе.
  • Пока изображение увеличено, горизонтальный свайп не листает альбом — жест отдан панорамированию (как для панорамы).
  • Исключения: видео и 360-панорама не затрагиваются (у панорамы зум уже есть).

Capabilities

New Capabilities

Modified Capabilities

  • android-client: требование «Просмотр медиа на весь экран» расширяется зумом изображений — pinch, панорамирование, двойной тап, предел, догрузка оригинала, поведение pager и сброс при смене фото.

Impact

  • android/app/src/main/java/com/galo/android/ui/viewer/ViewerScreen.kt — обёртка изображения и проброс состояния зума в ViewerContent (блокировка pager).
  • Новый zoomable-компонент изображения (ручной pointerInput + graphicsLayer), без новых зависимостей.
  • Тесты: Robolectric «свайп не листает увеличенное фото»; юнит на предел и якорь.
  • Серверная часть и веб-клиент не меняются.