Add equalizer shortcut to PlayerView
This commit is contained in:
@@ -193,6 +193,8 @@ fun BaseMediaItemMenu(
|
||||
mediaItem: MediaItem,
|
||||
onDismiss: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onGoToEqualizer: (() -> Unit)? = null,
|
||||
onSetSleepTimer: (() -> Unit)? = null,
|
||||
onStartRadio: (() -> Unit)? = null,
|
||||
onPlaySingle: (() -> Unit)? = null,
|
||||
onPlayNext: (() -> Unit)? = null,
|
||||
@@ -211,6 +213,8 @@ fun BaseMediaItemMenu(
|
||||
MediaItemMenu(
|
||||
mediaItem = mediaItem,
|
||||
onDismiss = onDismiss,
|
||||
onGoToEqualizer = onGoToEqualizer,
|
||||
onSetSleepTimer = onSetSleepTimer,
|
||||
onStartRadio = onStartRadio,
|
||||
onPlayNext = onPlayNext,
|
||||
onPlaySingle = onPlaySingle,
|
||||
@@ -247,6 +251,8 @@ fun MediaItemMenu(
|
||||
mediaItem: MediaItem,
|
||||
onDismiss: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onGoToEqualizer: (() -> Unit)? = null,
|
||||
onSetSleepTimer: (() -> Unit)? = null,
|
||||
onStartRadio: (() -> Unit)? = null,
|
||||
onPlaySingle: (() -> Unit)? = null,
|
||||
onPlayNext: (() -> Unit)? = null,
|
||||
@@ -267,9 +273,7 @@ fun MediaItemMenu(
|
||||
|
||||
val viewPlaylistsRoute = rememberCreatePlaylistRoute()
|
||||
|
||||
Menu(
|
||||
modifier = modifier
|
||||
) {
|
||||
Menu(modifier = modifier) {
|
||||
RouteHandler(
|
||||
transitionSpec = {
|
||||
when (targetState.route) {
|
||||
@@ -345,6 +349,28 @@ fun MediaItemMenu(
|
||||
detectTapGestures { }
|
||||
}
|
||||
) {
|
||||
onGoToEqualizer?.let { onGoToEqualizer ->
|
||||
MenuEntry(
|
||||
icon = R.drawable.equalizer,
|
||||
text = "Equalizer",
|
||||
onClick = {
|
||||
onDismiss()
|
||||
onGoToEqualizer()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
onSetSleepTimer?.let { onSetSleepTimer ->
|
||||
MenuEntry(
|
||||
icon = R.drawable.time,
|
||||
text = "Sleep timer",
|
||||
onClick = {
|
||||
onDismiss()
|
||||
onSetSleepTimer()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
onStartRadio?.let { onStartRadio ->
|
||||
MenuEntry(
|
||||
icon = R.drawable.radio,
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
package it.vfsfitvnm.vimusic.ui.views
|
||||
|
||||
import android.content.Intent
|
||||
import android.media.audiofx.AudioEffect
|
||||
import android.text.format.DateUtils
|
||||
import android.text.format.Formatter
|
||||
import android.widget.Toast
|
||||
import androidx.activity.compose.LocalActivityResultRegistryOwner
|
||||
import androidx.activity.compose.rememberLauncherForActivityResult
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.compose.animation.*
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
@@ -41,8 +47,8 @@ import it.vfsfitvnm.vimusic.enums.ThumbnailRoundness
|
||||
import it.vfsfitvnm.vimusic.models.Song
|
||||
import it.vfsfitvnm.vimusic.query
|
||||
import it.vfsfitvnm.vimusic.ui.components.*
|
||||
import it.vfsfitvnm.vimusic.ui.components.themed.BaseMediaItemMenu
|
||||
import it.vfsfitvnm.vimusic.ui.components.themed.LoadingOrError
|
||||
import it.vfsfitvnm.vimusic.ui.components.themed.QueuedMediaItemMenu
|
||||
import it.vfsfitvnm.vimusic.ui.styling.*
|
||||
import it.vfsfitvnm.vimusic.utils.*
|
||||
import it.vfsfitvnm.youtubemusic.YouTube
|
||||
@@ -201,11 +207,27 @@ fun PlayerView(
|
||||
modifier = Modifier
|
||||
.clickable {
|
||||
menuState.display {
|
||||
QueuedMediaItemMenu(
|
||||
val resultRegistryOwner = LocalActivityResultRegistryOwner.current
|
||||
|
||||
BaseMediaItemMenu(
|
||||
mediaItem = playerState.mediaItem,
|
||||
indexInQueue = null,
|
||||
onGoToEqualizer = {
|
||||
val intent = Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL).apply {
|
||||
putExtra(AudioEffect.EXTRA_AUDIO_SESSION, player.audioSessionId)
|
||||
putExtra(AudioEffect.EXTRA_PACKAGE_NAME, context.packageName)
|
||||
putExtra(AudioEffect.EXTRA_CONTENT_TYPE, AudioEffect.CONTENT_TYPE_MUSIC)
|
||||
}
|
||||
|
||||
if (intent.resolveActivity(context.packageManager) != null) {
|
||||
val contract = ActivityResultContracts.StartActivityForResult()
|
||||
|
||||
resultRegistryOwner?.activityResultRegistry?.register("", contract) {}?.launch(intent)
|
||||
} else {
|
||||
Toast.makeText(context, "No equalizer app found!", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
},
|
||||
onDismiss = menuState::hide,
|
||||
onGlobalRouteEmitted = layoutState.collapse
|
||||
onGlobalRouteEmitted = layoutState.collapse,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user