private void syncMessages(int end) throws MessagingException {
long oldUidNext = getOldUidNext();
List<ImapMessage> messageList = getMessages(end, end, null, true, null);
if (messageList != null && messageList.size() > 0) {
long newUid = Long.parseLong(messageList.get(0).getUid());
if (K9MailLib.isDebug()) {
Timber.i("Got newUid %s for message %d on %s", newUid, end, getLogId());
}
long startUid = oldUidNext;
if (startUid < newUid - 10) {
startUid = newUid - 10;
}
if (startUid < 1) {
startUid = 1;
}
if (newUid >= startUid) {
if (K9MailLib.isDebug()) {
Timber.i("Needs sync from uid %d to %d for %s", startUid, newUid, getLogId());
}
List<Message> messages = new ArrayList<>();
for (long uid = startUid; uid <= newUid; uid++) {
ImapMessage message = new ImapMessage(Long.toString(uid), ImapFolderPusher.this);
messages.add(message);
}
if (!messages.isEmpty()) {
pushReceiver.messagesArrived(ImapFolderPusher.this, messages);
}
}
}
}