Allow sending of group v2 updates to inactive groups.

This commit is contained in:
Alan Evans 2020-07-13 18:14:02 -03:00
parent 833ca8cce9
commit 6d035c6888

View File

@ -108,14 +108,14 @@ public class PushGroupSendJob extends PushSendJob {
throw new AssertionError("Not a group!");
}
if (!DatabaseFactory.getGroupDatabase(context).isActive(group.requireGroupId())) {
throw new MmsException("Inactive group!");
}
MmsDatabase database = DatabaseFactory.getMmsDatabase(context);
OutgoingMediaMessage message = database.getOutgoingMessage(messageId);
Set<String> attachmentUploadIds = enqueueCompressingAndUploadAttachmentsChains(jobManager, message);
if (!DatabaseFactory.getGroupDatabase(context).isActive(group.requireGroupId()) && !isGv2UpdateMessage(message)) {
throw new MmsException("Inactive group!");
}
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;