diff --git a/Opus/Resources/Portable Class/MusicPlayer.cs b/Opus/Resources/Portable Class/MusicPlayer.cs index 9c23511..1615119 100644 --- a/Opus/Resources/Portable Class/MusicPlayer.cs +++ b/Opus/Resources/Portable Class/MusicPlayer.cs @@ -918,7 +918,9 @@ namespace Opus.Resources.Portable_Class public static void RemoveFromQueue(int position) { - if (CurrentID() == position) + if (CurrentID() > position) + currentID--; + else if (CurrentID() == position) { if (position > 0) currentID--; @@ -932,6 +934,7 @@ namespace Opus.Resources.Portable_Class Queue.instance?.RefreshCurrent(); } + SaveQueueSlot(); queue.RemoveAt(position); if (queue.Count == 0) @@ -948,6 +951,8 @@ namespace Opus.Resources.Portable_Class { Home.instance?.NotifyQueueRemoved(position); Queue.instance?.NotifyItemRemoved(position); + if (Queue.instance != null && queue.Count - position < 3) + Queue.instance?.RefreshAP(); } if (UseCastPlayer) diff --git a/Opus/Resources/Portable Class/Queue.cs b/Opus/Resources/Portable Class/Queue.cs index 3f7e1b2..43f973b 100644 --- a/Opus/Resources/Portable Class/Queue.cs +++ b/Opus/Resources/Portable Class/Queue.cs @@ -210,7 +210,7 @@ public class Queue : Fragment, RecyclerView.IOnItemTouchListener, PopupMenu.IOnM List actions = new List { new BottomSheetAction(Resource.Drawable.Play, Resources.GetString(Resource.String.play), (sender, eventArg) => { ListView_ItemClick(null, position); bottomSheet.Dismiss(); }), - new BottomSheetAction(Resource.Drawable.Close, Resources.GetString(Resource.String.remove_from_queue), (sender, eventArg) => { RemoveFromQueue(position); bottomSheet.Dismiss(); }), + new BottomSheetAction(Resource.Drawable.Close, Resources.GetString(Resource.String.remove_from_queue), (sender, eventArg) => { MusicPlayer.RemoveFromQueue(position); bottomSheet.Dismiss(); }), new BottomSheetAction(Resource.Drawable.PlaylistAdd, Resources.GetString(Resource.String.add_to_playlist), (sender, eventArg) => { Browse.GetPlaylist(item); bottomSheet.Dismiss(); }) }; @@ -266,20 +266,6 @@ public class Queue : Fragment, RecyclerView.IOnItemTouchListener, PopupMenu.IOnM MusicPlayer.InsertToQueue(position, item); } - public static void RemoveFromQueue(int position) - { - if (MusicPlayer.CurrentID() > position) - { - MusicPlayer.currentID--; - MusicPlayer.SaveQueueSlot(); - } - - MusicPlayer.RemoveFromQueue(position); - - if (instance != null && instance.adapter.ItemCount - position < 4) - instance.RefreshAP(); - } - public override void OnResume() { base.OnResume(); diff --git a/Opus/Resources/Portable Class/QueueAdapter.cs b/Opus/Resources/Portable Class/QueueAdapter.cs index f132369..7ab5552 100644 --- a/Opus/Resources/Portable Class/QueueAdapter.cs +++ b/Opus/Resources/Portable Class/QueueAdapter.cs @@ -453,7 +453,7 @@ namespace Opus.Resources.Portable_Class position--; Song song = MusicPlayer.queue[position]; - Queue.RemoveFromQueue(position); + MusicPlayer.RemoveFromQueue(position); Snackbar snackbar = Snackbar.Make(Player.instance.View, (song.Title.Length > 20 ? song.Title.Substring(0, 17) + "..." : song.Title) + Queue.instance.GetString(Resource.String.removed_from_queue), Snackbar.LengthShort) .SetAction(Queue.instance.GetString(Resource.String.undo), (view) => {