Solving a bug with the remove from queue method.

This commit is contained in:
Tristan Roux
2019-04-16 22:20:58 +02:00
parent c9669dba15
commit b35c306fbf
3 changed files with 8 additions and 17 deletions

View File

@@ -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)

View File

@@ -210,7 +210,7 @@ public class Queue : Fragment, RecyclerView.IOnItemTouchListener, PopupMenu.IOnM
List<BottomSheetAction> actions = new List<BottomSheetAction>
{
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();

View File

@@ -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) =>
{