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.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
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.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 dagger.hilt.android.AndroidEntryPoint
@@ -23,6 +29,9 @@ class MainActivity : ComponentActivity() {
setContent {
RadiolaTheme {
val navController = rememberNavController()
val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true)
var showPlayer by remember { mutableStateOf(false) }
Scaffold(
bottomBar = { BottomNavBar(navController) }
) { paddingValues ->
@@ -32,19 +41,34 @@ class MainActivity : ComponentActivity() {
modifier = Modifier.padding(paddingValues)
) {
composable(NavDestinations.Stations.route) {
// TODO: StationsScreen
StationsScreen(onStationClick = { showPlayer = true })
}
composable(NavDestinations.Favorites.route) {
// TODO: FavoritesScreen
FavoritesScreen(onStationClick = { showPlayer = true })
}
composable(NavDestinations.History.route) {
// TODO: HistoryScreen
HistoryScreen()
}
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 = { }
)
}
}
}
}
}