Browse Source

Fix resume audio playqueue from widget

merge-requests/2329/head
Duncan McNamara 10 months ago
parent
commit
3c1b737b24
  1. 1
      application/tools/src/main/java/org/videolan/tools/Settings.kt
  2. 11
      application/vlc-android/src/org/videolan/vlc/PlaybackService.kt
  3. 3
      application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt

1
application/tools/src/main/java/org/videolan/tools/Settings.kt

@ -147,6 +147,7 @@ const val KEY_CURRENT_MEDIA_RESUME = "current_media_resume"
const val KEY_CURRENT_AUDIO_RESUME_TITLE = "key_current_audio_resume_title"
const val KEY_CURRENT_AUDIO_RESUME_ARTIST = "key_current_audio_resume_artist"
const val KEY_CURRENT_AUDIO_RESUME_THUMB = "key_current_audio_resume_thumb"
const val KEY_CURRENT_MEDIA_IS_AUDIO = "key_current_media_is_audio"
// AUDIO category
const val KEY_AUDIO_CURRENT_TAB = "key_audio_current_tab"

11
application/vlc-android/src/org/videolan/vlc/PlaybackService.kt

@ -147,6 +147,7 @@ import org.videolan.tools.KEY_ANDROID_AUTO_QUEUE_INFO_POS_VAL
import org.videolan.tools.KEY_ANDROID_AUTO_SUBTITLE_SCALE_VAL
import org.videolan.tools.KEY_ANDROID_AUTO_TITLE_SCALE_VAL
import org.videolan.tools.KEY_AUDIO_TASK_REMOVED
import org.videolan.tools.KEY_CURRENT_MEDIA_IS_AUDIO
import org.videolan.tools.KEY_ENABLE_HEADSET_DETECTION
import org.videolan.tools.KEY_ENABLE_PLAY_ON_HEADSET_INSERTION
import org.videolan.tools.KEY_METERED_CONNECTION
@ -1454,7 +1455,15 @@ class PlaybackService : MediaBrowserServiceCompat(), LifecycleOwner, CoroutineSc
if (!AndroidDevices.isAndroidTv) {
// If playback in background is enabled it should load the last media of any type
// not only audio
val playlistType = if (settings.getString(KEY_VIDEO_APP_SWITCH, "0") == "1") PLAYLIST_TYPE_ALL else PLAYLIST_TYPE_AUDIO
// If playback in background isn't enabled, then only audio should be played whether the
// last media played is audio or not
val videoPlaybackInBackground = settings.getString(KEY_VIDEO_APP_SWITCH, "0") == "1"
val lastMediaPlayedIsAudio = settings.getBoolean(KEY_CURRENT_MEDIA_IS_AUDIO, false)
val playlistType = if (lastMediaPlayedIsAudio || !videoPlaybackInBackground)
PLAYLIST_TYPE_AUDIO
else
PLAYLIST_TYPE_ALL
loadLastPlaylist(playlistType)
}
}

3
application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt

@ -54,6 +54,7 @@ import org.videolan.tools.KEY_CURRENT_AUDIO_RESUME_ARTIST
import org.videolan.tools.KEY_CURRENT_AUDIO_RESUME_THUMB
import org.videolan.tools.KEY_CURRENT_AUDIO_RESUME_TITLE
import org.videolan.tools.KEY_CURRENT_MEDIA
import org.videolan.tools.KEY_CURRENT_MEDIA_IS_AUDIO
import org.videolan.tools.KEY_CURRENT_MEDIA_RESUME
import org.videolan.tools.KEY_INCOGNITO
import org.videolan.tools.KEY_INCOGNITO_PLAYBACK_SPEED_AUDIO_GLOBAL_VALUE
@ -777,6 +778,8 @@ class PlaylistManager(val service: PlaybackService) : MediaWrapperList.EventList
if (settings.getBoolean(KEY_INCOGNITO, false)) return
val media = getCurrentMedia() ?: return
val isAudio = isAudioList() || forceVideo
settings.putSingle(KEY_CURRENT_MEDIA_IS_AUDIO, isAudio)
if (media.uri.scheme.isSchemeFD()) {
if (isAudio) {
settings.putSingle(KEY_CURRENT_AUDIO_RESUME_TITLE, "")

Loading…
Cancel
Save