Added POP cleanup

This commit is contained in:
M66B 2022-05-07 16:00:30 +02:00
parent 3a32fa8a62
commit 4dbdd1cdfa
2 changed files with 28 additions and 0 deletions

View File

@ -3197,6 +3197,14 @@ class Core {
}
}
if (account.max_messages != null) {
int hidden = db.message().setMessagesUiHide(folder.id, account.max_messages);
int deleted = db.message().deleteMessagesKeep(folder.id, account.max_messages + 100);
EntityLog.log(context, account.name + " POP" +
" cleanup max=" + account.max_messages + "" +
" hidden=" + hidden + " deleted=" + deleted);
}
folder.last_sync_count = imessages.length;
db.folder().setFolderLastSyncCount(folder.id, folder.last_sync_count);
db.folder().setFolderLastSync(folder.id, new Date().getTime());

View File

@ -756,6 +756,16 @@ public interface DaoMessage {
@Query("UPDATE message SET ui_hide = :ui_hide WHERE id = :id AND NOT (ui_hide IS :ui_hide)")
int setMessageUiHide(long id, Boolean ui_hide);
@Transaction
@Query("UPDATE message SET ui_hide = 1" +
" WHERE folder = :folder" +
" AND id NOT IN (" +
" SELECT id FROM message" +
" WHERE folder = :folder" +
" ORDER BY received DESC" +
" LIMIT :keep)")
int setMessagesUiHide(long folder, int keep);
@Query("UPDATE message SET ui_ignored = :ui_ignored WHERE id = :id AND NOT (ui_ignored IS :ui_ignored)")
int setMessageUiIgnored(long id, boolean ui_ignored);
@ -964,4 +974,14 @@ public interface DaoMessage {
" AND stored < :sync_time" + // moved, browsed
" AND ui_snoozed IS NULL")
int deleteMessagesBefore(long folder, long sync_time, long keep_time, boolean unseen);
@Transaction
@Query("DELETE FROM message" +
" WHERE folder = :folder" +
" AND id NOT IN (" +
" SELECT id FROM message" +
" WHERE folder = :folder" +
" ORDER BY received DESC" +
" LIMIT :keep)")
int deleteMessagesKeep(long folder, int keep);
}