diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/RenderVideoPlayer.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/RenderVideoPlayer.kt index b51e5727e..723899fd8 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/RenderVideoPlayer.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/RenderVideoPlayer.kt @@ -87,6 +87,7 @@ fun RenderVideoPlayer( videoModifier: Modifier, onDialog: (() -> Unit)? = null, controllerVisible: MutableState = remember { mutableStateOf(false) }, + hasBlurhash: Boolean = false, accountViewModel: AccountViewModel, ) { val containerSize = remember { mutableStateOf(IntSize.Zero) } @@ -123,6 +124,7 @@ fun RenderVideoPlayer( controllerState, mediaItem.src.waveformData, Modifier.fillMaxSize().align(Alignment.Center), + hasBlurhash = hasBlurhash, ) if (showControls) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/VideoView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/VideoView.kt index 20ddfc233..efb7cef5e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/VideoView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/VideoView.kt @@ -137,6 +137,7 @@ fun VideoView( nostrUriCallback = nostrUriCallback, automaticallyStartPlayback = automaticallyStartPlayback.value, onZoom = onDialog, + hasBlurhash = false, accountViewModel = accountViewModel, showControls = showControls, ) @@ -183,6 +184,7 @@ fun VideoView( nostrUriCallback = nostrUriCallback, automaticallyStartPlayback = automaticallyStartPlayback.value, onZoom = onDialog, + hasBlurhash = true, accountViewModel = accountViewModel, showControls = showControls, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/VideoViewInner.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/VideoViewInner.kt index f9e2ddb59..99f0a5556 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/VideoViewInner.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/VideoViewInner.kt @@ -49,6 +49,7 @@ fun VideoViewInner( automaticallyStartPlayback: Boolean, controllerVisible: MutableState = mutableStateOf(false), onZoom: (() -> Unit)? = null, + hasBlurhash: Boolean = false, accountViewModel: AccountViewModel, ) { // keeps a copy of the value to avoid recompositions here when the DEFAULT value changes @@ -82,6 +83,7 @@ fun VideoViewInner( videoModifier = videoModifier, controllerVisible = controllerVisible, onDialog = onZoom, + hasBlurhash = hasBlurhash, accountViewModel = accountViewModel, ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/wavefront/AudioPlayingAnimation.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/wavefront/AudioPlayingAnimation.kt index 0336e5519..28afe97b3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/wavefront/AudioPlayingAnimation.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/playback/composable/wavefront/AudioPlayingAnimation.kt @@ -33,14 +33,17 @@ import androidx.media3.common.Tracks import com.vitorpamplona.amethyst.service.playback.composable.MediaControllerState import com.vitorpamplona.amethyst.service.playback.composable.WaveformData -fun Tracks.isAudio() = groups.none { it.type == C.TRACK_TYPE_VIDEO } +fun Tracks.isAudio() = groups.isNotEmpty() && groups.none { it.type == C.TRACK_TYPE_VIDEO } @Composable fun AudioPlayingAnimation( controllerState: MediaControllerState, waveform: WaveformData?, modifier: Modifier = Modifier, + hasBlurhash: Boolean = false, ) { + if (hasBlurhash) return + var isAudio by remember { mutableStateOf(controllerState.controller.currentTracks.isAudio()) } DisposableEffect(controllerState.controller) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt index 1f3cd7faf..c6331c9f0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt @@ -568,6 +568,7 @@ private fun RenderImageOrVideo( nostrUriCallback = content.uri, automaticallyStartPlayback = true, controllerVisible = controllerVisible, + hasBlurhash = content.blurhash != null, accountViewModel = accountViewModel, ) } @@ -626,6 +627,7 @@ private fun RenderImageOrVideo( nostrUriCallback = content.uri, automaticallyStartPlayback = true, controllerVisible = controllerVisible, + hasBlurhash = content.blurhash != null, accountViewModel = accountViewModel, ) }