Changed SettingsView and UpdatePrompt

This commit is contained in:
WeeXnes 2022-12-12 20:12:22 +01:00
parent de3bf385d6
commit 446cb60f40
6 changed files with 158 additions and 58 deletions

View file

@ -6,7 +6,7 @@ namespace WeeXnes.Core
{
public class Information
{
public const string Version = "4.0.3";
public const string Version = "4.0.4";
public const string EncryptionHash = "8zf5#RdyQ]$4x4_";
public const string ApiUrl = "https://api.github.com/repos/weexnes/weexnessuite/releases/latest";
}

View file

@ -11,12 +11,13 @@
<ScrollViewer>
<StackPanel Orientation="Vertical">
<TextBlock Text="General Settings"
<TextBlock Text="General"
HorizontalAlignment="Center"
Foreground="White"/>
<ui:CardAction Icon="Play28"
Name="ButtonCheckForUpdates"
Click="ButtonCheckForUpdates_OnClick">
Click="ButtonCheckForUpdates_OnClick"
Margin="0,10,0,0">
<StackPanel>
<TextBlock
Margin="0,0,0,4"
@ -25,10 +26,6 @@
/>
</StackPanel>
</ui:CardAction>
<ui:Dialog Foreground="White"
Name="DialogUpdate"
ButtonLeftClick="DialogUpdate_OnButtonLeftClick"
ButtonRightClick="DialogUpdate_OnButtonRightClick"/>
<ui:CardAction Icon="LinkSquare20"
Name="ButtonCreateStartMenuShortcut"
Click="ButtonCreateStartMenuShortcut_OnClick"
@ -41,25 +38,51 @@
/>
</StackPanel>
</ui:CardAction>
<TextBlock Text="Key Manager Settings"
<TextBlock Text="Key Manager"
HorizontalAlignment="Center"
Foreground="White"/>
<CheckBox Content="Censor Keys Visually"
Name="CheckboxCensorKeys"
Checked="CheckboxCensorKeys_OnChecked"
Unchecked="CheckboxCensorKeys_OnUnchecked"/>
<TextBlock Text="Discord Rich Presence"
<TextBlock Text="Discord RPC"
HorizontalAlignment="Center"
Foreground="White"/>
<StackPanel Orientation="Horizontal">
<Button Content="Enable RPC Autostart"
Name="ButtonEnableRPC"
Click="ButtonEnableRPC_OnClick"/>
<Button Content="Disable RPC Autostart"
Margin="10,0,0,0"
Name="ButtonDisableRPC"
Click="ButtonDisableRPC_OnClick"/>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ui:CardAction Icon="Empty"
Margin="0,10,5,10"
Click="ButtonEnableRPC_OnClick">
<StackPanel>
<TextBlock
Margin="0,0,0,4"
FontWeight="Medium"
Text="Enable RPC Autostart"
/>
</StackPanel>
</ui:CardAction>
<ui:CardAction Icon="Empty"
Margin="5,10,0,10"
Grid.Column="1"
Click="ButtonDisableRPC_OnClick">
<StackPanel>
<TextBlock
Margin="0,0,0,4"
FontWeight="Medium"
Text="Disable RPC Autostart"
/>
</StackPanel>
</ui:CardAction>
</Grid>
</StackPanel>
</ScrollViewer>
</Grid>

View file

@ -17,7 +17,7 @@ namespace WeeXnes.Views.Settings
public static class Data
{
public static INIFile settingsFile = new INIFile(Global.AppDataPath + "\\" + Global.SettingsFile, true);
public static GithubApiResponse updateResponse = null;
}
public SettingsView()
{
@ -39,45 +39,11 @@ namespace WeeXnes.Views.Settings
KeyManagerView.Data.censorKeys.Value = false;
}
private void DialogUpdate_OnButtonLeftClick(object sender, RoutedEventArgs e)
{
Console.WriteLine("Do Update");
if(Data.updateResponse == null)
return;
if (File.Exists(Data.updateResponse.assets[0].name))
{
File.Delete(Data.updateResponse.assets[0].name);
}
using(WebClient webClient = new WebClient())
{;
webClient.DownloadFile(
Data.updateResponse.assets[0].browser_download_url,
Data.updateResponse.assets[0].name
);
}
try
{
string path = Application.StartupPath;
string fileName = Path.GetFileName(Application.ExecutablePath);
string pid = Process.GetCurrentProcess().Id.ToString();
Process updateProc = Process.Start("Update.exe", "\"" + path + "\"" + " " + "\"" + fileName + "\"" + " " + "\"" + pid + "\"" + " " + "\"" + Data.updateResponse.assets[0].name + "\"");
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
private void DialogUpdate_OnButtonRightClick(object sender, RoutedEventArgs e)
{
DialogUpdate.Hide();
}
private void ButtonCheckForUpdates_OnClick(object sender, RoutedEventArgs e)
{
try
{
using(WebClient webClient = new WebClient())
@ -88,9 +54,8 @@ namespace WeeXnes.Views.Settings
GithubApiResponse apiResponseData = JsonConvert.DeserializeObject<GithubApiResponse>(downloadString);
if (apiResponseData.tag_name != Information.Version)
{
Data.updateResponse = apiResponseData;
DialogUpdate.Content = apiResponseData.tag_name + " is avaiable";
DialogUpdate.Show();
UpdateFoundView.Data.updateResponse = apiResponseData;
NavigationService.Navigate(new Uri("/Views/Settings/UpdateFoundView.xaml",UriKind.Relative));
}
}
}
@ -139,5 +104,6 @@ namespace WeeXnes.Views.Settings
MessageBox.Show(ex.Message);
}
}
}
}

