mirror of
https://github.com/zoriya/Opus.git
synced 2026-06-03 22:40:52 +00:00
Solving the bug with the queue switch to an autoplay item.
This commit is contained in:
@@ -1064,7 +1064,7 @@ namespace Opus.Api.Services
|
|||||||
Player.instance.Buffering();
|
Player.instance.Buffering();
|
||||||
if (autoPlay.Count > 0)
|
if (autoPlay.Count > 0)
|
||||||
{
|
{
|
||||||
queue.Add(autoPlay[0]);
|
PlayLastInQueue(autoPlay[0]);
|
||||||
UpdateQueueItemDB(queue.Last(), queue.Count - 1);
|
UpdateQueueItemDB(queue.Last(), queue.Count - 1);
|
||||||
autoPlay.RemoveAt(0);
|
autoPlay.RemoveAt(0);
|
||||||
|
|
||||||
@@ -1100,6 +1100,7 @@ namespace Opus.Api.Services
|
|||||||
public async void SwitchQueue(int position, bool showPlayer = false, bool StartFromOldPosition = false)
|
public async void SwitchQueue(int position, bool showPlayer = false, bool StartFromOldPosition = false)
|
||||||
{
|
{
|
||||||
Song song = await GetItem(position);
|
Song song = await GetItem(position);
|
||||||
|
Console.WriteLine("&Song is parsed: " + song.IsParsed);
|
||||||
|
|
||||||
if(showPlayer)
|
if(showPlayer)
|
||||||
MainActivity.instance.ShowPlayer();
|
MainActivity.instance.ShowPlayer();
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ public class Queue : Fragment, RecyclerView.IOnItemTouchListener, PopupMenu.IOnM
|
|||||||
|
|
||||||
public void RefreshCurrent()
|
public void RefreshCurrent()
|
||||||
{
|
{
|
||||||
|
System.Console.WriteLine("&Queue Count: " + MusicPlayer.queue.Count + " Adapter Count: " + adapter.ItemCount);
|
||||||
ListView.InvalidateItemDecorations();
|
ListView.InvalidateItemDecorations();
|
||||||
|
|
||||||
int first = ((LinearLayoutManager)ListView.GetLayoutManager()).FindFirstVisibleItemPosition();
|
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)
|
if(i > 0 && MusicPlayer.queue.Count > i - 1)
|
||||||
{
|
{
|
||||||
|
System.Console.WriteLine("&i: " + i);
|
||||||
Song song = MusicPlayer.queue[i - 1];
|
Song song = MusicPlayer.queue[i - 1];
|
||||||
SongHolder holder = (SongHolder)ListView.GetChildViewHolder(((LinearLayoutManager)ListView.GetLayoutManager()).FindViewByPosition(i));
|
SongHolder holder = ListView.GetChildViewHolder(((LinearLayoutManager)ListView.GetLayoutManager()).FindViewByPosition(i)) as SongHolder;
|
||||||
if (MusicPlayer.CurrentID() > -1 && MusicPlayer.queue[MusicPlayer.CurrentID()] == song)
|
if(holder != null)
|
||||||
{
|
{
|
||||||
holder.status.Visibility = ViewStates.Visible;
|
if (MusicPlayer.CurrentID() > -1 && MusicPlayer.queue[MusicPlayer.CurrentID()] == song)
|
||||||
holder.status.SetTextColor(MusicPlayer.isRunning ? Color.Argb(255, 244, 81, 30) : Color.Argb(255, 66, 165, 245));
|
{
|
||||||
|
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);
|
string status = MusicPlayer.isRunning ? GetString(Resource.String.playing) : GetString(Resource.String.paused);
|
||||||
SpannableString statusText = new SpannableString(status);
|
SpannableString statusText = new SpannableString(status);
|
||||||
statusText.SetSpan(new BackgroundColorSpan(Color.ParseColor("#8C000000")), 0, status.Length, SpanTypes.InclusiveInclusive);
|
statusText.SetSpan(new BackgroundColorSpan(Color.ParseColor("#8C000000")), 0, status.Length, SpanTypes.InclusiveInclusive);
|
||||||
holder.status.TextFormatted = statusText;
|
holder.status.TextFormatted = statusText;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
holder.status.Visibility = ViewStates.Gone;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
holder.status.Visibility = ViewStates.Gone;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user