diff --git a/Opus/Code/Api/Services/MusicPlayer.cs b/Opus/Code/Api/Services/MusicPlayer.cs index fe2014d..02578d2 100644 --- a/Opus/Code/Api/Services/MusicPlayer.cs +++ b/Opus/Code/Api/Services/MusicPlayer.cs @@ -1280,12 +1280,11 @@ namespace Opus.Api.Services smallPlayer?.FindViewById(Resource.Id.spPlay)?.SetImageResource(Resource.Drawable.Play); MainActivity.instance.FindViewById(Resource.Id.playButton)?.SetImageResource(Resource.Drawable.Play); + isRunning = false; Queue.instance?.RefreshCurrent(); if (!UseCastPlayer && player != null && isRunning) { - isRunning = false; - Intent tmpPauseIntent = new Intent(Application.Context, typeof(MusicPlayer)); tmpPauseIntent.SetAction("Pause"); PendingIntent pauseIntent = PendingIntent.GetService(Application.Context, 0, tmpPauseIntent, PendingIntentFlags.UpdateCurrent); @@ -1310,10 +1309,7 @@ namespace Opus.Api.Services } } else if(UseCastPlayer && RemotePlayer != null && isRunning) - { - isRunning = false; RemotePlayer.Pause(); - } SaveTimer(CurrentPosition); } diff --git a/Opus/Code/UI/Fragments/Queue.cs b/Opus/Code/UI/Fragments/Queue.cs index 6b715cc..839b054 100644 --- a/Opus/Code/UI/Fragments/Queue.cs +++ b/Opus/Code/UI/Fragments/Queue.cs @@ -103,30 +103,27 @@ public class Queue : Fragment, RecyclerView.IOnItemTouchListener, PopupMenu.IOnM public void RefreshCurrent() { + System.Console.WriteLine("&Queue current refreshing, isPlaying: " + MusicPlayer.isRunning); ListView.InvalidateItemDecorations(); int first = ((LinearLayoutManager)ListView.GetLayoutManager()).FindFirstVisibleItemPosition(); int last = ((LinearLayoutManager)ListView.GetLayoutManager()).FindLastVisibleItemPosition(); for (int i = first; i <= last; i++) { - if(i > 0 && MusicPlayer.queue.Count > i - 1) + if (ListView.GetChildViewHolder(((LinearLayoutManager)ListView.GetLayoutManager()).FindViewByPosition(i)) is SongHolder holder) { - Song song = MusicPlayer.queue[i - 1]; - if (ListView.GetChildViewHolder(((LinearLayoutManager)ListView.GetLayoutManager()).FindViewByPosition(i)) is SongHolder holder) + if (MusicPlayer.CurrentID() == i - 1) //The -1 is because the first displayed item of the queue is a header. { - 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)); + 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; - } - else - holder.status.Visibility = ViewStates.Gone; + 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; } } } diff --git a/Opus/Opus.csproj b/Opus/Opus.csproj index ac1b7a2..2fa8f1e 100644 --- a/Opus/Opus.csproj +++ b/Opus/Opus.csproj @@ -37,9 +37,9 @@ DEBUG;TRACE prompt 4 - false + true SdkOnly - true + false false false false