Solving the bug with the queue switch to an autoplay item.

This commit is contained in:
Tristan Roux
2019-04-28 15:20:55 +02:00
parent b0c3849d6b
commit 875ab2bf21
2 changed files with 17 additions and 11 deletions
+2 -1
View File
@@ -1064,7 +1064,7 @@ namespace Opus.Api.Services
Player.instance.Buffering();
if (autoPlay.Count > 0)
{
queue.Add(autoPlay[0]);
PlayLastInQueue(autoPlay[0]);
UpdateQueueItemDB(queue.Last(), queue.Count - 1);
autoPlay.RemoveAt(0);
@@ -1100,6 +1100,7 @@ namespace Opus.Api.Services
public async void SwitchQueue(int position, bool showPlayer = false, bool StartFromOldPosition = false)
{
Song song = await GetItem(position);
Console.WriteLine("&Song is parsed: " + song.IsParsed);
if(showPlayer)
MainActivity.instance.ShowPlayer();
+15 -10
View File
@@ -103,6 +103,7 @@ public class Queue : Fragment, RecyclerView.IOnItemTouchListener, PopupMenu.IOnM
public void RefreshCurrent()
{
System.Console.WriteLine("&Queue Count: " + MusicPlayer.queue.Count + " Adapter Count: " + adapter.ItemCount);
ListView.InvalidateItemDecorations();
int first = ((LinearLayoutManager)ListView.GetLayoutManager()).FindFirstVisibleItemPosition();
@@ -111,20 +112,24 @@ public class Queue : Fragment, RecyclerView.IOnItemTouchListener, PopupMenu.IOnM
{
if(i > 0 && MusicPlayer.queue.Count > i - 1)
{
System.Console.WriteLine("&i: " + i);
Song song = MusicPlayer.queue[i - 1];
SongHolder holder = (SongHolder)ListView.GetChildViewHolder(((LinearLayoutManager)ListView.GetLayoutManager()).FindViewByPosition(i));
if (MusicPlayer.CurrentID() > -1 && MusicPlayer.queue[MusicPlayer.CurrentID()] == song)
SongHolder holder = ListView.GetChildViewHolder(((LinearLayoutManager)ListView.GetLayoutManager()).FindViewByPosition(i)) as SongHolder;
if(holder != null)
{
holder.status.Visibility = ViewStates.Visible;
holder.status.SetTextColor(MusicPlayer.isRunning ? Color.Argb(255, 244, 81, 30) : Color.Argb(255, 66, 165, 245));
if (MusicPlayer.CurrentID() > -1 && MusicPlayer.queue[MusicPlayer.CurrentID()] == song)
{
holder.status.Visibility = ViewStates.Visible;
holder.status.SetTextColor(MusicPlayer.isRunning ? Color.Argb(255, 244, 81, 30) : Color.Argb(255, 66, 165, 245));
string status = MusicPlayer.isRunning ? GetString(Resource.String.playing) : GetString(Resource.String.paused);
SpannableString statusText = new SpannableString(status);
statusText.SetSpan(new BackgroundColorSpan(Color.ParseColor("#8C000000")), 0, status.Length, SpanTypes.InclusiveInclusive);
holder.status.TextFormatted = statusText;
string status = MusicPlayer.isRunning ? GetString(Resource.String.playing) : GetString(Resource.String.paused);
SpannableString statusText = new SpannableString(status);
statusText.SetSpan(new BackgroundColorSpan(Color.ParseColor("#8C000000")), 0, status.Length, SpanTypes.InclusiveInclusive);
holder.status.TextFormatted = statusText;
}
else
holder.status.Visibility = ViewStates.Gone;
}
else
holder.status.Visibility = ViewStates.Gone;
}
}
}