diff --git a/new-player/src/main/java/net/newpipe/newplayer/ui/audioplayer/AudioPlayerEmbeddedUI.kt b/new-player/src/main/java/net/newpipe/newplayer/ui/audioplayer/AudioPlayerEmbeddedUI.kt index a223e22..2abdf28 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/ui/audioplayer/AudioPlayerEmbeddedUI.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/ui/audioplayer/AudioPlayerEmbeddedUI.kt @@ -70,7 +70,7 @@ fun AudioPlayerEmbeddedUI(viewModel: NewPlayerViewModel, uiState: NewPlayerUISta else EmbeddedUiConfig.DUMMY - Box(modifier = Modifier.fillMaxSize()) { + Box(modifier = Modifier.wrapContentSize()) { Thumbnail( modifier = Modifier.fillMaxWidth(), thumbnail = uiState.currentlyPlaying?.mediaMetadata?.artworkUri, @@ -139,18 +139,25 @@ fun AudioPlayerEmbeddedUI(viewModel: NewPlayerViewModel, uiState: NewPlayerUISta .align(Alignment.BottomStart) .fillMaxWidth(), progress = { - uiState.playbackPositionInMs.toFloat() / uiState.durationInMs.toFloat() + val duration = if (uiState.durationInMs == 0L) { + 0.000000001f + } else { + uiState.durationInMs.toFloat() + } + + (uiState.playbackPositionInMs.toFloat() / duration) }) - Surface(modifier = Modifier - .fillMaxSize() - .clickable { - viewModel.changeUiMode( - UIModeState.FULLSCREEN_AUDIO, - embeddedUiConfig = embeddedUIConfig - ) - }, color = Color.Transparent + Surface( + modifier = Modifier + .matchParentSize() + .clickable { + viewModel.changeUiMode( + UIModeState.FULLSCREEN_AUDIO, + embeddedUiConfig = embeddedUIConfig + ) + }, color = Color.Transparent ) { } @@ -158,7 +165,7 @@ fun AudioPlayerEmbeddedUI(viewModel: NewPlayerViewModel, uiState: NewPlayerUISta } @OptIn(UnstableApi::class) -@Preview(device = "spec:width=1080px,height=600px,dpi=440,orientation=landscape") +@Preview(device = "spec:width=1080px,height=1080px,dpi=440,orientation=landscape") @Composable fun AuidioPlayerEmbeddedPreview() { VideoPlayerTheme { diff --git a/new-player/src/main/java/net/newpipe/newplayer/ui/audioplayer/AudioPlayerUI.kt b/new-player/src/main/java/net/newpipe/newplayer/ui/audioplayer/AudioPlayerUI.kt index eacbbc7..265d1bc 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/ui/audioplayer/AudioPlayerUI.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/ui/audioplayer/AudioPlayerUI.kt @@ -38,6 +38,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.windowInsetsPadding +import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults @@ -88,7 +89,7 @@ fun AudioPlayerUI(viewModel: NewPlayerViewModel, uiState: NewPlayerUIState, isLa Box( modifier = Modifier - .fillMaxSize() + .wrapContentSize() .background(color = MaterialTheme.colorScheme.background) ) { AnimatedVisibility( @@ -363,4 +364,17 @@ fun AudioPlayerUILandscapePreview() { isLandScape = true ) } +} + +@OptIn(UnstableApi::class) +@Preview(device = "spec:parent=pixel_6,orientation=portrait", showSystemUi = true) +@Composable +fun AudioPlayerUIEmbeddedPreview() { + VideoPlayerTheme { + AudioPlayerUI( + viewModel = NewPlayerViewModelDummy(), + uiState = NewPlayerUIState.DUMMY.copy(uiMode = UIModeState.EMBEDDED_AUDIO), + isLandScape = false + ) + } } \ No newline at end of file diff --git a/new-player/src/main/java/net/newpipe/newplayer/ui/theme/Color.kt b/new-player/src/main/java/net/newpipe/newplayer/ui/theme/Color.kt index 6fb8da3..7a8389c 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/ui/theme/Color.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/ui/theme/Color.kt @@ -110,7 +110,7 @@ fun AudioPlayerUIColorPreview() { AudioPlayerUI( viewModel = NewPlayerViewModelDummy(), uiState = NewPlayerUIState.DUMMY.copy( - uiMode = UIModeState.EMBEDDED_VIDEO_CONTROLLER_UI, + uiMode = UIModeState.FULLSCREEN_AUDIO, playing = true, seekerPosition = 0.3f, isLoading = false,