fix group parser

pull/104/head
Ryan ZHAO 6 years ago
parent 9e1681558e
commit cfe435bcd1

@ -31,7 +31,7 @@ NS_ASSUME_NONNULL_BEGIN
if ([OWSBlockingManager.sharedManager isGroupIdBlocked:group.groupId]) { if ([OWSBlockingManager.sharedManager isGroupIdBlocked:group.groupId]) {
[groupBuilder setBlocked:YES]; [groupBuilder setBlocked:YES];
} }
/*
NSData *avatarPng; NSData *avatarPng;
if (group.groupImage) { if (group.groupImage) {
SSKProtoGroupDetailsAvatarBuilder *avatarBuilder = [SSKProtoGroupDetailsAvatar builder]; SSKProtoGroupDetailsAvatarBuilder *avatarBuilder = [SSKProtoGroupDetailsAvatar builder];
@ -47,7 +47,7 @@ NS_ASSUME_NONNULL_BEGIN
} else { } else {
[groupBuilder setAvatar:avatarProto]; [groupBuilder setAvatar:avatarProto];
} }
} } */
OWSDisappearingMessagesConfiguration *_Nullable disappearingMessagesConfiguration = OWSDisappearingMessagesConfiguration *_Nullable disappearingMessagesConfiguration =
[OWSDisappearingMessagesConfiguration fetchObjectWithUniqueID:groupThread.uniqueId transaction:transaction]; [OWSDisappearingMessagesConfiguration fetchObjectWithUniqueID:groupThread.uniqueId transaction:transaction];
@ -70,12 +70,12 @@ NS_ASSUME_NONNULL_BEGIN
uint32_t groupDataLength = (uint32_t)groupData.length; uint32_t groupDataLength = (uint32_t)groupData.length;
[self writeVariableLengthUInt32:groupDataLength]; [self writeUInt32:groupDataLength];
[self writeData:groupData]; [self writeData:groupData];
if (avatarPng) { // if (avatarPng) {
[self writeData:avatarPng]; // [self writeData:avatarPng];
} // }
} }
@end @end

@ -17,7 +17,7 @@
guard let size = uncheckedSize, size < data.count else { break } guard let size = uncheckedSize, size < data.count else { break }
let sizeAsInt = Int(size) let sizeAsInt = Int(size)
index += 4 index += 4
guard index + sizeAsInt < data.count else { break } guard index + sizeAsInt <= data.count else { break }
let protoAsData = data[index..<(index+sizeAsInt)] let protoAsData = data[index..<(index+sizeAsInt)]
guard let proto = try? SSKProtoGroupDetails.parseData(protoAsData) else { break } guard let proto = try? SSKProtoGroupDetails.parseData(protoAsData) else { break }
index += sizeAsInt index += sizeAsInt

@ -1110,7 +1110,7 @@ NS_ASSUME_NONNULL_BEGIN
GroupParser *parser = [[GroupParser alloc] initWithData:data]; GroupParser *parser = [[GroupParser alloc] initWithData:data];
NSArray<TSGroupModel *> *groupModels = [parser parseGroupModels]; NSArray<TSGroupModel *> *groupModels = [parser parseGroupModels];
for (TSGroupModel *groupModel in groupModels) { for (TSGroupModel *groupModel in groupModels) {
TSGroupThread *thread = [TSGroupThread getOrCreateThreadWithGroupModel:groupModel]; TSGroupThread *thread = [TSGroupThread getOrCreateThreadWithGroupModel:groupModel transaction:transaction];
[self establishSessionsWithMembersIfNeeded:groupModel.groupMemberIds forThread:thread transaction:transaction]; [self establishSessionsWithMembersIfNeeded:groupModel.groupMemberIds forThread:thread transaction:transaction];
} }
} }

Loading…
Cancel
Save