[Android] Listen to playback changes in the PlaybackSpeedDialog
Nicolas Pomepuy
git at videolan.org
Fri Feb 14 13:01:41 UTC 2025
vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Fri Feb 14 09:05:23 2025 +0100| [3b8d98352e2722ce83f4f438f032fba863c64a61] | committer: Duncan McNamara
Listen to playback changes in the PlaybackSpeedDialog
> https://code.videolan.org/videolan/vlc-android/commit/3b8d98352e2722ce83f4f438f032fba863c64a61
---
.../vlc/gui/dialogs/PlaybackSpeedDialog.kt | 30 ++++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/dialogs/PlaybackSpeedDialog.kt b/application/vlc-android/src/org/videolan/vlc/gui/dialogs/PlaybackSpeedDialog.kt
index 48334cd508..fcc678af71 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/dialogs/PlaybackSpeedDialog.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/dialogs/PlaybackSpeedDialog.kt
@@ -32,6 +32,8 @@ import android.widget.SeekBar
import androidx.core.content.edit
import androidx.lifecycle.lifecycleScope
import kotlinx.coroutines.flow.onEach
+import org.videolan.libvlc.MediaPlayer
+import org.videolan.libvlc.interfaces.IMedia
import org.videolan.medialibrary.interfaces.media.MediaWrapper
import org.videolan.tools.KEY_PLAYBACK_SPEED_AUDIO_GLOBAL
import org.videolan.tools.KEY_PLAYBACK_SPEED_AUDIO_GLOBAL_VALUE
@@ -51,7 +53,7 @@ import kotlin.math.ln
import kotlin.math.pow
-class PlaybackSpeedDialog : VLCBottomSheetDialogFragment() {
+class PlaybackSpeedDialog : VLCBottomSheetDialogFragment(), PlaybackService.Callback {
private lateinit var settings: SharedPreferences
private val forVideo: Boolean
@@ -245,12 +247,25 @@ class PlaybackSpeedDialog : VLCBottomSheetDialogFragment() {
}
+ override fun onDestroy() {
+ this.playbackService?.apply {
+ removeCallback(this at PlaybackSpeedDialog)
+ }
+ super.onDestroy()
+ }
+
private fun onServiceChanged(service: PlaybackService?) {
if (service != null) {
playbackService = service
+ playbackService!!.addCallback(this)
setRateProgress()
- } else
+ } else {
+ this.playbackService?.apply {
+ removeCallback(this at PlaybackSpeedDialog)
+ }
playbackService = null
+ dismiss()
+ }
}
override fun getDefaultState(): Int {
@@ -263,6 +278,17 @@ class PlaybackSpeedDialog : VLCBottomSheetDialogFragment() {
return true
}
+ override fun update() {
+ if (playbackService?.playlistManager?.hasCurrentMedia() == true)
+ setRateProgress()
+ else
+ dismiss()
+ }
+
+ override fun onMediaEvent(event: IMedia.Event) { }
+
+ override fun onMediaPlayerEvent(event: MediaPlayer.Event) { }
+
companion object {
const val TAG = "VLC/PlaybackSpeedDialog"
More information about the Android
mailing list