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:05 UTC

[8/15] 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/167b6001
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/tree/167b6001
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/diff/167b6001

Branch: refs/heads/master
Commit: 167b60013536dd20f74fb7041fee52e4278c3a99
Parents: 6c465e2
Author: Fil Maj <ma...@gmail.com>
Authored: Wed Jun 20 14:12:06 2012 -0700
Committer: Joe Bowser <bo...@apache.org>
Committed: Thu Jun 21 14:03:58 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/167b6001/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();