aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/utils/MimeUtils.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-12-27 20:52:52 +0100
committerChristian Schneppe <christian@pix-art.de>2018-12-27 20:52:52 +0100
commit815421f92acf7fce4664fcda196a31c515379204 (patch)
tree3bbb142eb0657679d9b63ec1403feb6c91687434 /src/main/java/de/pixart/messenger/utils/MimeUtils.java
parent55058cca9d8ed5343bc4398fe0ea87633d8a485d (diff)
added epub and azw mime types. try to resolve application/octet-stream by file extension instead. added preview icons for ebooks
Diffstat (limited to 'src/main/java/de/pixart/messenger/utils/MimeUtils.java')
-rw-r--r--src/main/java/de/pixart/messenger/utils/MimeUtils.java26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/MimeUtils.java b/src/main/java/de/pixart/messenger/utils/MimeUtils.java
index e485dc88f..fc2484a51 100644
--- a/src/main/java/de/pixart/messenger/utils/MimeUtils.java
+++ b/src/main/java/de/pixart/messenger/utils/MimeUtils.java
@@ -17,6 +17,7 @@ package de.pixart.messenger.utils;
import android.content.Context;
import android.net.Uri;
+import android.util.Log;
import java.io.File;
import java.io.FileInputStream;
@@ -27,6 +28,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
+import de.pixart.messenger.Config;
import de.pixart.messenger.entities.Transferable;
/**
@@ -51,6 +53,7 @@ public final class MimeUtils {
// by guessExtensionFromMimeType.
add("application/andrew-inset", "ez");
add("application/dsptype", "tsp");
+ add("application/epub+zip","pub");
add("application/hta", "hta");
add("application/mac-binhex40", "hqx");
add("application/mathematica", "nb");
@@ -66,6 +69,9 @@ public final class MimeUtils {
add("application/rdf+xml", "rdf");
add("application/rss+xml", "rss");
add("application/zip", "zip");
+ add("application/vnd.amazon.mobi8-ebook","azw3");
+ add("application/vnd.amazon.mobi8-ebook","azw");
+ add("application/vnd.amazon.mobi8-ebook","kfx");
add("application/vnd.android.package-archive", "apk");
add("application/vnd.cinderella", "cdy");
add("application/vnd.ms-pki.stl", "stl");
@@ -508,6 +514,19 @@ public final class MimeUtils {
return mimeTypeToExtensionMap.get(mimeType.split(";")[0]);
}
+ public static String guessMimeTypeFromUriAndMime(final Context context, final Uri uri, final String mime) {
+ Log.d(Config.LOGTAG, "guessMimeTypeFromUriAndMime " + uri + " and mime=" + mime);
+ if (mime == null || mime.equals("application/octet-stream")) {
+ final String guess = guessMimeTypeFromUri(context, uri);
+ if (guess != null) {
+ return guess;
+ } else {
+ return mime;
+ }
+ }
+ return guessMimeTypeFromUri(context, uri);
+ }
+
public static String guessMimeTypeFromUri(Context context, Uri uri) {
// try the content resolver
String mimeType;
@@ -520,11 +539,14 @@ public final class MimeUtils {
mimeType = null;
}
// try the extension
- if (mimeType == null && uri.getPath() != null) {
+ if ((mimeType == null || mimeType.equals("application/octet-stream")) && uri.getPath() != null) {
String path = uri.getPath();
int start = path.lastIndexOf('.') + 1;
if (start < path.length()) {
- mimeType = MimeUtils.guessMimeTypeFromExtension(path.substring(start));
+ final String guess = MimeUtils.guessMimeTypeFromExtension(path.substring(start));
+ if (guess != null) {
+ mimeType = guess;
+ }
}
}
// sometimes this works (as with the commit content api)