From 21a29fc89674f2e4a49674d9904bdb4ea28a2cf8 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Thu, 13 Oct 2022 12:39:55 -0400 Subject: [PATCH] Add inline selected emojis to the recently used list. Fixes #12514 --- .../conversation/ui/inlinequery/InlineQueryViewModel.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/inlinequery/InlineQueryViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/inlinequery/InlineQueryViewModel.kt index 5b1d3eecb..ca16dcb82 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/inlinequery/InlineQueryViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/inlinequery/InlineQueryViewModel.kt @@ -4,9 +4,11 @@ import androidx.lifecycle.ViewModel import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.subjects.PublishSubject +import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.keyboard.emoji.search.EmojiSearchRepository import org.thoughtcrime.securesms.keyvalue.SignalStore +import org.thoughtcrime.securesms.util.TextSecurePreferences import org.thoughtcrime.securesms.util.adapter.mapping.AnyMappingModel /** @@ -14,7 +16,10 @@ import org.thoughtcrime.securesms.util.adapter.mapping.AnyMappingModel * be shared between the fragment requesting the search and the instace of [InlineQueryResultsFragment] used for displaying * the results. */ -class InlineQueryViewModel(private val emojiSearchRepository: EmojiSearchRepository = EmojiSearchRepository(ApplicationDependencies.getApplication())) : ViewModel() { +class InlineQueryViewModel( + private val emojiSearchRepository: EmojiSearchRepository = EmojiSearchRepository(ApplicationDependencies.getApplication()), + private val recentEmojis: RecentEmojiPageModel = RecentEmojiPageModel(ApplicationDependencies.getApplication(), TextSecurePreferences.RECENT_STORAGE_KEY) +) : ViewModel() { private val querySubject: PublishSubject = PublishSubject.create() private val selectionSubject: PublishSubject = PublishSubject.create() @@ -46,6 +51,7 @@ class InlineQueryViewModel(private val emojiSearchRepository: EmojiSearchReposit fun onSelection(model: AnyMappingModel) { when (model) { is InlineQueryEmojiResult.Model -> { + recentEmojis.onCodePointSelected(model.preferredEmoji) selectionSubject.onNext(InlineQueryReplacement.Emoji(model.preferredEmoji, model.keywordSearch)) } }