Resolve crashing when trying to get the header letters for the contacts section of search.
This commit is contained in:
parent
90695182f3
commit
25c96a6be6
3 changed files with 17 additions and 8 deletions
|
@ -221,10 +221,18 @@ class ContactSearchPagedDataSource(
|
|||
}
|
||||
|
||||
private fun getNonGroupHeaderLetterMap(section: ContactSearchConfiguration.Section.Individuals, query: String?): Map<RecipientId, String> {
|
||||
return when (section.transportType) {
|
||||
ContactSearchConfiguration.TransportType.PUSH -> contactSearchPagedDataSourceRepository.querySignalContactLetterHeaders(query, section.includeSelf)
|
||||
else -> error("This has only been implemented for push recipients.")
|
||||
}
|
||||
return contactSearchPagedDataSourceRepository.querySignalContactLetterHeaders(
|
||||
query = query,
|
||||
includeSelf = section.includeSelf,
|
||||
includePush = when (section.transportType) {
|
||||
ContactSearchConfiguration.TransportType.PUSH, ContactSearchConfiguration.TransportType.ALL -> true
|
||||
else -> false
|
||||
},
|
||||
includeSms = when (section.transportType) {
|
||||
ContactSearchConfiguration.TransportType.SMS, ContactSearchConfiguration.TransportType.ALL -> true
|
||||
else -> false
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
private fun getStoriesSearchIterator(query: String?): ContactSearchIterator<Cursor> {
|
||||
|
|
|
@ -38,8 +38,8 @@ open class ContactSearchPagedDataSourceRepository(
|
|||
return contactRepository.querySignalContacts(query ?: "", includeSelf)
|
||||
}
|
||||
|
||||
open fun querySignalContactLetterHeaders(query: String?, includeSelf: Boolean): Map<RecipientId, String> {
|
||||
return SignalDatabase.recipients.querySignalContactLetterHeaders(query ?: "", includeSelf)
|
||||
open fun querySignalContactLetterHeaders(query: String?, includeSelf: Boolean, includePush: Boolean, includeSms: Boolean): Map<RecipientId, String> {
|
||||
return SignalDatabase.recipients.querySignalContactLetterHeaders(query ?: "", includeSelf, includePush, includeSms)
|
||||
}
|
||||
|
||||
open fun queryNonSignalContacts(query: String?): Cursor? {
|
||||
|
|
|
@ -3078,9 +3078,10 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da
|
|||
return readableDatabase.query(TABLE_NAME, SEARCH_PROJECTION, selection, args, null, null, orderBy)
|
||||
}
|
||||
|
||||
fun querySignalContactLetterHeaders(inputQuery: String, includeSelf: Boolean): Map<RecipientId, String> {
|
||||
fun querySignalContactLetterHeaders(inputQuery: String, includeSelf: Boolean, includePush: Boolean, includeSms: Boolean): Map<RecipientId, String> {
|
||||
val searchSelection = ContactSearchSelection.Builder()
|
||||
.withRegistered(true)
|
||||
.withRegistered(includePush)
|
||||
.withNonRegistered(includeSms)
|
||||
.withGroups(false)
|
||||
.excludeId(if (includeSelf) null else Recipient.self().id)
|
||||
.withSearchQuery(inputQuery)
|
||||
|
|
Loading…
Add table
Reference in a new issue