listMessagesUIDs method

  1. @override
Future<List<String>> listMessagesUIDs(
  1. String mailbox
)
override

Returns a list of message UIDs (filenames without extension) for the given mailbox.

Implementation

@override
Future<List<String>> listMessagesUIDs(String mailbox) async {
  final files = await _listMessagesFiles(mailbox);

  // Sort by timestamp extracted from filename
  files.sort((a, b) {
    final aName = path.basenameWithoutExtension(a.path);
    final bName = path.basenameWithoutExtension(b.path);
    final aTime = int.tryParse(aName) ?? 0;
    final bTime = int.tryParse(bName) ?? 0;
    return aTime.compareTo(bTime);
  });

  var uids = files.map((f) => path.basenameWithoutExtension(f.path)).toList();
  return uids;
}