Changed icon
Setting up notification system
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 590 B After Width: | Height: | Size: 917 B |
|
Before Width: | Height: | Size: 761 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 807 B After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 258 B After Width: | Height: | Size: 378 B |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 699 B |
|
Before Width: | Height: | Size: 627 B After Width: | Height: | Size: 1020 B |
|
Before Width: | Height: | Size: 487 B After Width: | Height: | Size: 785 B |
|
Before Width: | Height: | Size: 581 B After Width: | Height: | Size: 894 B |
|
Before Width: | Height: | Size: 715 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 247 B After Width: | Height: | Size: 328 B |
|
Before Width: | Height: | Size: 313 B After Width: | Height: | Size: 463 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 367 B After Width: | Height: | Size: 557 B |
|
Before Width: | Height: | Size: 542 B After Width: | Height: | Size: 825 B |
|
Before Width: | Height: | Size: 616 B After Width: | Height: | Size: 1016 B |
|
Before Width: | Height: | Size: 706 B After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 824 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 968 B After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 8.4 KiB |
@@ -101,6 +101,7 @@
|
|||||||
<Compile Include="MainPage.xaml.cs">
|
<Compile Include="MainPage.xaml.cs">
|
||||||
<DependentUpon>MainPage.xaml</DependentUpon>
|
<DependentUpon>MainPage.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Notification.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -176,6 +177,9 @@
|
|||||||
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
|
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
|
||||||
<Version>6.0.8</Version>
|
<Version>6.0.8</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.Toolkit.Uwp.Notifications">
|
||||||
|
<Version>2.2.0</Version>
|
||||||
|
</PackageReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
||||||
|
|||||||
@@ -42,23 +42,33 @@
|
|||||||
<Button Name="refresh" Grid.Column="5" ToolTipService.ToolTip="Refresh"
|
<Button Name="refresh" Grid.Column="5" ToolTipService.ToolTip="Refresh"
|
||||||
FontFamily="Segoe MDL2 Assets" Content="" Foreground="White"
|
FontFamily="Segoe MDL2 Assets" Content="" Foreground="White"
|
||||||
Width="50" Height="50" Background="#00000000" RelativePanel.LeftOf="searchField"/>
|
Width="50" Height="50" Background="#00000000" RelativePanel.LeftOf="searchField"/>
|
||||||
<Button Name="notification" Grid.Column="6" ToolTipService.ToolTip="Notifications" Click="notification_Click"
|
<Button Name="notificationMenu" Grid.Column="6" ToolTipService.ToolTip="Notifications" Click="notification_Click"
|
||||||
FontFamily="Segoe MDL2 Assets" Content="" Foreground="White"
|
FontFamily="Segoe MDL2 Assets" Content="" Foreground="White"
|
||||||
Width="50" Height="50" Background="#00000000" RelativePanel.LeftOf="searchField"/>
|
Width="50" Height="50" Background="#00000000" RelativePanel.LeftOf="searchField"/>
|
||||||
<Popup Grid.Column="6" Margin="0,50,0,0" Name="notificationPane" LostFocus="notificationPane_LostFocus">
|
<Popup Grid.Column="6" Margin="0,50,0,0" Name="notificationPane" IsOpen="True" IsLightDismissEnabled="True">
|
||||||
<StackPanel Width="350" Background="WhiteSmoke">
|
<StackPanel Width="350" Background="WhiteSmoke" Padding="0,10,0,0">
|
||||||
<TextBlock Text="Notifications" HorizontalAlignment="Center" FontWeight="Bold"/>
|
<TextBlock Text="Notifications" HorizontalAlignment="Center" FontWeight="Bold"/>
|
||||||
<StackPanel>
|
<StackPanel Margin="0,10,0,0">
|
||||||
<TextBlock Text="You have no any notification" Foreground="Gray" FontStyle="Italic" Padding="10" Name="noNotifications"/>
|
<TextBlock Text="You have no any notification" Name="noNotifText" Foreground="Gray" FontStyle="Italic" Padding="10" Visibility="Collapsed"/>
|
||||||
|
<StackPanel Name="notificationPanel" Visibility="Visible">
|
||||||
<ListBox Width="350" Padding="0,0,0,10" Name="notificationArray">
|
<ListBox Width="350" Padding="0,0,0,10" Name="notificationArray">
|
||||||
<ListBoxItem Padding="10,0,10,0" Height="Auto">
|
<ListBoxItem Padding="10" MinHeight="80">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<TextBlock FontSize="14" FontStyle="Italic" Foreground="Gray" Text="Channel name"/>
|
<TextBlock FontSize="14" FontStyle="Italic" Foreground="Gray" Text="Channel name"/>
|
||||||
<TextBlock Style="{StaticResource MenuItem}" TextWrapping="WrapWholeWords" Text="Message"/>
|
<TextBlock TextWrapping="WrapWholeWords" Text="This is very long notification. One, two, three, four, five, six, seven, eight, nine, ten."/>
|
||||||
<TextBlock Foreground="Gray" Text="Timecode" FontSize="13"/>
|
<TextBlock Foreground="Gray" Text="HH:MM TT" FontSize="13"/>
|
||||||
|
</StackPanel>
|
||||||
|
</ListBoxItem>
|
||||||
|
<ListBoxItem Padding="10" VerticalAlignment="Stretch" Background="LightGray" MinHeight="80" Height="100">
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock FontSize="14" FontStyle="Italic" Foreground="Gray" Text="Channel name"/>
|
||||||
|
<TextBlock TextWrapping="WrapWholeWords" Text="This is very long notification. One, two, three, four, five, six, seven, eight, nine, ten."/>
|
||||||
|
<TextBlock Foreground="Gray" Text="HH:MM TT" FontSize="13"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</ListBoxItem>
|
</ListBoxItem>
|
||||||
</ListBox>
|
</ListBox>
|
||||||
|
<Button Content="Clear all" HorizontalAlignment="Right" Margin="10,0,10,10" Name="clearNotifications" Click="clearNotifications_Click"/>
|
||||||
|
</StackPanel>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Popup>
|
</Popup>
|
||||||
@@ -75,13 +85,43 @@
|
|||||||
</MenuFlyout>
|
</MenuFlyout>
|
||||||
</Button.Flyout>
|
</Button.Flyout>
|
||||||
</Button>
|
</Button>
|
||||||
|
<Popup Grid.Column="8" Margin="0,50,0,0" IsOpen="False" IsLightDismissEnabled="True">
|
||||||
|
<StackPanel Width="300" Background="WhiteSmoke">
|
||||||
|
<ListBox>
|
||||||
|
<ListBoxItem Height="75">
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<!--<Ellipse Height="50" Width="50" >
|
||||||
|
<Ellipse.Fill>
|
||||||
|
<ImageBrush ImageSource="Assets/Square150x150Logo.scale-100.png" Stretch="UniformToFill"/>
|
||||||
|
</Ellipse.Fill>
|
||||||
|
</Ellipse>-->
|
||||||
|
<PersonPicture Height="50" Margin="0,0,5,0"></PersonPicture>
|
||||||
|
<!--<Image Width="50" Height="50" Source="Assets/Square150x150Logo.scale-100.png" Margin="0,0,5,0" />-->
|
||||||
|
<StackPanel VerticalAlignment="Center">
|
||||||
|
<TextBlock Text="Account name"/>
|
||||||
|
<TextBlock Foreground="Gray" FontStyle="Italic" Text="example@mail.com"/>
|
||||||
|
</StackPanel>
|
||||||
|
</StackPanel>
|
||||||
|
</ListBoxItem>
|
||||||
|
<ListBoxItem>
|
||||||
|
<TextBlock Text="Add another account"/>
|
||||||
|
</ListBoxItem>
|
||||||
|
<ListBoxItem Height="10" Margin="0" Padding="0" IsEnabled="False">
|
||||||
|
<Line X1="10" X2="290" Stroke="Gray" StrokeThickness="2"/>
|
||||||
|
</ListBoxItem>
|
||||||
|
<ListBoxItem>
|
||||||
|
<TextBlock Text="Log out"/>
|
||||||
|
</ListBoxItem>
|
||||||
|
</ListBox>
|
||||||
|
</StackPanel>
|
||||||
|
</Popup>
|
||||||
<TextBox Name="searchField" Grid.Column="9" ToolTipService.ToolTip="Search" Margin="4" Width="350" Height="50" Padding="14,11,55,14" PlaceholderText="Search" BorderThickness="0" Background="#7FFFFFFF" Text="" AcceptsReturn="True"/>
|
<TextBox Name="searchField" Grid.Column="9" ToolTipService.ToolTip="Search" Margin="4" Width="350" Height="50" Padding="14,11,55,14" PlaceholderText="Search" BorderThickness="0" Background="#7FFFFFFF" Text="" AcceptsReturn="True"/>
|
||||||
<Button Name="searchButton" Grid.Column="9" HorizontalAlignment="Right"
|
<Button Name="searchButton" Grid.Column="9" HorizontalAlignment="Right"
|
||||||
Width="42" Height="42" Margin="4"
|
Width="42" Height="42" Margin="4"
|
||||||
RelativePanel.AlignRightWithPanel="True"
|
RelativePanel.AlignRightWithPanel="True"
|
||||||
Background="Transparent"
|
Background="Transparent"
|
||||||
FontFamily="Segoe MDL2 Assets" Content="" FontSize="20" FocusVisualSecondaryBrush="#66FFFFFF" FocusVisualPrimaryBrush="White" Foreground="Black"/>
|
FontFamily="Segoe MDL2 Assets" Content="" FontSize="20" FocusVisualSecondaryBrush="#66FFFFFF" FocusVisualPrimaryBrush="White" Foreground="Black"/>
|
||||||
<Popup Margin="0,50,0,0" Grid.Column="9" Name="searchSuggestions">
|
<Popup Margin="0,50,0,0" Grid.Column="9" Name="searchSuggestions" IsOpen="False">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<StackPanel Width="350" Background="WhiteSmoke" Name="searchStandby">
|
<StackPanel Width="350" Background="WhiteSmoke" Name="searchStandby">
|
||||||
<TextBlock Padding="10,0,0,0" Text="Loading results... Please, wait."/>
|
<TextBlock Padding="10,0,0,0" Text="Loading results... Please, wait."/>
|
||||||
@@ -114,8 +154,6 @@
|
|||||||
<Line X1="0" Y1="10" X2="250" Y2="10" Stroke="Gray" StrokeThickness="2"/>
|
<Line X1="0" Y1="10" X2="250" Y2="10" Stroke="Gray" StrokeThickness="2"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</ListBoxItem>
|
</ListBoxItem>
|
||||||
</ListBox>
|
|
||||||
<ListBox Width="350">
|
|
||||||
<ListBoxItem Height="35" Padding="10,0,0,0">
|
<ListBoxItem Height="35" Padding="10,0,0,0">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<TextBlock Style="{StaticResource ItemIcon}" Text=""/>
|
<TextBlock Style="{StaticResource ItemIcon}" Text=""/>
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ using Windows.UI.Xaml.Input;
|
|||||||
using Windows.UI.Xaml.Media;
|
using Windows.UI.Xaml.Media;
|
||||||
using Windows.UI.Xaml.Navigation;
|
using Windows.UI.Xaml.Navigation;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using Microsoft.Toolkit.Uwp.Notifications;
|
||||||
|
|
||||||
// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
|
// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
|
||||||
|
|
||||||
@@ -25,6 +26,7 @@ namespace FoxTube
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed partial class MainPage : Page
|
public sealed partial class MainPage : Page
|
||||||
{
|
{
|
||||||
|
List<Notification> notifications = new List<Notification>();
|
||||||
public MainPage()
|
public MainPage()
|
||||||
{
|
{
|
||||||
this.InitializeComponent();
|
this.InitializeComponent();
|
||||||
@@ -49,6 +51,7 @@ namespace FoxTube
|
|||||||
private void menuButton_Click(object sender, RoutedEventArgs e)
|
private void menuButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
menu.IsPaneOpen = !menu.IsPaneOpen;
|
menu.IsPaneOpen = !menu.IsPaneOpen;
|
||||||
|
AddNotification(new Notification("Internal notification", "Menu state has been changed", DateTime.Now, NotificationType.Update));
|
||||||
|
|
||||||
if(menu.IsPaneOpen)
|
if(menu.IsPaneOpen)
|
||||||
{
|
{
|
||||||
@@ -68,6 +71,46 @@ namespace FoxTube
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void AddNotification(Notification notification , bool needNotify = true)
|
||||||
|
{
|
||||||
|
notificationMenu.Content = "";
|
||||||
|
notifications.Add(notification);
|
||||||
|
noNotifText.Visibility = Visibility.Collapsed;
|
||||||
|
notificationPanel.Visibility = Visibility.Visible;
|
||||||
|
StackPanel stackPanel = new StackPanel();
|
||||||
|
//Channel
|
||||||
|
stackPanel.Children.Add(new TextBlock()
|
||||||
|
{
|
||||||
|
FontSize = 14,
|
||||||
|
FontStyle = Windows.UI.Text.FontStyle.Italic,
|
||||||
|
Foreground = new SolidColorBrush(Colors.Gray),
|
||||||
|
Text = notification.author
|
||||||
|
});
|
||||||
|
//Content
|
||||||
|
stackPanel.Children.Add(new TextBlock()
|
||||||
|
{
|
||||||
|
TextWrapping = TextWrapping.WrapWholeWords,
|
||||||
|
Text = notification.message,
|
||||||
|
});
|
||||||
|
//Time
|
||||||
|
stackPanel.Children.Add(new TextBlock()
|
||||||
|
{
|
||||||
|
FontSize = 13,
|
||||||
|
Foreground = new SolidColorBrush(Colors.Gray),
|
||||||
|
Text = notification.returnTimecode()
|
||||||
|
});
|
||||||
|
|
||||||
|
notificationArray.Items.Add(new ListBoxItem()
|
||||||
|
{
|
||||||
|
Padding = new Thickness(10),
|
||||||
|
MinHeight = 80,
|
||||||
|
Content = stackPanel
|
||||||
|
});
|
||||||
|
|
||||||
|
//Sending notification
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -89,13 +132,16 @@ namespace FoxTube
|
|||||||
private void notification_Click(object sender, RoutedEventArgs e)
|
private void notification_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
notificationPane.IsOpen = !notificationPane.IsOpen;
|
notificationPane.IsOpen = !notificationPane.IsOpen;
|
||||||
noNotifications.Visibility = Visibility.Visible;
|
notificationMenu.Content = "";
|
||||||
notificationArray.Visibility = Visibility.Collapsed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void notificationPane_LostFocus(object sender, RoutedEventArgs e)
|
private void clearNotifications_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
notificationPane.IsOpen = false;
|
notifications.Clear();
|
||||||
|
notificationArray.Items.Clear();
|
||||||
|
|
||||||
|
noNotifText.Visibility = Visibility.Visible;
|
||||||
|
notificationPanel.Visibility = Visibility.Collapsed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace FoxTube
|
||||||
|
{
|
||||||
|
public enum NotificationType
|
||||||
|
{
|
||||||
|
NewVideo, NewComment, NewPost, Update
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Notification
|
||||||
|
{
|
||||||
|
public string author { get; set; }
|
||||||
|
public string message { get; set; }
|
||||||
|
public DateTime time { get; set; }
|
||||||
|
public NotificationType Type { get; set; }
|
||||||
|
|
||||||
|
public Notification(string channelName, string content, DateTime date, NotificationType type)
|
||||||
|
{
|
||||||
|
author = channelName;
|
||||||
|
message = content;
|
||||||
|
time = date;
|
||||||
|
Type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string returnTimecode(bool twelveFormat = true)
|
||||||
|
{
|
||||||
|
TimeSpan diff = DateTime.Now - time;
|
||||||
|
if (diff.TotalDays == 0)
|
||||||
|
return string.Format("{0}:{1}", time.Hour, time.Minute);
|
||||||
|
else
|
||||||
|
return string.Format("{0}/{1} {2}:{3}", time.Month, time.Day, time.Hour, time.Minute);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
</Resources>
|
</Resources>
|
||||||
<Applications>
|
<Applications>
|
||||||
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="FoxTube.App">
|
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="FoxTube.App">
|
||||||
<uap:VisualElements DisplayName="FoxTube" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="FoxTube" BackgroundColor="transparent">
|
<uap:VisualElements DisplayName="FoxTube" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="YouTube Client" BackgroundColor="transparent">
|
||||||
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" ShortName="FoxTube" Square310x310Logo="Assets\LargeTile.png" Square71x71Logo="Assets\SmallTile.png">
|
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" ShortName="FoxTube" Square310x310Logo="Assets\LargeTile.png" Square71x71Logo="Assets\SmallTile.png">
|
||||||
<uap:ShowNameOnTiles>
|
<uap:ShowNameOnTiles>
|
||||||
<uap:ShowOn Tile="square150x150Logo" />
|
<uap:ShowOn Tile="square150x150Logo" />
|
||||||
|
|||||||
|
After Width: | Height: | Size: 15 KiB |