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++)