From 9e4a58ee952cddb3565bf7deaadfa79fd7fec510 Mon Sep 17 00:00:00 2001 From: lncubus Date: Thu, 2 Jun 2022 11:42:10 +0200 Subject: [PATCH] [Settings][KBM] Fix re-reading loop on non-existing file (#18374) * [KBM] * [KBM] Keyboard Manager profile loading should not expect the profile to exist --- .../ViewModels/KeyboardManagerViewModel.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/settings-ui/Settings.UI.Library/ViewModels/KeyboardManagerViewModel.cs b/src/settings-ui/Settings.UI.Library/ViewModels/KeyboardManagerViewModel.cs index 635d35ad3bbc..e41adcb0193c 100644 --- a/src/settings-ui/Settings.UI.Library/ViewModels/KeyboardManagerViewModel.cs +++ b/src/settings-ui/Settings.UI.Library/ViewModels/KeyboardManagerViewModel.cs @@ -239,11 +239,12 @@ public void NotifyFileChanged() [SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "Exceptions here (especially mutex errors) should not halt app execution, but they will be logged.")] public bool LoadProfile() { - // The KBM process out of runner creates the default.json file if it does not exist. var success = true; var readSuccessfully = false; + // The KBM process out of runner doesn't create the default.json file if it does not exist. string fileName = Settings.Properties.ActiveConfiguration.Value + JsonFileType; + var profileExists = false; try { @@ -253,7 +254,12 @@ public bool LoadProfile() { while (!readSuccessfully && !ts.IsCancellationRequested) { - if (_settingsUtils.SettingsExists(PowerToyName, fileName)) + profileExists = _settingsUtils.SettingsExists(PowerToyName, fileName); + if (!profileExists) + { + break; + } + else { try { @@ -298,7 +304,11 @@ public bool LoadProfile() success = false; } - if (!success) + if (!profileExists) + { + Logger.LogInfo($"Couldn't load {PowerToyName} profile because it doesn't exist"); + } + else if (!success) { Logger.LogError($"Couldn't load {PowerToyName} profile"); }