Skip to content

Commit

Permalink
Merge branch 'master' into feat/update_autocheck_improve
Browse files Browse the repository at this point in the history
  • Loading branch information
Ace-Radom authored Sep 30, 2024
2 parents 112ba40 + f82a173 commit d359b79
Show file tree
Hide file tree
Showing 42 changed files with 2,187 additions and 364 deletions.
21 changes: 20 additions & 1 deletion LenovoLegionToolkit.Lib.Automation/Resources/Resource.pl.resx
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@
<value>Gdy jest podłączony zasilacz o słabej mocy</value>
</data>
<data name="OnStartupAutomationPipelineTrigger_DisplayName" xml:space="preserve">
<value>Przy włączeniu</value>
<value>Przy uruchomieniu</value>
</data>
<data name="PowerModeAutomationPipelineTrigger_DisplayName" xml:space="preserve">
<value>Gdy tryb zasilania ulegnie zmianie</value>
Expand Down Expand Up @@ -196,16 +196,35 @@
<data name="GodModePresetChangedAutomationPipelineTrigger_DisplayName" xml:space="preserve">
<value>Gdy szablon trybu własnego ulegnie zmianie</value>
</data>
<data name="PeriodicActionPipelineTrigger_DisplayName" xml:space="preserve">
<value>Akcja periodyczna</value>
<comment>The display name of the periodic automation action.</comment>
</data>
<data name="WiFiConnectedAutomationPipelineTrigger_DisplayName" xml:space="preserve">
<value>Gdy połączono z WiFi</value>
</data>
<data name="WiFiDisconnectedAutomationPipelineTrigger_DisplayName" xml:space="preserve">
<value>Gdy rozłączono z WiFi</value>
</data>
<data name="OnResumeAutomationPipelineTrigger_DisplayName" xml:space="preserve">
<value>Przy wybudzeniu</value>
</data>
<data name="HDROffAutomationPipelineTrigger_DisplayName" xml:space="preserve">
<value>Gdy HDR jest wyłączony</value>
</data>
<data name="HDROnAutomationPipelineTrigger_DisplayName" xml:space="preserve">
<value>Gdy HDR jest włączony</value>
</data>
<data name="MacroAutomationStepState_Off" xml:space="preserve">
<value>Wyłączone</value>
</data>
<data name="MacroAutomationStepState_On" xml:space="preserve">
<value>Włączone</value>
</data>
<data name="DeviceDisconnectedAutomationPipelineTrigger_DisplayName" xml:space="preserve">
<value>Gdy odłączane jest urządzenie</value>
</data>
<data name="DeviceConnectedAutomationPipelineTrigger_DisplayName" xml:space="preserve">
<value>Gdy podłączane jest urządzenie</value>
</data>
</root>
6 changes: 6 additions & 0 deletions LenovoLegionToolkit.Lib.Macro/Resources/Resource.pl.resx
Original file line number Diff line number Diff line change
Expand Up @@ -97,4 +97,10 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="MacroSource_Keyboard" xml:space="preserve">
<value>Klawiatura</value>
</data>
<data name="MacroSource_Mouse" xml:space="preserve">
<value>Mysz</value>
</data>
</root>
7 changes: 0 additions & 7 deletions LenovoLegionToolkit.Lib/Enums.cs
Original file line number Diff line number Diff line change
Expand Up @@ -383,13 +383,6 @@ public enum ProcessEventInfoType
Stopped
}

public enum ReadmeType
{
Unknown,
Text,
Html,
}

