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