Skip to content

Fix queue drag-and-drop being cancelled after one position - #169

Merged
paroj merged 2 commits into
edgefrom
devel
Oct 11, 2026
Merged

paroj merged 2 commits into
edgefrom
devel

Conversation

@paroj

@paroj paroj commented Oct 11, 2026

Copy link
Copy Markdown
Owner

DownloadService.swap() started broadcasting onSongsChanged() to all listeners during the Media3 port so the session would see queue moves. NowPlayingFragment answers that by clearing and refilling its list and calling notifyDataSetChanged(), which cancels the ItemTouchHelper drag that is still in progress.

Refresh only the Media3 session after a swap instead, as the UI list is already updated by the drag itself.

paroj added 2 commits October 11, 2026 21:13
DownloadService.swap() started broadcasting onSongsChanged() to all
listeners during the Media3 port so the session would see queue moves.
NowPlayingFragment answers that by clearing and refilling its list and
calling notifyDataSetChanged(), which cancels the ItemTouchHelper drag
that is still in progress.

Refresh only the Media3 session after a swap instead, as the UI list is
already updated by the drag itself.
unpinSong renames the pinned file to its .complete name and then updated
the media store row, but passed the new path as the source and the old
path as the target. The row is still stored under the old path, so the
update never matched and the media store kept pointing at the stale name.
Pass the old (saved) path first, consistent with DownloadFile.unpin.
@paroj
paroj merged commit 4544b7e into edge Oct 11, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant