diff --git a/lib/service/httpfiletransfer/httpfiletransfer.dart b/lib/service/httpfiletransfer/httpfiletransfer.dart index 33bd825d..1d177e1c 100644 --- a/lib/service/httpfiletransfer/httpfiletransfer.dart +++ b/lib/service/httpfiletransfer/httpfiletransfer.dart @@ -355,7 +355,10 @@ class HttpFileTransferService { _log.warning('HTTP GET of ${job.location.url} returned ${response?.statusCode}'); } else { var integrityCheckPassed = true; - if (job.location.key != null && job.location.iv != null) { + final conv = (await GetIt.I.get() + .getConversationByJid(job.conversationJid))!; + final decryptionKeysAvailable = job.location.key != null && job.location.iv != null; + if (decryptionKeysAvailable) { // The file was downloaded and is now being decrypted sendEvent( ProgressEvent( @@ -425,6 +428,9 @@ class HttpFileTransferService { warningType: integrityCheckPassed ? warningFileIntegrityCheckFailed : null, + errorType: conv.encrypted && !decryptionKeysAvailable ? + messageChatEncryptedButFileNot : + null, isDownloading: false, ); @@ -435,7 +441,6 @@ class HttpFileTransferService { await notification.showNotification(msg, ''); } - final conv = (await GetIt.I.get().getConversationByJid(job.conversationJid))!; final sharedMedium = await GetIt.I.get().addSharedMediumFromData( downloadedPath, msg.timestamp, diff --git a/lib/shared/error_types.dart b/lib/shared/error_types.dart index 803bbdee..90bbfc48 100644 --- a/lib/shared/error_types.dart +++ b/lib/shared/error_types.dart @@ -11,6 +11,7 @@ const messageInvalidNumber = 6; const messageFailedToEncrypt = 7; const messageFailedToDecryptFile = 8; const messageContactDoesNotSupportOmemo = 9; +const messageChatEncryptedButFileNot = 10; int errorTypeFromException(dynamic exception) { if (exception is NoDecryptionKeyException) {