From 504612273289e03bf1b8bb61e6591114c5856a76 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Sat, 21 Sep 2024 19:51:37 +0200 Subject: [PATCH] make newplayer be able to open the Audio UI --- .../net/newpipe/newplayer/ui/NewPlayerUI.kt | 1 + .../ui/videoplayer/controller/Menu.kt | 25 +++++++++++++++---- new-player/src/main/res/values/strings.xml | 3 +-- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/new-player/src/main/java/net/newpipe/newplayer/ui/NewPlayerUI.kt b/new-player/src/main/java/net/newpipe/newplayer/ui/NewPlayerUI.kt index fd899da..bc6ea4e 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/ui/NewPlayerUI.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/ui/NewPlayerUI.kt @@ -207,6 +207,7 @@ fun PlaySurface( } +@OptIn(UnstableApi::class) @Preview(device = "spec:width=1080px,height=700px,dpi=440,orientation=landscape") @Composable fun PlayerUIPreviewEmbeded() { diff --git a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/controller/Menu.kt b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/controller/Menu.kt index a52dbd7..af9b76d 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/controller/Menu.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/controller/Menu.kt @@ -20,6 +20,7 @@ package net.newpipe.newplayer.ui.videoplayer.controller +import android.app.Activity import androidx.annotation.OptIn import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize @@ -28,6 +29,7 @@ import androidx.compose.material.icons.automirrored.filled.VolumeUp import androidx.compose.material.icons.filled.FitScreen import androidx.compose.material.icons.filled.Language import androidx.compose.material.icons.filled.MoreVert +import androidx.compose.material.icons.filled.MusicNote import androidx.compose.material.icons.filled.Share import androidx.compose.material.icons.filled.Subtitles import androidx.compose.material.icons.filled.Translate @@ -44,6 +46,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.layout.onPlaced +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview @@ -51,10 +54,13 @@ import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.dp import androidx.media3.common.util.UnstableApi import net.newpipe.newplayer.R +import net.newpipe.newplayer.model.EmbeddedUiConfig import net.newpipe.newplayer.model.NewPlayerUIState import net.newpipe.newplayer.model.NewPlayerViewModel import net.newpipe.newplayer.model.NewPlayerViewModelDummy +import net.newpipe.newplayer.model.UIModeState import net.newpipe.newplayer.ui.theme.VideoPlayerTheme +import net.newpipe.newplayer.utils.getEmbeddedUiConfig @OptIn(UnstableApi::class) @Composable @@ -67,6 +73,11 @@ fun DropDownMenu(viewModel: NewPlayerViewModel, uiState: NewPlayerUIState) { mutableStateOf(0.dp) } + val embeddedUiConfig = if (LocalContext.current is Activity) + getEmbeddedUiConfig(activity = LocalContext.current as Activity) + else + EmbeddedUiConfig.DUMMY + Box { IconButton(onClick = { showMainMenu = true @@ -85,7 +96,8 @@ fun DropDownMenu(viewModel: NewPlayerViewModel, uiState: NewPlayerUIState) { DropdownMenu(modifier = Modifier.align(Alignment.TopStart), offset = DpOffset(x = 0.dp, y = -offsetY), expanded = showMainMenu, - onDismissRequest = { showMainMenu = false + onDismissRequest = { + showMainMenu = false viewModel.dialogVisible(false) }) { DropdownMenuItem(text = { Text(stringResource(R.string.menu_item_open_in_browser)) }, @@ -104,12 +116,15 @@ fun DropDownMenu(viewModel: NewPlayerViewModel, uiState: NewPlayerUIState) { ) }, onClick = { /*TODO*/ showMainMenu = false }) - DropdownMenuItem(text = { Text(stringResource(R.string.mute)) }, leadingIcon = { + DropdownMenuItem(text = { Text(stringResource(R.string.audio_mode)) }, leadingIcon = { Icon( - imageVector = Icons.AutoMirrored.Filled.VolumeUp, - contentDescription = stringResource(R.string.mute) + imageVector = Icons.Filled.MusicNote, + contentDescription = stringResource(R.string.audio_mode) ) - }, onClick = { /*TODO*/ showMainMenu = false }) + }, onClick = { + viewModel.changeUiMode(UIModeState.FULLSCREEN_AUDIO, embeddedUiConfig) + showMainMenu = false + }) DropdownMenuItem(text = { Text(stringResource(R.string.menu_item_fit_screen)) }, leadingIcon = { Icon( diff --git a/new-player/src/main/res/values/strings.xml b/new-player/src/main/res/values/strings.xml index a21ed84..cede39f 100644 --- a/new-player/src/main/res/values/strings.xml +++ b/new-player/src/main/res/values/strings.xml @@ -23,8 +23,7 @@ Open in browser Share timestamp More settings - Mute - Unmute + Audio Mode Fit screen Subtitles Language