feat(ui): wire all screens into NavHost with BottomSheet player
This commit is contained in:
@@ -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,17 +41,32 @@ 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 = { }
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user