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 - (OWSSignalServiceProtosSyncMessage *)buildSyncMessage
{ {
OWSSignalServiceProtosSyncMessageBuilder *syncMessageBuilder = [OWSSignalServiceProtosSyncMessageBuilder new];
OWSSignalServiceProtosSyncMessageContactsBuilder *contactsBuilder =
[OWSSignalServiceProtosSyncMessageContactsBuilder new];
[syncMessageBuilder setContactsBuilder:contactsBuilder];
if (self.attachmentIds.count != 1) { if (self.attachmentIds.count != 1) {
DDLogError(@"expected sync contact message to have exactly one attachment, but found %lu", DDLogError(@"expected sync contact message to have exactly one attachment, but found %lu",
(unsigned long)self.attachmentIds.count); (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]; return [syncMessageBuilder build];
} }

@ -26,16 +26,21 @@ NS_ASSUME_NONNULL_BEGIN
- (OWSSignalServiceProtosSyncMessage *)buildSyncMessage - (OWSSignalServiceProtosSyncMessage *)buildSyncMessage
{ {
OWSSignalServiceProtosSyncMessageBuilder *syncMessageBuilder = [OWSSignalServiceProtosSyncMessageBuilder new];
OWSSignalServiceProtosSyncMessageGroupsBuilder *groupsBuilder =
[OWSSignalServiceProtosSyncMessageGroupsBuilder new];
[syncMessageBuilder setGroupsBuilder:groupsBuilder];
if (self.attachmentIds.count != 1) { if (self.attachmentIds.count != 1) {
DDLogError(@"expected sync groups message to have exactly one attachment, but found %lu", DDLogError(@"expected sync groups message to have exactly one attachment, but found %lu",
(unsigned long)self.attachmentIds.count); (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]; return [syncMessageBuilder build];
} }

@ -5,7 +5,7 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@class OWSSignalServiceProtosAttachmentPointerBuilder; @class OWSSignalServiceProtosAttachmentPointer;
@interface TSOutgoingMessage : TSMessage @interface TSOutgoingMessage : TSMessage
@ -37,13 +37,13 @@ typedef NS_ENUM(NSInteger, TSOutgoingMessageState) {
- (BOOL)shouldSyncTranscript; - (BOOL)shouldSyncTranscript;
/** /**
* @param attachmentStream * @param attachmentId
* Containing the meta data used when populating the attachment proto * id of an AttachmentStream containing the meta data used when populating the attachment proto
* *
* @return * @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 @end

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

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

Loading…
Cancel
Save