diff --git a/Sources/EmojiKit/AppleEmojiCategory.swift b/Sources/EmojiKit/AppleEmojiCategory.swift index 2823b34..61e52af 100644 --- a/Sources/EmojiKit/AppleEmojiCategory.swift +++ b/Sources/EmojiKit/AppleEmojiCategory.swift @@ -21,14 +21,15 @@ public class AppleEmojiCategory: Codable, Hashable { public enum Name: String, CaseIterable, Codable { - case flags = "flags" - case activity = "activity" - case objects = "objects" - case travelAndPlaces = "travelAndPlaces" - case symbols = "symbols" + case frequentlyUsed = "frequentlyUsed" + case smileysAndPeople = "smileysAndPeople" case animalsAndNature = "animalsAndNature" case foodAndDrink = "foodAndDrink" - case smileysAndPeople = "smileysAndPeople" + case activity = "activity" + case travelAndPlaces = "travelAndPlaces" + case objects = "objects" + case symbols = "symbols" + case flags = "flags" public static var orderedCases: [Name] { return allCases.sorted(by: { $0.order < $1.order }) @@ -36,22 +37,24 @@ public class AppleEmojiCategory: Codable, Hashable { public var order: Int { switch self { - case .flags: - return 8 - case .activity: - return 4 - case .objects: - return 6 - case .travelAndPlaces: - return 5 - case .symbols: - return 7 + case .frequentlyUsed: + return 0 + case .smileysAndPeople: + return 1 case .animalsAndNature: return 2 case .foodAndDrink: return 3 - case .smileysAndPeople: - return 1 + case .activity: + return 4 + case .travelAndPlaces: + return 5 + case .objects: + return 6 + case .symbols: + return 7 + case .flags: + return 8 } } diff --git a/Sources/EmojiKit/EmojiManager.swift b/Sources/EmojiKit/EmojiManager.swift index 64f6d09..30aaf9c 100644 --- a/Sources/EmojiKit/EmojiManager.swift +++ b/Sources/EmojiKit/EmojiManager.swift @@ -92,13 +92,7 @@ public enum EmojiManager { if isNeutralEmoji(for: $0.key) { supportedEmojis[$0.key] = $0.value } else if showAllVariations { - var unqualifiedNeutralEmoji = unqualifiedNeutralEmoji(for: $0.key) - - let unicodeScalars = unqualifiedNeutralEmoji.unicodeScalars.map { $0.value } - if let actualUnqualifiedNeutralScalar = emojiSpecialMapping[unicodeScalars], - let actualUnqualifiedNeutralEmoji = uint32ToEmoji(actualUnqualifiedNeutralScalar) { - unqualifiedNeutralEmoji = String(actualUnqualifiedNeutralEmoji) - } + let unqualifiedNeutralEmoji = unqualifiedNeutralEmoji(for: $0.key) if let variationsForEmoji = variations[unqualifiedNeutralEmoji] { variations[unqualifiedNeutralEmoji] = variationsForEmoji + [$0.value] @@ -166,6 +160,12 @@ public enum EmojiManager { } } + let unicodeScalars = unqualifiedEmoji.unicodeScalars.map { $0.value } + if let actualUnqualifiedNeutralScalar = emojiSpecialMapping[unicodeScalars], + let actualUnqualifiedNeutralEmoji = uint32ToEmoji(actualUnqualifiedNeutralScalar) { + return String(actualUnqualifiedNeutralEmoji) + } + return unqualifiedEmoji } }