do not delete own stored media files

This commit is contained in:
otsmr 2025-04-30 23:22:36 +02:00
parent 2bfd50ef8d
commit 9f22df9e65
3 changed files with 13 additions and 4 deletions

View file

@ -186,6 +186,10 @@ class MessagesDao extends DatabaseAccessor<TwonlyDatabase>
SingleOrNullSelectable<Message> getMessageByMessageId(int messageId) {
return select(messages)..where((t) => t.messageId.equals(messageId));
}
SingleOrNullSelectable<Message> getMessageByMediaUploadId(int mediaUploadId{
return select(messages)..where((t) => t.mediaUploadId.equals(mediaUploadId));
}
SingleOrNullSelectable<Message> getMessageByOtherMessageId(
int fromUserId, int messageId) {

View file

@ -322,9 +322,13 @@ Future<void> 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) ||

View file

@ -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")) {