diff --git a/ElementX/Sources/Application/AppSettings.swift b/ElementX/Sources/Application/AppSettings.swift index 0c37794696..12c2ed0d2d 100644 --- a/ElementX/Sources/Application/AppSettings.swift +++ b/ElementX/Sources/Application/AppSettings.swift @@ -28,6 +28,8 @@ final class AppSettings { case hasRunNotificationPermissionsOnboarding case hasRunIdentityConfirmationOnboarding + case frequentlyUsedSystemEmojis + case enableNotifications case enableInAppNotifications case pusherProfileTag @@ -40,7 +42,6 @@ final class AppSettings { case hideTimelineMedia case elementCallBaseURLOverride - case elementCallEncryptionEnabled // Feature flags case slidingSyncDiscovery @@ -231,6 +232,9 @@ final class AppSettings { @UserPreference(key: UserDefaultsKeys.hasRunIdentityConfirmationOnboarding, defaultValue: false, storageType: .userDefaults(store)) var hasRunIdentityConfirmationOnboarding + @UserPreference(key: UserDefaultsKeys.frequentlyUsedSystemEmojis, defaultValue: [String](), storageType: .userDefaults(store)) + var frequentlyUsedSystemEmojis + // MARK: - Home Screen @UserPreference(key: UserDefaultsKeys.hideUnreadMessagesBadge, defaultValue: false, storageType: .userDefaults(store)) diff --git a/ElementX/Sources/Services/Emojis/EmojiProvider.swift b/ElementX/Sources/Services/Emojis/EmojiProvider.swift index 104f65ce23..ce604b135d 100644 --- a/ElementX/Sources/Services/Emojis/EmojiProvider.swift +++ b/ElementX/Sources/Services/Emojis/EmojiProvider.swift @@ -61,14 +61,7 @@ class EmojiProvider: EmojiProviderProtocol { return [] } - guard let preferences = UserDefaults(suiteName: "com.apple.EmojiPreferences"), - let defaults = preferences.dictionary(forKey: "EMFDefaultsKey"), - let recents = defaults["EMFRecentsKey"] as? [String] - else { - return [] - } - - return recents + return appSettings.frequentlyUsedSystemEmojis } func markEmojiAsFrequentlyUsed(_ emoji: String) { @@ -76,16 +69,10 @@ class EmojiProvider: EmojiProviderProtocol { return } - guard let preferences = UserDefaults(suiteName: "com.apple.EmojiPreferences"), - let defaults = preferences.dictionary(forKey: "EMFDefaultsKey"), - let recents = defaults["EMFRecentsKey"] as? [String] else { - return - } - - var uniqueOrderedRecents = OrderedSet(recents) + var uniqueOrderedRecents = OrderedSet(appSettings.frequentlyUsedSystemEmojis) uniqueOrderedRecents.insert(emoji, at: 0) - preferences.setValue(["EMFRecentsKey": Array(uniqueOrderedRecents)], forKey: "EMFDefaultsKey") + appSettings.frequentlyUsedSystemEmojis = Array(uniqueOrderedRecents) } // MARK: - Private