Ensure we properly detect update messages for migrations.

fork-5.53.8
Greyson Parrelli 2020-11-20 11:39:55 -05:00 zatwierdzone przez GitHub
rodzic 2ff3d1b7c5
commit 28511de23c
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 13 dodań i 0 usunięć

Wyświetl plik

@ -953,6 +953,13 @@ public final class PushProcessMessageJob extends BaseJob {
try { try {
GroupDatabase groupDatabase = DatabaseFactory.getGroupDatabase(context); GroupDatabase groupDatabase = DatabaseFactory.getGroupDatabase(context);
if (message.getMessage().isGroupV2Message()) {
Optional<GroupDatabase.GroupRecord> possibleGv1 = groupDatabase.getGroupV1ByExpectedV2(GroupId.v2(message.getMessage().getGroupContext().get().getGroupV2().get().getMasterKey()));
if (possibleGv1.isPresent()) {
GroupsV1MigrationUtil.performLocalMigration(context, possibleGv1.get().getId().requireV1());
}
}
long threadId = -1; long threadId = -1;
if (message.isRecipientUpdate()) { if (message.isRecipientUpdate()) {
@ -965,6 +972,8 @@ public final class PushProcessMessageJob extends BaseJob {
} else if (message.getMessage().isGroupV2Update()) { } else if (message.getMessage().isGroupV2Update()) {
handleSynchronizeSentGv2Update(content, message); handleSynchronizeSentGv2Update(content, message);
threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(getSyncMessageDestination(message)); threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(getSyncMessageDestination(message));
} else if (message.getMessage().isEmptyGroupV2Message()) {
// Do nothing
} else if (message.getMessage().isExpirationUpdate()) { } else if (message.getMessage().isExpirationUpdate()) {
threadId = handleSynchronizeSentExpirationUpdate(message); threadId = handleSynchronizeSentExpirationUpdate(message);
} else if (message.getMessage().getReaction().isPresent()) { } else if (message.getMessage().getReaction().isPresent()) {

Wyświetl plik

@ -163,6 +163,10 @@ public class SignalServiceDataMessage {
!hasRenderableContent(); !hasRenderableContent();
} }
public boolean isEmptyGroupV2Message() {
return isGroupV2Message() && !isGroupV2Update() && !hasRenderableContent();
}
/** Contains some user data that affects the conversation */ /** Contains some user data that affects the conversation */
public boolean hasRenderableContent() { public boolean hasRenderableContent() {
return attachments.isPresent() || return attachments.isPresent() ||