diff --git a/FoxTube/Controls/VideoCard.xaml b/FoxTube/Controls/VideoCard.xaml
index e72eebe..626fc25 100644
--- a/FoxTube/Controls/VideoCard.xaml
+++ b/FoxTube/Controls/VideoCard.xaml
@@ -4,7 +4,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:Windows10version1809="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractPresent(Windows.Foundation.UniversalApiContract, 7)"
mc:Ignorable="d"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
@@ -90,7 +89,7 @@
-
+
diff --git a/FoxTube/Controls/VideoCard.xaml.cs b/FoxTube/Controls/VideoCard.xaml.cs
index 42f5874..99ba584 100644
--- a/FoxTube/Controls/VideoCard.xaml.cs
+++ b/FoxTube/Controls/VideoCard.xaml.cs
@@ -13,6 +13,7 @@ using YoutubeExplode;
using Windows.UI.Popups;
using YoutubeExplode.Models.MediaStreams;
using Windows.Foundation;
+using FoxTube.Pages;
namespace FoxTube.Controls
{
@@ -48,6 +49,8 @@ namespace FoxTube.Controls
videoId = id;
playlistId = playlist;
+ delete.Visibility = string.IsNullOrWhiteSpace(playlistId) ? Visibility.Collapsed : Visibility.Visible;
+
VideosResource.ListRequest request = SecretsVault.Service.Videos.List("snippet,contentDetails,statistics,liveStreamingDetails");
request.Id = id;
item = (await request.ExecuteAsync()).Items[0];
@@ -444,5 +447,26 @@ namespace FoxTube.Controls
}
}
}
+
+ private async void Delete_Click(object sender, RoutedEventArgs e)
+ {
+ PlaylistItemsResource.ListRequest request = SecretsVault.Service.PlaylistItems.List("snippet");
+ request.PlaylistId = playlistId;
+ request.VideoId = item.Id;
+ PlaylistItemListResponse response = await request.ExecuteAsync();
+
+ PlaylistItem playlistItem = response.Items.Find(i => i.Snippet.PlaylistId == playlistId);
+
+ await SecretsVault.Service.PlaylistItems.Delete(playlistItem.Id).ExecuteAsync();
+
+ (Methods.MainPage.PageContent as PlaylistPage).DeleteItem(this);
+ try
+ {
+ }
+ catch
+ {
+
+ }
+ }
}
}
diff --git a/FoxTube/Pages/MainPage.xaml.cs b/FoxTube/Pages/MainPage.xaml.cs
index 01953d8..f00d180 100644
--- a/FoxTube/Pages/MainPage.xaml.cs
+++ b/FoxTube/Pages/MainPage.xaml.cs
@@ -29,6 +29,9 @@ namespace FoxTube
public static event ObjectEventHandler VideoPageSizeChanged;
readonly ResourceLoader resources = ResourceLoader.GetForCurrentView("Main");
Dictionary headers;
+
+ public Page PageContent => content.Content as Page;
+
public MainPage()
{
InitializeComponent();
diff --git a/FoxTube/Pages/PlaylistPage.xaml.cs b/FoxTube/Pages/PlaylistPage.xaml.cs
index c6f6b84..8e154b2 100644
--- a/FoxTube/Pages/PlaylistPage.xaml.cs
+++ b/FoxTube/Pages/PlaylistPage.xaml.cs
@@ -147,5 +147,10 @@ namespace FoxTube.Pages
foreach (PlaylistItem i in response.Items)
list.Add(new VideoCard(i.ContentDetails.VideoId, playlistId));
}
+
+ public void DeleteItem(FrameworkElement card)
+ {
+ list.DeleteItem(card);
+ }
}
}
diff --git a/FoxTube/Pages/VideoGrid.xaml.cs b/FoxTube/Pages/VideoGrid.xaml.cs
index fed042f..b36012e 100644
--- a/FoxTube/Pages/VideoGrid.xaml.cs
+++ b/FoxTube/Pages/VideoGrid.xaml.cs
@@ -52,6 +52,12 @@ namespace FoxTube.Pages
empty.Visibility = Visibility.Visible;
}
+ public void DeleteItem(FrameworkElement item)
+ {
+ Children.Remove(item);
+ UpdateGrid();
+ }
+
void UpdateGrid()
{
for (int k = 1; k <= 5; k++)