Solving bugs, reworking navigation bar style and working on the new repeat button.

This commit is contained in:
Tristan Roux
2019-04-16 21:06:09 +02:00
parent 5e127cfd08
commit 89af43df9b
5 changed files with 69 additions and 53 deletions

View File

@@ -539,8 +539,6 @@ namespace Opus.Resources.Portable_Class
}
}
Player.instance?.RefreshPlayer();
if (!song.IsLiveStream)
song.ExpireDate = mediaStreamInfo.ValidUntil;
@@ -1024,6 +1022,29 @@ namespace Opus.Resources.Portable_Class
SwitchQueue(CurrentID() - 1);
}
public static void Repeat()
{
repeat = !repeat;
if (UseCastPlayer)
RemotePlayer.QueueSetRepeatMode(repeat ? 1 : 0, null);
if (repeat)
{
Queue.instance?.NotifyItemChanged(-1, "Repeat");
Player.instance?.Repeat(true);
useAutoPlay = false;
Queue.instance?.NotifyItemChanged(queue.Count, "UseAutoplay");
}
else
{
Queue.instance?.NotifyItemChanged(-1, "Repeat");
Player.instance?.Repeat(false);
useAutoPlay = true;
Queue.instance?.NotifyItemChanged(queue.Count, "UseAutoplay");
}
}
public void PlayNext()
{
Player.instance.playNext = true;
@@ -1095,6 +1116,7 @@ namespace Opus.Resources.Portable_Class
{
currentID = position;
Queue.instance?.RefreshCurrent();
Player.instance?.RefreshPlayer();
}
else
Player.instance?.Ready(); //Remove player's loading bar since we'll not load this song

View File

@@ -57,7 +57,7 @@ namespace Opus
view.FindViewById<ImageButton>(Resource.Id.playButton).Click += Play_Click;
view.FindViewById<ImageButton>(Resource.Id.nextButton).Click += Next_Click;
view.FindViewById<ImageButton>(Resource.Id.moreButton).Click += More;
view.FindViewById<ImageButton>(Resource.Id.repeat).Click += Repeat;
view.FindViewById<ImageButton>(Resource.Id.repeat).Click += (sender, e) => { MusicPlayer.Repeat(); };
view.FindViewById<ImageButton>(Resource.Id.fav).Click += Fav;
}
@@ -366,25 +366,12 @@ namespace Opus
MainActivity.instance.StartService(intent);
}
private void Repeat(object sender, EventArgs e)
public void Repeat(bool repeat)
{
MusicPlayer.repeat = !MusicPlayer.repeat;
if (MusicPlayer.UseCastPlayer)
MusicPlayer.RemotePlayer.QueueSetRepeatMode(MusicPlayer.repeat ? 1 : 0, null);
if (MusicPlayer.repeat)
{
MainActivity.instance.FindViewById<ImageButton>(Resource.Id.repeat).SetColorFilter(Color.Argb(255, 21, 183, 237), PorterDuff.Mode.Multiply);
MusicPlayer.useAutoPlay = false;
Queue.instance.NotifyItemChanged(MusicPlayer.queue.Count, "UseAutoplay");
}
if(repeat)
MainActivity.instance.FindViewById<ImageButton>(Resource.Id.repeat)?.SetColorFilter(Color.Argb(255, 21, 183, 237), PorterDuff.Mode.Multiply);
else
{
MainActivity.instance.FindViewById<ImageButton>(Resource.Id.repeat).ClearColorFilter();
MusicPlayer.useAutoPlay = true;
Queue.instance.NotifyItemChanged(MusicPlayer.queue.Count, "UseAutoplay");
}
MainActivity.instance?.FindViewById<ImageButton>(Resource.Id.repeat)?.ClearColorFilter();
}
private void Fav(object sender, EventArgs e)

View File

