Add inline selected emojis to the recently used list.

Fixes #12514
This commit is contained in:
Cody Henthorne 2022-10-13 12:39:55 -04:00 committed by Alex Hart
parent 341b8effcf
commit 0819c8d2b9

View file

@ -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<InlineQuery> = PublishSubject.create()
private val selectionSubject: PublishSubject<InlineQueryReplacement> = 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))
}
}