mirror of
https://github.com/zoriya/Opus.git
synced 2025-12-06 06:26:15 +00:00
Solving a bug with the remove from queue method.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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) =>
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user