Skip to content

Commit

Permalink
Update Update OperatingSystem2 2.0.0 & NotifyIcon 1.1.0 & HarfBuzzSha…
Browse files Browse the repository at this point in the history
…rp 2.8.2 & SkiaSharp 2.88.0 & Misc
  • Loading branch information
AigioL committed May 23, 2022
1 parent 666b145 commit 1764935
Show file tree
Hide file tree
Showing 75 changed files with 253 additions and 181 deletions.
20 changes: 10 additions & 10 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,11 @@

<!-- SkiaSharp & HarfBuzzSharp -->
<!-- https://github.com/AvaloniaUI/Avalonia/blob/master/build/HarfBuzzSharp.props -->
<PackageVersion Include="HarfBuzzSharp" Version="2.8.2-preview.254" />
<PackageVersion Include="HarfBuzzSharp.NativeAssets.Linux" Version="2.8.2-preview.254" />
<PackageVersion Include="HarfBuzzSharp" Version="2.8.2" />
<PackageVersion Include="HarfBuzzSharp.NativeAssets.Linux" Version="2.8.2" />
<!-- https://github.com/AvaloniaUI/Avalonia/blob/master/build/SkiaSharp.props -->
<PackageVersion Include="SkiaSharp" Version="2.88.0-preview.254" />
<PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="2.88.0-preview.254" />
<PackageVersion Include="SkiaSharp" Version="2.88.0" />
<PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="2.88.0" />

<!-- AutoMapper -->
<PackageVersion Include="AutoMapper" Version="10.1.1" />
Expand All @@ -142,11 +142,11 @@
<PackageVersion Include="Net.Codecrete.QrCodeGenerator" Version="2.0.1" />

<!-- NotifyIcon -->
<PackageVersion Include="NotifyIcon.Base" Version="1.0.5.1" />
<!--<PackageVersion Include="NotifyIcon.Linux" Version="1.0.5.1" />-->
<!--<PackageVersion Include="NotifyIcon.Mac" Version="1.0.5.1" />-->
<PackageVersion Include="NotifyIcon.Windows" Version="1.0.5.1" />
<!--<PackageVersion Include="GtkSharp" Version="3.24.24.34" />-->
<PackageVersion Include="NotifyIcon.Base" Version="1.1.0" />
<!--<PackageVersion Include="NotifyIcon.Linux" Version="1.1.0" />-->
<!--<PackageVersion Include="NotifyIcon.Mac" Version="1.1.0" />-->
<PackageVersion Include="NotifyIcon.Windows" Version="1.1.0" />
<!--<PackageVersion Include="GtkSharp" Version="3.24.24.38" />-->

<!-- Compression -->
<PackageVersion Include="SharpZipLib" Version="1.3.3" />
Expand Down Expand Up @@ -194,7 +194,7 @@
<PackageVersion Include="MonoMac.NetStandard" Version="0.0.4" />

<!-- .NET Compat -->
<PackageVersion Include="OperatingSystem2" Version="1.4.3" />
<PackageVersion Include="OperatingSystem2" Version="2.0.0" />
<PackageVersion Include="JustArchiNET.Madness" Version="3.5.2" />

