/**
  * Construct a group context.
  * @param type The group message type (update, deliver, quit).
  * @param groupId The group ID.
  * @param name The group title.
  * @param members The group membership list.
  * @param avatar The group avatar icon.
  */
 public TextSecureGroup(Type type, byte[] groupId, String name,
                        IList<String> members,
                        TextSecureAttachment avatar)
 {
     this.type = type;
     this.groupId = groupId;
     this.name = new May<String>(name);
     this.members = new May<IList<String>>(members);
     this.avatar = new May<TextSecureAttachment>(avatar);
 }
 /**
  * Construct a group context.
  * @param type The group message type (update, deliver, quit).
  * @param groupId The group ID.
  * @param name The group title.
  * @param members The group membership list.
  * @param avatar The group avatar icon.
  */
 public TextSecureGroup(Type type, byte[] groupId, String name,
                        IList <String> members,
                        TextSecureAttachment avatar)
 {
     this.type    = type;
     this.groupId = groupId;
     this.name    = new May <String>(name);
     this.members = new May <IList <String> >(members);
     this.avatar  = new May <TextSecureAttachment>(avatar);
 }
 public Builder withAvatar(TextSecureAttachment avatar)
 {
     this.avatar = avatar;
     return this;
 }
 public TextSecureDataMessageBuilder withAttachment(TextSecureAttachment attachment)
 {
     this.attachments.AddLast(attachment);
     return(this);
 }
 public TextSecureDataMessageBuilder withAttachment(TextSecureAttachment attachment)
 {
     this.attachments.AddLast(attachment);
     return this;
 }
 public Builder withAvatar(TextSecureAttachment avatar)
 {
     this.avatar = avatar;
     return(this);
 }