Ensure inbound messages mark recipients as registered.
This commit is contained in:
parent
2d2de1a652
commit
a94d77d81e
2 changed files with 8 additions and 44 deletions
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue