From d688280a301c4e59ffe05a4066baf4b559afc915 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 2 Apr 2024 15:27:57 -0300 Subject: [PATCH] Fix search for users without thread. --- .../thoughtcrime/securesms/database/RecipientTable.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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 85689b964d..4e68b280d9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt @@ -3294,6 +3294,13 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da val args = searchSelection.args val orderBy = "${if (contactSearchQuery.contactSearchSortOrder == ContactSearchSortOrder.RECENCY) "${ThreadTable.TABLE_NAME}.${ThreadTable.DATE} DESC, " else ""}$SORT_NAME, $SYSTEM_JOINED_NAME, $SEARCH_PROFILE_NAME, $E164" + //language=roomsql + val join = if (contactSearchQuery.contactSearchSortOrder == ContactSearchSortOrder.RECENCY) { + "LEFT OUTER JOIN ${ThreadTable.TABLE_NAME} ON ${ThreadTable.TABLE_NAME}.${ThreadTable.RECIPIENT_ID} = $TABLE_NAME.$ID" + } else { + "" + } + return if (contactSearchQuery.contactSearchSortOrder == ContactSearchSortOrder.RECENCY) { val ambiguous = listOf(ID) val projection = SEARCH_PROJECTION.map { @@ -3305,7 +3312,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da """ SELECT ${projection.joinToString(",")} FROM $TABLE_NAME - JOIN ${ThreadTable.TABLE_NAME} ON ${ThreadTable.TABLE_NAME}.${ThreadTable.RECIPIENT_ID} = $TABLE_NAME.$ID + $join WHERE $selection ORDER BY $orderBy """.trimIndent(),