@@ -43,22 +43,35 @@ namespace Opus.Resources.Portable_Class
Finish();
else if (DownloadFragment.instance != null)
{
ISharedPreferences prefManager = PreferenceManager.GetDefaultSharedPreferences(this);
ISharedPreferencesEditor editor = prefManager.Edit();
editor.PutString("downloadPath", DownloadFragment.instance.path);
editor.Apply();
Preference downloadPref = PreferencesFragment.instance.PreferenceScreen.FindPreference("downloadPath");
downloadPref.Summary = DownloadFragment.instance.path ?? Environment.GetExternalStoragePublicDirectory(Environment.DirectoryMusic).ToString();
PreferencesFragment.instance.path = DownloadFragment.instance.path;
DownloadFragment.instance = null;
SupportFragmentManager.PopBackStack();
DownloadFolderBack();
}
};
SupportFragmentManager.BeginTransaction().Replace(Resource.Id.PreferenceFragment, new PreferencesFragment()).Commit();
}
public override void OnBackPressed()
{
if (DownloadFragment.instance != null)
DownloadFolderBack();
else
base.OnBackPressed();
}
private void DownloadFolderBack()
{
ISharedPreferences prefManager = PreferenceManager.GetDefaultSharedPreferences(this);
ISharedPreferencesEditor editor = prefManager.Edit();
editor.PutString("downloadPath", DownloadFragment.instance.path);
editor.Apply();
Preference downloadPref = PreferencesFragment.instance.PreferenceScreen.FindPreference("downloadPath");
downloadPref.Summary = DownloadFragment.instance.path ?? Environment.GetExternalStoragePublicDirectory(Environment.DirectoryMusic).ToString();
PreferencesFragment.instance.path = DownloadFragment.instance.path;
DownloadFragment.instance = null;
SupportFragmentManager.PopBackStack();
}
protected override void OnStop()
{
base.OnStop();

View File

@@ -42,29 +42,15 @@ namespace Opus.Resources.Portable_Class
MainActivity.instance.StartService(intent);
};
}
if (MusicPlayer.repeat)
holder.Repeat.SetColorFilter(Color.Argb(255, 21, 183, 237), PorterDuff.Mode.Multiply);
else
holder.Repeat.ClearColorFilter();
if (!holder.Repeat.HasOnClickListeners)
{
holder.Repeat.Click += (sender, e) =>
{
MusicPlayer.repeat = !MusicPlayer.repeat;
holder.Repeat.Click += (sender, e) => { MusicPlayer.Repeat(); };
if (MusicPlayer.UseCastPlayer)
MusicPlayer.RemotePlayer.QueueSetRepeatMode(MusicPlayer.repeat ? 1 : 0, null);
if (MusicPlayer.repeat)
{
holder.Repeat.SetColorFilter(Color.Argb(255, 21, 183, 237), PorterDuff.Mode.Multiply);
MusicPlayer.useAutoPlay = false;
NotifyItemChanged(ItemCount - 1, "UseAutoplay");
}
else
{
holder.Repeat.ClearColorFilter();
MusicPlayer.useAutoPlay = true;
NotifyItemChanged(ItemCount - 1, "UseAutoplay");
}
};
}
if (!holder.More.HasOnClickListeners)
{
holder.More.Click += (sender, e) =>
@@ -263,7 +249,16 @@ namespace Opus.Resources.Portable_Class
{
if (payloads.Count > 0)
{
if(payloads[0].ToString() == "UseAutoplay")
if (payloads[0].ToString() == "Repeat")
{
QueueHeader holder = (QueueHeader)viewHolder;
if (MusicPlayer.repeat)
holder.Repeat.SetColorFilter(Color.Argb(255, 21, 183, 237), PorterDuff.Mode.Multiply);
else
holder.Repeat.ClearColorFilter();
}
else if (payloads[0].ToString() == "UseAutoplay")
{
QueueFooter holder = (QueueFooter)viewHolder;
holder.SwitchButton.Checked = MusicPlayer.useAutoPlay;

View File

@@ -8,7 +8,6 @@
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowContentTransitions">true</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:navigationBarColor">#ffffff</item>
<item name="android:dropDownListViewStyle">@style/LightDropDown</item>
<item name="preferenceTheme">@style/LightPreferences</item>
<item name="colorAccent">#A3BBDC</item>