You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by jc...@apache.org on 2020/07/23 10:12:04 UTC
[cordova-plugin-camera] branch master updated: fix(android): return
error if file url is null (#632)
This is an automated email from the ASF dual-hosted git repository.
jcesarmobile pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-plugin-camera.git
The following commit(s) were added to refs/heads/master by this push:
new e2ecd7f fix(android): return error if file url is null (#632)
e2ecd7f is described below
commit e2ecd7fe9158702905df7f93c91cef4b597be78d
Author: jcesarmobile <jc...@gmail.com>
AuthorDate: Thu Jul 23 12:11:55 2020 +0200
fix(android): return error if file url is null (#632)
---
src/android/CameraLauncher.java | 111 +++++++++++++++++++++-------------------
1 file changed, 59 insertions(+), 52 deletions(-)
diff --git a/src/android/CameraLauncher.java b/src/android/CameraLauncher.java
index b9f5b71..114bb9b 100644
--- a/src/android/CameraLauncher.java
+++ b/src/android/CameraLauncher.java
@@ -686,68 +686,75 @@ public class CameraLauncher extends CordovaPlugin implements MediaScannerConnect
LOG.d(LOG_TAG, "File location is: " + fileLocation);
String uriString = uri.toString();
+ String finalLocation = fileLocation != null ? fileLocation : uriString;
String mimeType = FileHelper.getMimeType(uriString, this.cordova);
- // If you ask for video or the selected file doesn't have JPEG or PNG mime type
- // there will be no attempt to resize any returned data
- if (this.mediaType == VIDEO || !(JPEG_MIME_TYPE.equalsIgnoreCase(mimeType) || PNG_MIME_TYPE.equalsIgnoreCase(mimeType))) {
- this.callbackContext.success(fileLocation);
- }
- else {
+ if (finalLocation == null) {
+ this.failPicture("Error retrieving result.");
+ } else {
- // This is a special case to just return the path as no scaling,
- // rotating, nor compressing needs to be done
- if (this.targetHeight == -1 && this.targetWidth == -1 &&
- (destType == FILE_URI || destType == NATIVE_URI) && !this.correctOrientation &&
- mimeType != null && mimeType.equalsIgnoreCase(getMimetypeForFormat(encodingType)))
- {
- this.callbackContext.success(uriString);
- } else {
- Bitmap bitmap = null;
- try {
- bitmap = getScaledAndRotatedBitmap(uriString);
- } catch (IOException e) {
- e.printStackTrace();
- }
- if (bitmap == null) {
- LOG.d(LOG_TAG, "I either have a null image path or bitmap");
- this.failPicture("Unable to create bitmap!");
- return;
- }
+ // If you ask for video or the selected file doesn't have JPEG or PNG mime type
+ // there will be no attempt to resize any returned data
+ if (this.mediaType == VIDEO || !(JPEG_MIME_TYPE.equalsIgnoreCase(mimeType) || PNG_MIME_TYPE.equalsIgnoreCase(mimeType))) {
+ this.callbackContext.success(finalLocation);
+ }
+ else {
- // If sending base64 image back
- if (destType == DATA_URL) {
- this.processPicture(bitmap, this.encodingType);
- }
+ // This is a special case to just return the path as no scaling,
+ // rotating, nor compressing needs to be done
+ if (this.targetHeight == -1 && this.targetWidth == -1 &&
+ (destType == FILE_URI || destType == NATIVE_URI) && !this.correctOrientation &&
+ mimeType != null && mimeType.equalsIgnoreCase(getMimetypeForFormat(encodingType)))
+ {
+ this.callbackContext.success(finalLocation);
+ } else {
+ Bitmap bitmap = null;
+ try {
+ bitmap = getScaledAndRotatedBitmap(uriString);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ if (bitmap == null) {
+ LOG.d(LOG_TAG, "I either have a null image path or bitmap");
+ this.failPicture("Unable to create bitmap!");
+ return;
+ }
+
+ // If sending base64 image back
+ if (destType == DATA_URL) {
+ this.processPicture(bitmap, this.encodingType);
+ }
- // If sending filename back
- else if (destType == FILE_URI || destType == NATIVE_URI) {
- // Did we modify the image?
- if ( (this.targetHeight > 0 && this.targetWidth > 0) ||
- (this.correctOrientation && this.orientationCorrected) ||
- !mimeType.equalsIgnoreCase(getMimetypeForFormat(encodingType)))
- {
- try {
- String modifiedPath = this.outputModifiedBitmap(bitmap, uri);
- // The modified image is cached by the app in order to get around this and not have to delete you
- // application cache I'm adding the current system time to the end of the file url.
- this.callbackContext.success("file://" + modifiedPath + "?" + System.currentTimeMillis());
-
- } catch (Exception e) {
- e.printStackTrace();
- this.failPicture("Error retrieving image.");
+ // If sending filename back
+ else if (destType == FILE_URI || destType == NATIVE_URI) {
+ // Did we modify the image?
+ if ( (this.targetHeight > 0 && this.targetWidth > 0) ||
+ (this.correctOrientation && this.orientationCorrected) ||
+ !mimeType.equalsIgnoreCase(getMimetypeForFormat(encodingType)))
+ {
+ try {
+ String modifiedPath = this.outputModifiedBitmap(bitmap, uri);
+ // The modified image is cached by the app in order to get around this and not have to delete you
+ // application cache I'm adding the current system time to the end of the file url.
+ this.callbackContext.success("file://" + modifiedPath + "?" + System.currentTimeMillis());
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ this.failPicture("Error retrieving image.");
+ }
+ } else {
+ this.callbackContext.success(finalLocation);
}
- } else {
- this.callbackContext.success(fileLocation);
}
+ if (bitmap != null) {
+ bitmap.recycle();
+ bitmap = null;
+ }
+ System.gc();
}
- if (bitmap != null) {
- bitmap.recycle();
- bitmap = null;
- }
- System.gc();
}
}
+
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org