User is not reading messages

pull/214/head
M66B 8 months ago
parent e1ac4d49a5
commit 04908ca4bb

@ -3826,6 +3826,13 @@ class Core {
cal_keep.set(Calendar.SECOND, 0);
cal_keep.set(Calendar.MILLISECOND, 0);
Calendar cal_keep_unseen = Calendar.getInstance();
cal_keep_unseen.add(Calendar.DAY_OF_MONTH, -keep_days * 2);
cal_keep_unseen.set(Calendar.HOUR_OF_DAY, 0);
cal_keep_unseen.set(Calendar.MINUTE, 0);
cal_keep_unseen.set(Calendar.SECOND, 0);
cal_keep_unseen.set(Calendar.MILLISECOND, 0);
long sync_time = cal_sync.getTimeInMillis();
if (sync_time < 0)
sync_time = 0;
@ -3834,6 +3841,10 @@ class Core {
if (keep_time < 0)
keep_time = 0;
long keep_time_unseen = cal_keep_unseen.getTimeInMillis();
if (keep_time_unseen < 0)
keep_time_unseen = 0;
Log.i(folder.name + " sync=" + new Date(sync_time) + " keep=" + new Date(keep_time));
// Delete old local messages
@ -3852,7 +3863,7 @@ class Core {
EntityOperation.queue(context, message, EntityOperation.MOVE, trash.id);
}
} else {
int old = db.message().deleteMessagesBefore(folder.id, delete_time, keep_time, delete_unseen);
int old = db.message().deleteMessagesBefore(folder.id, delete_time, keep_time, keep_time_unseen, delete_unseen);
Log.i(folder.name + " local old=" + old);
}

@ -1016,11 +1016,11 @@ public interface DaoMessage {
" WHERE folder = :folder" +
" AND received < :keep_time" +
" AND NOT uid IS NULL" +
" AND (ui_seen OR :unseen)" +
" AND (ui_seen OR received < :keep_time_unseen OR :unseen)" +
" AND NOT ui_flagged" +
" AND stored < :sync_time" + // moved, browsed
" AND (ui_snoozed IS NULL OR ui_snoozed = " + Long.MAX_VALUE + ")")
int deleteMessagesBefore(long folder, long sync_time, long keep_time, boolean unseen);
int deleteMessagesBefore(long folder, long sync_time, long keep_time, long keep_time_unseen, boolean unseen);
@Transaction
@Query("DELETE FROM message" +

Loading…
Cancel
Save