diff --git a/src/modules/AdvancedPaste/AdvancedPaste/Helpers/UserSettings.cs b/src/modules/AdvancedPaste/AdvancedPaste/Helpers/UserSettings.cs index b230b3b0f6..59f31f0e99 100644 --- a/src/modules/AdvancedPaste/AdvancedPaste/Helpers/UserSettings.cs +++ b/src/modules/AdvancedPaste/AdvancedPaste/Helpers/UserSettings.cs @@ -168,6 +168,15 @@ namespace AdvancedPaste.Settings } var properties = settings.Properties; + bool legacyAdvancedAIConsumed = properties.TryConsumeLegacyAdvancedAIEnabled(out var advancedFlag); + bool legacyAdvancedAIEnabled = legacyAdvancedAIConsumed && advancedFlag; + PasswordCredential legacyCredential = TryGetLegacyOpenAICredential(); + + if (legacyCredential is null) + { + return legacyAdvancedAIConsumed; + } + var configuration = properties.PasteAIConfiguration; if (configuration is null) @@ -176,28 +185,11 @@ namespace AdvancedPaste.Settings properties.PasteAIConfiguration = configuration; } - bool legacyAdvancedAIConsumed = properties.TryConsumeLegacyAdvancedAIEnabled(out var advancedFlag); - bool legacyAdvancedAIEnabled = legacyAdvancedAIConsumed && advancedFlag; - PasswordCredential legacyCredential = TryGetLegacyOpenAICredential(); - - if (legacyCredential is null && !legacyAdvancedAIConsumed) - { - return false; - } - bool configurationUpdated = false; - const string openAIServiceType = "OpenAI"; - PasteAIProviderDefinition openAIProvider = configuration?.Providers?.FirstOrDefault( - provider => string.Equals(provider.ServiceType, openAIServiceType, StringComparison.OrdinalIgnoreCase)); - - bool shouldEnsureOpenAIProvider = legacyCredential is not null; - if (shouldEnsureOpenAIProvider) - { - var ensureResult = AdvancedPasteMigrationHelper.EnsureOpenAIProvider(configuration); - openAIProvider = ensureResult.Provider; - configurationUpdated |= ensureResult.Updated; - } + var ensureResult = AdvancedPasteMigrationHelper.EnsureOpenAIProvider(configuration); + PasteAIProviderDefinition openAIProvider = ensureResult.Provider; + configurationUpdated |= ensureResult.Updated; if (legacyAdvancedAIConsumed && openAIProvider is not null && openAIProvider.EnableAdvancedAI != legacyAdvancedAIEnabled) { @@ -205,13 +197,13 @@ namespace AdvancedPaste.Settings configurationUpdated = true; } - if (legacyCredential is not null && openAIProvider is not null) + if (openAIProvider is not null) { StoreMigratedOpenAICredential(openAIProvider.Id, openAIProvider.ServiceType, legacyCredential.Password); RemoveLegacyOpenAICredential(); } - bool shouldEnableAI = legacyCredential is not null; + const bool shouldEnableAI = true; bool enabledUpdated = false; if (properties.IsAIEnabled != shouldEnableAI) { diff --git a/src/settings-ui/Settings.UI/ViewModels/AdvancedPasteViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/AdvancedPasteViewModel.cs index 0ad88b588d..ac051d7cd7 100644 --- a/src/settings-ui/Settings.UI/ViewModels/AdvancedPasteViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/AdvancedPasteViewModel.cs @@ -191,6 +191,18 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels return; } + PasswordCredential legacyCredential = TryGetLegacyOpenAICredential(); + + if (legacyCredential is null) + { + if (legacyAdvancedAIConsumed) + { + SaveAndNotifySettings(); + } + + return; + } + var configuration = properties.PasteAIConfiguration; if (configuration is null) { @@ -198,26 +210,11 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels properties.PasteAIConfiguration = configuration; } - PasswordCredential legacyCredential = TryGetLegacyOpenAICredential(); - - if (legacyCredential is null && !legacyAdvancedAIConsumed) - { - return; - } - bool configurationUpdated = false; - const string openAIServiceType = "OpenAI"; - PasteAIProviderDefinition openAIProvider = configuration?.Providers?.FirstOrDefault( - provider => string.Equals(provider.ServiceType, openAIServiceType, StringComparison.OrdinalIgnoreCase)); - - bool shouldEnsureOpenAIProvider = legacyCredential is not null; - if (shouldEnsureOpenAIProvider) - { - var ensureResult = AdvancedPasteMigrationHelper.EnsureOpenAIProvider(configuration); - openAIProvider = ensureResult.Provider; - configurationUpdated |= ensureResult.Updated; - } + var ensureResult = AdvancedPasteMigrationHelper.EnsureOpenAIProvider(configuration); + PasteAIProviderDefinition openAIProvider = ensureResult.Provider; + configurationUpdated |= ensureResult.Updated; if (legacyAdvancedAIConsumed && openAIProvider is not null && openAIProvider.EnableAdvancedAI != legacyAdvancedAIEnabled) { @@ -231,7 +228,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels RemoveLegacyOpenAICredential(); } - bool shouldEnableAI = legacyCredential is not null; + const bool shouldEnableAI = true; bool enabledChanged = false; if (properties.IsAIEnabled != shouldEnableAI) {