Add frequently used Apple emoji category and refactor emoji transformation logic
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user