diff --git a/lib/src/database/daos/messages_dao.dart b/lib/src/database/daos/messages_dao.dart index dd40765..165285e 100644 --- a/lib/src/database/daos/messages_dao.dart +++ b/lib/src/database/daos/messages_dao.dart @@ -186,6 +186,10 @@ class MessagesDao extends DatabaseAccessor SingleOrNullSelectable getMessageByMessageId(int messageId) { return select(messages)..where((t) => t.messageId.equals(messageId)); } + + SingleOrNullSelectable getMessageByMediaUploadId(int mediaUploadId{ + return select(messages)..where((t) => t.mediaUploadId.equals(mediaUploadId)); + } SingleOrNullSelectable getMessageByOtherMessageId( int fromUserId, int messageId) { diff --git a/lib/src/providers/api/media_received.dart b/lib/src/providers/api/media_received.dart index c44d7e9..27186c4 100644 --- a/lib/src/providers/api/media_received.dart +++ b/lib/src/providers/api/media_received.dart @@ -322,9 +322,13 @@ Future purgeMediaFiles(Directory directory) async { if (match != null) { // Parse the integer and add it to the list int messageId = int.parse(match.group(0)!); - Message? message = await twonlyDatabase.messagesDao - .getMessageByMessageId(messageId) - .getSingleOrNull(); + Message? message = (directory.path.endsWith("received")) + ? await twonlyDatabase.messagesDao + .getMessageByMediaUploadId(messageId) + .getSingleOrNull() + : await twonlyDatabase.messagesDao + .getMessageByMessageId(messageId) + .getSingleOrNull(); if ((message == null) || (message.openedAt != null && !message.mediaStored) || diff --git a/lib/src/views/chats/chat_item_details_view.dart b/lib/src/views/chats/chat_item_details_view.dart index 4d4b9c5..e220243 100644 --- a/lib/src/views/chats/chat_item_details_view.dart +++ b/lib/src/views/chats/chat_item_details_view.dart @@ -307,7 +307,8 @@ class ChatListEntry extends StatelessWidget { child = GestureDetector( onDoubleTap: () async { - if (message.openedAt == null && message.messageOtherId != null) { + if (message.openedAt == null && message.messageOtherId != null || + message.mediaStored) { return; } if (await existsMediaFile(message.messageId, "png")) {