mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-14 10:11:58 +00:00
add emoji autocomplete to task form
This commit is contained in:
parent
3fde7dbba9
commit
76332b74ab
2 changed files with 12 additions and 3 deletions
|
|
@ -36,6 +36,7 @@ import com.habitrpg.android.habitica.modules.AppModule
|
|||
import com.habitrpg.android.habitica.ui.WrapContentRecyclerViewLayoutManager
|
||||
import com.habitrpg.android.habitica.ui.adapter.tasks.CheckListAdapter
|
||||
import com.habitrpg.android.habitica.ui.adapter.tasks.RemindersAdapter
|
||||
import com.habitrpg.android.habitica.ui.helpers.*
|
||||
import io.reactivex.functions.Consumer
|
||||
import io.realm.Realm
|
||||
import io.realm.RealmList
|
||||
|
|
@ -229,6 +230,14 @@ class TaskFormActivity : BaseActivity() {
|
|||
createRemindersRecyclerView()
|
||||
}
|
||||
|
||||
val textAutocompleteAdapter = AutocompleteAdapter(this)
|
||||
taskText.setAdapter(textAutocompleteAdapter)
|
||||
taskText.threshold = 2
|
||||
taskText.setTokenizer(ChatInputTokenizer())
|
||||
val notesAutocompleteAdapter = AutocompleteAdapter(this)
|
||||
taskNotes.setAdapter(notesAutocompleteAdapter)
|
||||
taskNotes.threshold = 2
|
||||
taskNotes.setTokenizer(ChatInputTokenizer())
|
||||
|
||||
enableRepeatables()
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import net.pherth.android.emoji_library.EmojiMap
|
|||
import net.pherth.android.emoji_library.EmojiParser
|
||||
import net.pherth.android.emoji_library.EmojiTextView
|
||||
|
||||
class AutocompleteAdapter(val context: Context, val socialRepository: SocialRepository, var autocompleteContext: String, var groupID: String?) : BaseAdapter(), Filterable {
|
||||
class AutocompleteAdapter(val context: Context, val socialRepository: SocialRepository? = null, var autocompleteContext: String? = null, var groupID: String? = null) : BaseAdapter(), Filterable {
|
||||
private var userResults: List<FindUsernameResult> = arrayListOf()
|
||||
private var emojiResults: List<String> = arrayListOf()
|
||||
private var isAutocompletingUsers = true
|
||||
|
|
@ -27,12 +27,12 @@ class AutocompleteAdapter(val context: Context, val socialRepository: SocialRepo
|
|||
override fun performFiltering(constraint: CharSequence?): FilterResults {
|
||||
val filterResults = FilterResults()
|
||||
if (constraint != null && constraint.isNotEmpty()) {
|
||||
if (constraint[0] == '@') {
|
||||
if (constraint[0] == '@' && socialRepository != null) {
|
||||
isAutocompletingUsers = true
|
||||
userResults = socialRepository.findUsernames(constraint.toString().drop(1), autocompleteContext, groupID).blockingFirst(arrayListOf())
|
||||
filterResults.values = userResults
|
||||
filterResults.count = userResults.size
|
||||
} else {
|
||||
} else if (constraint[0] == ':') {
|
||||
isAutocompletingUsers = false
|
||||
emojiResults = EmojiMap.invertedEmojiMap.keys.filter { it.startsWith(constraint) }
|
||||
filterResults.values = emojiResults
|
||||
|
|
|
|||
Loading…
Reference in a new issue