From ad066ca608ef908be451229e8b84fd2a6afc19f5 Mon Sep 17 00:00:00 2001 From: Michael Gordeev Date: Sun, 1 Jul 2018 01:06:00 +0300 Subject: [PATCH] Complete comments --- FoxTube/Controls/CommentCard.xaml | 9 +++-- FoxTube/Controls/CommentCard.xaml.cs | 43 +++++++++++++++++--- FoxTube/Pages/CommentsPage.xaml | 59 ++++++++++++++-------------- FoxTube/Pages/CommentsPage.xaml.cs | 40 +++++++++++++++++++ 4 files changed, 111 insertions(+), 40 deletions(-) diff --git a/FoxTube/Controls/CommentCard.xaml b/FoxTube/Controls/CommentCard.xaml index 41d172f..d5040f7 100644 --- a/FoxTube/Controls/CommentCard.xaml +++ b/FoxTube/Controls/CommentCard.xaml @@ -12,8 +12,8 @@ - - + + @@ -63,15 +63,16 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/FoxTube/Pages/CommentsPage.xaml.cs b/FoxTube/Pages/CommentsPage.xaml.cs index 579e55c..3531cd8 100644 --- a/FoxTube/Pages/CommentsPage.xaml.cs +++ b/FoxTube/Pages/CommentsPage.xaml.cs @@ -16,6 +16,7 @@ using Windows.UI.Xaml.Navigation; using Google.Apis.YouTube.v3; using Google.Apis.YouTube.v3.Data; using FoxTube.Controls; +using Windows.UI.Popups; // The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238 @@ -40,6 +41,9 @@ namespace FoxTube.Pages { threadId = video.Id; + if (!SecretsVault.IsAuthorized) + grid.RowDefinitions[0].Height = new GridLength(0); + counter.Text = string.Format("{0:0,0} Comments", video.Statistics.CommentCount); var request = SecretsVault.NoAuthService.CommentThreads.List("snippet,replies"); @@ -133,5 +137,41 @@ namespace FoxTube.Pages moreLoading.Visibility = Visibility.Collapsed; } } + + private async void send_Click(object sender, RoutedEventArgs e) + { + if(newComment.Text.Length > 0) + { + newComment.IsEnabled = false; + send.IsEnabled = false; + sending.Visibility = Visibility.Visible; + + CommentThread thread = new CommentThread(); + thread.Snippet = new CommentThreadSnippet(); + + Comment comment = new Comment(); + comment.Snippet = new CommentSnippet(); + comment.Snippet.TextOriginal = newComment.Text; + + thread.Snippet.VideoId = threadId; + thread.Snippet.TopLevelComment = comment; + + try + { + CommentThread response = await SecretsVault.Service.CommentThreads.Insert(thread, "snippet").ExecuteAsync(); + newComment.Text = ""; + placeholder.Children.Insert(0, new CommentCard(response)); + scroll.ChangeView(null, 0, null); + } + catch + { + await new MessageDialog("Failed to publish your comment. Please, try again later.", "Failed to publish your comment").ShowAsync(); + } + + newComment.IsEnabled = true; + send.IsEnabled = true; + sending.Visibility = Visibility.Collapsed; + } + } } }