aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/CharsetVerifier.java22
1 files changed, 17 insertions, 5 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/CharsetVerifier.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/CharsetVerifier.java
index c1d11cc26..c03decc89 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/CharsetVerifier.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/CharsetVerifier.java
@@ -33,19 +33,21 @@ public class CharsetVerifier {
private boolean isPossibleTextMimeType;
private boolean isTextMimeType;
private String charset;
+ private String mimeType;
- public CharsetVerifier(@NonNull byte[] buf, String mimeType, @Nullable String charset) {
+ public CharsetVerifier(@NonNull byte[] buf, @NonNull String mimeType, @Nullable String charset) {
- isPossibleTextMimeType = ClipDescription.compareMimeTypes(mimeType, "application/octet-stream")
- || ClipDescription.compareMimeTypes(mimeType, "application/x-download")
- || ClipDescription.compareMimeTypes(mimeType, "text/*");
+ this.mimeType = mimeType;
+ isTextMimeType = ClipDescription.compareMimeTypes(mimeType, "text/*");
+ isPossibleTextMimeType = isTextMimeType
+ || ClipDescription.compareMimeTypes(mimeType, "application/octet-stream")
+ || ClipDescription.compareMimeTypes(mimeType, "application/x-download");
if (!isPossibleTextMimeType) {
charsetDecoder = null;
bufWrap = null;
dummyOutput = null;
return;
}
- isTextMimeType = ClipDescription.compareMimeTypes(mimeType, "text/*");
bufWrap = ByteBuffer.wrap(buf);
dummyOutput = CharBuffer.allocate(buf.length);
@@ -96,6 +98,16 @@ public class CharsetVerifier {
}
}
+ public String getGuessedMimeType() {
+ if (isTextMimeType) {
+ return mimeType;
+ }
+ if (isProbablyText()) {
+ return "text/plain";
+ }
+ return mimeType;
+ }
+
public boolean isCharsetFaulty() {
finishIfNecessary();
return isFaulty;