Skip to content

Commit ebeb893

Browse files
Srokafacebook-github-bot
authored andcommitted
Fix Android Camera Roll crash on mime type guessing (#24780)
Summary: Fixes this issue: #24468 It was incorrectly closed by a fix on react-native-community CameraRoll implementation. CameraRoll in react-native still crashes when finding a file with # sign [Android] [Fix] - Fix Android Camera Roll crash on mime type guessing Pull Request resolved: #24780 Reviewed By: mdvacca Differential Revision: D15281062 Pulled By: lunaleaps fbshipit-source-id: ca3364c8478d9bfc9a0a6657b531ffb384145d8c
1 parent a6f905f commit ebeb893

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

ReactAndroid/src/main/java/com/facebook/react/modules/camera/CameraRollManager.java

+5-10
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050
import java.util.ArrayList;
5151
import java.util.List;
5252
import javax.annotation.Nullable;
53-
import java.net.URLConnection;
5453
import java.net.URL;
5554

5655
// TODO #6015104: rename to something less iOSish
@@ -388,7 +387,8 @@ private static void putEdges(
388387
WritableMap edge = new WritableNativeMap();
389388
WritableMap node = new WritableNativeMap();
390389
boolean imageInfoSuccess =
391-
putImageInfo(resolver, media, node, idIndex, widthIndex, heightIndex, dataIndex);
390+
putImageInfo(resolver, media, node, idIndex, widthIndex, heightIndex, dataIndex,
391+
mimeTypeIndex);
392392
if (imageInfoSuccess) {
393393
putBasicNodeInfo(media, node, mimeTypeIndex, groupNameIndex, dateTakenIndex);
394394
putLocationInfo(media, node, longitudeIndex, latitudeIndex);
@@ -423,20 +423,15 @@ private static boolean putImageInfo(
423423
int idIndex,
424424
int widthIndex,
425425
int heightIndex,
426-
int dataIndex) {
426+
int dataIndex,
427+
int mimeTypeIndex) {
427428
WritableMap image = new WritableNativeMap();
428429
Uri photoUri = Uri.parse("file://" + media.getString(dataIndex));
429430
image.putString("uri", photoUri.toString());
430431
float width = media.getInt(widthIndex);
431432
float height = media.getInt(heightIndex);
432433

433-
String mimeType;
434-
try {
435-
mimeType = URLConnection.guessContentTypeFromName(photoUri.toString());
436-
} catch (StringIndexOutOfBoundsException e) {
437-
FLog.e(ReactConstants.TAG, "Unable to guess content type from " + photoUri.toString(), e);
438-
throw e;
439-
}
434+
String mimeType = media.getString(mimeTypeIndex);
440435

441436
if (mimeType != null
442437
&& mimeType.startsWith("video")) {

0 commit comments

Comments
 (0)