From ce7ad530cd48efd9cd43d208b2911178f0ea55e0 Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Sun, 14 Feb 2016 00:49:27 +0100 Subject: [PATCH] TermuxFilePickerProvider: Small improvements 1. Return true from onCreate(). 2. Implement getType(). --- .../filepicker/TermuxFilePickerProvider.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/termux/filepicker/TermuxFilePickerProvider.java b/app/src/main/java/com/termux/filepicker/TermuxFilePickerProvider.java index c10c0ae0af..a59a2b6611 100644 --- a/app/src/main/java/com/termux/filepicker/TermuxFilePickerProvider.java +++ b/app/src/main/java/com/termux/filepicker/TermuxFilePickerProvider.java @@ -7,6 +7,7 @@ import android.net.Uri; import android.os.ParcelFileDescriptor; import android.support.annotation.NonNull; +import android.webkit.MimeTypeMap; import java.io.File; import java.io.FileNotFoundException; @@ -15,7 +16,7 @@ public class TermuxFilePickerProvider extends ContentProvider { @Override public boolean onCreate() { - return false; + return true; } @Override @@ -25,7 +26,20 @@ public Cursor query(@NonNull Uri uri, String[] projection, String selection, Str @Override public String getType(@NonNull Uri uri) { - return null; + String contentType = null; + String path = uri.getPath(); + int lastDotIndex = path.lastIndexOf('.'); + String possibleFileExtension = path.substring(lastDotIndex + 1, path.length()); + if (possibleFileExtension.contains("/")) { + // The dot was in the path, so not a file extension. + } else { + MimeTypeMap mimeTypes = MimeTypeMap.getSingleton(); + // Lower casing makes it work with e.g. "JPG": + contentType = mimeTypes.getMimeTypeFromExtension(possibleFileExtension.toLowerCase()); + } + + if (contentType == null) contentType = "application/octet-stream"; + return contentType; } @Override