From 6d035c6888a22556a6c44164fd3e19104c90ca61 Mon Sep 17 00:00:00 2001 From: Alan Evans Date: Mon, 13 Jul 2020 18:14:02 -0300 Subject: [PATCH] Allow sending of group v2 updates to inactive groups. --- .../securesms/jobs/PushGroupSendJob.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) 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;