private GroupContext createGroupContent(TextSecureGroup group) { GroupContext.Builder builder = GroupContext.CreateBuilder(); builder.SetId(ByteString.CopyFrom(group.getGroupId())); if (group.getType() != TextSecureGroup.Type.DELIVER) { if (group.getType() == TextSecureGroup.Type.UPDATE) builder.SetType(GroupContext.Types.Type.UPDATE); else if (group.getType() == TextSecureGroup.Type.QUIT) builder.SetType(GroupContext.Types.Type.QUIT); else throw new Exception("Unknown type: " + group.getType()); if (group.getName().HasValue) builder.SetName(group.getName().ForceGetValue()); if (group.getMembers().HasValue) builder.AddRangeMembers(group.getMembers().ForceGetValue()); if (group.getAvatar().HasValue && group.getAvatar().ForceGetValue().isStream()) { AttachmentPointer pointer = createAttachmentPointer(group.getAvatar().ForceGetValue().asStream()); builder.SetAvatar(pointer); } } else { builder.SetType(GroupContext.Types.Type.DELIVER); } return builder.Build(); }