Do not remove system contact badging during partial syncs.

Fixes #11236
This commit is contained in:
Tomer Rosenfeld 2021-04-27 15:35:48 +03:00 committed by Cody Henthorne
parent 0314db0b58
commit 1eae360470

View file

@ -99,7 +99,7 @@ public class DirectoryHelper {
Set<String> databaseNumbers = sanitizeNumbers(recipientDatabase.getAllPhoneNumbers());
Set<String> systemNumbers = sanitizeNumbers(ContactAccessor.getInstance().getAllContactsWithNumbers(context));
refreshNumbers(context, databaseNumbers, systemNumbers, notifyOfNewUsers);
refreshNumbers(context, databaseNumbers, systemNumbers, notifyOfNewUsers, true);
StorageSyncHelper.scheduleSyncForDataChange();
}
@ -123,7 +123,7 @@ public class DirectoryHelper {
.map(Recipient::requireE164)
.collect(Collectors.toSet());
refreshNumbers(context, numbers, numbers, notifyOfNewUsers);
refreshNumbers(context, numbers, numbers, notifyOfNewUsers, false);
}
@WorkerThread
@ -217,7 +217,7 @@ public class DirectoryHelper {
}
@WorkerThread
private static void refreshNumbers(@NonNull Context context, @NonNull Set<String> databaseNumbers, @NonNull Set<String> systemNumbers, boolean notifyOfNewUsers) throws IOException {
private static void refreshNumbers(@NonNull Context context, @NonNull Set<String> databaseNumbers, @NonNull Set<String> systemNumbers, boolean notifyOfNewUsers, boolean removeSystemContactEntryForMissing) throws IOException {
RecipientDatabase recipientDatabase = DatabaseFactory.getRecipientDatabase(context);
Set<String> allNumbers = SetUtil.union(databaseNumbers, systemNumbers);
@ -266,7 +266,7 @@ public class DirectoryHelper {
stopwatch.split("update-registered");
updateContactsDatabase(context, activeIds, true, result.getNumberRewrites());
updateContactsDatabase(context, activeIds, removeSystemContactEntryForMissing, result.getNumberRewrites());
stopwatch.split("contacts-db");