- Custom copper AccentColor and warm VaultBackground color assets (light/dark), applied to both the main app and the AutoFill extension (which needed its own copy of the asset catalog plus ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME and an explicit .tint() modifier, since extensions don't pick up the app-wide accent color the same way a full SwiftUI App/Scene does). - GroupFilterView no longer uses DisclosureGroup for subgroups -- the whole tree renders always-expanded (indented per depth) so active filters are visible at a glance instead of requiring tap-to-expand. - Added a placeholder app icon (padlock glyph, light/dark/tinted variants plus macOS sizes) -- previously the icon slot existed but had no actual images, which blocks App Store/TestFlight archive validation. - Added ITSAppUsesNonExemptEncryption = NO (standard encryption only, via KeePassKit) to skip the export-compliance prompt on each upload. - Renamed the app from MyPass to KeeVault throughout: Xcode project/targets/ schemes, the MyPassCore package (now KeeVaultCore) and every import site, folder and file names, bundle identifiers (org.antiloop222.keevault) and their App Group/Keychain-group entitlements, and remaining UI/string references -- MyPass was already taken as an App Store app name.
35 lines
1.1 KiB
Swift
35 lines
1.1 KiB
Swift
import Foundation
|
|
|
|
/// Maps KeePass's standard icon palette (indices 0-68) to an approximate SF Symbol.
|
|
/// This is a best-effort visual match, not the actual KeePass icon artwork -- KeeVault's
|
|
/// data model only stores the numeric iconIndex, not custom icon images.
|
|
public enum KeePassIconMapper {
|
|
private static let symbolsByIndex: [Int: String] = [
|
|
0: "key.fill",
|
|
1: "globe",
|
|
2: "exclamationmark.triangle.fill",
|
|
3: "server.rack",
|
|
4: "doc.on.clipboard.fill",
|
|
5: "pencil",
|
|
6: "camera.fill",
|
|
7: "wrench.fill",
|
|
8: "person.text.rectangle.fill",
|
|
9: "externaldrive.fill",
|
|
10: "creditcard.fill",
|
|
11: "chevron.left.forwardslash.chevron.right",
|
|
12: "chart.bar.fill",
|
|
13: "gamecontroller.fill",
|
|
14: "envelope.fill",
|
|
15: "folder.fill",
|
|
16: "lock.fill",
|
|
17: "checkmark.circle.fill",
|
|
18: "star.fill",
|
|
19: "house.fill",
|
|
20: "network",
|
|
]
|
|
|
|
public static func symbolName(forIconIndex index: Int) -> String {
|
|
symbolsByIndex[index] ?? "key.fill"
|
|
}
|
|
}
|