mirror of
https://github.com/oxen-io/session-android.git
synced 2023-12-14 02:53:01 +01:00
* feat: modifying search functionalities to include contacts * feat: add global search UI input layouts and color attributes * feat: add global search repository and model content * feat: adding diff callbacks and wiring up global search vm to views * feat: adding scroll to message, figuring out new query for recipient thread search * feat: messing with the search and highlighting functionality after wiring up bindings * fix: compile error from merge * fix: gradlew build errors * feat: filtering contacts by existing un-archived threads * refactor: prevent note to self breaking, update queries and logic in search repo to include member->group reverse searches * feat: adding home screen new redesigns for search * feat: replacing designs and adding new group subtitle text * feat: small design improvements and incrementing gradle build number to install on device * feat: add scrollbars for search * feat: replace isVisible for cancel button now that GlobalSearchInputLayout.kt replaces header * refactor: all queries are debounced not just all but 2 char * refactor: remove visibility modifiers for cancel icon * refactor: use simplified non-db and context related models in display, remove db get group members call from binding data * fix: use threadId instead of group's address * refactor: better close on cancel, removing only yourself from group member list in open groups * refactor: seed view back to inflated on create and visibility for empty placeholder and seed view text * refactor: fixing build issues and new designs for message list * refactor: use dynamic limit * refactor: include raw session ID string search for non-empty threads * fix: build lint errors * fix: build issues * feat: add in path to the settings activity * refactor: remove wildcard imports
35 lines
1.2 KiB
Kotlin
35 lines
1.2 KiB
Kotlin
package org.thoughtcrime.securesms.home.search
|
|
|
|
import org.session.libsession.messaging.contacts.Contact
|
|
import org.session.libsession.utilities.GroupRecord
|
|
import org.thoughtcrime.securesms.database.model.ThreadRecord
|
|
import org.thoughtcrime.securesms.search.model.MessageResult
|
|
import org.thoughtcrime.securesms.search.model.SearchResult
|
|
|
|
data class GlobalSearchResult(
|
|
val query: String,
|
|
val contacts: List<Contact>,
|
|
val threads: List<GroupRecord>,
|
|
val messages: List<MessageResult>
|
|
) {
|
|
|
|
val isEmpty: Boolean
|
|
get() = contacts.isEmpty() && threads.isEmpty() && messages.isEmpty()
|
|
|
|
companion object {
|
|
|
|
val EMPTY = GlobalSearchResult("", emptyList(), emptyList(), emptyList())
|
|
const val SEARCH_LIMIT = 5
|
|
|
|
fun from(searchResult: SearchResult): GlobalSearchResult {
|
|
val query = searchResult.query
|
|
val contactList = searchResult.contacts.toList()
|
|
val threads = searchResult.conversations.toList()
|
|
val messages = searchResult.messages.toList()
|
|
searchResult.close()
|
|
return GlobalSearchResult(query, contactList, threads, messages)
|
|
}
|
|
|
|
}
|
|
}
|