Archived
1
0

Search suggestions

This commit is contained in:
Michael Gordeev
2018-05-11 22:58:38 +03:00
parent 7ee8d9dd18
commit f28b9a726f
2 changed files with 130 additions and 14 deletions
+16 -13
View File
@@ -108,37 +108,40 @@
Background="Transparent"
FontFamily="Segoe MDL2 Assets" Content="" FontSize="20" Foreground="Black"/>
<Popup Margin="0,50,0,0" Grid.Column="9" Name="searchSuggestions" IsOpen="True" Visibility="Visible">
<StackPanel Padding="10" Background="WhiteSmoke" Width="350">
<StackPanel Width="350" Name="searchStandby" Visibility="Visible">
<StackPanel Background="WhiteSmoke" Width="350">
<StackPanel Width="350" Name="searchStandby" Visibility="Visible" Margin="10">
<TextBlock Text="Loading results... Please, wait."/>
<ProgressBar IsIndeterminate="True"/>
</StackPanel>
<ListBox Name="searchSuggestionsList" Visibility="Collapsed">
<ListBoxItem Height="35" Padding="0" Name="s0" Visibility="Collapsed">
<ListBox Name="searchSuggestionsList" Visibility="Visible" SelectionChanged="searchSuggestionsList_SelectionChanged">
<ListBoxItem Content="Suggestion"/>
<ListBoxItem Content="S1"/>
<ListBoxItem Content="S2"/>
<ListBoxItem Height="35" Padding="0" Visibility="Visible">
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource ItemIcon}" Text="&#xE728;"/>
<TextBlock Style="{StaticResource MenuItem}" Text="Suggestion 0" Name="t0"/>
</StackPanel>
</ListBoxItem>
<ListBoxItem Height="35" Padding="0" Name="s1" Visibility="Collapsed">
<ListBoxItem Height="35" Padding="0" Visibility="Collapsed">
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource ItemIcon}" Text="&#xE728;"/>
<TextBlock Style="{StaticResource MenuItem}" Text="Suggestion 1" Name="t1"/>
</StackPanel>
</ListBoxItem>
<ListBoxItem Height="35" Padding="0" Name="s2" Visibility="Collapsed">
<ListBoxItem Height="35" Padding="0" Visibility="Collapsed">
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource ItemIcon}" Text="&#xE728;"/>
<TextBlock Style="{StaticResource MenuItem}" Text="Suggestion 2" Name="t2"/>
</StackPanel>
</ListBoxItem>
<ListBoxItem Height="35" Padding="0" Name="s3" Visibility="Collapsed">
<ListBoxItem Height="35" Padding="0" Visibility="Collapsed">
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource ItemIcon}" Text="&#xE728;"/>
<TextBlock Style="{StaticResource MenuItem}" Text="Suggestion 3" Name="t3"/>
</StackPanel>
</ListBoxItem>
<ListBoxItem Height="35" Padding="0" Name="s4" Visibility="Collapsed">
<ListBoxItem Height="35" Padding="0" Visibility="Collapsed">
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource ItemIcon}" Text="&#xE728;"/>
<TextBlock Style="{StaticResource MenuItem}" Text="Suggestion 4" Name="t4"/>
@@ -150,31 +153,31 @@
<Line X1="0" Y1="10" X2="250" Y2="10" Stroke="Gray" StrokeThickness="2"/>
</StackPanel>
</ListBoxItem>
<ListBoxItem Height="35" Padding="0" Name="s6" Visibility="Collapsed">
<ListBoxItem Height="35" Padding="0" Visibility="Collapsed">
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource ItemIcon}" Text="&#xE81C;"/>
<TextBlock Style="{StaticResource MenuItem}" Text="Suggestion 6" Name="t6"/>
</StackPanel>
</ListBoxItem>
<ListBoxItem Height="35" Padding="0" Name="s7" Visibility="Collapsed">
<ListBoxItem Height="35" Padding="0" Visibility="Collapsed">
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource ItemIcon}" Text="&#xE81C;"/>
<TextBlock Style="{StaticResource MenuItem}" Text="Suggestion 7" Name="t7"/>
</StackPanel>
</ListBoxItem>
<ListBoxItem Height="35" Padding="0" Name="s8" Visibility="Collapsed">
<ListBoxItem Height="35" Padding="0" Visibility="Collapsed">
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource ItemIcon}" Text="&#xE81C;"/>
<TextBlock Style="{StaticResource MenuItem}" Text="Suggestion 8" Name="t8"/>
</StackPanel>
</ListBoxItem>
<ListBoxItem Height="35" Padding="0" Name="s9" Visibility="Collapsed">
<ListBoxItem Height="35" Padding="0" Visibility="Collapsed">
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource ItemIcon}" Text="&#xE81C;"/>
<TextBlock Style="{StaticResource MenuItem}" Text="Suggestion 9" Name="t9"/>
</StackPanel>
</ListBoxItem>
<ListBoxItem Height="35" Padding="0" Name="s10" Visibility="Collapsed">
<ListBoxItem Height="35" Padding="0" Visibility="Collapsed">
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource ItemIcon}" Text="&#xE81C;"/>
<TextBlock Style="{StaticResource MenuItem}" Text="Suggestion 10" Name="t10"/>
+114 -1
View File
@@ -11,6 +11,7 @@ using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Shapes;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
@@ -369,7 +370,83 @@ namespace FoxTube
async void buildSearchSuggestionsTree(string keyword)
{
searchSuggestionsList.Items.Clear();
searchStandby.Visibility = Visibility.Visible;
searchSuggestionsList.Visibility = Visibility.Collapsed;
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));
});
for (int k = 0; k < 5; k++)
try
{
searchSuggestionsList.Items.Add(new ListBoxItem()
{
Content = doc["toplevel"].ChildNodes[k]["suggestion"].GetAttribute("data")
});
}
catch (NullReferenceException)
{
searchSuggestionsList.Items.Clear();
searchSuggestionsList.Items.Add(new ListBoxItem()
{
Content = "No suggestions found.",
IsEnabled = false,
Foreground = new SolidColorBrush(Colors.Gray)
});
}
/*ListBoxItem separator = new ListBoxItem()
{
Padding = new Thickness(0),
IsEnabled = false
};
StackPanel stack = new StackPanel() { Orientation = Orientation.Horizontal };
stack.Children.Add(new TextBlock()
{
Foreground = new SolidColorBrush(Colors.Gray),
Text = "Previous requests",
FontSize = 12,
Margin = new Thickness(0),
Padding = new Thickness(0, 0, 5, 0)
});
stack.Children.Add(new Line()
{
X1 = 0,
X2 = 250,
Y1 = 10,
Y2 = 10,
Stroke = new SolidColorBrush(Colors.Gray),
StrokeThickness = 2
});
separator.Content = stack;
searchSuggestionsList.Items.Add(separator);
if (settings.Values["history0"] != null)
for (int k = 0; k < 5; k++)
try
{
searchSuggestionsList.Items.Add(new ListBoxItem()
{
Content = settings.Values["history" + k]
});
}
catch (NullReferenceException)
{
break;
}
else searchSuggestionsList.Items.Add(new ListBoxItem()
{
Content = "You have no previous requests.",
Foreground = new SolidColorBrush(Colors.Gray),
IsEnabled = false
});*/
searchStandby.Visibility = Visibility.Collapsed;
searchSuggestionsList.Visibility = Visibility.Visible;
}
private void searchField_LostFocus(object sender, RoutedEventArgs e)
@@ -389,6 +466,32 @@ namespace FoxTube
topHamburger.SelectedItem = null;
bottomHaburger.SelectedItem = null;
/*{
List<string> history = new List<string>();
for(int k = 0; k < 5; k++)
try
{
history.Add(settings.Values["history" + k].ToString());
}
catch(NullReferenceException)
{
break;
}
history.Insert(0, keyword);
if (history.Count > 5)
history.RemoveAt(5);
for(int k = 0; k < history.Count; k++)
try
{
settings.Values["history" + k] = history[k];
}
catch (NullReferenceException)
{
settings.Values.Add("history" + k, keyword);
}
}*/
YouTubeService ytService = new YouTubeService(new BaseClientService.Initializer()
{
ApiKey = "AIzaSyBgHrCnrlzlVmk0cJKL8RqP9Y8x6XSuk_0",
@@ -450,5 +553,15 @@ namespace FoxTube
return "";
}
}
private void searchSuggestionsList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if(e.AddedItems.Count > 0)
{
ListBoxItem item = e.AddedItems[0] as ListBoxItem;
searchField.Text = item.Content.ToString();
searchButton_Click(this, null);
}
}
}
}