Skip to content

Commit f7db42c

Browse files
authored
Merge pull request #181 from Koppel-Zhou/master
fix: fixed #180 修复Android偶现拍照结束空指针导致的应用重启问题
2 parents f84eae3 + 17af859 commit f7db42c

File tree

1 file changed

+38
-34
lines changed

1 file changed

+38
-34
lines changed

android/src/main/java/com/syanpicker/RNSyanImagePickerModule.java

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -342,51 +342,55 @@ public void run() {
342342

343343
private void onGetVideoResult(Intent data) {
344344
List<LocalMedia> mVideoSelectList = PictureSelector.obtainMultipleResult(data);
345-
boolean isRecordSelected = cameraOptions.getBoolean("isRecordSelected");
346-
if (!mVideoSelectList.isEmpty() && isRecordSelected) {
347-
selectList = mVideoSelectList;
348-
}
349-
WritableArray videoList = new WritableNativeArray();
345+
if (cameraOptions != null) {
346+
boolean isRecordSelected = cameraOptions.getBoolean("isRecordSelected");
347+
if (!mVideoSelectList.isEmpty() && isRecordSelected) {
348+
selectList = mVideoSelectList;
349+
}
350+
WritableArray videoList = new WritableNativeArray();
351+
352+
for (LocalMedia media : mVideoSelectList) {
353+
if (TextUtils.isEmpty(media.getPath())) {
354+
continue;
355+
}
350356

351-
for (LocalMedia media : mVideoSelectList) {
352-
if (TextUtils.isEmpty(media.getPath())) {
353-
continue;
357+
WritableMap videoMap = new WritableNativeMap();
358+
359+
Boolean isAndroidQ = SdkVersionUtils.checkedAndroid_Q();
360+
String filePath = isAndroidQ ? media.getAndroidQToPath() : media.getPath();
361+
362+
videoMap.putString("uri", "file://" + filePath);
363+
videoMap.putString("coverUri", "file://" + this.getVideoCover(filePath));
364+
videoMap.putString("fileName", new File(media.getPath()).getName());
365+
videoMap.putDouble("size", new File(media.getPath()).length());
366+
videoMap.putDouble("duration", media.getDuration() / 1000.00);
367+
videoMap.putInt("width", media.getWidth());
368+
videoMap.putInt("height", media.getHeight());
369+
videoMap.putString("type", "video");
370+
videoMap.putString("mime", media.getMimeType());
371+
videoList.pushMap(videoMap);
354372
}
355373

356-
WritableMap videoMap = new WritableNativeMap();
357-
358-
Boolean isAndroidQ = SdkVersionUtils.checkedAndroid_Q();
359-
String filePath = isAndroidQ ? media.getAndroidQToPath() : media.getPath();
360-
361-
videoMap.putString("uri", "file://" + filePath);
362-
videoMap.putString("coverUri", "file://" + this.getVideoCover(filePath));
363-
videoMap.putString("fileName", new File(media.getPath()).getName());
364-
videoMap.putDouble("size", new File(media.getPath()).length());
365-
videoMap.putDouble("duration", media.getDuration() / 1000.00);
366-
videoMap.putInt("width", media.getWidth());
367-
videoMap.putInt("height", media.getHeight());
368-
videoMap.putString("type", "video");
369-
videoMap.putString("mime", media.getMimeType());
370-
videoList.pushMap(videoMap);
374+
invokeSuccessWithResult(videoList);
371375
}
372-
373-
invokeSuccessWithResult(videoList);
374376
}
375377

376378
private void onGetResult(Intent data) {
377379
List<LocalMedia> tmpSelectList = PictureSelector.obtainMultipleResult(data);
378-
boolean isRecordSelected = cameraOptions.getBoolean("isRecordSelected");
379-
if (!tmpSelectList.isEmpty() && isRecordSelected) {
380-
selectList = tmpSelectList;
381-
}
380+
if (cameraOptions != null) {
381+
boolean isRecordSelected = cameraOptions.getBoolean("isRecordSelected");
382+
if (!tmpSelectList.isEmpty() && isRecordSelected) {
383+
selectList = tmpSelectList;
384+
}
382385

383-
WritableArray imageList = new WritableNativeArray();
384-
boolean enableBase64 = cameraOptions.getBoolean("enableBase64");
386+
WritableArray imageList = new WritableNativeArray();
387+
boolean enableBase64 = cameraOptions.getBoolean("enableBase64");
385388

386-
for (LocalMedia media : tmpSelectList) {
387-
imageList.pushMap(getImageResult(media, enableBase64));
389+
for (LocalMedia media : tmpSelectList) {
390+
imageList.pushMap(getImageResult(media, enableBase64));
391+
}
392+
invokeSuccessWithResult(imageList);
388393
}
389-
invokeSuccessWithResult(imageList);
390394
}
391395

392396
private WritableMap getImageResult(LocalMedia media, Boolean enableBase64) {

0 commit comments

Comments
 (0)