Ensure notifications for new users won't be generated first fetch

This commit is contained in:
Moxie Marlinspike
2017-11-30 10:26:41 -08:00
parent 66e1be1aeb
commit f855e161d9
11 changed files with 36 additions and 19 deletions
@@ -47,7 +47,7 @@ public class DirectoryHelper {
private static final String TAG = DirectoryHelper.class.getSimpleName();
public static void refreshDirectory(@NonNull Context context, @Nullable MasterSecret masterSecret)
public static void refreshDirectory(@NonNull Context context, @Nullable MasterSecret masterSecret, boolean notifyOfNewUsers)
throws IOException
{
if (TextUtils.isEmpty(TextSecurePreferences.getLocalNumber(context))) return;
@@ -60,7 +60,7 @@ public class DirectoryHelper {
.add(new MultiDeviceContactUpdateJob(context));
}
notifyNewUsers(context, masterSecret, newlyActiveUsers);
if (notifyOfNewUsers) notifyNewUsers(context, masterSecret, newlyActiveUsers);
}
public static @NonNull List<Address> refreshDirectory(@NonNull Context context, @NonNull SignalServiceAccountManager accountManager)
@@ -101,7 +101,12 @@ public class DirectoryHelper {
recipientDatabase.setRegistered(activeRecipients, inactiveRecipients);
updateContactsDatabase(context, Stream.of(activeRecipients).map(Recipient::getAddress).toList(), true);
return newlyActiveAddresses;
if (TextSecurePreferences.hasSuccessfullyRetrievedDirectory(context)) {
return newlyActiveAddresses;
} else {
TextSecurePreferences.setHasSuccessfullyRetrievedDirectory(context, true);
return new LinkedList<>();
}
}
return new LinkedList<>();