From 6ceb291fa6402b70a4eb6734f5e6f9e8afa8a344 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Mon, 25 May 2026 05:10:36 +0800
Subject: [PATCH] Allow latin app name romanized fuzzy search

---
 Apptag/QuickSearch.swift |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/Apptag/QuickSearch.swift b/Apptag/QuickSearch.swift
index eaf968b..d53f79d 100644
--- a/Apptag/QuickSearch.swift
+++ b/Apptag/QuickSearch.swift
@@ -379,15 +379,14 @@
     ) -> [QuickSearchIndexedField] {
         let names = uniqueOrdered([appName] + localizedNames)
         let nameFields = names.map {
-            let allowsRomanizedFuzzy = containsNonLatinLetter($0)
             return QuickSearchIndexedField(
                 kind: .name,
                 text: $0,
                 normalized: normalizeField($0),
                 acronym: acronym(for: $0),
-                pinyinCandidates: pinyinCandidates(for: $0),
-                allowPinyinSubstring: allowsRomanizedFuzzy,
-                allowPinyinFuzzySubsequence: allowsRomanizedFuzzy
+                pinyinCandidates: pinyinCandidates(for: $0, includeLatin: true),
+                allowPinyinSubstring: true,
+                allowPinyinFuzzySubsequence: true
             )
         }
         let tagFields = tagNames.map {
@@ -605,8 +604,8 @@
             .lowercased()
     }
 
-    private static func pinyinCandidates(for value: String) -> [String] {
-        guard containsNonLatinLetter(value) else { return [] }
+    private static func pinyinCandidates(for value: String, includeLatin: Bool = false) -> [String] {
+        guard includeLatin || containsNonLatinLetter(value) else { return [] }
         let mutable = NSMutableString(string: value)
         CFStringTransform(mutable, nil, kCFStringTransformToLatin, false)
         CFStringTransform(mutable, nil, kCFStringTransformStripCombiningMarks, false)
@@ -857,7 +856,7 @@
                 .cornerRadius(10)
 
             VStack(alignment: .leading, spacing: 4) {
-                Text(result.app.name)
+                Text(result.app.displayName)
                     .font(.system(size: 20, weight: .semibold))
                     .foregroundStyle(.primary)
                     .lineLimit(1)
@@ -921,7 +920,7 @@
     }
 
     private var accessibilityText: String {
-        [result.app.name, detailText].compactMap { $0 }.joined(separator: ", ")
+        [result.app.displayName, detailText].compactMap { $0 }.joined(separator: ", ")
     }
 }
 

--
Gitblit v1.9.3