mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
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
f9be39eb4f
commit
e04c87445e
@@ -28,6 +28,8 @@ final class AppSettings {
|
|||||||
case hasRunNotificationPermissionsOnboarding
|
case hasRunNotificationPermissionsOnboarding
|
||||||
case hasRunIdentityConfirmationOnboarding
|
case hasRunIdentityConfirmationOnboarding
|
||||||
|
|
||||||
|
case frequentlyUsedSystemEmojis
|
||||||
|
|
||||||
case enableNotifications
|
case enableNotifications
|
||||||
case enableInAppNotifications
|
case enableInAppNotifications
|
||||||
case pusherProfileTag
|
case pusherProfileTag
|
||||||
@@ -40,7 +42,6 @@ final class AppSettings {
|
|||||||
case hideTimelineMedia
|
case hideTimelineMedia
|
||||||
|
|
||||||
case elementCallBaseURLOverride
|
case elementCallBaseURLOverride
|
||||||
case elementCallEncryptionEnabled
|
|
||||||
|
|
||||||
// Feature flags
|
// Feature flags
|
||||||
case slidingSyncDiscovery
|
case slidingSyncDiscovery
|
||||||
@@ -231,6 +232,9 @@ final class AppSettings {
|
|||||||
@UserPreference(key: UserDefaultsKeys.hasRunIdentityConfirmationOnboarding, defaultValue: false, storageType: .userDefaults(store))
|
@UserPreference(key: UserDefaultsKeys.hasRunIdentityConfirmationOnboarding, defaultValue: false, storageType: .userDefaults(store))
|
||||||
var hasRunIdentityConfirmationOnboarding
|
var hasRunIdentityConfirmationOnboarding
|
||||||
|
|
||||||
|
@UserPreference(key: UserDefaultsKeys.frequentlyUsedSystemEmojis, defaultValue: [String](), storageType: .userDefaults(store))
|
||||||
|
var frequentlyUsedSystemEmojis
|
||||||
|
|
||||||
// MARK: - Home Screen
|
// MARK: - Home Screen
|
||||||
|
|
||||||
@UserPreference(key: UserDefaultsKeys.hideUnreadMessagesBadge, defaultValue: false, storageType: .userDefaults(store))
|
@UserPreference(key: UserDefaultsKeys.hideUnreadMessagesBadge, defaultValue: false, storageType: .userDefaults(store))
|
||||||
|
|||||||
@@ -61,14 +61,7 @@ class EmojiProvider: EmojiProviderProtocol {
|
|||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
|
|
||||||
guard let preferences = UserDefaults(suiteName: "com.apple.EmojiPreferences"),
|
return appSettings.frequentlyUsedSystemEmojis
|
||||||
let defaults = preferences.dictionary(forKey: "EMFDefaultsKey"),
|
|
||||||
let recents = defaults["EMFRecentsKey"] as? [String]
|
|
||||||
else {
|
|
||||||
return []
|
|
||||||
}
|
|
||||||
|
|
||||||
return recents
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func markEmojiAsFrequentlyUsed(_ emoji: String) {
|
func markEmojiAsFrequentlyUsed(_ emoji: String) {
|
||||||
@@ -76,16 +69,10 @@ class EmojiProvider: EmojiProviderProtocol {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
guard let preferences = UserDefaults(suiteName: "com.apple.EmojiPreferences"),
|
var uniqueOrderedRecents = OrderedSet(appSettings.frequentlyUsedSystemEmojis)
|
||||||
let defaults = preferences.dictionary(forKey: "EMFDefaultsKey"),
|
|
||||||
let recents = defaults["EMFRecentsKey"] as? [String] else {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var uniqueOrderedRecents = OrderedSet(recents)
|
|
||||||
uniqueOrderedRecents.insert(emoji, at: 0)
|
uniqueOrderedRecents.insert(emoji, at: 0)
|
||||||
|
|
||||||
preferences.setValue(["EMFRecentsKey": Array(uniqueOrderedRecents)], forKey: "EMFDefaultsKey")
|
appSettings.frequentlyUsedSystemEmojis = Array(uniqueOrderedRecents)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Private
|
// MARK: - Private
|
||||||
|
|||||||
Reference in New Issue
Block a user