mirror of
https://github.com/zoriya/Opus.git
synced 2025-12-06 06:26:15 +00:00
Solving a bug with the queue state display.
This commit is contained in:
@@ -1280,12 +1280,11 @@ namespace Opus.Api.Services
|
||||
smallPlayer?.FindViewById<ImageButton>(Resource.Id.spPlay)?.SetImageResource(Resource.Drawable.Play);
|
||||
|
||||
MainActivity.instance.FindViewById<ImageButton>(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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,9 +37,9 @@
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
|
||||
<AndroidUseSharedRuntime>true</AndroidUseSharedRuntime>
|
||||
<AndroidLinkMode>SdkOnly</AndroidLinkMode>
|
||||
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
|
||||
<EmbedAssembliesIntoApk>false</EmbedAssembliesIntoApk>
|
||||
<AotAssemblies>false</AotAssemblies>
|
||||
<EnableLLVM>false</EnableLLVM>
|
||||
<BundleAssemblies>false</BundleAssemblies>
|
||||
|
||||
Reference in New Issue
Block a user