From 7c8c804dacd1747101c0949a3ca26c94c690af79 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Wed, 20 May 2026 02:35:59 +0800
Subject: [PATCH] Release TagLauncher 7.5.1

---
 Apptag/AppDefaults.swift |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/Apptag/AppDefaults.swift b/Apptag/AppDefaults.swift
index 973798e..2f2f720 100644
--- a/Apptag/AppDefaults.swift
+++ b/Apptag/AppDefaults.swift
@@ -2,7 +2,7 @@
 
 enum AppDefaults {
     static let schemaVersionKey = "initialDefaultsSchemaVersion"
-    static let currentSchemaVersion = 1
+    static let currentSchemaVersion = 2
 
     static let tagFontSize: Double = 22
     static let iconSize: Double = 80
@@ -24,10 +24,32 @@
             "launchAtLogin": launchAtLogin,
             "showUncommonAppBubbles": showUncommonAppBubbles
         ])
+        migrateShortcutDefaultsIfNeeded()
     }
 
     static func hasStoredValue(for key: String) -> Bool {
         let domain = Bundle.main.bundleIdentifier ?? "com.apptag.launcher"
         return UserDefaults.standard.persistentDomain(forName: domain)?[key] != nil
     }
+
+    private static func migrateShortcutDefaultsIfNeeded() {
+        let defaults = UserDefaults.standard
+        guard defaults.integer(forKey: schemaVersionKey) < currentSchemaVersion else { return }
+
+        defaults.set(LauncherHotkey.defaultMain.serialized, forKey: LauncherHotkeyKind.main.storageKey)
+        defaults.removeObject(forKey: LauncherHotkeyKind.main.pendingStorageKey)
+        defaults.removeObject(forKey: LauncherHotkeyKind.main.statusKey)
+        defaults.removeObject(forKey: LauncherHotkeyKind.main.conflictMessageKey)
+
+        let quickSearchKey = LauncherHotkeyKind.quickSearch.storageKey
+        let storedQuickSearch = defaults.string(forKey: quickSearchKey) ?? ""
+        if storedQuickSearch.isEmpty {
+            defaults.set(LauncherHotkey.defaultQuickSearch.serialized, forKey: quickSearchKey)
+            defaults.removeObject(forKey: LauncherHotkeyKind.quickSearch.pendingStorageKey)
+            defaults.removeObject(forKey: LauncherHotkeyKind.quickSearch.statusKey)
+            defaults.removeObject(forKey: LauncherHotkeyKind.quickSearch.conflictMessageKey)
+        }
+
+        defaults.set(currentSchemaVersion, forKey: schemaVersionKey)
+    }
 }

--
Gitblit v1.9.3