@@ -25,6 +25,8 @@ import androidx.compose.runtime.setValue
2525import androidx.compose.ui.Modifier
2626import androidx.compose.ui.graphics.vector.ImageVector
2727import androidx.compose.ui.unit.dp
28+ import io.github.kdroidfilter.composemediaplayer.VideoPlayerState
29+ import io.github.kdroidfilter.composemediaplayer.rememberVideoPlayerState
2830import sample.app.feed.FeedScreen
2931import sample.app.gallery.GalleryScreen
3032import sample.app.player.PlayerScreen
@@ -40,22 +42,23 @@ private enum class Screen(val label: String, val icon: ImageVector) {
4042fun App () {
4143 AppTheme {
4244 var currentScreen by remember { mutableStateOf(Screen .Player ) }
45+ val playerState = rememberVideoPlayerState()
4346
4447 BoxWithConstraints (modifier = Modifier .fillMaxSize()) {
4548 val useRail = maxWidth >= 600 .dp
4649
4750 if (useRail) {
48- RailLayout (currentScreen, onScreenChange = { currentScreen = it })
51+ RailLayout (currentScreen, onScreenChange = { currentScreen = it }, playerState = playerState )
4952 } else {
50- BarLayout (currentScreen, onScreenChange = { currentScreen = it })
53+ BarLayout (currentScreen, onScreenChange = { currentScreen = it }, playerState = playerState )
5154 }
5255 }
5356 }
5457}
5558
5659// Compact: bottom NavigationBar
5760@Composable
58- private fun BarLayout (current : Screen , onScreenChange : (Screen ) -> Unit ) {
61+ private fun BarLayout (current : Screen , onScreenChange : (Screen ) -> Unit , playerState : VideoPlayerState ) {
5962 Scaffold (
6063 bottomBar = {
6164 NavigationBar {
@@ -70,13 +73,13 @@ private fun BarLayout(current: Screen, onScreenChange: (Screen) -> Unit) {
7073 }
7174 },
7275 ) { padding ->
73- ScreenContent (current, Modifier .fillMaxSize().padding(padding))
76+ ScreenContent (current, Modifier .fillMaxSize().padding(padding), playerState )
7477 }
7578}
7679
7780// Medium+: side NavigationRail
7881@Composable
79- private fun RailLayout (current : Screen , onScreenChange : (Screen ) -> Unit ) {
82+ private fun RailLayout (current : Screen , onScreenChange : (Screen ) -> Unit , playerState : VideoPlayerState ) {
8083 Row (modifier = Modifier .fillMaxSize()) {
8184 NavigationRail {
8285 Spacer (Modifier .weight(1f ))
@@ -90,14 +93,14 @@ private fun RailLayout(current: Screen, onScreenChange: (Screen) -> Unit) {
9093 }
9194 Spacer (Modifier .weight(1f ))
9295 }
93- ScreenContent (current, Modifier .weight(1f ).fillMaxHeight())
96+ ScreenContent (current, Modifier .weight(1f ).fillMaxHeight(), playerState )
9497 }
9598}
9699
97100@Composable
98- private fun ScreenContent (screen : Screen , modifier : Modifier ) {
101+ private fun ScreenContent (screen : Screen , modifier : Modifier , playerState : VideoPlayerState ) {
99102 when (screen) {
100- Screen .Player -> PlayerScreen (modifier)
103+ Screen .Player -> PlayerScreen (modifier, playerState )
101104 Screen .Gallery -> GalleryScreen (modifier)
102105 Screen .Feed -> FeedScreen (modifier)
103106 }
0 commit comments