From 80079c672f191e016ef9e8cd3bb37eef2d66ceb6 Mon Sep 17 00:00:00 2001 From: Anonymus Raccoon <32224410+AnonymusRaccoon@users.noreply.github.com> Date: Sun, 9 Jun 2019 23:45:13 +0200 Subject: [PATCH] Reworking add to playlist button. --- Opus/Code/UI/Fragments/Playlist.cs | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/Opus/Code/UI/Fragments/Playlist.cs b/Opus/Code/UI/Fragments/Playlist.cs index 44538fe..b2f8baf 100644 --- a/Opus/Code/UI/Fragments/Playlist.cs +++ b/Opus/Code/UI/Fragments/Playlist.cs @@ -28,8 +28,8 @@ namespace Opus.Fragments private View LoadingView; private bool populating = false; - private List LocalPlaylists = new List(); - private List YoutubePlaylists = new List(); + private readonly List LocalPlaylists = new List(); + private readonly List YoutubePlaylists = new List(); public override void OnActivityCreated(Bundle savedInstanceState) @@ -277,7 +277,7 @@ namespace Opus.Fragments LocalPlaylists.Add(new PlaylistItem("Error", -1) { Owner = error }); //Handle synced playlist from the local playlist array we had before. - (List loc, List SyncedPlaylists) = await PlaylistManager.ProcessSyncedPlaylists(locPlaylists); + (List loc, _) = await PlaylistManager.ProcessSyncedPlaylists(locPlaylists); if (instance == null) return; @@ -308,15 +308,28 @@ namespace Opus.Fragments { if(YoutubeExplode.YoutubeClient.TryParsePlaylistId(view.FindViewById(Resource.Id.playlistURL).Text, out string playlistID)) { - PlaylistManager.ForkPlaylist(await PlaylistManager.GetPlaylist(playlistID)); + PlaylistItem addPlaylist = await PlaylistManager.GetPlaylist(playlistID); + PlaylistManager.ForkPlaylist(addPlaylist); - if (YoutubePlaylists.Count == 3 && YoutubePlaylists[1].Name == "EMPTY") + if (YoutubePlaylists[YoutubePlaylists.Count - 1].Name == "EMPTY" || YoutubePlaylists[YoutubePlaylists.Count - 1].Name == "Error") { - YoutubePlaylists.RemoveAt(1); - adapter.NotifyItemChanged(LocalPlaylists.Count + YoutubePlaylists.Count - 1); + if (YoutubePlaylists[YoutubePlaylists.Count - 1].Name == "EMPTY") + { + YoutubePlaylists.Insert(YoutubePlaylists.Count - 2, addPlaylist); + YoutubePlaylists.RemoveAt(2); + adapter.NotifyItemChanged(LocalPlaylists.Count + YoutubePlaylists.Count - 2); + } + else + { + YoutubePlaylists.Insert(YoutubePlaylists.Count - 1, addPlaylist); + adapter.NotifyItemInserted(LocalPlaylists.Count + YoutubePlaylists.Count - 2); + } } else - adapter.NotifyItemInserted(LocalPlaylists.Count + YoutubePlaylists.Count); + { + YoutubePlaylists.Add(addPlaylist); + adapter.NotifyItemInserted(LocalPlaylists.Count + YoutubePlaylists.Count - 1); + } } else {