diff --git a/lib/main.dart b/lib/main.dart index b742509..f2fb4a4 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -46,7 +46,8 @@ void main() async { twonlyDB = TwonlyDatabase(); await twonlyDB.messagesDao.resetPendingDownloadState(); - await twonlyDB.messagesDao.handleMediaFilesOlderThan7Days(); + await twonlyDB.messagesDao.handleMediaFilesOlderThan30Days(); + await twonlyDB.messageRetransmissionDao.purgeOldRetransmissions(); await twonlyDB.signalDao.purgeOutDatedPreKeys(); // Purge media files in the background diff --git a/lib/src/database/daos/message_retransmissions.dao.dart b/lib/src/database/daos/message_retransmissions.dao.dart index 1fb9cff..42da0f4 100644 --- a/lib/src/database/daos/message_retransmissions.dao.dart +++ b/lib/src/database/daos/message_retransmissions.dao.dart @@ -22,6 +22,17 @@ class MessageRetransmissionDao extends DatabaseAccessor } } + Future purgeOldRetransmissions() async { + // delete entries older than two weeks + await (delete(messageRetransmissions) + ..where((t) => (t.acknowledgeByServerAt.isSmallerThanValue( + DateTime.now().subtract( + const Duration(days: 25), + ), + )))) + .go(); + } + Future> getRetransmitAbleMessages() async { final countDeleted = await (delete(messageRetransmissions) ..where((t) => diff --git a/lib/src/database/daos/messages_dao.dart b/lib/src/database/daos/messages_dao.dart index 924201e..51e2a82 100644 --- a/lib/src/database/daos/messages_dao.dart +++ b/lib/src/database/daos/messages_dao.dart @@ -69,8 +69,8 @@ class MessagesDao extends DatabaseAccessor .write(const MessagesCompanion(contentJson: Value(null))); } - Future handleMediaFilesOlderThan7Days() { - /// media files will be deleted by the server after 7 days, so delete them here also + Future handleMediaFilesOlderThan30Days() { + /// media files will be deleted by the server after 30 days, so delete them here also return (update(messages) ..where( (t) => (t.kind.equals(MessageKind.media.name) & @@ -78,7 +78,7 @@ class MessagesDao extends DatabaseAccessor t.messageOtherId.isNull() & (t.sendAt.isSmallerThanValue( DateTime.now().subtract( - const Duration(days: 8), + const Duration(days: 30), ), ))), ))