fix crash

This commit is contained in:
otsmr 2025-05-02 20:42:06 +02:00
parent 2919d8093b
commit 41493894cb
2 changed files with 26 additions and 18 deletions

View file

@ -187,9 +187,18 @@ class MessagesDao extends DatabaseAccessor<TwonlyDatabase>
return select(messages)..where((t) => t.messageId.equals(messageId));
}
SingleOrNullSelectable<Message> getMessageByMediaUploadId(int mediaUploadId) {
return select(messages)
..where((t) => t.mediaUploadId.equals(mediaUploadId));
Future<Message?> getMessageByMediaUploadId(int mediaUploadId) async {
List<Message> msgs = await (select(messages)
..where((t) => t.mediaUploadId.equals(mediaUploadId)))
.get();
if (msgs.isEmpty) return null;
if (msgs.length == 1) return msgs[0];
/// when there are multiple message ids with this id delete all but the last one
for (var i = 0; i < (msgs.length - 1); i++) {
await deleteMessageById(msgs[i].messageId);
}
return msgs[msgs.length - 1];
}
SingleOrNullSelectable<Message> getMessageByOtherMessageId(

View file

@ -333,24 +333,23 @@ Future<void> purgeMediaFiles(Directory directory) async {
// Parse the integer and add it to the list
int fileId = int.parse(match.group(0)!);
Message? message = (directory.path.endsWith("send"))
? await twonlyDatabase.messagesDao
.getMessageByMediaUploadId(fileId)
.getSingleOrNull()
: await twonlyDatabase.messagesDao
.getMessageByMessageId(fileId)
.getSingleOrNull();
try {
Message? message = (directory.path.endsWith("send"))
? await twonlyDatabase.messagesDao
.getMessageByMediaUploadId(fileId)
: await twonlyDatabase.messagesDao
.getMessageByMessageId(fileId)
.getSingleOrNull();
if ((message == null) ||
(message.openedAt != null &&
!message.mediaStored &&
message.acknowledgeByServer == true) ||
message.errorWhileSending) {
try {
if ((message == null) ||
(message.openedAt != null &&
!message.mediaStored &&
message.acknowledgeByServer == true) ||
message.errorWhileSending) {
file.deleteSync();
} catch (e) {
Logger("media_received.dart").shout("$e");
}
} catch (e) {
Logger("media_received.dart").shout("$e");
}
}
}