mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 17:29:32 +01:00
Add inline emoji search.
This commit is contained in:
committed by
Greyson Parrelli
parent
ba7319e215
commit
19af68a27c
@@ -2,6 +2,8 @@ package org.thoughtcrime.securesms.keyboard.emoji.search
|
||||
|
||||
import android.content.Context
|
||||
import android.net.Uri
|
||||
import io.reactivex.rxjava3.core.Single
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import org.signal.core.util.concurrent.SignalExecutors
|
||||
import org.thoughtcrime.securesms.components.emoji.Emoji
|
||||
import org.thoughtcrime.securesms.components.emoji.EmojiPageModel
|
||||
@@ -13,12 +15,23 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences
|
||||
import java.util.function.Consumer
|
||||
|
||||
private const val MINIMUM_QUERY_THRESHOLD = 1
|
||||
private const val MINIMUM_INLINE_QUERY_THRESHOLD = 2
|
||||
private const val EMOJI_SEARCH_LIMIT = 20
|
||||
|
||||
class EmojiSearchRepository(private val context: Context) {
|
||||
|
||||
private val emojiSearchDatabase: EmojiSearchDatabase = SignalDatabase.emojiSearch
|
||||
|
||||
fun submitQuery(query: String, limit: Int = EMOJI_SEARCH_LIMIT): Single<List<String>> {
|
||||
if (query.length < MINIMUM_INLINE_QUERY_THRESHOLD) {
|
||||
return Single.just(emptyList())
|
||||
}
|
||||
|
||||
return Single.fromCallable<List<String>> {
|
||||
emojiSearchDatabase.query(query, limit)
|
||||
}.subscribeOn(Schedulers.io())
|
||||
}
|
||||
|
||||
fun submitQuery(query: String, includeRecents: Boolean, limit: Int = EMOJI_SEARCH_LIMIT, consumer: Consumer<EmojiPageModel>) {
|
||||
if (query.length < MINIMUM_QUERY_THRESHOLD && includeRecents) {
|
||||
consumer.accept(RecentEmojiPageModel(context, TextSecurePreferences.RECENT_STORAGE_KEY))
|
||||
|
||||
Reference in New Issue
Block a user