mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 01:40:07 +01:00
Add search by group membership.
This commit is contained in:
committed by
Greyson Parrelli
parent
777a91abc7
commit
a9fc5622cd
@@ -10,6 +10,7 @@ import androidx.annotation.Nullable;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import org.signal.core.util.CursorUtil;
|
||||
import org.signal.core.util.concurrent.LatestPrioritizedSerialExecutor;
|
||||
import org.signal.core.util.concurrent.SignalExecutors;
|
||||
import org.signal.core.util.logging.Log;
|
||||
@@ -29,7 +30,6 @@ import org.thoughtcrime.securesms.database.model.ThreadRecord;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||
import org.signal.core.util.CursorUtil;
|
||||
import org.thoughtcrime.securesms.util.FtsUtil;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
import org.thoughtcrime.securesms.util.concurrent.SerialExecutor;
|
||||
@@ -161,11 +161,13 @@ public class SearchRepository {
|
||||
|
||||
Set<RecipientId> recipientIds = new LinkedHashSet<>();
|
||||
|
||||
Set<RecipientId> filteredContacts = new LinkedHashSet<>();
|
||||
try (Cursor cursor = SignalDatabase.recipients().queryAllContacts(query)) {
|
||||
while (cursor != null && cursor.moveToNext()) {
|
||||
recipientIds.add(RecipientId.from(CursorUtil.requireString(cursor, RecipientDatabase.ID)));
|
||||
filteredContacts.add(RecipientId.from(CursorUtil.requireString(cursor, RecipientDatabase.ID)));
|
||||
}
|
||||
}
|
||||
recipientIds.addAll(filteredContacts);
|
||||
|
||||
GroupDatabase.GroupRecord record;
|
||||
try (GroupDatabase.Reader reader = SignalDatabase.groups().queryGroupsByTitle(query, true, false, false)) {
|
||||
@@ -174,6 +176,12 @@ public class SearchRepository {
|
||||
}
|
||||
}
|
||||
|
||||
try (GroupDatabase.Reader reader = SignalDatabase.groups().queryGroupsByMembership(filteredContacts, true, false, false)) {
|
||||
while ((record = reader.getNext()) != null) {
|
||||
recipientIds.add(record.getRecipientId());
|
||||
}
|
||||
}
|
||||
|
||||
if (noteToSelfTitle.toLowerCase().contains(query.toLowerCase())) {
|
||||
recipientIds.add(Recipient.self().getId());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user