Skip to content

Commit ce7ad53

Browse files
committed
TermuxFilePickerProvider: Small improvements
1. Return true from onCreate(). 2. Implement getType().
1 parent d0015cb commit ce7ad53

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

app/src/main/java/com/termux/filepicker/TermuxFilePickerProvider.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import android.net.Uri;
88
import android.os.ParcelFileDescriptor;
99
import android.support.annotation.NonNull;
10+
import android.webkit.MimeTypeMap;
1011

1112
import java.io.File;
1213
import java.io.FileNotFoundException;
@@ -15,7 +16,7 @@
1516
public class TermuxFilePickerProvider extends ContentProvider {
1617
@Override
1718
public boolean onCreate() {
18-
return false;
19+
return true;
1920
}
2021

2122
@Override
@@ -25,7 +26,20 @@ public Cursor query(@NonNull Uri uri, String[] projection, String selection, Str
2526

2627
@Override
2728
public String getType(@NonNull Uri uri) {
28-
return null;
29+
String contentType = null;
30+
String path = uri.getPath();
31+
int lastDotIndex = path.lastIndexOf('.');
32+
String possibleFileExtension = path.substring(lastDotIndex + 1, path.length());
33+
if (possibleFileExtension.contains("/")) {
34+
// The dot was in the path, so not a file extension.
35+
} else {
36+
MimeTypeMap mimeTypes = MimeTypeMap.getSingleton();
37+
// Lower casing makes it work with e.g. "JPG":
38+
contentType = mimeTypes.getMimeTypeFromExtension(possibleFileExtension.toLowerCase());
39+
}
40+
41+
if (contentType == null) contentType = "application/octet-stream";
42+
return contentType;
2943
}
3044

3145
@Override

0 commit comments

Comments
 (0)