diff options
author | Michael Eden <themichaeleden@gmail.com> | 2016-12-30 15:48:39 -0500 |
---|---|---|
committer | Michael Eden <themichaeleden@gmail.com> | 2017-01-01 16:16:35 -0500 |
commit | 5a670c88b081d3f9b8d33e37fd8d966f04c245fc (patch) | |
tree | 6b43b604c73109452cb9acc07c832b8c52e4197a /src/main/java/eu/siacs/conversations/utils/MimeUtils.java | |
parent | 8c34bb3c6fb2be87eb9103bb2b647e2c7c80bfbc (diff) |
Do not compress GIFs, allow GBoard to send GIFs
Diffstat (limited to '')
-rw-r--r-- | src/main/java/eu/siacs/conversations/utils/MimeUtils.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/java/eu/siacs/conversations/utils/MimeUtils.java b/src/main/java/eu/siacs/conversations/utils/MimeUtils.java index d4544424..b65eb73c 100644 --- a/src/main/java/eu/siacs/conversations/utils/MimeUtils.java +++ b/src/main/java/eu/siacs/conversations/utils/MimeUtils.java @@ -14,6 +14,9 @@ * limitations under the License. */ package eu.siacs.conversations.utils; +import android.content.Context; +import android.net.Uri; + import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -484,4 +487,22 @@ public final class MimeUtils { } return mimeTypeToExtensionMap.get(mimeType); } + + public static String guessMimeTypeFromUri(Context context, Uri uri) { + // try the content resolver + String mimeType = context.getContentResolver().getType(uri); + // try the extension + if (mimeType == null && uri.getPath() != null) { + String path = uri.getPath(); + int start = path.lastIndexOf('.') + 1; + if (start < path.length()) { + mimeType = MimeUtils.guessMimeTypeFromExtension(path.substring(start)); + } + } + // sometimes this works (as with the commit content api) + if (mimeType == null) { + mimeType = uri.getQueryParameter("mimeType"); + } + return mimeType; + } } |