From 4135b493c5525f3f01fa52ad2c8691c65b6fc251 Mon Sep 17 00:00:00 2001 From: Anonymus Raccoon <32224410+AnonymusRaccoon@users.noreply.github.com> Date: Sun, 23 Jun 2019 20:16:22 +0200 Subject: [PATCH] Adding playlist more handling for playlists with a sync error. --- Opus/Code/UI/Fragments/Playlist.cs | 61 ++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/Opus/Code/UI/Fragments/Playlist.cs b/Opus/Code/UI/Fragments/Playlist.cs index b807233..d0d5784 100644 --- a/Opus/Code/UI/Fragments/Playlist.cs +++ b/Opus/Code/UI/Fragments/Playlist.cs @@ -376,6 +376,67 @@ namespace Opus.Fragments } bottomSheet.SetContentView(bottomView); + if(item.SyncState == SyncState.Error) + { + bottomSheet.FindViewById(Resource.Id.bsItems).Adapter = new BottomSheetAdapter(MainActivity.instance, Resource.Layout.BottomSheetText, new List + { + //new BottomSheetAction(Resource.Drawable.SyncDisabled, Resources.GetString(Resource.String.stop_sync), (sender, eventArg) => + //{ + // PlaylistManager.StopSyncingDialog(item, () => + // { + // PlaylistItem LocalPlaylist = new PlaylistItem(YoutubePlaylists[Position - LocalPlaylists.Count].Name, item.LocalID, YoutubePlaylists[Position - LocalPlaylists.Count].Count); + // LocalPlaylists.Add(LocalPlaylist); + // if (LocalPlaylists.Count == 3 && LocalPlaylists[1].Name == "EMPTY") + // { + // LocalPlaylists.RemoveAt(1); + // adapter.NotifyItemChanged(1); + // } + // else + // adapter.NotifyItemInserted(LocalPlaylists.Count); + + // YoutubePlaylists[Position - LocalPlaylists.Count].LocalID = 0; + // YoutubePlaylists[Position - LocalPlaylists.Count].SyncState = SyncState.False; + // PlaylistHolder holder = (PlaylistHolder)ListView.GetChildViewHolder(ListView.GetChildAt(Position)); + // holder.sync.Visibility = ViewStates.Gone; + // holder.SyncLoading.Visibility = ViewStates.Gone; + // }); + // bottomSheet.Dismiss(); + //}), + new BottomSheetAction(Resource.Drawable.Delete, Resources.GetString(Resource.String.delete), (sender, eventArg) => + { + PlaylistManager.Delete(item, () => + { + if(local) + { + LocalPlaylists.RemoveAt(Position); + adapter.NotifyItemRemoved(Position); + + if (LocalPlaylists.Count == 1) + { + LocalPlaylists.Add(new PlaylistItem("EMPTY", -1) { Owner = Resources.GetString(Resource.String.local_playlist_empty) }); + adapter.NotifyItemInserted(1); + } + } + else + { + YoutubePlaylists.RemoveAt(Position - LocalPlaylists.Count); + adapter.NotifyItemRemoved(Position); + + if (YoutubePlaylists.Count == 1) + { + YoutubePlaylists.Add(new PlaylistItem("EMPTY", null) { Owner = Resources.GetString(Resource.String.youtube_playlist_empty) }); + adapter.NotifyItemInserted(LocalPlaylists.Count + YoutubePlaylists.Count); + } + } + }); + bottomSheet.Dismiss(); + }) + }); + bottomSheet.Show(); + return; + } + + List actions = new List { new BottomSheetAction(Resource.Drawable.Play, Resources.GetString(Resource.String.play_in_order), (sender, eventArg) =>