diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscoveryRefreshV2.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscoveryRefreshV2.kt index d1378c878b..375f4ddcae 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscoveryRefreshV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscoveryRefreshV2.kt @@ -198,7 +198,7 @@ object ContactDiscoveryRefreshV2 { private fun hasCommunicatedWith(recipient: Recipient): Boolean { val localAci = SignalStore.account().requireAci() - return SignalDatabase.threads.hasThread(recipient.id) || (recipient.hasServiceId() && SignalDatabase.sessions.hasSessionFor(localAci, recipient.requireServiceId().toString())) + return SignalDatabase.threads.hasActiveThread(recipient.id) || (recipient.hasServiceId() && SignalDatabase.sessions.hasSessionFor(localAci, recipient.requireServiceId().toString())) } /** diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt index 7503e1876f..3c32157f76 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt @@ -1241,6 +1241,13 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa return getThreadIdIfExistsFor(recipientId) > -1 } + fun hasActiveThread(recipientId: RecipientId): Boolean { + return readableDatabase + .exists(TABLE_NAME) + .where("$RECIPIENT_ID = ? AND $ACTIVE = 1", recipientId) + .run() + } + fun updateLastSeenAndMarkSentAndLastScrolledSilenty(threadId: Long) { writableDatabase .update(TABLE_NAME)