4.8 KiB
Расхождения: Файлы (web forbion ↔ нативный feature/files)
Список несоответствий по методу mail/081 (итерация сверки). Вход — карта
files.md. Сверка по коду feature/files (состав/функции); попиксельная
вёрстка по CSS-теме и визуал — отдельным проходом после сборки на устройстве.
Обозначения: [Ф] функционал · [Д] дизайн/вёрстка · приоритет P1(высокий)…P3(низкий).
Статус: open — не начато, wip — в работе, done — закрыто и сверено повторно.
Итерация 1 — сверка по коду (2026-07-12)
| # | Элемент/функция | В вебе | В нативе | Тип | Приор. | Статус |
|---|---|---|---|---|---|---|
| D1 | Панель «Подробно» — вкладки | 4: Общий доступ / Версии / Чат / События | 2: Sharing, Events (FileDetailsTab, FilesModels.kt:67) — нет «Версии», «Чат/комментарии» |
Ф | P2 | open |
| D2 | Фильтры-чипы | «Тип файла» (мультивыбор 8 типов), «Изменён» (5 пресетов дат), «Участники» (по людям) | Чипы есть, но обработчики — заглушки: Тип/Изменён → сортировка, Участники → пустой {} (FilesScreen.kt:224-226). Фильтрации нет |
Ф | P1 | open |
| D3 | Групповые действия (bulk) | 6: избранное, метки, переместить/копировать, скачать, архивировать, удалить | 3: Favorite, Download, Delete (FilesBulkAction, FilesComponents.kt:1064); Download → заглушка showWebOnlyMessage |
Ф | P1 | open |
| D4 | Шэры — создание | Внутренние ссылки: пользователь (type 0) / группа (type 1) + публичная (type 3) | Создаётся только shareType=3 публичная ссылка (createPublicShareLink, FilesApiRepository.kt:174); чтение чужих шэров есть (fetchShares :199) |
Ф | P1 | open |
Снято (не расхождение): меню «Новый» — нативный FilesCreateMenu.kt содержит весь веб-список
(загрузка + 10 «Создать новое») и даже пункт сверх («Добавить описание папки»).
Инвентарь открывашек файлов (для медиа-воркстрима, mail/081 §3)
Текущее состояние нативных просмотрщиков в feature/files:
| Тип | Форматы | Как открывается сейчас | Пробел |
|---|---|---|---|
| Изображения | jpg/jpeg/png/gif/webp/bmp/heic/heif (OpenableFiles.kt:10) |
Нативно ImageViewerActivity (Coil AsyncImage) |
— (svg нет в списке — добавить?) |
| Офис | doc/docx/xls/xlsx/xlsm/… (OfficeFiles.kt) |
Collabora/Richdocuments в WebView | — (есть) |
| Текст/Markdown | md/markdown/txt/text/org/log (WebOpenableFiles.kt:17) |
Нативный MarkdownEditorScreen |
— (есть) |
| Доска | .whiteboard (WebOpenableFiles.kt:9) |
WebView (Excalidraw, realtime — нативно не делаем) | — (осознанно web) |
Нет нативного вьюера → системный интент/LocalFileOpener или «тип не поддерживается» (FilesViewModel.kt:495) |
[Ф] P1 — нужен нативный PDF-вьюер | ||
| Видео | mp4/webm/mkv/mov | Нет нативного плеера → системный интент | [Ф] P2 — нативный видеоплеер |
| Аудио | mp3/aac/ogg/wav/flac | Нет нативного плеера → системный интент | [Ф] P2 — нативный аудиоплеер |
Медиа-архитектуру (нативные плееры vs webview/интенты) определяет лид — жду письмо-раскладку
(mail/081 §3). До неё PDF/видео/аудио уходят в системный ACTION_VIEW (chooser «Открыть с помощью»).
Осталось для итерации 2 (нужна сборка на устройстве)
- [Д] попиксельная вёрстка всех экранов по CSS-теме
_mobile-files.css. - [Ф] дерево «Поиска», переходы после открытия PDF/аудио/видео (визуальная сверка).