[Android] Fix audio player jump when moving items
Nicolas Pomepuy
git at videolan.org
Fri Mar 13 09:28:45 UTC 2026
vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Fri Mar 13 08:13:00 2026 +0100| [f995322a0728e3b2743ebaa748f32d378976ca30] | committer: Duncan McNamara
Fix audio player jump when moving items
Fixes #3311
> https://code.videolan.org/videolan/vlc-android/commit/f995322a0728e3b2743ebaa748f32d378976ca30
---
.../vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt | 4 ++++
.../src/org/videolan/vlc/viewmodels/PlaylistModel.kt | 11 +++++++++--
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt b/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt
index edd7322e53..7c89eb6fec 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt
@@ -707,6 +707,10 @@ class AudioPlayer : Fragment(), PlaylistAdapter.IPlayer, TextWatcher, IAudioPlay
private fun shouldHidePlayProgress() = abRepeatAddMarker.visibility != View.GONE || areBookmarksVisible() || playlistModel.medias?.size ?: 0 < 2
override fun onSelectionSet(position: Int) {
+ if (playlistModel.lastActionWasEdit) {
+ playlistModel.lastActionWasEdit = false
+ return
+ }
binding.songsList.scrollToPosition(position)
}
diff --git a/application/vlc-android/src/org/videolan/vlc/viewmodels/PlaylistModel.kt b/application/vlc-android/src/org/videolan/vlc/viewmodels/PlaylistModel.kt
index 2ea1cc74f0..03b7c387a4 100644
--- a/application/vlc-android/src/org/videolan/vlc/viewmodels/PlaylistModel.kt
+++ b/application/vlc-android/src/org/videolan/vlc/viewmodels/PlaylistModel.kt
@@ -68,6 +68,7 @@ class PlaylistModel : ViewModel(), PlaybackService.Callback by EmptyPBSCallback
val connected : Boolean
get() = service !== null
var lastQuery: CharSequence? = null
+ var lastActionWasEdit = false
private val filter by lazy(LazyThreadSafetyMode.NONE) { PlaylistFilterDelegate(dataset) }
@@ -148,9 +149,15 @@ class PlaylistModel : ViewModel(), PlaybackService.Callback by EmptyPBSCallback
originalDataset!!.indexOf(dataset.get(position))
} else position
- fun remove(position: Int) = service?.remove(getOriginalPosition(position))
+ fun remove(position: Int) {
+ lastActionWasEdit = true
+ service?.remove(getOriginalPosition(position))
+ }
- fun move(from: Int, to: Int) = service?.moveItem(from, to)
+ fun move(from: Int, to: Int) {
+ lastActionWasEdit = true
+ service?.moveItem(from, to)
+ }
@MainThread
fun filter(query: CharSequence?) {
More information about the Android
mailing list