diff --git a/MacPass/MPSettingsHelper.m b/MacPass/MPSettingsHelper.m index 336e001b..dfe4d04d 100644 --- a/MacPass/MPSettingsHelper.m +++ b/MacPass/MPSettingsHelper.m @@ -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]; } }