diff --git a/Session/Conversations/Context Menu/ContextMenuVC.swift b/Session/Conversations/Context Menu/ContextMenuVC.swift index 206901b28..524d923bd 100644 --- a/Session/Conversations/Context Menu/ContextMenuVC.swift +++ b/Session/Conversations/Context Menu/ContextMenuVC.swift @@ -61,7 +61,7 @@ final class ContextMenuVC : UIViewController { self.dismiss = dismiss super.init(nibName: nil, bundle: nil) Storage.read { transaction in - self.recentEmoji = Array(Storage.shared.getRecentEmoji(transaction: transaction)[...5]) + self.recentEmoji = Array(Storage.shared.getRecentEmoji(withDefaultEmoji: true, transaction: transaction)[...5]) } } diff --git a/Session/Conversations/Emoji Picker/EmojiPickerCollectionView.swift b/Session/Conversations/Emoji Picker/EmojiPickerCollectionView.swift index 6eea609b1..7bb1f358b 100644 --- a/Session/Conversations/Emoji Picker/EmojiPickerCollectionView.swift +++ b/Session/Conversations/Emoji Picker/EmojiPickerCollectionView.swift @@ -67,7 +67,7 @@ class EmojiPickerCollectionView: UICollectionView { tapGestureRecognizer.delegate = self Storage.read { transaction in - self.recentEmoji = Storage.shared.getRecentEmoji(transaction: transaction) + self.recentEmoji = Storage.shared.getRecentEmoji(withDefaultEmoji: false, transaction: transaction) // Some emoji have two different code points but identical appearances. Let's remove them! // If we normalize to a different emoji than the one currently in our array, we want to drop diff --git a/Session/Emoji/Storage+Emoji.swift b/Session/Emoji/Storage+Emoji.swift index 35db167db..69cf017b7 100644 --- a/Session/Emoji/Storage+Emoji.swift +++ b/Session/Emoji/Storage+Emoji.swift @@ -3,11 +3,11 @@ extension Storage { private static let emojiPickerCollection = "EmojiPickerCollection" private static let recentEmojiKey = "recentEmoji" - func getRecentEmoji(transaction: YapDatabaseReadTransaction) -> [EmojiWithSkinTones] { + func getRecentEmoji(withDefaultEmoji: Bool, transaction: YapDatabaseReadTransaction) -> [EmojiWithSkinTones] { var rawRecentEmoji = transaction.object(forKey: Self.recentEmojiKey, inCollection: Self.emojiPickerCollection) as? [String] ?? [] let defaultEmoji = ["🙈", "🙉", "🙊", "😈", "🥸", "🐀"].filter{ !rawRecentEmoji.contains($0) } - if rawRecentEmoji.count < 6 { + if rawRecentEmoji.count < 6 && withDefaultEmoji { rawRecentEmoji.append(contentsOf: defaultEmoji[..<(defaultEmoji.count - rawRecentEmoji.count)]) } @@ -15,7 +15,7 @@ extension Storage { } func recordRecentEmoji(_ emoji: EmojiWithSkinTones, transaction: YapDatabaseReadWriteTransaction) { - let recentEmoji = getRecentEmoji(transaction: transaction) + let recentEmoji = getRecentEmoji(withDefaultEmoji: false, transaction: transaction) guard recentEmoji.first != emoji else { return } guard emoji.isNormalized else { recordRecentEmoji(emoji.normalized, transaction: transaction)