feat(ui): wire all screens into NavHost with BottomSheet player

This commit is contained in:
nk
2026-06-01 13:07:11 +03:00
parent 15e15c6664
commit 9e3ce0f1e4

View File

@@ -4,14 +4,20 @@ import android.os.Bundle
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.*
import androidx.compose.material3.Scaffold import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.navigation.compose.NavHost import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController import androidx.navigation.compose.rememberNavController
import com.radiola.ui.favorites.FavoritesScreen
import com.radiola.ui.history.HistoryScreen
import com.radiola.ui.navigation.BottomNavBar import com.radiola.ui.navigation.BottomNavBar
import com.radiola.ui.navigation.NavDestinations import com.radiola.ui.navigation.NavDestinations
import com.radiola.ui.player.PlayerBottomSheet
import com.radiola.ui.settings.SettingsScreen
import com.radiola.ui.stations.StationsScreen
import com.radiola.ui.theme.RadiolaTheme import com.radiola.ui.theme.RadiolaTheme
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
@@ -23,6 +29,9 @@ class MainActivity : ComponentActivity() {
setContent { setContent {
RadiolaTheme { RadiolaTheme {
val navController = rememberNavController() val navController = rememberNavController()
val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true)
var showPlayer by remember { mutableStateOf(false) }
Scaffold( Scaffold(
bottomBar = { BottomNavBar(navController) } bottomBar = { BottomNavBar(navController) }
) { paddingValues -> ) { paddingValues ->
@@ -32,17 +41,32 @@ class MainActivity : ComponentActivity() {
modifier = Modifier.padding(paddingValues) modifier = Modifier.padding(paddingValues)
) { ) {
composable(NavDestinations.Stations.route) { composable(NavDestinations.Stations.route) {
// TODO: StationsScreen StationsScreen(onStationClick = { showPlayer = true })
} }
composable(NavDestinations.Favorites.route) { composable(NavDestinations.Favorites.route) {
// TODO: FavoritesScreen FavoritesScreen(onStationClick = { showPlayer = true })
} }
composable(NavDestinations.History.route) { composable(NavDestinations.History.route) {
// TODO: HistoryScreen HistoryScreen()
} }
composable(NavDestinations.Settings.route) { composable(NavDestinations.Settings.route) {
// TODO: SettingsScreen SettingsScreen()
} }
}
}
if (showPlayer) {
ModalBottomSheet(
onDismissRequest = { showPlayer = false },
sheetState = sheetState,
containerColor = MaterialTheme.colorScheme.background
) {
PlayerBottomSheet(
station = null,
track = null,
isPlaying = false,
onPlayPause = { }
)
} }
} }
} }