Ariver
2026-08-28 c8f827e22866cc98f8bbb1c8146e28b2bb40a5cd
C1.source/Apptag/DataLayer.swift
@@ -70,12 +70,31 @@
        return tag(name)
    }
    static func isReservedGroupName(_ name: String, defaultGroupName: String = "Other") -> Bool {
        reservedGroupNames(defaultGroupName: defaultGroupName).contains(
            name.trimmingCharacters(in: .whitespacesAndNewlines)
        )
    }
    private static func isUncategorizedDisplayName(_ name: String) -> Bool {
        name == "Other" || name == tr("group.uncategorized")
    }
    private static func isAppleBuiltInDisplayName(_ name: String) -> Bool {
        name == "Mac自带" || name == tr("group.appleBuiltIn")
    }
    private static func reservedGroupNames(defaultGroupName: String) -> Set<String> {
        let names = [
            "Other",
            defaultGroupName,
            tr("group.uncategorized"),
            "Mac自带",
            tr("group.appleBuiltIn"),
            TagDatabase.uncommonTagKey,
            tr("group.uncommon")
        ]
        return Set(names.map { $0.trimmingCharacters(in: .whitespacesAndNewlines) }.filter { !$0.isEmpty })
    }
}
@@ -868,7 +887,9 @@
            } else {
                for tag in uniqueOrdered(app.tags) {
                    let displayName = nameOverrides[tag] ?? tag
                    guard displayName != macCategory else { continue }
                    guard !AppContainerID.isReservedGroupName(displayName, defaultGroupName: defaultGroupName) else {
                        continue
                    }
                    appendGroupedApp(
                        app,
                        to: displayName,
@@ -886,9 +907,9 @@
            tagOrder: tagOrder
        ) {
            let displayName = nameOverrides[tagName] ?? tagName
            guard displayName != macCategory,
                  displayName != defaultGroupName
            else { continue }
            guard !AppContainerID.isReservedGroupName(displayName, defaultGroupName: defaultGroupName) else {
                continue
            }
            if containerIDsByGroupName[displayName] == nil {
                containerIDsByGroupName[displayName] = AppContainerID.forTag(