fixup group sync

pull/1/head
Michael Kirk 9 years ago
parent 69da0b3c25
commit 8526f018e5

@ -33,16 +33,21 @@ NS_ASSUME_NONNULL_BEGIN
- (OWSSignalServiceProtosSyncMessage *)buildSyncMessage
{
OWSSignalServiceProtosSyncMessageBuilder *syncMessageBuilder = [OWSSignalServiceProtosSyncMessageBuilder new];
OWSSignalServiceProtosSyncMessageContactsBuilder *contactsBuilder =
[OWSSignalServiceProtosSyncMessageContactsBuilder new];
[syncMessageBuilder setContactsBuilder:contactsBuilder];
if (self.attachmentIds.count != 1) {
DDLogError(@"expected sync contact message to have exactly one attachment, but found %lu",
(unsigned long)self.attachmentIds.count);
}
[contactsBuilder setBlobBuilder:[self attachmentBuilderForAttachmentId:self.attachmentIds[0]]];
OWSSignalServiceProtosAttachmentPointer *attachmentProto =
[self buildAttachmentProtoForAttachmentId:self.attachmentIds[0]];
OWSSignalServiceProtosSyncMessageContactsBuilder *contactsBuilder =
[OWSSignalServiceProtosSyncMessageContactsBuilder new];
[contactsBuilder setBlob:attachmentProto];
OWSSignalServiceProtosSyncMessageBuilder *syncMessageBuilder = [OWSSignalServiceProtosSyncMessageBuilder new];
[syncMessageBuilder setContactsBuilder:contactsBuilder];
return [syncMessageBuilder build];
}

@ -26,16 +26,21 @@ NS_ASSUME_NONNULL_BEGIN
- (OWSSignalServiceProtosSyncMessage *)buildSyncMessage
{
OWSSignalServiceProtosSyncMessageBuilder *syncMessageBuilder = [OWSSignalServiceProtosSyncMessageBuilder new];
OWSSignalServiceProtosSyncMessageGroupsBuilder *groupsBuilder =
[OWSSignalServiceProtosSyncMessageGroupsBuilder new];
[syncMessageBuilder setGroupsBuilder:groupsBuilder];
if (self.attachmentIds.count != 1) {
DDLogError(@"expected sync groups message to have exactly one attachment, but found %lu",
(unsigned long)self.attachmentIds.count);
}
[groupsBuilder setBlobBuilder:[self attachmentBuilderForAttachmentId:self.attachmentIds[0]]];
OWSSignalServiceProtosAttachmentPointer *attachmentProto =
[self buildAttachmentProtoForAttachmentId:self.attachmentIds[0]];
OWSSignalServiceProtosSyncMessageGroupsBuilder *groupsBuilder =
[OWSSignalServiceProtosSyncMessageGroupsBuilder new];
[groupsBuilder setBlob:attachmentProto];
OWSSignalServiceProtosSyncMessageBuilder *syncMessageBuilder = [OWSSignalServiceProtosSyncMessageBuilder new];
[syncMessageBuilder setGroupsBuilder:groupsBuilder];
return [syncMessageBuilder build];
}

@ -5,7 +5,7 @@
NS_ASSUME_NONNULL_BEGIN
@class OWSSignalServiceProtosAttachmentPointerBuilder;
@class OWSSignalServiceProtosAttachmentPointer;
@interface TSOutgoingMessage : TSMessage
@ -37,13 +37,13 @@ typedef NS_ENUM(NSInteger, TSOutgoingMessageState) {
- (BOOL)shouldSyncTranscript;
/**
* @param attachmentStream
* Containing the meta data used when populating the attachment proto
* @param attachmentId
* id of an AttachmentStream containing the meta data used when populating the attachment proto
*
* @return
* An attachment builder suitable for including in various container protobuf builders
* An attachment pointer protobuf suitable for including in various container protobuf builders
*/
- (OWSSignalServiceProtosAttachmentPointerBuilder *)attachmentBuilderForAttachmentId:(NSString *)attachmentId;
- (OWSSignalServiceProtosAttachmentPointer *)buildAttachmentProtoForAttachmentId:(NSString *)attachmentId;
@end

@ -58,7 +58,7 @@ NS_ASSUME_NONNULL_BEGIN
case TSGroupMessageNew: {
if (gThread.groupModel.groupImage != nil && self.attachmentIds.count == 1) {
attachmentWasGroupAvatar = YES;
[groupBuilder setAvatarBuilder:[self attachmentBuilderForAttachmentId:self.attachmentIds[0]]];
[groupBuilder setAvatar:[self buildAttachmentProtoForAttachmentId:self.attachmentIds[0]]];
}
[groupBuilder setMembersArray:gThread.groupModel.groupMemberIds];
@ -76,9 +76,7 @@ NS_ASSUME_NONNULL_BEGIN
if (!attachmentWasGroupAvatar) {
NSMutableArray *attachments = [NSMutableArray new];
for (NSString *attachmentId in self.attachmentIds) {
OWSSignalServiceProtosAttachmentPointerBuilder *attachmentBuilder =
[self attachmentBuilderForAttachmentId:attachmentId];
[attachments addObject:[attachmentBuilder build]];
[attachments addObject:[self buildAttachmentProtoForAttachmentId:attachmentId]];
}
[builder setAttachmentsArray:attachments];
}
@ -95,7 +93,8 @@ NS_ASSUME_NONNULL_BEGIN
return !self.hasSyncedTranscript;
}
- (OWSSignalServiceProtosAttachmentPointerBuilder *)attachmentBuilderForAttachmentId:(NSString *)attachmentId
- (OWSSignalServiceProtosAttachmentPointer *)buildAttachmentProtoForAttachmentId:(NSString *)attachmentId
{
TSAttachment *attachment = [TSAttachmentStream fetchObjectWithUniqueID:attachmentId];
if (![attachment isKindOfClass:[TSAttachmentStream class]]) {
@ -109,7 +108,7 @@ NS_ASSUME_NONNULL_BEGIN
[builder setContentType:attachmentStream.contentType];
[builder setKey:attachmentStream.encryptionKey];
return builder;
return [builder build];
}
@end

@ -238,7 +238,7 @@
}
if (syncMessage.hasRequest) {
if (syncMessage.request.type == OWSSignalServiceProtosSyncMessageRequestTypeContacts) {
DDLogInfo(@"Received Contacts `request` syncMessage.");
DDLogInfo(@"Received request `Contacts` syncMessage.");
OWSSyncContactsMessage *syncContactsMessage =
[[OWSSyncContactsMessage alloc] initWithContactsManager:[TextSecureKitEnv sharedEnv].contactsManager];
@ -255,7 +255,7 @@
}];
} else if (syncMessage.request.type == OWSSignalServiceProtosSyncMessageRequestTypeGroups) {
DDLogInfo(@"Received Contacts `groups` syncMessage.");
DDLogInfo(@"Received request `groups` syncMessage.");
OWSSyncGroupsMessage *syncGroupsMessage = [[OWSSyncGroupsMessage alloc] init];

Loading…
Cancel
Save