diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSource.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSource.kt index 59c41752e..9dcef736a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSource.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSource.kt @@ -221,10 +221,18 @@ class ContactSearchPagedDataSource( } private fun getNonGroupHeaderLetterMap(section: ContactSearchConfiguration.Section.Individuals, query: String?): Map { - 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 { diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSourceRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSourceRepository.kt index 0960be8fe..daa527e3d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSourceRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSourceRepository.kt @@ -38,8 +38,8 @@ open class ContactSearchPagedDataSourceRepository( return contactRepository.querySignalContacts(query ?: "", includeSelf) } - open fun querySignalContactLetterHeaders(query: String?, includeSelf: Boolean): Map { - return SignalDatabase.recipients.querySignalContactLetterHeaders(query ?: "", includeSelf) + open fun querySignalContactLetterHeaders(query: String?, includeSelf: Boolean, includePush: Boolean, includeSms: Boolean): Map { + return SignalDatabase.recipients.querySignalContactLetterHeaders(query ?: "", includeSelf, includePush, includeSms) } open fun queryNonSignalContacts(query: String?): Cursor? { diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt index 3236e0793..a7822f3ce 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt @@ -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 { + fun querySignalContactLetterHeaders(inputQuery: String, includeSelf: Boolean, includePush: Boolean, includeSms: Boolean): Map { val searchSelection = ContactSearchSelection.Builder() - .withRegistered(true) + .withRegistered(includePush) + .withNonRegistered(includeSms) .withGroups(false) .excludeId(if (includeSelf) null else Recipient.self().id) .withSearchQuery(inputQuery)