コード例 #1
0
        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();
        }