View file

@ -0,0 +1,39 @@
<Page x:Class="WeeXnes.Views.Settings.UpdateFoundView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WeeXnes.Views.Settings"
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
mc:Ignorable="d"
Title="UpdateFoundView" Height="Auto" Width="Auto">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="74"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Vertical"
HorizontalAlignment="Center">
<TextBlock Loaded="CurrentVersionNumberLoaded_OnLoaded"
Foreground="White"
HorizontalAlignment="Center"
FontSize="20"/>
<TextBlock Loaded="VersionNumberLoaded_OnLoaded"
Foreground="White"
HorizontalAlignment="Center"
FontSize="20"/>
</StackPanel>
<ui:CardAction Icon="ArrowDownload24" Grid.Row="1"
Name="ButtonInstallUpdate"
Click="ButtonInstallUpdate_OnClick">
<StackPanel>
<TextBlock
Margin="0,0,0,4"
FontWeight="Medium"
Text="Install Update"
/>
</StackPanel>
</ui:CardAction>
</Grid>
</Page>

View file

@ -0,0 +1,68 @@
using System;
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using WeeXnes.Core;
using Application = System.Windows.Forms.Application;
namespace WeeXnes.Views.Settings
{
public partial class UpdateFoundView : Page
{
public static class Data
{
public static GithubApiResponse updateResponse = null;
}
public UpdateFoundView()
{
InitializeComponent();
}
private void ButtonInstallUpdate_OnClick(object sender, RoutedEventArgs e)
{
Console.WriteLine("Do Update");
if(Data.updateResponse == null)
return;
if (File.Exists(Data.updateResponse.assets[0].name))
{
File.Delete(Data.updateResponse.assets[0].name);
}
using(WebClient webClient = new WebClient())
{;
webClient.DownloadFile(
Data.updateResponse.assets[0].browser_download_url,
Data.updateResponse.assets[0].name
);
}
try
{
string path = Application.StartupPath;
string fileName = Path.GetFileName(Application.ExecutablePath);
string pid = Process.GetCurrentProcess().Id.ToString();
Process updateProc = Process.Start("Update.exe", "\"" + path + "\"" + " " + "\"" + fileName + "\"" + " " + "\"" + pid + "\"" + " " + "\"" + Data.updateResponse.assets[0].name + "\"");
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
private void VersionNumberLoaded_OnLoaded(object sender, RoutedEventArgs e)
{
TextBlock tb = (TextBlock)sender;
tb.Text = "New Version: " + Data.updateResponse.tag_name;
}
private void CurrentVersionNumberLoaded_OnLoaded(object sender, RoutedEventArgs e)
{
TextBlock tb = (TextBlock)sender;
tb.Text = "Current Version: " + Information.Version;
}
}
}

View file

@ -4,7 +4,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<Version>4.0.3</Version>
<Version>4.0.4</Version>
<ProjectGuid>{4B33CEE7-C74D-43B9-B99A-8B273D5195BC}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>WeeXnes</RootNamespace>
@ -94,6 +94,9 @@
<Compile Include="Views\Settings\SettingsView.xaml.cs">
<DependentUpon>SettingsView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\Settings\UpdateFoundView.xaml.cs">
<DependentUpon>UpdateFoundView.xaml</DependentUpon>
</Compile>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@ -117,6 +120,7 @@
<Page Include="Views\Home\HomeView.xaml" />
<Page Include="Views\KeyManager\KeyManagerView.xaml" />
<Page Include="Views\Settings\SettingsView.xaml" />
<Page Include="Views\Settings\UpdateFoundView.xaml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">