aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-08-11 20:16:21 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-08-11 20:16:21 +0200
commitabf50c37500dd0f3dfdc10820cb46bf4f9566cf1 (patch)
treef410703cd69c1a804630781881facde5348e6d3e /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java
parentd5b40de70a9a53372a3c538ad4ec2656a63b7984 (diff)
downloadopen-keychain-abf50c37500dd0f3dfdc10820cb46bf4f9566cf1.tar.gz
open-keychain-abf50c37500dd0f3dfdc10820cb46bf4f9566cf1.tar.bz2
open-keychain-abf50c37500dd0f3dfdc10820cb46bf4f9566cf1.zip
Support mime type in metadata
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java29
1 files changed, 27 insertions, 2 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java
index 5a5e51f99..9a18fc5f0 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java
@@ -18,6 +18,8 @@
package org.sufficientlysecure.keychain.pgp;
+import android.webkit.MimeTypeMap;
+
import org.openintents.openpgp.OpenPgpDecryptMetadata;
import org.spongycastle.bcpg.ArmoredInputStream;
import org.spongycastle.openpgp.PGPCompressedData;
@@ -54,6 +56,7 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.net.URLConnection;
import java.security.SignatureException;
import java.util.Iterator;
import java.util.Set;
@@ -460,10 +463,32 @@ public class PgpDecryptVerify {
originalSize = 0;
}
+ String originalFilename = literalData.getFileName();
+ String mimeType = null;
+ if (literalData.getFormat() == PGPLiteralData.TEXT
+ || literalData.getFormat() == PGPLiteralData.UTF8) {
+ mimeType = "text/plain";
+ } else {
+ // TODO: better would be: https://github.com/open-keychain/open-keychain/issues/753
+
+ // try to guess from file ending
+ String extension = MimeTypeMap.getFileExtensionFromUrl(originalFilename);
+ if (extension != null) {
+ MimeTypeMap mime = MimeTypeMap.getSingleton();
+ mimeType = mime.getMimeTypeFromExtension(extension);
+ }
+ if (mimeType == null) {
+ mimeType = URLConnection.guessContentTypeFromName(originalFilename);
+ }
+ if (mimeType == null) {
+ mimeType = "*/*";
+ }
+ }
+
OpenPgpDecryptMetadata metadata = new OpenPgpDecryptMetadata(
- literalData.getFileName(),
+ originalFilename,
+ mimeType,
literalData.getModificationTime().getTime(),
- literalData.getFormat(),
originalSize);
result.setDecryptMetadata(metadata);