applyMessageIds method
bool
applyMessageIds(
- MessageSequence originalSequence,
- MessageSequence? targetSequence,
- List<
MimeMessage> ? messages
Apply the message IDs from the targetSequence to the messages
Implementation
bool applyMessageIds(
MessageSequence originalSequence,
MessageSequence? targetSequence,
List<MimeMessage>? messages,
) {
if (messages != null && targetSequence != null) {
final originalIds = originalSequence.toList();
final targetIds = targetSequence.toList();
if (originalIds.length != targetIds.length) {
print('Unable to apply new message IDs: Unexpected different length of '
'original and target sequence: '
'original=$originalSequence, target=$targetSequence');
return false;
}
final isUid = originalSequence.isUidSequence;
for (var i = 0; i < originalIds.length; i++) {
final originalId = originalIds[i];
final message = messages.firstWhereOrNull(
(message) => isUid
? message.uid == originalId
: message.sequenceId == originalId,
);
if (message != null) {
if (isUid) {
message.uid = targetIds[i];
} else {
message.sequenceId = targetIds[i];
}
}
}
}
return true;
}