Ensure we properly detect update messages for migrations.

This commit is contained in:
Greyson Parrelli
2020-11-20 11:39:55 -05:00
committed by GitHub
parent 2ff3d1b7c5
commit 28511de23c
2 changed files with 13 additions and 0 deletions

View File

@@ -953,6 +953,13 @@ public final class PushProcessMessageJob extends BaseJob {
try {
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;
if (message.isRecipientUpdate()) {
@@ -965,6 +972,8 @@ public final class PushProcessMessageJob extends BaseJob {
} else if (message.getMessage().isGroupV2Update()) {
handleSynchronizeSentGv2Update(content, message);
threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(getSyncMessageDestination(message));
} else if (message.getMessage().isEmptyGroupV2Message()) {
// Do nothing
} else if (message.getMessage().isExpirationUpdate()) {
threadId = handleSynchronizeSentExpirationUpdate(message);
} else if (message.getMessage().getReaction().isPresent()) {

View File

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