collectContentInfo method
void
collectContentInfo(
- ContentDisposition disposition,
- List<
ContentInfo> result, - String? fetchId, {
- bool? reverse,
- bool? complete,
Adds the matching disposition header with the specified disposition
of this part and this children parts to the result
.
Optionally set reverse
to true
to add all parts that do not match the specified disposition
.
Set complete
to false
to skip the included messages parts.
Implementation
void collectContentInfo(
ContentDisposition disposition, List<ContentInfo> result, String? fetchId,
{bool? reverse, bool? complete}) {
reverse ??= false;
complete ??= true;
final header = getHeaderContentDisposition();
final isMessage = getHeaderContentType()?.mediaType.isMessage ?? false;
if ((!reverse && header?.disposition == disposition) ||
(reverse && header?.disposition != disposition)) {
final info = ContentInfo(fetchId ?? '')
..contentDisposition = header
..contentType = getHeaderContentType()
..cid = _getLowerCaseHeaderValue('content-id');
result.add(info);
}
if (complete || !isMessage) {
if (parts?.isNotEmpty ?? false) {
for (var i = 0; i < parts!.length; i++) {
final part = parts![i];
final partFetchId = mediaType.sub == MediaSubtype.messageRfc822
? fetchId
: fetchId != null
? '$fetchId.${i + 1}'
: '${i + 1}';
part.collectContentInfo(disposition, result, partFetchId,
reverse: reverse, complete: complete);
}
}
}
}