[Android] Prevent pausing the playback when using the resume app shortcut
Nicolas Pomepuy
git at videolan.org
Mon Feb 17 13:22:28 UTC 2025
vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Mon Feb 17 11:01:51 2025 +0100| [e7ab536fe973c737933d9d69bdde01a2cf7ac209] | committer: Nicolas Pomepuy
Prevent pausing the playback when using the resume app shortcut
Fixes #3150
> https://code.videolan.org/videolan/vlc-android/commit/e7ab536fe973c737933d9d69bdde01a2cf7ac209
---
.../src/main/java/org/videolan/resources/Constants.kt | 1 +
.../vlc-android/src/org/videolan/vlc/PlaybackService.kt | 12 +++++++++---
.../vlc-android/src/org/videolan/vlc/StartActivity.kt | 2 +-
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/application/resources/src/main/java/org/videolan/resources/Constants.kt b/application/resources/src/main/java/org/videolan/resources/Constants.kt
index 0f7812e368..4f5310d923 100644
--- a/application/resources/src/main/java/org/videolan/resources/Constants.kt
+++ b/application/resources/src/main/java/org/videolan/resources/Constants.kt
@@ -29,6 +29,7 @@ const val EXTRA_PARSE = "extra_parse"
const val EXTRA_TARGET = "extra_parse"
const val EXTRA_FOR_ESPRESSO = "extra_for_espresso"
const val EXTRA_REMOVE_DEVICE = "extra_remove_device"
+const val EXTRA_PLAY_ONLY = "extra_play_only"
//UI Navigation
const val ID_VIDEO = "video"
diff --git a/application/vlc-android/src/org/videolan/vlc/PlaybackService.kt b/application/vlc-android/src/org/videolan/vlc/PlaybackService.kt
index f9a609bdcb..0939cb400a 100644
--- a/application/vlc-android/src/org/videolan/vlc/PlaybackService.kt
+++ b/application/vlc-android/src/org/videolan/vlc/PlaybackService.kt
@@ -124,6 +124,7 @@ import org.videolan.resources.CUSTOM_ACTION_SHUFFLE
import org.videolan.resources.CUSTOM_ACTION_SPEED
import org.videolan.resources.DRIVING_MODE_APP_PKG
import org.videolan.resources.EXTRA_CUSTOM_ACTION_ID
+import org.videolan.resources.EXTRA_PLAY_ONLY
import org.videolan.resources.EXTRA_SEARCH_BUNDLE
import org.videolan.resources.EXTRA_SEEK_DELAY
import org.videolan.resources.PLAYBACK_SLOT_RESERVATION_SKIP_TO_NEXT
@@ -855,7 +856,10 @@ class PlaybackService : MediaBrowserServiceCompat(), LifecycleOwner, CoroutineSc
ACTION_REMOTE_PLAY,
ACTION_REMOTE_LAST_PLAYLIST -> {
if (playlistManager.hasCurrentMedia()) {
- if (isPlaying) pause()
+ if (intent.getBooleanExtra(EXTRA_PLAY_ONLY, false)) {
+ if (!isPlaying)
+ play()
+ } else if (isPlaying) pause()
else play()
} else loadLastAudioPlaylist()
}
@@ -2001,8 +2005,10 @@ class PlaybackService : MediaBrowserServiceCompat(), LifecycleOwner, CoroutineSc
context.launchForeground(serviceIntent)
}
- fun loadLastAudio(context: Context) {
- val i = Intent(ACTION_REMOTE_LAST_PLAYLIST, null, context, PlaybackService::class.java)
+ fun loadLastAudio(context: Context, playOnly: Boolean = false) {
+ val i = Intent(ACTION_REMOTE_LAST_PLAYLIST, null, context, PlaybackService::class.java).apply {
+ if (playOnly) putExtra(EXTRA_PLAY_ONLY, true)
+ }
context.launchForeground(i)
}
diff --git a/application/vlc-android/src/org/videolan/vlc/StartActivity.kt b/application/vlc-android/src/org/videolan/vlc/StartActivity.kt
index 4571b7dfa3..c7f7c9439a 100644
--- a/application/vlc-android/src/org/videolan/vlc/StartActivity.kt
+++ b/application/vlc-android/src/org/videolan/vlc/StartActivity.kt
@@ -231,7 +231,7 @@ class StartActivity : FragmentActivity() {
val target = idFromShortcut
val service = PlaybackService.instance
if (target == R.id.ml_menu_last_playlist) {
- PlaybackService.loadLastAudio(this)
+ PlaybackService.loadLastAudio(this, true)
startApplication(tv, firstRun, upgrade, R.id.nav_audio, removeOldDevices)
} else if (service != null && service.isInPiPMode.value == true) {
service.isInPiPMode.value = false
More information about the Android
mailing list