[AOT] clean up AOT issue in Settings.UI (#36559)

* Rename source generation context file

* fix build issue

* fix path bug

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
This commit is contained in:
moooyo
2025-02-25 02:48:54 +08:00
committed by GitHub
parent 9f008a65d6
commit f81f65db3d
45 changed files with 203 additions and 98 deletions

View File

@@ -12,6 +12,7 @@ using System.IO.Abstractions;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Text.Json;
using System.Text.Json.Serialization.Metadata;
using System.Threading.Tasks;
using global::PowerToys.GPOWrapper;
@@ -22,11 +23,12 @@ using Microsoft.PowerToys.Settings.UI.Library.Helpers;
using Microsoft.PowerToys.Settings.UI.Library.Interfaces;
using Microsoft.PowerToys.Settings.UI.Library.Utilities;
using Microsoft.PowerToys.Settings.UI.Library.ViewModels.Commands;
using Microsoft.PowerToys.Settings.UI.SerializationContext;
using Microsoft.PowerToys.Telemetry;
namespace Microsoft.PowerToys.Settings.UI.ViewModels
{
public class GeneralViewModel : Observable
public partial class GeneralViewModel : Observable
{
private GeneralSettings GeneralSettingsConfig { get; set; }
@@ -34,7 +36,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
public ButtonClickCommand CheckForUpdatesEventHandler { get; set; }
public object ResourceLoader { get; set; }
public Windows.ApplicationModel.Resources.ResourceLoader ResourceLoader { get; set; }
private Action HideBackupAndRestoreMessageAreaAction { get; set; }
@@ -70,7 +72,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
private SettingsBackupAndRestoreUtils settingsBackupAndRestoreUtils = SettingsBackupAndRestoreUtils.Instance;
public GeneralViewModel(ISettingsRepository<GeneralSettings> settingsRepository, string runAsAdminText, string runAsUserText, bool isElevated, bool isAdmin, Func<string, int> ipcMSGCallBackFunc, Func<string, int> ipcMSGRestartAsAdminMSGCallBackFunc, Func<string, int> ipcMSGCheckForUpdatesCallBackFunc, string configFileSubfolder = "", Action dispatcherAction = null, Action hideBackupAndRestoreMessageAreaAction = null, Action<int> doBackupAndRestoreDryRun = null, Func<Task<string>> pickSingleFolderDialog = null, object resourceLoader = null)
public GeneralViewModel(ISettingsRepository<GeneralSettings> settingsRepository, string runAsAdminText, string runAsUserText, bool isElevated, bool isAdmin, Func<string, int> ipcMSGCallBackFunc, Func<string, int> ipcMSGRestartAsAdminMSGCallBackFunc, Func<string, int> ipcMSGCheckForUpdatesCallBackFunc, string configFileSubfolder = "", Action dispatcherAction = null, Action hideBackupAndRestoreMessageAreaAction = null, Action<int> doBackupAndRestoreDryRun = null, Func<Task<string>> pickSingleFolderDialog = null, Windows.ApplicationModel.Resources.ResourceLoader resourceLoader = null)
{
CheckForUpdatesEventHandler = new ButtonClickCommand(CheckForUpdatesClick);
RestartElevatedButtonEventHandler = new ButtonClickCommand(RestartElevated);
@@ -1075,11 +1077,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
{
if (ResourceLoader != null)
{
var type = ResourceLoader.GetType();
MethodInfo methodInfo = type.GetMethod("GetString");
object classInstance = Activator.CreateInstance(type, null);
object[] parametersArray = new object[] { resource };
var result = (string)methodInfo.Invoke(ResourceLoader, parametersArray);
var result = ResourceLoader.GetString(resource);
if (string.IsNullOrEmpty(result))
{
return resource.ToUpperInvariant() + "!!!";
@@ -1129,7 +1127,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
GeneralSettingsCustomAction customaction = new GeneralSettingsCustomAction(outsettings);
var dataToSend = customaction.ToString();
dataToSend = JsonSerializer.Serialize(new { action = new { general = new { action_name = "restart_maintain_elevation" } } });
dataToSend = JsonSerializer.Serialize(ActionMessage.Create("restart_maintain_elevation"), SourceGenerationContextContext.Default.ActionMessage);
SendRestartAsAdminConfigMSG(dataToSend);
}