<!-- Serialize -->
Expand Down
2 changes: 1 addition & 1 deletion references/ArchiSteamFarm
2 changes: 1 addition & 1 deletion references/Titanium-Web-Proxy
10 changes: 5 additions & 5 deletions src/AboutAppInfoPopup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public static void OnClick()
var sdkInt = Build.VERSION.SdkInt;
b.AppendFormat("{0}(API {1})", sdkInt, (int)sdkInt);
#else
if (OperatingSystem2.IsWindows)
if (OperatingSystem2.IsWindows())
{
#pragma warning disable CA1416 // 验证平台兼容性
var productName = platformService.WindowsProductName;
Expand All @@ -85,7 +85,7 @@ public static void OnClick()
b.Append(')');
}
}
else if (OperatingSystem2.IsLinux)
else if (OperatingSystem2.IsLinux())
{
#pragma warning disable CA1416 // 验证平台兼容性
var linuxIssue = platformService.LinuxIssue;
Expand Down Expand Up @@ -152,7 +152,7 @@ static void GetAppDisplayVersion(Context context, StringBuilder b)
b.AppendLine();

#if WINDOWS10_0_17763_0_OR_GREATER
if (OperatingSystem2.IsWindows10AtLeast)
if (OperatingSystem2.IsWindows10AtLeast())
{
try
{
Expand Down Expand Up @@ -519,14 +519,14 @@ static string GetJavaSystemGetProperty(string propertyKey)
#endif

#if AVALONIA
if (OperatingSystem2.Application.UseAvalonia)
if (OperatingSystem2.Application.UseAvalonia())
{
b.Append("[avalonia.ver] ");
b.Append(GetAssemblyVersion(OperatingSystem2.Application.Types.Avalonia!.Assembly));
b.AppendLine();
}
#endif
if (OperatingSystem2.Application.UseXamarinForms)
if (OperatingSystem2.Application.UseXamarinForms())
{
b.Append("[forms.ver] ");
b.Append(GetAssemblyVersion(OperatingSystem2.Application.Types.XamarinForms!.Assembly));
Expand Down
34 changes: 17 additions & 17 deletions src/Common.ClientLib/Application/Essentials/DeviceInfo2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public static string Manufacturer
}
else
{
if (OperatingSystem2.IsMacOS || OperatingSystem2.IsIOS || OperatingSystem2.IsTvOS || OperatingSystem2.IsWatchOS)
if (OperatingSystem2.IsMacOS() || OperatingSystem2.IsIOS() || OperatingSystem2.IsTvOS() || OperatingSystem2.IsWatchOS())
{
return "Apple";
}
Expand Down Expand Up @@ -89,7 +89,7 @@ public static Platform Platform
{
get
{
if (OperatingSystem2.IsWindows)
if (OperatingSystem2.IsWindows())
{
if (DeviceInfo.Platform == DevicePlatform.UWP)
{
Expand All @@ -100,19 +100,19 @@ public static Platform Platform
return Platform.Windows;
}
}
else if (OperatingSystem2.IsAndroid)
else if (OperatingSystem2.IsAndroid())
{
return Platform.Android;
}
else if (
OperatingSystem2.IsIOS ||
OperatingSystem2.IsMacOS ||
OperatingSystem2.IsTvOS ||
OperatingSystem2.IsWatchOS)
OperatingSystem2.IsIOS() ||
OperatingSystem2.IsMacOS() ||
OperatingSystem2.IsTvOS() ||
OperatingSystem2.IsWatchOS())
{
return Platform.Apple;
}
else if (OperatingSystem2.IsLinux)
else if (OperatingSystem2.IsLinux())
{
return Platform.Linux;
}
Expand All @@ -125,7 +125,7 @@ public static DeviceIdiom Idiom
{
get
{
if (OperatingSystem2.IsDesktop)
if (OperatingSystem2.IsDesktop())
{
return DeviceIdiom.Desktop;
}
Expand All @@ -140,7 +140,7 @@ public static DeviceIdiom Idiom

static readonly Lazy<OSNames.Value> _OSNameValue = new(() =>
{
if (OperatingSystem2.IsWindows)
if (OperatingSystem2.IsWindows())
{
if (DeviceInfo.Platform == DevicePlatform.UWP)
{
Expand All @@ -155,9 +155,9 @@ public static DeviceIdiom Idiom
return OSNames.Value.Windows;
}
}
else if (OperatingSystem2.IsAndroid)
else if (OperatingSystem2.IsAndroid())
{
if (OperatingSystem2.IsRunningOnWSA)
if (OperatingSystem2.IsRunningOnWSA())
{
return OSNames.Value.WSA;
}
Expand All @@ -182,25 +182,25 @@ public static DeviceIdiom Idiom
};
}
}
else if (OperatingSystem2.IsIOS)
else if (OperatingSystem2.IsIOS())
{
if (DeviceInfo.Idiom == XEDeviceIdiom.Tablet)
return OSNames.Value.iPadOS;
return OSNames.Value.iOS;
}
else if (OperatingSystem2.IsMacOS)
else if (OperatingSystem2.IsMacOS())
{
return OSNames.Value.macOS;
}
else if (OperatingSystem2.IsTvOS)
else if (OperatingSystem2.IsTvOS())
{
return OSNames.Value.tvOS;
}
else if (OperatingSystem2.IsWatchOS)
else if (OperatingSystem2.IsWatchOS())
{
return OSNames.Value.watchOS;
}
else if (OperatingSystem2.IsLinux)
else if (OperatingSystem2.IsLinux())
{
return OSNames.Value.Linux;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ public LocalDataProtectionProviderBase(
{
this.protectedData = protectedData;
this.dataProtectionProvider = dataProtectionProvider;
if (OperatingSystem2.IsWindows)
if (OperatingSystem2.IsWindows())
{
if (OperatingSystem2.IsWindows10AtLeast)
if (OperatingSystem2.IsWindows10AtLeast())
{
defaultELocalDataProtectionType = LocalDataProtectionType.Win10WithAesCFB;
}
Expand All @@ -50,7 +50,7 @@ public LocalDataProtectionProviderBase(
// https://github.com/dotnet/runtime/issues/42214#issuecomment-698495584
// AES CFB in Windows 7 catch Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: Unknown error (0xc10000bb)
// AES CFB in Android catch CryptographicException: Bad PKCS7 padding. Invalid length
var mode = OperatingSystem2.IsAndroid ? CipherMode.CBC : CipherMode.CFB;
var mode = OperatingSystem2.IsAndroid() ? CipherMode.CBC : CipherMode.CFB;
var r = AESUtils.Create(key, iv, mode, PaddingMode.PKCS7);
return r;
});
Expand Down
2 changes: 1 addition & 1 deletion src/Common.CoreLib/Extensions/ExceptionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace System
{
public static class ExceptionExtensions
{
static bool JavaInterop => OperatingSystem2.IsAndroid;
static bool JavaInterop => OperatingSystem2.IsAndroid();

/// <summary>
/// 获取异常是否为已知类型,通常不为 <see cref="ExceptionKnownType.Unknown"/> 的异常不需要纪录日志
Expand Down
4 changes: 2 additions & 2 deletions src/Common.CoreLib/IOPath.cs
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ public static void InitFileSystem(Func<string> getAppDataDirectory, Func<string>
//static readonly Lazy<string> _BaseDirectory = new(() =>
//{
// var value = AppContext.BaseDirectory;
// if (OperatingSystem2.IsWindows && !DesktopBridge.IsRunningAsUwp) // 启用将发布 Host 入口点重定向到 Bin 目录中时重定向基目录
// if (OperatingSystem2.IsWindows() && !DesktopBridge.IsRunningAsUwp()) // 启用将发布 Host 入口点重定向到 Bin 目录中时重定向基目录
// {
// var value2 = new DirectoryInfo(value);
// if (value2.Parent != null && string.Equals(value2.Name, "Bin", StringComparison.OrdinalIgnoreCase))
Expand Down Expand Up @@ -667,7 +667,7 @@ public static void MoveDirectory(string sourceDirName, string destDirName)
}
catch
{
if (OperatingSystem2.IsWindows)
if (OperatingSystem2.IsWindows())
{
XCopyDirectory(sourceDirName, destDirName);
}
Expand Down
2 changes: 1 addition & 1 deletion src/Common.CoreLib/Process2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public static class Process2
/// <exception cref="PlatformNotSupportedException">不支持 shell 的操作系统(如,仅适用于.NET Core 的 Nano Server)不支持此方法</exception>
public static Process? StartPath(string fileName, string path)
{
if (OperatingSystem2.IsMacOS)
if (OperatingSystem2.IsMacOS())
{
var arguments = $"-a \"{fileName}\" \"{path}\"";
using var process = Start("open", arguments, true);
Expand Down
4 changes: 2 additions & 2 deletions src/Common.CoreLib/Properties/ThisAssembly.DynamicVersion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ public static string DynamicVersion
{
get
{
if (OperatingSystem2.IsLinux || OperatingSystem2.IsAndroid)
if (OperatingSystem2.IsLinux() || OperatingSystem2.IsAndroid())
{
return Version + alpha;
}
else if (OperatingSystem2.IsMacOS)
else if (OperatingSystem2.IsMacOS())
{
return Version + beta;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Common.CoreLib/Security/Cryptography/RSAUtils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ public static RSAEncryptionPadding GetPaddingByOaepHashAlgorithmName(string? oae
}

public static RSAEncryptionPadding DefaultPadding
=> OperatingSystem2.IsAndroid ?
=> OperatingSystem2.IsAndroid() ?
RSAEncryptionPadding.OaepSHA1 :
RSAEncryptionPadding.OaepSHA256;

Expand Down
2 changes: 1 addition & 1 deletion src/ST.Client.Android/ServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public static partial class ServiceCollectionExtensions
{
public static IServiceCollection AddPlatformService(this IServiceCollection services, StartupOptions options)
{
if (OperatingSystem2.IsAndroid)
if (OperatingSystem2.IsAndroid())
{
services.AddSingleton<AndroidPlatformServiceImpl>();
services.AddSingleton<IPlatformService>(s => s.GetRequiredService<AndroidPlatformServiceImpl>());
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace System.Application.Markup
{
public interface IMarkupExtension<T>
{
T ProvideValue(IServiceProvider serviceProvider);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
namespace System.Application.Markup
{
public abstract class MarkupExtension<T> : IMarkupExtension<T>
{
protected string member;

public MarkupExtension(string member) => this.member = member;

public abstract T ProvideValue(IServiceProvider serviceProvider);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
using XEDeviceIdiom = Xamarin.Essentials.DeviceIdiom;
using XEDeviceInfo = Xamarin.Essentials.DeviceInfo;

namespace System.Application.Markup
{
public sealed class OnPlatformExtension : MarkupExtension<bool>
{
public OnPlatformExtension(string member) : base(member)
{

}

public override bool ProvideValue(IServiceProvider serviceProvider) =>
member switch
{
"Windows" => OperatingSystem2.IsWindows(),
"Windows7" => OperatingSystem2.IsWindows7(),
"Windows10AtLeast" => OperatingSystem2.IsWindows10AtLeast(),
"Windows11AtLeast" => OperatingSystem2.IsWindows11AtLeast(),
"macOS" => OperatingSystem2.IsMacOS(),
"iOS" => OperatingSystem2.IsIOS(),
"iPhone" => OperatingSystem2.IsIOS() && XEDeviceInfo.Idiom == XEDeviceIdiom.Phone,
"iPadOS" => OperatingSystem2.IsIOS() && XEDeviceInfo.Idiom == XEDeviceIdiom.Tablet,
"watchOS" => OperatingSystem2.IsWatchOS(),
"tvOS" => OperatingSystem2.IsTvOS(),
"Linux" => OperatingSystem2.IsLinux(),
"LinuxDesktop" => OperatingSystem2.IsLinux() && !OperatingSystem2.IsAndroid(),
"Android" => OperatingSystem2.IsAndroid(),
"AndroidDesktop" => OperatingSystem2.IsAndroid() && XEDeviceInfo.Idiom == XEDeviceIdiom.Desktop,
"AndroidPhone" => OperatingSystem2.IsAndroid() && XEDeviceInfo.Idiom == XEDeviceIdiom.Phone,
"AndroidTablet" => OperatingSystem2.IsAndroid() && XEDeviceInfo.Idiom == XEDeviceIdiom.Tablet,
"AndroidWatch" => OperatingSystem2.IsAndroid() && XEDeviceInfo.Idiom == XEDeviceIdiom.Watch,
"AndroidTV" => OperatingSystem2.IsAndroid() && XEDeviceInfo.Idiom == XEDeviceIdiom.TV,
"WSA" => OperatingSystem2.IsRunningOnWSA(),
"Mono" => OperatingSystem2.IsRunningOnMono(),
"Windows10PackageIdentity" => OperatingSystem2.IsRunningAsUwp(),
"DesktopBridge" => DesktopBridge.IsRunningAsUwp,
_ => false,
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public sealed class AvaloniaWin32WindowingPlatformImpl : IWindowingPlatform
{
public IWindowImpl CreateWindow()
{
if (!Design.IsDesignMode && OperatingSystem2.IsWindows10AtLeast)
if (!Design.IsDesignMode && OperatingSystem2.IsWindows10AtLeast())
{
return CreateWin10Window();
}
Expand Down Expand Up @@ -75,7 +75,7 @@ public Window10Impl() : base()
//Win32Interop.RtlGetVersion(ref version);

//if (version.MajorVersion < 10)
if (!OperatingSystem2.IsWindows10AtLeast)
if (!OperatingSystem2.IsWindows10AtLeast())
{
throw new NotSupportedException("Windows versions earlier than 10 are not supported");
}
Expand Down Expand Up @@ -215,7 +215,7 @@ internal void SetOwner(ICoreWindow wnd)
});
};

if (OperatingSystem2.IsWindows11AtLeast)
if (OperatingSystem2.IsWindows11AtLeast())
{
((IPseudoClasses)_owner.Classes).Set(":windows11", true);
}
Expand Down Expand Up @@ -257,7 +257,7 @@ private void EnsureExtended()
Win32Interop.AdjustWindowRectExForDpi(ref frame,
(int)style, false, 0, (int)(RenderScaling * 96));

marg.topHeight = -frame.top + (OperatingSystem2.IsWindows11AtLeast ? 0 : -1);
marg.topHeight = -frame.top + (OperatingSystem2.IsWindows11AtLeast() ? 0 : -1);
Win32Interop.DwmExtendFrameIntoClientArea(Handle.Handle, ref marg);
}

Expand Down Expand Up @@ -301,7 +301,7 @@ protected IntPtr HandleNCHitTest(IntPtr lParam)

if (_owner!.HitTestCaptionButtons(point))
{
if (OperatingSystem2.IsWindows11AtLeast)
if (OperatingSystem2.IsWindows11AtLeast())
{
var result = _owner.HitTestMaximizeButton(point);

Expand Down
Loading

0 comments on commit 1764935

Please sign in to comment.