Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions android/src/main/java/com/imagepicker/ImagePickerModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,9 @@ public void onActivityResult(Activity activity, int requestCode, int resultCode,
switch (requestCode) {
case REQUEST_LAUNCH_IMAGE_CAPTURE:
if (options.saveToPhotos) {
saveToPublicDirectory(cameraCaptureURI, reactContext, "photo");
Uri publicFileUri = saveToPublicDirectory(cameraCaptureURI, reactContext, "photo");
onAssetsObtained(Collections.singletonList(publicFileUri));
break;
}

onAssetsObtained(Collections.singletonList(fileUri));
Expand All @@ -200,7 +202,9 @@ public void onActivityResult(Activity activity, int requestCode, int resultCode,

case REQUEST_LAUNCH_VIDEO_CAPTURE:
if (options.saveToPhotos) {
saveToPublicDirectory(cameraCaptureURI, reactContext, "video");
Uri publicFileUri = saveToPublicDirectory(cameraCaptureURI, reactContext, "video");
onAssetsObtained(Collections.singletonList(publicFileUri));
break;
}

onAssetsObtained(Collections.singletonList(fileUri));
Expand Down
11 changes: 8 additions & 3 deletions android/src/main/java/com/imagepicker/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public static Uri createUri(File file, Context reactContext) {
return FileProvider.getUriForFile(reactContext, authority, file);
}

public static void saveToPublicDirectory(Uri uri, Context context, String mediaType) {
public static Uri saveToPublicDirectory(Uri uri, Context context, String mediaType) {
ContentResolver resolver = context.getContentResolver();
Uri mediaStoreUri;
ContentValues fileDetails = new ContentValues();
Expand All @@ -94,6 +94,7 @@ public static void saveToPublicDirectory(Uri uri, Context context, String mediaT
}

copyUri(uri, mediaStoreUri, resolver);
return mediaStoreUri;
}

public static void copyUri(Uri fromUri, Uri toUri, ContentResolver resolver) {
Expand Down Expand Up @@ -387,11 +388,15 @@ static ReadableMap getImageResponseMap(Uri uri, Options options, Context context
String fileName = uri.getLastPathSegment();
int[] dimensions = getImageDimensions(uri, context);

ContentResolver resolver = context.getContentResolver();
String fileType = resolver.getType(uri);


WritableMap map = Arguments.createMap();
map.putString("uri", uri.toString());
map.putDouble("fileSize", getFileSize(uri, context));
map.putString("fileName", fileName);
map.putString("type", getMimeTypeFromFileUri(uri));
map.putString("type", getFileTypeFromMime(fileType));
map.putInt("width", dimensions[0]);
map.putInt("height", dimensions[1]);

Expand All @@ -418,7 +423,7 @@ static ReadableMap getResponseMap(List<Uri> fileUris, Options options, Context c
Uri uri = fileUris.get(i);

if (isImageType(uri, context)) {
if (uri.getScheme().contains("content")) {
if (uri.getScheme().contains("content") && !options.saveToPhotos) {
uri = getAppSpecificStorageUri(uri, context);
}
uri = resizeImage(uri, context, options);
Expand Down