gallery module
Описание
Модуль, отвечающий за просмотр и поиск добавленных ранее медиа по тегам.
Структура
gallery/
├── src/
│ └── main/
│ └── java/
│ └── com/dgopadakak/tagsgallery/gallery/
│ ├── GalleryViewModel.kt # ViewModel, содержащая UiState
│ ├── ui/ # UI компоненты
│ └── util/ # Вспомогательные утилиты
Основные компоненты
- GalleryViewModel: ViewModel, которая управляет состоянием UI (
UiState) и взаимодействует с репозиторием из модуля core/local_storage
- UI компоненты
Функционал
- Отображение списка всех доступных тегов с возможностью сортировки (по имени, дате, цвету) и фильтрации (по цвету)
- Выбор одного или нескольких тегов для поиска
- Динамическое обновление списка найденных медиа при изменении набора выбранных тегов
- Открытие найденного медиа в полноэкранном просмотрщике с анимацией перехода
- Множественное выделение найденных медиа (long press / tap), быстрые действия: share и remove from app
- Блокировка изменения тегов в режиме множественного выделения медиа
- Адаптивная верстка:
Compact — выбор тегов через BottomSheetScaffold
Wide — панель тегов слева + сетка медиа справа
- Отображение подсказки при первом входе на экран
Зависимости
- Jetpack Compose для UI
- Hilt для inject’а зависимостей
- Coil для отображения превью медиа
- Material 3 Window Size Classes для адаптивного UI
- core/compose для переиспользования общих UI компонентов
- core/local_storage для работы с репозиторием