From 82a24c995248f6734a839f65da9081ec70ab0523 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Fri, 6 Mar 2020 23:45:52 +1100 Subject: [PATCH] Add validation prior to update portability --- Wox.Core/Configuration/IPortable.cs | 4 ++-- Wox.Core/Configuration/Portable.cs | 17 +++++++++++++++++ Wox/ViewModel/SettingWindowViewModel.cs | 3 +++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Wox.Core/Configuration/IPortable.cs b/Wox.Core/Configuration/IPortable.cs index 86a355b2b..069b6fb5b 100644 --- a/Wox.Core/Configuration/IPortable.cs +++ b/Wox.Core/Configuration/IPortable.cs @@ -1,4 +1,4 @@ - + namespace Wox.Core.Configuration { public interface IPortable @@ -12,6 +12,6 @@ namespace Wox.Core.Configuration bool IsPortableModeEnabled(); void MoveUserDataFolder(string fromLocation, string toLocation); void VerifyUserDataAfterMove(string fromLocation, string toLocation); - void CleanUpFolderAfterPortabilityUpdate(); + bool CanUpdatePortability(); } } \ No newline at end of file diff --git a/Wox.Core/Configuration/Portable.cs b/Wox.Core/Configuration/Portable.cs index 2d2a4492d..888941824 100644 --- a/Wox.Core/Configuration/Portable.cs +++ b/Wox.Core/Configuration/Portable.cs @@ -171,5 +171,22 @@ namespace Wox.Core.Configuration return; } } + + public bool CanUpdatePortability() + { + var roamingLocationExists = DataLocation.RoamingDataPath.LocationExists(); + var portableLocationExists = DataLocation.PortableDataPath.LocationExists(); + + if(roamingLocationExists && portableLocationExists) + { + MessageBox.Show(string.Format("Wox detected your user data exists both in {0} and " + + "{1}. {2}{2}Please delete {1} in order to proceed. No changes have occured.", + DataLocation.PortableDataPath, DataLocation.RoamingDataPath, Environment.NewLine)); + + return false; + } + + return true; + } } } diff --git a/Wox/ViewModel/SettingWindowViewModel.cs b/Wox/ViewModel/SettingWindowViewModel.cs index 197797534..1e22635e5 100644 --- a/Wox/ViewModel/SettingWindowViewModel.cs +++ b/Wox/ViewModel/SettingWindowViewModel.cs @@ -54,6 +54,9 @@ namespace Wox.ViewModel get { return _portableMode; } set { + if (!_portable.CanUpdatePortability()) + return; + _portableMode = value; Settings.PortableMode = value;