From db9c569ebce119ff131192edf1b07a509555749e Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Wed, 25 Jan 2023 21:08:05 -0600 Subject: [PATCH] Authenticate upon start of the application if no settings exist --- .../LANCommanderClient.cs | 3 ++- .../LANCommanderLibraryPlugin.cs | 11 +++++++++-- .../ViewModels/LANCommanderSettingsViewModel.cs | 13 ++++++++----- .../Views/Authentication.xaml.cs | 2 +- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/LANCommander.Playnite.Extension/LANCommanderClient.cs b/LANCommander.Playnite.Extension/LANCommanderClient.cs index 03f9d34..807b55d 100644 --- a/LANCommander.Playnite.Extension/LANCommanderClient.cs +++ b/LANCommander.Playnite.Extension/LANCommanderClient.cs @@ -21,7 +21,8 @@ namespace LANCommander.PlaynitePlugin public LANCommanderClient(string baseUrl) { - Client = new RestClient(baseUrl); + if (!String.IsNullOrWhiteSpace(baseUrl)) + Client = new RestClient(baseUrl); } private T PostRequest(string route, object body) diff --git a/LANCommander.Playnite.Extension/LANCommanderLibraryPlugin.cs b/LANCommander.Playnite.Extension/LANCommanderLibraryPlugin.cs index 6fa4e6f..e6e8024 100644 --- a/LANCommander.Playnite.Extension/LANCommanderLibraryPlugin.cs +++ b/LANCommander.Playnite.Extension/LANCommanderLibraryPlugin.cs @@ -1,6 +1,7 @@ using LANCommander.PlaynitePlugin.Extensions; using LANCommander.SDK; using Playnite.SDK; +using Playnite.SDK.Events; using Playnite.SDK.Models; using Playnite.SDK.Plugins; using System; @@ -41,6 +42,7 @@ namespace LANCommander.PlaynitePlugin }; Settings = new LANCommanderSettingsViewModel(this); + LANCommander = new LANCommanderClient(Settings.ServerAddress); LANCommander.Token = new SDK.Models.AuthToken() { @@ -51,11 +53,16 @@ namespace LANCommander.PlaynitePlugin PowerShellRuntime = new PowerShellRuntime(); } + public override void OnApplicationStarted(OnApplicationStartedEventArgs args) + { + ShowAuthenticationWindow(); + } + public override IEnumerable GetGames(LibraryGetGamesArgs args) { var gameMetadata = new List(); - if (!LANCommander.ValidateToken(LANCommander.Token)) + if (LANCommander.Token != null && !LANCommander.ValidateToken(LANCommander.Token)) { try { @@ -298,7 +305,7 @@ namespace LANCommander.PlaynitePlugin window.Content = new Views.Authentication(this); window.DataContext = new ViewModels.Authentication() { - ServerAddress = Settings.ServerAddress + ServerAddress = Settings?.ServerAddress }; window.Owner = PlayniteApi.Dialogs.GetCurrentAppWindow(); diff --git a/LANCommander.Playnite.Extension/ViewModels/LANCommanderSettingsViewModel.cs b/LANCommander.Playnite.Extension/ViewModels/LANCommanderSettingsViewModel.cs index 700823b..193bdc1 100644 --- a/LANCommander.Playnite.Extension/ViewModels/LANCommanderSettingsViewModel.cs +++ b/LANCommander.Playnite.Extension/ViewModels/LANCommanderSettingsViewModel.cs @@ -26,11 +26,14 @@ namespace LANCommander.PlaynitePlugin var settings = Plugin.LoadPluginSettings(); - ServerAddress = settings.ServerAddress; - AccessToken = settings.AccessToken; - RefreshToken = settings.RefreshToken; - InstallDirectory = settings.InstallDirectory; - PlayerName = settings.PlayerName; + if (settings != null) + { + ServerAddress = settings.ServerAddress; + AccessToken = settings.AccessToken; + RefreshToken = settings.RefreshToken; + InstallDirectory = settings.InstallDirectory; + PlayerName = settings.PlayerName; + } } public void BeginEdit() diff --git a/LANCommander.Playnite.Extension/Views/Authentication.xaml.cs b/LANCommander.Playnite.Extension/Views/Authentication.xaml.cs index 91d267b..ca0d57a 100644 --- a/LANCommander.Playnite.Extension/Views/Authentication.xaml.cs +++ b/LANCommander.Playnite.Extension/Views/Authentication.xaml.cs @@ -54,7 +54,7 @@ namespace LANCommander.PlaynitePlugin.Views { try { - if (Plugin.LANCommander == null) + if (Plugin.LANCommander == null || Plugin.LANCommander.Client == null) Plugin.LANCommander = new LANCommanderClient(Context.ServerAddress); else Plugin.LANCommander.Client.BaseUrl = new Uri(Context.ServerAddress);