From 8bb0a0e11b4627fb14373e1f085b054c8577b17a Mon Sep 17 00:00:00 2001 From: Michael Gordeev Date: Sat, 22 Sep 2018 23:07:10 +0300 Subject: [PATCH] #144: Fixed --- FoxTube/Classes/Methods.cs | 1 + FoxTube/Pages/ChannelPage.xaml.cs | 6 +-- FoxTube/Pages/MainPage.xaml.cs | 70 ++++++++++++++++++------------ FoxTube/Pages/PlaylistPage.xaml.cs | 3 ++ 4 files changed, 50 insertions(+), 30 deletions(-) diff --git a/FoxTube/Classes/Methods.cs b/FoxTube/Classes/Methods.cs index 2913870..f201fb6 100644 --- a/FoxTube/Classes/Methods.cs +++ b/FoxTube/Classes/Methods.cs @@ -14,6 +14,7 @@ namespace FoxTube { public static class Methods { + public static bool NeedToResponse { get; set; } = false; public static MainPage MainPage { get { return (Window.Current.Content as Frame).Content as MainPage; } diff --git a/FoxTube/Pages/ChannelPage.xaml.cs b/FoxTube/Pages/ChannelPage.xaml.cs index a419167..4b6d70a 100644 --- a/FoxTube/Pages/ChannelPage.xaml.cs +++ b/FoxTube/Pages/ChannelPage.xaml.cs @@ -86,6 +86,9 @@ namespace FoxTube.Pages try { channelId = id; + if (Methods.NeedToResponse) + Methods.MainPage.content_Navigated(this, null); + ChannelsResource.ListRequest request = SecretsVault.Service.Channels.List("snippet,statistics,brandingSettings"); request.Id = id; if (content.Items.Count == 4) @@ -133,8 +136,6 @@ namespace FoxTube.Pages if (SecretsVault.IsAuthorized) { - SecretsVault.Subscriptions.ForEach(x => Debug.WriteLine($"{x.Snippet.Title}: {x.Snippet.ResourceId.ChannelId}")); - Debug.WriteLine($"Current channel ID: {item.Id}"); bool b = false; foreach (Subscription s in SecretsVault.Subscriptions) { @@ -148,7 +149,6 @@ namespace FoxTube.Pages break; } } - Debug.WriteLine($"Channel was found: {b}"); subscriptionPane.Visibility = Visibility.Visible; } diff --git a/FoxTube/Pages/MainPage.xaml.cs b/FoxTube/Pages/MainPage.xaml.cs index 8a2c539..541de69 100644 --- a/FoxTube/Pages/MainPage.xaml.cs +++ b/FoxTube/Pages/MainPage.xaml.cs @@ -502,7 +502,7 @@ namespace FoxTube s = Sender.None; } - private void content_Navigated(object sender, NavigationEventArgs e) + public void content_Navigated(object sender, NavigationEventArgs e) { Dictionary switchCase = new Dictionary() { @@ -535,38 +535,54 @@ namespace FoxTube } }, { typeof(ChannelPage), () => { - if(SecretsVault.IsAuthorized) + if(sender.GetType() != typeof(ChannelPage)) { - if((content.Content as ChannelPage).channelId == SecretsVault.AccountId) + Methods.NeedToResponse = true; + s = Sender.None; + return; + } + Methods.NeedToResponse = false; + if(SecretsVault.IsAuthorized) { - if(nav.SelectedItem != toChannel) - nav.SelectedItem = toChannel; + if((content.Content as ChannelPage).channelId == SecretsVault.UserChannel.Id) + { + if(nav.SelectedItem != toChannel) + nav.SelectedItem = toChannel; + else + s = Sender.None; + } else - s = Sender.None; + { + bool found = false; + for(int k = 0; k < SecretsVault.Subscriptions.Count && k < 10; k++) + if(SecretsVault.Subscriptions[k].Snippet.ResourceId.ChannelId == (content.Content as ChannelPage).channelId) + { + if(nav.SelectedItem != nav.MenuItems[k + 9]) + nav.SelectedItem = nav.MenuItems[k + 9]; + else + s = Sender.None; + found = true; + break; + } + + if(!found) + { + nav.SelectedItem = null; + } + } } else - { - bool found = false; - for(int k = 0; k < SecretsVault.Subscriptions.Count && k < 10; k++) - if(SecretsVault.Subscriptions[k].Snippet.ResourceId.ChannelId == (content.Content as ChannelPage).channelId) - { - if(nav.SelectedItem != nav.MenuItems[k + 9]) - nav.SelectedItem = nav.MenuItems[k + 9]; - else - s = Sender.None; - found = true; - break; - } - - if(!found) - nav.SelectedItem = null; - } - } - else - nav.SelectedItem = null; + nav.SelectedItem = null; } }, { typeof(PlaylistPage), () => { + if(sender.GetType() != typeof(PlaylistPage)) + { + Methods.NeedToResponse = true; + s = Sender.None; + return; + } + Methods.NeedToResponse = false; if((content.Content as PlaylistPage).playlistId == SecretsVault.UserChannel.ContentDetails.RelatedPlaylists.Likes) { if(nav.SelectedItem != toLiked) @@ -617,7 +633,7 @@ namespace FoxTube } } }; - try { navCase[e.SourcePageType](); } + try { navCase[content.SourcePageType](); } catch { nav.SelectedItem = null; @@ -631,7 +647,7 @@ namespace FoxTube else nav.IsBackEnabled = false; - if (e.SourcePageType == typeof(Home) || e.SourcePageType == typeof(Settings) || e.SourcePageType == typeof(Subscriptions)) + if (content.SourcePageType == typeof(Home) || content.SourcePageType == typeof(Settings) || content.SourcePageType == typeof(Subscriptions)) { nav.ExpandedModeThresholdWidth = 1008; if (nav.DisplayMode == NavigationViewDisplayMode.Expanded) diff --git a/FoxTube/Pages/PlaylistPage.xaml.cs b/FoxTube/Pages/PlaylistPage.xaml.cs index e9e86f1..3b815e1 100644 --- a/FoxTube/Pages/PlaylistPage.xaml.cs +++ b/FoxTube/Pages/PlaylistPage.xaml.cs @@ -62,6 +62,9 @@ namespace FoxTube.Pages try { playlistId = id; + if (Methods.NeedToResponse) + Methods.MainPage.content_Navigated(this, null); + PlaylistsResource.ListRequest request = SecretsVault.Service.Playlists.List("snippet,contentDetails"); request.Id = id;