diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/EmojiValues.java b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/EmojiValues.java index 3e3cb8eec7..caa921feb9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/EmojiValues.java +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/EmojiValues.java @@ -72,6 +72,10 @@ public class EmojiValues extends SignalStoreValues { return getString(PREFIX + canonical, emoji); } + public void removePreferredVariation(@NonNull String emoji) { + getStore().beginWrite().remove(PREFIX + emoji).apply(); + } + /** * Returns a list usable emoji that the user has selected as their defaults. If any stored reactions are unreadable, it will provide a default. * For raw access to the unfiltered list of reactions, see {@link #getRawReactions()}. diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsViewModel.kt index 31e1c9a905..4f91d10a1e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsViewModel.kt @@ -27,9 +27,7 @@ class EditReactionsViewModel : ViewModel() { fun onEmojiSelected(emoji: String) { store.update { state -> if (state.selection != NO_SELECTION && state.selection in state.reactions.indices) { - if (emoji != EmojiUtil.getCanonicalRepresentation(emoji)) { - emojiValues.setPreferredVariation(emoji) - } + emojiValues.setPreferredVariation(emoji) val preferredEmoji: String = emojiValues.getPreferredVariation(emoji) val newReactions: List = state.reactions.toMutableList().apply { set(state.selection, preferredEmoji) } state.copy(reactions = newReactions) @@ -40,6 +38,10 @@ class EditReactionsViewModel : ViewModel() { } fun resetToDefaults() { + EmojiValues.DEFAULT_REACTIONS_LIST.forEach { emoji -> + emojiValues.removePreferredVariation(EmojiUtil.getCanonicalRepresentation(emoji)) + } + store.update { it.copy(reactions = EmojiValues.DEFAULT_REACTIONS_LIST) } }