From f012a4134599b7d77068fec975034466bdecea14 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 11 Jan 2021 20:35:49 -0500 Subject: [PATCH] Fix issue with Signal join notifications. --- .../securesms/contacts/sync/DirectoryHelper.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/DirectoryHelper.java b/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/DirectoryHelper.java index c19fa85f1f..ff8466d672 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/DirectoryHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/DirectoryHelper.java @@ -252,6 +252,8 @@ public class DirectoryHelper { stopwatch.split("handle-unlisted"); + Set preExistingRegisteredUsers = new HashSet<>(recipientDatabase.getRegistered()); + recipientDatabase.bulkUpdatedRegisteredStatus(uuidMap, inactiveIds); stopwatch.split("update-registered"); @@ -265,14 +267,13 @@ public class DirectoryHelper { } if (TextSecurePreferences.hasSuccessfullyRetrievedDirectory(context) && notifyOfNewUsers) { - Set existingSignalIds = new HashSet<>(recipientDatabase.getRegistered()); - Set existingSystemIds = new HashSet<>(recipientDatabase.getSystemContacts()); - Set newlyActiveIds = new HashSet<>(activeIds); + Set systemContacts = new HashSet<>(recipientDatabase.getSystemContacts()); + Set newlyRegisteredSystemContacts = new HashSet<>(activeIds); - newlyActiveIds.removeAll(existingSignalIds); - newlyActiveIds.retainAll(existingSystemIds); + newlyRegisteredSystemContacts.removeAll(preExistingRegisteredUsers); + newlyRegisteredSystemContacts.retainAll(systemContacts); - notifyNewUsers(context, newlyActiveIds); + notifyNewUsers(context, newlyRegisteredSystemContacts); } else { TextSecurePreferences.setHasSuccessfullyRetrievedDirectory(context, true); }