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.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 = { }
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user