From 09be701ada525e545c3d488d49ae51df972543bc Mon Sep 17 00:00:00 2001
From: Tristan Roux
Date: Thu, 28 Feb 2019 18:44:53 +0100
Subject: [PATCH] Solved queue reorder bugs.
---
Opus/Resources/Portable Class/ItemTouchCallback.cs | 3 ++-
Opus/Resources/Portable Class/QueueAdapter.cs | 6 +++++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/Opus/Resources/Portable Class/ItemTouchCallback.cs b/Opus/Resources/Portable Class/ItemTouchCallback.cs
index 67df8eb..5e170a1 100644
--- a/Opus/Resources/Portable Class/ItemTouchCallback.cs
+++ b/Opus/Resources/Portable Class/ItemTouchCallback.cs
@@ -64,7 +64,8 @@ namespace Opus.Resources.Portable_Class
if (alwaysAllowSwap && (target.AdapterPosition + 1 == ((QueueAdapter)adapter).ItemCount || target.AdapterPosition == 0))
return false;
- from = source.AdapterPosition;
+ if(from == -1)
+ from = source.AdapterPosition;
to = target.AdapterPosition;
adapter.ItemMoved(source.AdapterPosition, target.AdapterPosition);
return true;
diff --git a/Opus/Resources/Portable Class/QueueAdapter.cs b/Opus/Resources/Portable Class/QueueAdapter.cs
index f533a45..feda65c 100644
--- a/Opus/Resources/Portable Class/QueueAdapter.cs
+++ b/Opus/Resources/Portable Class/QueueAdapter.cs
@@ -375,15 +375,19 @@ namespace Opus.Resources.Portable_Class
fromPosition--;
toPosition--;
+ Console.WriteLine("&From: " + fromPosition + " To: " + toPosition + " CurrentID:" + MusicPlayer.CurrentID());
+
if (MusicPlayer.CurrentID() > fromPosition && MusicPlayer.CurrentID() <= toPosition)
MusicPlayer.currentID--;
else if (MusicPlayer.CurrentID() < fromPosition && MusicPlayer.CurrentID() >= toPosition)
MusicPlayer.currentID++;
- else if (MusicPlayer.currentID == fromPosition)
+ else if (MusicPlayer.CurrentID() == fromPosition)
MusicPlayer.currentID = toPosition;
+ Console.WriteLine("&Updated! From: " + fromPosition + " To: " + toPosition + " CurrentID:" + MusicPlayer.CurrentID());
+
if (MusicPlayer.UseCastPlayer)
{
int nextItemID = MusicPlayer.RemotePlayer.MediaQueue.ItemCount > toPosition ? MusicPlayer.RemotePlayer.MediaQueue.ItemIdAtIndex(toPosition + 1) : 0; //0 = InvalidItemID = end of the queue