Archived
1
0
This commit is contained in:
Michael Gordeev
2018-10-09 18:16:23 +03:00
parent 7185561c82
commit 67dbd2f114
4 changed files with 62 additions and 39 deletions
+41
View File
@@ -57,6 +57,45 @@ namespace FoxTube
} }
} }
public static async Task<bool> ChangeSubscriptionState(string id)
{
if (!IsAuthorized)
return false;
if(Subscriptions.Find(x => x.Snippet.ResourceId.ChannelId == id) != null)
{
Subscription s = Subscriptions.Find(x => x.Snippet.ResourceId.ChannelId == id);
try { await Service.Subscriptions.Delete(s.Id).ExecuteAsync(); }
catch { return true; }
SubscriptionsChanged.Invoke(null, "remove", Subscriptions.IndexOf(s));
Subscriptions.Remove(s);
return false;
}
else
{
var request = Service.Subscriptions.Insert(new Subscription()
{
Snippet = new SubscriptionSnippet()
{
ResourceId = new ResourceId()
{
ChannelId = id,
Kind = "youtube#channel"
}
}
}, "snippet");
Subscription s = await request.ExecuteAsync();
if (s == null)
return false;
Subscriptions.Add(s);
SubscriptionsChanged.Invoke(null, "add", s);
return true;
}
}
public static async Task<bool> Subscribe(string id) public static async Task<bool> Subscribe(string id)
{ {
if (!IsAuthorized) if (!IsAuthorized)
@@ -75,6 +114,8 @@ namespace FoxTube
}, "snippet"); }, "snippet");
Subscription s = await request.ExecuteAsync(); Subscription s = await request.ExecuteAsync();
if (s == null)
return false;
Subscriptions.Add(s); Subscriptions.Add(s);
SubscriptionsChanged.Invoke(null, "add", s); SubscriptionsChanged.Invoke(null, "add", s);
return true; return true;
+7 -13
View File
@@ -91,23 +91,17 @@ namespace FoxTube.Controls
private async void subscribe_Click(object sender, RoutedEventArgs e) private async void subscribe_Click(object sender, RoutedEventArgs e)
{ {
if (subscribe.Background == new SolidColorBrush(Colors.Red)) if (await SecretsVault.ChangeSubscriptionState(channelId))
{ {
if (await SecretsVault.Subscribe(channelId)) subscribe.Background = new SolidColorBrush(Colors.Transparent);
{ subscribe.Foreground = new SolidColorBrush(Colors.Gray);
subscribe.Background = new SolidColorBrush(Colors.Transparent); subscribe.Content = "Subscribed";
subscribe.Foreground = new SolidColorBrush(Colors.Gray);
subscribe.Content = "Subscribed";
}
} }
else else
{ {
if (await SecretsVault.Unsubscibe(channelId)) subscribe.Background = new SolidColorBrush(Colors.Red);
{ subscribe.Foreground = new SolidColorBrush(Colors.White);
subscribe.Background = new SolidColorBrush(Colors.Red); subscribe.Content = "Subscribe";
subscribe.Foreground = new SolidColorBrush(Colors.White);
subscribe.Content = "Subscribe";
}
} }
} }
} }
+7 -13
View File
@@ -250,23 +250,17 @@ namespace FoxTube.Pages
private async void subscribe_Click(object sender, RoutedEventArgs e) private async void subscribe_Click(object sender, RoutedEventArgs e)
{ {
if (subscribe.Background == new SolidColorBrush(Colors.Red)) if(await SecretsVault.ChangeSubscriptionState(channelId))
{ {
if (await SecretsVault.Subscribe(channelId)) subscribe.Background = new SolidColorBrush(Colors.Transparent);
{ subscribe.Foreground = new SolidColorBrush(Colors.Gray);
subscribe.Background = new SolidColorBrush(Colors.Transparent); subscribe.Content = "Subscribed";
subscribe.Foreground = new SolidColorBrush(Colors.Gray);
subscribe.Content = "Subscribed";
}
} }
else else
{ {
if (await SecretsVault.Unsubscibe(channelId)) subscribe.Background = new SolidColorBrush(Colors.Red);
{ subscribe.Foreground = new SolidColorBrush(Colors.White);
subscribe.Background = new SolidColorBrush(Colors.Red); subscribe.Content = "Subscribe";
subscribe.Foreground = new SolidColorBrush(Colors.White);
subscribe.Content = "Subscribe";
}
} }
} }
+7 -13
View File
@@ -523,23 +523,17 @@ namespace FoxTube.Pages
private async void subscribe_Click(object sender, RoutedEventArgs e) private async void subscribe_Click(object sender, RoutedEventArgs e)
{ {
if (subscribe.Background == new SolidColorBrush(Colors.Red)) if (await SecretsVault.ChangeSubscriptionState(channelId))
{ {
if (await SecretsVault.Subscribe(item.Snippet.ChannelId)) subscribe.Background = new SolidColorBrush(Colors.Transparent);
{ subscribe.Foreground = new SolidColorBrush(Colors.Gray);
subscribe.Background = new SolidColorBrush(Colors.Transparent); subscribe.Content = "Subscribed";
subscribe.Foreground = new SolidColorBrush(Colors.Gray);
subscribe.Content = "Subscribed";
}
} }
else else
{ {
if (await SecretsVault.Unsubscibe(item.Snippet.ChannelId)) subscribe.Background = new SolidColorBrush(Colors.Red);
{ subscribe.Foreground = new SolidColorBrush(Colors.White);
subscribe.Background = new SolidColorBrush(Colors.Red); subscribe.Content = "Subscribe";
subscribe.Foreground = new SolidColorBrush(Colors.White);
subscribe.Content = "Subscribe";
}
} }
} }
} }