diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java index 2cb68af0e1..3568e4d0a5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java @@ -108,14 +108,14 @@ public class PushGroupSendJob extends PushSendJob { throw new AssertionError("Not a group!"); } - if (!DatabaseFactory.getGroupDatabase(context).isActive(group.requireGroupId())) { + MmsDatabase database = DatabaseFactory.getMmsDatabase(context); + OutgoingMediaMessage message = database.getOutgoingMessage(messageId); + Set attachmentUploadIds = enqueueCompressingAndUploadAttachmentsChains(jobManager, message); + + if (!DatabaseFactory.getGroupDatabase(context).isActive(group.requireGroupId()) && !isGv2UpdateMessage(message)) { throw new MmsException("Inactive group!"); } - MmsDatabase database = DatabaseFactory.getMmsDatabase(context); - OutgoingMediaMessage message = database.getOutgoingMessage(messageId); - Set attachmentUploadIds = enqueueCompressingAndUploadAttachmentsChains(jobManager, message); - jobManager.add(new PushGroupSendJob(messageId, destination, filterAddress, !attachmentUploadIds.isEmpty()), attachmentUploadIds, attachmentUploadIds.isEmpty() ? null : destination.toQueueKey()); } catch (NoSuchMessageException | MmsException e) { @@ -132,6 +132,10 @@ public class PushGroupSendJob extends PushSendJob { .build(); } + private static boolean isGv2UpdateMessage(@NonNull OutgoingMediaMessage message) { + return (message instanceof OutgoingGroupUpdateMessage && ((OutgoingGroupUpdateMessage) message).isV2Group()); + } + @Override public @NonNull String getFactoryKey() { return KEY;