Fix #3620 - Fix frequently used emojis, stop relying on Apple's keyboard values and store everything app side instead.
This commit is contained in:
committed by
Stefan Ceriu
parent
ffad834cd3
commit
3079afe7a8
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user