public enum RebootType
{
NotRequired = 0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,13 @@ public Task<bool> DetectInstallNeededAsync(List<DriverInfo> _1, HttpClient _2, C

var keyExists = Registry.ValueExists(hive, path, KeyName);
if (!keyExists)
return Task.FromResult(true);
return Task.FromResult(false);

var versionString = Registry.GetValue(hive, path, KeyName, string.Empty);

if (versionString.Any(char.IsWhiteSpace))
versionString = versionString.Split(null).FirstOrDefault(versionString);

if (!Version.TryParse(versionString, out var version))
return Task.FromResult(false);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text.Json.Nodes;
using System.Threading;
using System.Threading.Tasks;
Expand Down Expand Up @@ -43,7 +42,7 @@ public override async Task<List<Package>> GetPackagesAsync(string machineType, O
if (!IsCompatible(downloadNode, osString))
continue;

var package = await ParsePackageAsync(httpClient, downloadNode!, token).ConfigureAwait(false);
var package = ParsePackage(downloadNode!);
if (package is null)
continue;

Expand All @@ -53,7 +52,7 @@ public override async Task<List<Package>> GetPackagesAsync(string machineType, O
return packages;
}

private static async Task<Package?> ParsePackageAsync(HttpClient httpClient, JsonNode downloadNode, CancellationToken token)
private static Package? ParsePackage(JsonNode downloadNode)
{
var id = downloadNode["ID"]!.ToJsonString();
var category = downloadNode["Category"]!["Name"]!.ToString();
Expand All @@ -62,51 +61,36 @@ public override async Task<List<Package>> GetPackagesAsync(string machineType, O
var version = downloadNode["SummaryInfo"]!["Version"]!.ToString();

var filesNode = downloadNode["Files"]!.AsArray();
var mainFileNode = filesNode.FirstOrDefault(n => n!["TypeString"]!.ToString().ToLowerInvariant() == "exe")
?? filesNode.FirstOrDefault(n => n!["TypeString"]!.ToString().ToLowerInvariant() == "zip")
var mainFileNode = filesNode.FirstOrDefault(n => n!["TypeString"]!.ToString().Equals("exe", StringComparison.InvariantCultureIgnoreCase))
?? filesNode.FirstOrDefault(n => n!["TypeString"]!.ToString().Equals("zip", StringComparison.InvariantCultureIgnoreCase))
?? filesNode.FirstOrDefault();

if (mainFileNode is null)
return null;

var fileLocation = mainFileNode["URL"]!.ToString();
var fileName = new Uri(fileLocation).Segments.LastOrDefault("file");// fileLocation[(fileLocation.LastIndexOf('/') + 1)..];
var fileName = new Uri(fileLocation).Segments.LastOrDefault("file");
var fileSize = mainFileNode["Size"]!.ToString();
var fileCrc = mainFileNode["SHA256"]?.ToString();
var releaseDateUnix = long.Parse(mainFileNode["Date"]!["Unix"]!.ToString());
var releaseDate = DateTimeOffset.FromUnixTimeMilliseconds(releaseDateUnix).DateTime;

var readmeType = ReadmeType.Unknown;
string? readme = null;
var readmeFileNode = filesNode.FirstOrDefault(n => n!["TypeString"]!.ToString().Equals("txt readme", StringComparison.InvariantCultureIgnoreCase))
?? filesNode.FirstOrDefault(n => n!["TypeString"]!.ToString().Equals("html", StringComparison.InvariantCultureIgnoreCase));

var readmeFileNode = filesNode.FirstOrDefault(n => n!["TypeString"]!.ToString().ToLowerInvariant() == "txt readme");
if (readmeFileNode is not null)
{
var readmeLocation = readmeFileNode["URL"]!.ToString();

readmeType = ReadmeType.Text;
readme = await GetReadmeAsync(httpClient, readmeLocation, token).ConfigureAwait(false);
}

readmeFileNode = filesNode.FirstOrDefault(n => n!["TypeString"]!.ToString().ToLowerInvariant() == "html");
if (readmeFileNode is not null)
{
readmeType = ReadmeType.Html;
readme = readmeFileNode["URL"]!.ToString();
}
var readme = readmeFileNode?["URL"]?.ToString();

return new()
{
Id = id,
Title = title,
Description = (title == description) ? string.Empty : description,
Description = title == description ? string.Empty : description,
Version = version,
Category = category,
FileName = fileName,
FileSize = fileSize,
FileCrc = fileCrc,
ReleaseDate = releaseDate,
ReadmeType = readmeType,
Readme = readme,
FileLocation = fileLocation,
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ private static async Task<Package> GetPackage(HttpClient httpClient, VantagePack
var releaseDateString = document.SelectSingleNode("/Package/ReleaseDate")!.InnerText;
var releaseDate = DateTime.Parse(releaseDateString);
var readmeName = document.SelectSingleNode("/Package/Files/Readme/File/Name")?.InnerText;
var readme = await GetReadmeAsync(httpClient, $"{baseLocation}/{readmeName}", token).ConfigureAwait(false);
var readme = $"{baseLocation}/{readmeName}";
var fileLocation = $"{baseLocation}/{fileName}";
var rebootString = document.SelectSingleNode("/Package/Reboot/@type")!.InnerText;
var reboot = int.TryParse(rebootString, out var rebootInt) ? (RebootType)rebootInt : RebootType.NotRequired;
Expand Down Expand Up @@ -136,7 +136,6 @@ private static async Task<Package> GetPackage(HttpClient httpClient, VantagePack
FileSize = fileSize,
FileCrc = fileCrc,
ReleaseDate = releaseDate,
ReadmeType = ReadmeType.Text,
Readme = readme,
FileLocation = fileLocation,
IsUpdate = isUpdate,
Expand Down
25 changes: 23 additions & 2 deletions LenovoLegionToolkit.Lib/Resources/Resource.pl.resx
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@
<value>Włączone (z opóźnieniem)</value>
</data>
<data name="BatteryState_Conservation" xml:space="preserve">
<value>Konserwacja</value>
<value>Oszczędzanie żywotności</value>
</data>
<data name="BatteryState_Normal" xml:space="preserve">
<value>Normalny</value>
Expand Down Expand Up @@ -250,7 +250,7 @@
<value>Niestandardowy</value>
</data>
<data name="PowerModeState_Performance" xml:space="preserve">
<value>Wydajność</value>
<value>Wydajny</value>
</data>
<data name="PowerModeState_Quiet" xml:space="preserve">
<value>Cichy</value>
Expand Down Expand Up @@ -454,6 +454,27 @@
<data name="ModifierKey_Alt" xml:space="preserve">
<value>Alt</value>
</data>
<data name="BatteryNightChargeState_On" xml:space="preserve">
<value>Włączone</value>
</data>
<data name="BatteryNightChargeState_Off" xml:space="preserve">
<value>Wyłączone</value>
</data>
<data name="SpeakerState_Mute" xml:space="preserve">
<value>Wyciszenie</value>
</data>
<data name="SpeakerState_Unmute" xml:space="preserve">
<value>Wyłącz wyciszenie</value>
</data>
<data name="PowerModeMappingMode_Disabled" xml:space="preserve">
<value>Wyłączone</value>
</data>
<data name="PowerModeMappingMode_WindowsPowerMode" xml:space="preserve">
<value>Tryb zasilania systemu Windows</value>
</data>
<data name="PowerModeMappingMode_WindowsPowerPlan" xml:space="preserve">
<value>Plan zasilania systemu Windows</value>
</data>
<data name="RGBKeyboardBacklightPreset_Four" xml:space="preserve">
<value>Ustawienie 4</value>
</data>
Expand Down
2 changes: 1 addition & 1 deletion LenovoLegionToolkit.Lib/Resources/Resource.uk.resx
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@
<comment>Informs the user that Touchpad Lock is or will be turned on.</comment>
</data>
<data name="WhiteKeyboardBacklightState_High" xml:space="preserve">
<value>Висока</value>
<value>Яскрава</value>
</data>
<data name="WhiteKeyboardBacklightState_Low" xml:space="preserve">
<value>Тьмяна</value>
Expand Down
1 change: 0 additions & 1 deletion LenovoLegionToolkit.Lib/Structs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,6 @@ public struct Package
public string FileSize { get; init; }
public string? FileCrc { get; init; }
public DateTime ReleaseDate { get; init; }
public ReadmeType ReadmeType { get; init; }
public string? Readme { get; init; }
public string FileLocation { get; init; }
public bool IsUpdate { get; init; }
Expand Down
1 change: 1 addition & 0 deletions LenovoLegionToolkit.Lib/Utils/Compatibility.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public static partial class Compatibility
"16AHP",
"16APH",
"16ARH",
"16ARP",
"16ARX",
"16IAH",
"16IAX",
Expand Down
18 changes: 2 additions & 16 deletions LenovoLegionToolkit.WPF/Controls/Packages/PackageControl.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
using LenovoLegionToolkit.WPF.Extensions;
using LenovoLegionToolkit.WPF.Resources;
using LenovoLegionToolkit.WPF.Utils;
using LenovoLegionToolkit.WPF.Windows.Packages;

namespace LenovoLegionToolkit.WPF.Controls.Packages;

Expand Down Expand Up @@ -42,7 +41,7 @@ public PackageControl(IPackageDownloader packageDownloader, Package package, Fun
_categoryTextBlock.Text = package.Category;
_detailTextBlock.Text = $"{Resource.PackageControl_Version} {package.Version} | {package.FileSize} | {package.FileName}";

_readmeButton.Visibility = package.ReadmeType is ReadmeType.Unknown ? Visibility.Collapsed : Visibility.Visible;
_readmeButton.Visibility = package.Readme is null ? Visibility.Collapsed : Visibility.Visible;
_updateRebootStackPanel.Visibility = _isUpdateStackPanel.Visibility = package.IsUpdate ? Visibility.Visible : Visibility.Collapsed;

_rebootStackPanel.Visibility = package is { IsUpdate: true, Reboot: RebootType.Delayed or RebootType.Requested or RebootType.Forced or RebootType.ForcedPowerOff }
Expand Down Expand Up @@ -95,20 +94,7 @@ private void ReadmeButton_Click(object sender, RoutedEventArgs e)
if (_package.Readme is null)
return;

switch (_package.ReadmeType)
{
case ReadmeType.Text:
var window = new ReadmeWindow(_package.Readme) { Owner = Window.GetWindow(this) };
window.ShowDialog();
break;
case ReadmeType.Html:
new Uri(_package.Readme).Open();
break;
case ReadmeType.Unknown:
break;
default:
throw new ArgumentOutOfRangeException(nameof(_package.ReadmeType));
}
new Uri(_package.Readme).Open();
}

private async void DownloadButton_Click(object sender, RoutedEventArgs e)
Expand Down
2 changes: 1 addition & 1 deletion LenovoLegionToolkit.WPF/LenovoLegionToolkit.WPF.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<ApplicationManifest>app.manifest</ApplicationManifest>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<NeutralLanguage>en</NeutralLanguage>
<SatelliteResourceLanguages>ar;bg;cs;de;en;el;es;fr;it;ja;lv;nl;nl-nl;pt;pt-br;ro;ru;sk;uk;tr;vi;zh;zh-hans;zh-hant</SatelliteResourceLanguages>
<SatelliteResourceLanguages>ar;bg;cs;de;en;el;es;fr;it;ja;lv;nl;nl-nl;pl;pt;pt-br;ro;ru;sk;uk;tr;vi;zh;zh-hans;zh-hant</SatelliteResourceLanguages>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>portable</DebugType>
Expand Down
4 changes: 2 additions & 2 deletions LenovoLegionToolkit.WPF/Resources/Resource.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions LenovoLegionToolkit.WPF/Resources/Resource.ar.resx
Original file line number Diff line number Diff line change
Expand Up @@ -1322,12 +1322,6 @@
<data name="WhiteKeyboardBacklightControl_Title" xml:space="preserve">
<value>الإضاءة الخلفية للوحة المفاتيح</value>
</data>
<data name="WinKeyAutomationStepControl_Message" xml:space="preserve">
<value>تمكين أو تعطيل مفتاح الويندوز.</value>
</data>
<data name="WinKeyAutomationStepControl_Title" xml:space="preserve">
<value>مفتاح الويندوز</value>
</data>
<data name="WinKeyControl_Message" xml:space="preserve">
<value>يعمل فقط على لوحة المفاتيح المدمجة.</value>
</data>
Expand Down
6 changes: 0 additions & 6 deletions LenovoLegionToolkit.WPF/Resources/Resource.bg.resx
Original file line number Diff line number Diff line change
Expand Up @@ -1405,12 +1405,6 @@
<data name="WhiteKeyboardBacklightControl_Title" xml:space="preserve">
<value>Подсветка на клавиатурата</value>
</data>
<data name="WinKeyAutomationStepControl_Message" xml:space="preserve">
<value>Активирайте или деактивирайте Windows клавиша.</value>
</data>
<data name="WinKeyAutomationStepControl_Title" xml:space="preserve">
<value>Windows клавиш</value>
</data>
<data name="WinKeyControl_Message" xml:space="preserve">
<value>Работи само на вградената клавиатура.</value>
</data>
Expand Down
6 changes: 0 additions & 6 deletions LenovoLegionToolkit.WPF/Resources/Resource.bs.resx
Original file line number Diff line number Diff line change
Expand Up @@ -821,12 +821,6 @@ Logiranje će biti automatski omogućeno, ukoliko izaberete da nastavite.</value
<data name="WhiteKeyboardBacklightControl_Message" xml:space="preserve">
<value>Možete promijeniti svjetlost sa Fn + Space</value>
</data>
<data name="WinKeyAutomationStepControl_Message" xml:space="preserve">
<value>Omogućite ili onemogućite Windows dugme.</value>
</data>
<data name="WinKeyAutomationStepControl_Title" xml:space="preserve">
<value>Windows dugme</value>
</data>
<data name="WinKeyControl_Message" xml:space="preserve">
<value>Radi samo na ugrađenoj tastaturi.</value>
</data>
Expand Down
6 changes: 0 additions & 6 deletions LenovoLegionToolkit.WPF/Resources/Resource.cs.resx
Original file line number Diff line number Diff line change
Expand Up @@ -1367,12 +1367,6 @@ Pokud se rozhodneš pokračovat, protokolování bude automaticky povoleno.</val
<data name="WhiteKeyboardBacklightControl_Title" xml:space="preserve">
<value>Podsvícení klávesnice</value>
</data>
<data name="WinKeyAutomationStepControl_Message" xml:space="preserve">
<value>Povolit nebo zakázat tlačitko Windows.</value>
</data>
<data name="WinKeyAutomationStepControl_Title" xml:space="preserve">
<value>Tlačítko Windows</value>
</data>
<data name="WinKeyControl_Message" xml:space="preserve">
<value>Funguje pouze na klávesnici notebooku.</value>
</data>
Expand Down
Loading

0 comments on commit d359b79

Please sign in to comment.