feat(orientation): полноценная поддержка альбомной ориентации

- боковой nav-rail слева вместо нижнего бара в альбоме (SideNavRail)
- мини-плеер уезжает под контент в альбомной раскладке
- плеер эфира: двухпанельный (обложка слева, инфо/эквалайзер/контролы справа)
- плеер записи: слева управление, справа прокручиваемый список треков
- сетки станций и избранного: 4 колонки в альбоме вместо 2
- хелпер isLandscape() через LocalConfiguration

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
nk
2026-06-04 20:19:47 +03:00
parent fabf780450
commit 06cb6c16f1
7 changed files with 335 additions and 92 deletions

View File

@@ -46,6 +46,8 @@ fun StationsScreen(
val isPlaying by viewModel.isPlaying.collectAsState()
val colors = RadiolaTheme.colors
val haptics = LocalHapticFeedback.current
// В альбоме шире окно — больше колонок, иначе карточки растягиваются.
val gridColumns = if (com.radiola.ui.util.isLandscape()) 4 else 2
// Полный порядок фильтров: «Все» (null) + жанры. Свайп листает по нему.
val orderedTags = remember(tags) { listOf<String?>(null) + tags }
@@ -136,7 +138,7 @@ fun StationsScreen(
}
else -> LazyVerticalGrid(
columns = GridCells.Fixed(2),
columns = GridCells.Fixed(gridColumns),
modifier = Modifier.fillMaxSize(),
// top = высота чипов: грид уходит ПОД них, свечение верхнего ряда
// не обрезается и проступает за чипами.