mirror of
https://github.com/mollyim/mollyim-insider-android.git
synced 2025-05-13 05:40:53 +01:00
Do not show unregistered contacts in search results.
This commit is contained in:
parent
80609f89aa
commit
7fccf5d592
3 changed files with 5 additions and 10 deletions
|
@ -210,14 +210,8 @@ class ContactSearchPagedDataSource(
|
|||
}
|
||||
|
||||
private fun getNonGroupSearchIterator(section: ContactSearchConfiguration.Section.Individuals, query: String?): ContactSearchIterator<Cursor> {
|
||||
return when (section.transportType) {
|
||||
ContactSearchConfiguration.TransportType.PUSH -> {
|
||||
val searchQuery = RecipientTable.ContactSearchQuery(query ?: "", section.includeSelf, section.pushSearchResultsSortOrder)
|
||||
CursorSearchIterator(wrapRecipientCursor(contactSearchPagedDataSourceRepository.querySignalContacts(searchQuery)))
|
||||
}
|
||||
ContactSearchConfiguration.TransportType.SMS -> CursorSearchIterator(wrapRecipientCursor(contactSearchPagedDataSourceRepository.queryNonSignalContacts(query)))
|
||||
ContactSearchConfiguration.TransportType.ALL -> CursorSearchIterator(wrapRecipientCursor(contactSearchPagedDataSourceRepository.queryNonGroupContacts(query, section.includeSelf)))
|
||||
}
|
||||
val searchQuery = RecipientTable.ContactSearchQuery(query ?: "", section.includeSelf, section.pushSearchResultsSortOrder)
|
||||
return CursorSearchIterator(wrapRecipientCursor(contactSearchPagedDataSourceRepository.querySignalContacts(searchQuery)))
|
||||
}
|
||||
|
||||
private fun wrapRecipientCursor(cursor: Cursor?): Cursor? {
|
||||
|
|
|
@ -3439,7 +3439,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da
|
|||
//language=sql
|
||||
val subquery = """
|
||||
SELECT ${SEARCH_PROJECTION.joinToString(", ")} FROM $TABLE_NAME
|
||||
WHERE $BLOCKED = ? AND $HIDDEN = ? AND NOT EXISTS (SELECT 1 FROM ${ThreadTable.TABLE_NAME} WHERE ${ThreadTable.TABLE_NAME}.${ThreadTable.ACTIVE} = 1 AND ${ThreadTable.TABLE_NAME}.${ThreadTable.RECIPIENT_ID} = $TABLE_NAME.$ID LIMIT 1)
|
||||
WHERE $BLOCKED = ? AND $HIDDEN = ? AND $REGISTERED != ? AND NOT EXISTS (SELECT 1 FROM ${ThreadTable.TABLE_NAME} WHERE ${ThreadTable.TABLE_NAME}.${ThreadTable.ACTIVE} = 1 AND ${ThreadTable.TABLE_NAME}.${ThreadTable.RECIPIENT_ID} = $TABLE_NAME.$ID LIMIT 1)
|
||||
AND (
|
||||
$SORT_NAME GLOB ? OR
|
||||
$USERNAME GLOB ? OR
|
||||
|
@ -3448,7 +3448,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da
|
|||
)
|
||||
"""
|
||||
|
||||
return readableDatabase.query(subquery, SqlUtil.buildArgs(0, 0, query, query, query, query))
|
||||
return readableDatabase.query(subquery, SqlUtil.buildArgs(0, 0, RegisteredState.NOT_REGISTERED.id, query, query, query, query))
|
||||
}
|
||||
|
||||
@JvmOverloads
|
||||
|
|
|
@ -203,6 +203,7 @@ class ContactSearchPagedDataSourceTest {
|
|||
|
||||
whenever(repository.getRecents(recents)).thenReturn(cursor)
|
||||
whenever(repository.queryNonGroupContacts(isNull(), any())).thenReturn(cursor)
|
||||
whenever(repository.querySignalContacts(any())).thenReturn(cursor)
|
||||
whenever(cursor.count).thenReturn(10)
|
||||
|
||||
return ContactSearchPagedDataSource(configuration, repository)
|
||||
|
|
Loading…
Reference in a new issue