You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by bo...@apache.org on 2012/06/21 23:05:04 UTC

[4/15] android commit: Fixed the 0-byte files in gallery. Also fixed exif rewriter for saveToPhotoAlbum:false JPG files. Thanks for your help Simon!

Fixed the 0-byte files in gallery. Also fixed exif rewriter for saveToPhotoAlbum:false JPG files. Thanks for your help Simon!


Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/commit/9d1edc45
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/tree/9d1edc45
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/diff/9d1edc45

Branch: refs/heads/master
Commit: 9d1edc4554ef8d1cece0daea18ee51b41a157802
Parents: 5143b8a
Author: Fil Maj <ma...@gmail.com>
Authored: Thu Jun 21 12:08:07 2012 -0700
Committer: Joe Bowser <bo...@apache.org>
Committed: Thu Jun 21 14:03:59 2012 -0700

----------------------------------------------------------------------
 .../src/org/apache/cordova/CameraLauncher.java     |   40 +++++++-------
 1 files changed, 20 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/9d1edc45/framework/src/org/apache/cordova/CameraLauncher.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/CameraLauncher.java b/framework/src/org/apache/cordova/CameraLauncher.java
index 6838983..d3938ff 100755
--- a/framework/src/org/apache/cordova/CameraLauncher.java
+++ b/framework/src/org/apache/cordova/CameraLauncher.java
@@ -333,27 +333,9 @@ public class CameraLauncher extends Plugin implements MediaScannerConnectionClie
 
                     // If sending filename back
                     else if (destType == FILE_URI) {
-                        // Create entry in media store for image
-                        // (Don't use insertImage() because it uses default compression setting of 50 - no way to change it)
-                        ContentValues values = new ContentValues();
-                        values.put(android.provider.MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
-
-                       
-                        try {
-                            this.imageUri = this.cordova.getActivity().getContentResolver().insert(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
-                        } catch (UnsupportedOperationException e) {
-                            LOG.d(LOG_TAG, "Can't write to external media storage.");
-                            try {
-                                this.imageUri = this.cordova.getActivity().getContentResolver().insert(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI, values);
-                            } catch (UnsupportedOperationException ex) {
-                                LOG.d(LOG_TAG, "Can't write to internal media storage.");
-                                this.failPicture("Error capturing image - no media storage found.");
-                                return;
-                            }
-                        }
                         if (!this.saveToPhotoAlbum) {
                             File tempFile = new File(this.imageUri.toString());
-                            Uri jailURI = Uri.fromFile(new File("/data/data/" + this.cordova.getActivity().getPackageName() + "/", tempFile.getName() + "." + (this.encodingType == JPEG ? "jpg" : "png" )));
+                            Uri jailURI = Uri.fromFile(new File("/data/data/" + this.cordova.getActivity().getPackageName() + "/", tempFile.getName()));
                             
                             // Clean up initial URI before writing out safe URI.
                             // First try File-based approach to delete. Then use the media delete method. Neither seem to work on ICS right now...
@@ -366,6 +348,24 @@ public class CameraLauncher extends Plugin implements MediaScannerConnectionClie
                                 );
                             }
                             this.imageUri = jailURI;
+                        } else {
+                            // Create entry in media store for image
+                            // (Don't use insertImage() because it uses default compression setting of 50 - no way to change it)
+                            ContentValues values = new ContentValues();
+                            values.put(android.provider.MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
+
+                            try {
+                                this.imageUri = this.cordova.getActivity().getContentResolver().insert(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
+                            } catch (UnsupportedOperationException e) {
+                                LOG.d(LOG_TAG, "Can't write to external media storage.");
+                                try {
+                                    this.imageUri = this.cordova.getActivity().getContentResolver().insert(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI, values);
+                                } catch (UnsupportedOperationException ex) {
+                                    LOG.d(LOG_TAG, "Can't write to internal media storage.");
+                                    this.failPicture("Error capturing image - no media storage found.");
+                                    return;
+                                }
+                            }
                         }
 
                         // If all this is true we shouldn't compress the image.
@@ -401,7 +401,7 @@ public class CameraLauncher extends Plugin implements MediaScannerConnectionClie
                             if (this.saveToPhotoAlbum) {
                                 exifPath = FileUtils.getRealPathFromURI(this.imageUri, this.cordova);
                             } else {
-                                exifPath = this.imageUri.toString();
+                                exifPath = this.imageUri.getPath();
                             }
                             exif.createOutFile(exifPath);
                             exif.writeExifData();