Ensure inbound messages mark recipients as registered.

This commit is contained in:
Greyson Parrelli 2021-05-12 12:20:14 -04:00
parent 2d2de1a652
commit a94d77d81e
2 changed files with 8 additions and 44 deletions

View file

@ -2084,49 +2084,6 @@ public class RecipientDatabase extends Database {
}
}
@Deprecated
public void setRegistered(@NonNull RecipientId id, RegisteredState registeredState) {
ContentValues contentValues = new ContentValues(1);
contentValues.put(REGISTERED, registeredState.getId());
if (registeredState == RegisteredState.NOT_REGISTERED) {
contentValues.putNull(STORAGE_SERVICE_ID);
}
if (update(id, contentValues)) {
if (registeredState == RegisteredState.REGISTERED) {
setStorageIdIfNotSet(id);
}
Recipient.live(id).refresh();
}
}
@Deprecated
public void setRegistered(@NonNull Collection<RecipientId> activeIds,
@NonNull Collection<RecipientId> inactiveIds)
{
for (RecipientId activeId : activeIds) {
ContentValues registeredValues = new ContentValues(1);
registeredValues.put(REGISTERED, RegisteredState.REGISTERED.getId());
if (update(activeId, registeredValues)) {
setStorageIdIfNotSet(activeId);
Recipient.live(activeId).refresh();
}
}
for (RecipientId inactiveId : inactiveIds) {
ContentValues contentValues = new ContentValues(1);
contentValues.put(REGISTERED, RegisteredState.NOT_REGISTERED.getId());
contentValues.putNull(STORAGE_SERVICE_ID);
if (update(inactiveId, contentValues)) {
Recipient.live(inactiveId).refresh();
}
}
}
/**
* Handles inserts the (e164, UUID) pairs, which could result in merges. Does not mark users as
* registered.

View file

@ -216,7 +216,14 @@ public class Recipient {
RecipientDatabase db = DatabaseFactory.getRecipientDatabase(context);
RecipientId recipientId = db.getAndPossiblyMerge(uuid, e164, highTrust);
return resolved(recipientId);
Recipient resolved = resolved(recipientId);
if (highTrust && !resolved.isRegistered()) {
Log.w(TAG, "External high-trust push was locally marked unregistered. Marking as registered.");
db.markRegistered(recipientId);
}
return resolved;
}
/**