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

[4/7] android commit: Removing images and saving images to jail if SaveToPhotoAlbum is set to true

Removing images and saving images to jail if SaveToPhotoAlbum is set to true


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/f6d4402f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/tree/f6d4402f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/diff/f6d4402f

Branch: refs/heads/master
Commit: f6d4402fdc8eae41352f2f268a69e578bf33754f
Parents: 9f66ccb
Author: Fil Maj <ma...@gmail.com>
Authored: Wed Jun 20 14:12:06 2012 -0700
Committer: Fil Maj <ma...@gmail.com>
Committed: Thu Jun 21 12:09:50 2012 -0700

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


http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/f6d4402f/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 f2c3e12..d9467fb 100755
--- a/framework/src/org/apache/cordova/CameraLauncher.java
+++ b/framework/src/org/apache/cordova/CameraLauncher.java
@@ -338,6 +338,7 @@ public class CameraLauncher extends Plugin implements MediaScannerConnectionClie
                         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) {
@@ -350,6 +351,22 @@ public class CameraLauncher extends Plugin implements MediaScannerConnectionClie
                                 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()));
+                            
+                            // Clean up initial URI before writing out safe URI
+                            boolean didWeDeleteIt = tempFile.delete();
+                            if (!didWeDeleteIt) {
+                                int result = this.cordova.getActivity().getContentResolver().delete(
+                                    MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
+                                    MediaStore.Images.Media.DATA + " = ?",
+                                    new String[] { this.imageUri.toString() }
+                                );
+                                LOG.d("TAG!","result is " + result);
+                            }
+                            this.imageUri = jailURI;
+                        }
 
                         // If all this is true we shouldn't compress the image.
                         if (this.targetHeight == -1 && this.targetWidth == -1 && this.mQuality == 100) {
@@ -378,10 +395,18 @@ public class CameraLauncher extends Plugin implements MediaScannerConnectionClie
                         os.close();
 
                         // Restore exif data to file
+                        
                         if (this.encodingType == JPEG) {
-                            exif.createOutFile(FileUtils.getRealPathFromURI(this.imageUri, this.cordova));
+                            String exifPath;
+                            if (this.saveToPhotoAlbum) {
+                                exifPath = FileUtils.getRealPathFromURI(this.imageUri, this.cordova);
+                            } else {
+                                exifPath = this.imageUri.toString();
+                            }
+                            exif.createOutFile(exifPath);
                             exif.writeExifData();
                         }
+                        
 
                         // Scan for the gallery to update pic refs in gallery
                         this.scanForGallery();