diff --git a/FoxTube/FoxTube.csproj b/FoxTube/FoxTube.csproj
index d4d595a..6dfeecd 100644
--- a/FoxTube/FoxTube.csproj
+++ b/FoxTube/FoxTube.csproj
@@ -302,6 +302,9 @@
2.2.0
+
+ 3.0.0
+
4.3.1
diff --git a/FoxTube/MainPage.xaml.cs b/FoxTube/MainPage.xaml.cs
index 957493b..3bc7d6c 100644
--- a/FoxTube/MainPage.xaml.cs
+++ b/FoxTube/MainPage.xaml.cs
@@ -386,7 +386,7 @@ namespace FoxTube
XmlDocument doc = new XmlDocument();
await Task.Run(() =>
{
- doc.Load(string.Format("http://suggestqueries.google.com/complete/search?output=toolbar&hl={0}&q={1}", "en", keyword));
+ doc.Load(string.Format("http://suggestqueries.google.com/complete/search?output=toolbar&hl={0}&q={1}", (settings.Values["region"] as string)[1] + (settings.Values["region"] as string)[2], keyword));
});
for (int k = 0; k < 5; k++)
diff --git a/FoxTube/VideoPlayer.xaml b/FoxTube/VideoPlayer.xaml
index c6da2c3..8fac4ac 100644
--- a/FoxTube/VideoPlayer.xaml
+++ b/FoxTube/VideoPlayer.xaml
@@ -12,10 +12,10 @@
Tapped="UserControl_Tapped"
PointerMoved="UserControl_PointerMoved">
-
-
+
+
-
+
@@ -25,7 +25,7 @@
-
+
@@ -39,7 +39,7 @@
-
+
@@ -49,7 +49,7 @@
-
+
@@ -120,7 +120,7 @@
-
+
diff --git a/FoxTube/VideoPlayer.xaml.cs b/FoxTube/VideoPlayer.xaml.cs
index 4a02e42..eb33ff0 100644
--- a/FoxTube/VideoPlayer.xaml.cs
+++ b/FoxTube/VideoPlayer.xaml.cs
@@ -15,6 +15,11 @@ using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
+using Microsoft.Toolkit.Uwp.UI.Animations;
+
+using Google.Apis.YouTube.v3.Data;
+using Google.Apis.YouTube.v3;
+using Windows.UI.Xaml.Media.Imaging;
// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236
@@ -22,24 +27,34 @@ namespace FoxTube
{
public sealed partial class VideoPlayer : UserControl
{
+ public string videoId;
ApplicationDataContainer settings = ApplicationData.Current.LocalSettings;
- Timer t = new Timer();
+ Timer t = new Timer()
+ {
+ Interval = 5000,
+ Enabled = true
+ };
public VideoPlayer()
{
this.InitializeComponent();
- try
- {
- volume.Value = (double)settings.Values["volume"];
- }
- catch
- {
- if (settings.Values["volume"] == null)
- settings.Values.Add("volume", (double)100);
- else settings.Values["volume"] = (double)100;
- }
+
+ volume.Value = Convert.ToDouble(settings.Values["volume"]);
t.Elapsed += T_Elapsed;
- UserControl_Tapped(this, null);
+ }
+
+ public async void Initialize(string id)
+ {
+ videoId = id;
+ VideosResource.ListRequest request = SecretsVault.YoutubeService.Videos.List("snippet,contentDetails,statistics");
+ request.Id = id;
+
+ VideoListResponse response = await request.ExecuteAsync();
+
+ var item = response.Items[0];
+
+ videoSource.PosterSource = new BitmapImage(new Uri(item.Snippet.Thumbnails.Maxres.Url));
+ //videoSource.Source = new Uri(item.FileDetails.)
}
private async void T_Elapsed(object sender, ElapsedEventArgs e)
@@ -47,12 +62,16 @@ namespace FoxTube
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, Elapsed);
}
- void Elapsed()
+ async void Elapsed()
{
- volumePane.IsOpen = false;
- qualityPane.IsOpen = false;
- controls.Visibility = Visibility.Collapsed;
- t.Stop();
+ if(!volumePane.IsOpen && !qualityPane.IsOpen)
+ {
+ await controls.Fade().StartAsync();
+ volumePane.IsOpen = false;
+ qualityPane.IsOpen = false;
+ controls.Visibility = Visibility.Collapsed;
+ t.Stop();
+ }
}
private void UserControl_SizeChanged(object sender, SizeChangedEventArgs e)
@@ -106,16 +125,25 @@ namespace FoxTube
private void UserControl_Tapped(object sender, TappedRoutedEventArgs e)
{
- controls.Visibility = Visibility.Visible;
- t.Interval = 5000;
- t.Stop();
- t.Start();
+ if (t.Enabled)
+ Elapsed();
+ else
+ ShowControls();
}
private void UserControl_PointerMoved(object sender, PointerRoutedEventArgs e)
{
- controls.Visibility = Visibility.Visible;
- t.Interval = 3000;
+ if(!volumePane.IsOpen && !qualityPane.IsOpen)
+ ShowControls();
+ }
+
+ async void ShowControls()
+ {
+ if(controls.Visibility == Visibility.Collapsed)
+ {
+ controls.Visibility = Visibility.Visible;
+ await controls.Fade(value: 1).StartAsync();
+ }
t.Stop();
t.Start();
}