subsequenceFromPage method
Retrieves sequence containing the message IDs/UIDs from the page
with the given pageNumber which starts at 1 and the given pageSize.
This pages start from the end of this sequence,
optionally skipping the first skip entries.
When the pageNumber is 1 and the pageSize is equals or bigger
than the length of this sequence, this sequence is returned.
Implementation
MessageSequence subsequenceFromPage(
int pageNumber,
int pageSize, {
int skip = 0,
}) {
if (pageNumber == 1 && pageSize >= length) {
return this;
}
final pageIndex = pageNumber - 1;
final end = length - skip - (pageIndex * pageSize);
if (end <= 0) {
return MessageSequence();
}
var start = end - pageSize;
if (start < 0) {
start = 0;
}
return subsequence(start, end);
}