diff --git a/passKit/Models/Password.swift b/passKit/Models/Password.swift index 52b6566..b1e2426 100644 --- a/passKit/Models/Password.swift +++ b/passKit/Models/Password.swift @@ -39,7 +39,7 @@ public class Password { public var changed: Int = 0 public var plainText = "" - private var additions = [String: String]() + private var additions = [(String, String)]() private var firstLineIsOTPField = false private var otpToken: Token? @@ -101,7 +101,7 @@ public class Password { unknownIndex += 1 key = "unknown \(unknownIndex)" } - self.additions[key!] = value + self.additions.append((key!, value)) } } } @@ -110,7 +110,7 @@ public class Password { let (key, value) = Password.getKeyValuePair(from: self.password) if Password.otpKeywords.contains(key ?? "") { firstLineIsOTPField = true - self.additions[key!] = value + self.additions.append((key!, value)) } else { firstLineIsOTPField = false } @@ -119,13 +119,13 @@ public class Password { self.updateOtpToken() } - public func getFilteredAdditions() -> [String: String] { - var filteredAdditions = [String: String]() + public func getFilteredAdditions() -> [(String, String)] { + var filteredAdditions = [(String, String)]() additions.forEach { (key: String, value: String) in if key.lowercased() != "username" && key.lowercased() != "login" && key.lowercased() != "password" && (!key.hasPrefix("unknown") || !SharedDefaults[.isHideUnknownOn]) && (!Password.otpKeywords.contains(key) || !SharedDefaults[.isHideOTPOn]) { - filteredAdditions[key] = value + filteredAdditions.append((key, value)) } } return filteredAdditions @@ -186,17 +186,14 @@ public class Password { } private func getAdditionValue(withKey key: String, caseSensitive: Bool = true) -> String? { - if caseSensitive { - return additions[key] - } else { - let searchKey = key.lowercased() - for k in additions.keys { - if searchKey == k.lowercased() { - return additions[k] - } + let searchKey = caseSensitive ? key : key.lowercased() + for (currentKey, value) in additions { + let currentKeyTrans = caseSensitive ? currentKey : currentKey.lowercased() + if searchKey == currentKeyTrans { + return value } - return nil } + return nil } /*