aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/crypto/PgpDecryptionService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/crypto/PgpDecryptionService.java')
-rw-r--r--src/main/java/de/pixart/messenger/crypto/PgpDecryptionService.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/main/java/de/pixart/messenger/crypto/PgpDecryptionService.java b/src/main/java/de/pixart/messenger/crypto/PgpDecryptionService.java
index 1c1a995a9..cc5e3fe70 100644
--- a/src/main/java/de/pixart/messenger/crypto/PgpDecryptionService.java
+++ b/src/main/java/de/pixart/messenger/crypto/PgpDecryptionService.java
@@ -135,6 +135,7 @@ public class PgpDecryptionService {
}
private void executeApi(Message message) {
+ boolean skipNotificationPush = false;
synchronized (message) {
Intent params = userInteractionResult != null ? userInteractionResult : new Intent();
params.setAction(OpenPgpApi.ACTION_DECRYPT_VERIFY);
@@ -176,7 +177,7 @@ public class PgpDecryptionService {
mXmppConnectionService.updateMessage(message);
break;
}
- } else if (message.getType() == Message.TYPE_IMAGE || message.getType() == Message.TYPE_FILE) {
+ } else if (message.isFileOrImage()) {
try {
final DownloadableFile inputFile = mXmppConnectionService.getFileBackend().getFile(message, false);
final DownloadableFile outputFile = mXmppConnectionService.getFileBackend().getFile(message, true);
@@ -208,9 +209,12 @@ public class PgpDecryptionService {
URL url = message.getFileParams().url;
mXmppConnectionService.getFileBackend().updateFileParams(message, url);
message.setEncryption(Message.ENCRYPTION_DECRYPTED);
- inputFile.delete();
- mXmppConnectionService.getFileBackend().updateMediaScanner(outputFile);
mXmppConnectionService.updateMessage(message);
+ if (!inputFile.delete()) {
+ Log.w(Config.LOGTAG, "unable to delete pgp encrypted source file " + inputFile.getAbsolutePath());
+ }
+ skipNotificationPush = true;
+ mXmppConnectionService.getFileBackend().updateMediaScanner(outputFile, () -> notifyIfPending(message));
break;
case OpenPgpApi.RESULT_CODE_USER_INTERACTION_REQUIRED:
synchronized (PgpDecryptionService.this) {
@@ -231,7 +235,9 @@ public class PgpDecryptionService {
}
}
}
- notifyIfPending(message);
+ if (!skipNotificationPush) {
+ notifyIfPending(message);
+ }
}
private synchronized void notifyIfPending(Message message) {