Fixed re-setting of url copy or open after each application launch (fixes #989)

This commit is contained in:
Michael Starke
2019-10-30 10:14:37 +01:00
parent 2beb033572
commit 3817bf503f

View File

@@ -102,7 +102,7 @@ NSString *const kMPDepricatedSettingsKeyAutotypeHideAccessibiltyWarning = @"Au
@implementation MPSettingsHelper
+ (void)setupDefaults {
[[NSUserDefaults standardUserDefaults] registerDefaults:[self _standardDefaults]];
[NSUserDefaults.standardUserDefaults registerDefaults:[self _standardDefaults]];
}
+ (void)migrateDefaults {
@@ -193,7 +193,7 @@ NSString *const kMPDepricatedSettingsKeyAutotypeHideAccessibiltyWarning = @"Au
+ (void)_removeDeprecatedValues {
/* Clear old style values */
for(NSString *key in [self _deprecatedSettingsKeys]) {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:key];
[NSUserDefaults.standardUserDefaults removeObjectForKey:key];
}
}
@@ -224,10 +224,18 @@ NSString *const kMPDepricatedSettingsKeyAutotypeHideAccessibiltyWarning = @"Au
}
+ (void)_migrateURLDoubleClickPreferences {
/* Default was NO so if the key was not set, we also get NO, which is what we want */
BOOL openURL = [[NSUserDefaults standardUserDefaults] boolForKey:kMPDeprecatedSettingsKeyDoubleClickURLToLaunch];
if(NO == openURL) {
[[NSUserDefaults standardUserDefaults] setInteger:MPDoubleClickURLActionOpen forKey:kMPSettingsKeyDoubleClickURLAction];
/*
Default was NO so if the key was not set the correct action now should be MPDoubleClickURLActionCopy
But MPDoubleClickURLActionCopy is the default we cannot simply add this value.
Hence we chose to only migrate a changed default and let the "old" default silenty be updated
This is a worth trade-off since the other solution will always re-set the default
*/
if(nil == [NSUserDefaults.standardUserDefaults objectForKey:kMPDeprecatedSettingsKeyDoubleClickURLToLaunch]) {
return; // the value was not set, do nothing since we cannot determine what to do
}
/* only update the settings if the defaults return an explicit set value */
if([NSUserDefaults.standardUserDefaults boolForKey:kMPDeprecatedSettingsKeyDoubleClickURLToLaunch]) {
[NSUserDefaults.standardUserDefaults setInteger:MPDoubleClickURLActionOpen forKey:kMPSettingsKeyDoubleClickURLAction];
}
}