addPart method
PartBuilder
addPart({
- ContentDispositionHeader? disposition,
- MimePart? mimePart,
- MediaSubtype? mediaSubtype,
- bool insert = false,
Adds a new part
Specifiy the optional disposition
in case you want to specify the content-disposition
Optionally specify the mimePart
, if it is already known
Optionally specify the mediaSubtype
, e.g. MediaSubtype.multipartAlternative
Optionally set insert
to true
to prepend and not append the part.
Implementation
PartBuilder addPart({
ContentDispositionHeader? disposition,
MimePart? mimePart,
MediaSubtype? mediaSubtype,
bool insert = false,
}) {
final addAttachmentInfo = (mimePart != null &&
mimePart.getHeaderContentDisposition()?.disposition ==
ContentDisposition.attachment);
mimePart ??= MimePart();
final childBuilder = PartBuilder(mimePart);
if (mediaSubtype != null) {
childBuilder.setContentType(mediaSubtype.mediaType);
} else if (mimePart.getHeaderContentType() != null) {
childBuilder.contentType = mimePart.getHeaderContentType();
}
_children ??= <PartBuilder>[];
if (insert) {
_part.insertPart(mimePart);
_children!.insert(0, childBuilder);
} else {
_part.addPart(mimePart);
_children!.add(childBuilder);
}
disposition ??= mimePart.getHeaderContentDisposition();
childBuilder.contentDisposition = disposition;
if (mimePart.isTextMediaType()) {
childBuilder.text = mimePart.decodeContentText();
}
if (addAttachmentInfo) {
final info = AttachmentInfo(
null,
mimePart.mediaType,
mimePart.decodeFileName(),
disposition!.size,
disposition.disposition,
mimePart.decodeContentBinary(),
childBuilder);
attachments.add(info);
}
return childBuilder;
}