From 30625662a27d4105c3ba3efe2f09614c0d27feb4 Mon Sep 17 00:00:00 2001 From: Louis Pontoise Date: Fri, 28 Aug 2020 13:57:07 +0900 Subject: [PATCH] fix: some users have corrupted preferences, crashing on launch --- src/logic/Preferences.swift | 15 +++++++++++++++ src/ui/App.swift | 3 +-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/logic/Preferences.swift b/src/logic/Preferences.swift index 477a0086..927d07cc 100644 --- a/src/logic/Preferences.swift +++ b/src/logic/Preferences.swift @@ -124,6 +124,21 @@ class Preferences { static var highlightBackgroundColor: NSColor { theme.themeParameters.highlightBackgroundColor } static var font: NSFont { NSFont.systemFont(ofSize: fontHeight) } + static func initialize() { + removeCorruptedPreferences() + migratePreferences() + registerDefaults() + } + + static func removeCorruptedPreferences() { + // from v5.1.0+, there are crash reports of users somehow having their hold shortcuts set to "" + ["holdShortcut", "holdShortcut2"].forEach { + if let s = defaults.string(forKey: $0), s == "" { + defaults.removeObject(forKey: $0) + } + } + } + static func registerDefaults() { defaults.register(defaults: defaultValues) } diff --git a/src/ui/App.swift b/src/ui/App.swift index 7dc8beb2..8ce520c3 100644 --- a/src/ui/App.swift +++ b/src/ui/App.swift @@ -44,8 +44,7 @@ class App: AppCenterApplication, NSApplicationDelegate { SystemPermissions.ensurePermissionsAreGranted { [weak self] in guard let self = self else { return } BackgroundWork.start() - Preferences.migratePreferences() - Preferences.registerDefaults() + Preferences.initialize() Menubar.initialize() self.loadMainMenuXib() self.thumbnailsPanel = ThumbnailsPanel()