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

webworks commit: [CB-752] Implement saveToPhotoAlbum CameraOption on bb device

Updated Branches:
  refs/heads/master 9128f337a -> 9c67191d7


[CB-752] Implement saveToPhotoAlbum CameraOption on bb device


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

Branch: refs/heads/master
Commit: 9c67191d730caadccec33fa3e6c060bf428cffda
Parents: 9128f33
Author: Tim Kim <ti...@nitobi.com>
Authored: Thu Jun 21 17:10:40 2012 -0700
Committer: Tim Kim <ti...@nitobi.com>
Committed: Thu Jun 21 17:10:40 2012 -0700

----------------------------------------------------------------------
 .../ext/src/org/apache/cordova/camera/Camera.java  |   42 ++++++++++++++-
 .../org/apache/cordova/camera/CameraOptions.java   |   32 ++++++++++--
 2 files changed, 69 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/9c67191d/framework/ext/src/org/apache/cordova/camera/Camera.java
----------------------------------------------------------------------
diff --git a/framework/ext/src/org/apache/cordova/camera/Camera.java b/framework/ext/src/org/apache/cordova/camera/Camera.java
index c033abe..e5f95c1 100644
--- a/framework/ext/src/org/apache/cordova/camera/Camera.java
+++ b/framework/ext/src/org/apache/cordova/camera/Camera.java
@@ -175,12 +175,52 @@ public class Camera extends Plugin
             // Reformat the image if the specified options require it,
             // otherwise, get encoded string if base 64 string is output format.
             String imageURIorData = filePath;
+            
+			// save to file:///store/home/user/ as oppsed to photo album
+			// so it doesn't show up in the camera's photo album viewer
+			if(!options.saveToPhotoAlbum){
+				FileConnection fconnIn = null;
+				FileConnection fconnOut = null;
+				InputStream in = null;
+				OutputStream out = null;
+				String newOutName = "";
+				try
+				{
+					fconnIn = (FileConnection)Connector.open(filePath);
+					if (fconnIn.exists())
+					{
+						newOutName = "file:///store/home/user/"+fconnIn.getName();
+						fconnOut = (FileConnection)Connector.open(newOutName);
+            			if (!fconnOut.exists())
+						 {
+							 fconnOut.create();  
+							 in = fconnIn.openInputStream();
+							 out = fconnOut.openOutputStream();
+							 out.write(IOUtilities.streamToBytes(in, 96*1024));
+							 fconnIn.delete();
+							 out.close();
+							 imageURIorData = newOutName;
+							 filePath = newOutName;
+							 waitForImageFile(newOutName);
+						 }
+					}
+				}
+				finally
+				{
+					if (in != null) in.close();
+					if (out != null) out.close();
+					if (fconnIn != null) fconnIn.close();
+					if (fconnOut != null) fconnOut.close();
+				}
+				
+			}
+
             if (options.reformat) {
                 imageURIorData = reformatImage(filePath, options);
             } else if (options.destinationType == CameraOptions.DESTINATION_DATA_URL) {
                 imageURIorData = encodeImage(filePath);
             }
-
+			
             // we have to check the size to avoid memory errors in the browser
             if (imageURIorData.length() > MAX_ENCODING_SIZE)
             {

http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/9c67191d/framework/ext/src/org/apache/cordova/camera/CameraOptions.java
----------------------------------------------------------------------
diff --git a/framework/ext/src/org/apache/cordova/camera/CameraOptions.java b/framework/ext/src/org/apache/cordova/camera/CameraOptions.java
index 97a4176..8b18f16 100644
--- a/framework/ext/src/org/apache/cordova/camera/CameraOptions.java
+++ b/framework/ext/src/org/apache/cordova/camera/CameraOptions.java
@@ -59,7 +59,8 @@ public class CameraOptions {
     public String fileExtension = ".jpg";
     public int imageFilter = Bitmap.FILTER_LANCZOS;
     public boolean reformat = false;
-
+	public boolean saveToPhotoAlbum = true;
+	
     /**
      * Defines the order of args in the JSONArray
      *
@@ -68,7 +69,12 @@ public class CameraOptions {
      *   Camera.PictureSourceType.PHOTOLIBRARY // sourceType (ignored)
      *   400,                                  // targetWidth
      *   600,                                  // targetHeight
-     *   Camera.EncodingType.JPEG]             // encoding
+     *   Camera.EncodingType.JPEG              // encoding
+     *	 Camera.mediaType
+     *   Camera.allowEdit
+     *   Camera.correctOrientation
+     *	 Camera.saveToPhotoAlbum			   // save to photo album
+     *   Camera.popoverOptions]			   
      */
     private static final int ARG_QUALITY = 0;
     private static final int ARG_DESTINATION_TYPE = 1;
@@ -76,7 +82,7 @@ public class CameraOptions {
     private static final int ARG_TARGET_WIDTH = 3;
     private static final int ARG_TARGET_HEIGHT = 4;
     private static final int ARG_ENCODING = 5;
-
+	private static final int ARG_SAVETOPHOTOALBUM = 9;
 
     /**
      * Parse the JSONArray and populate the class members with the values.
@@ -147,11 +153,28 @@ public class CameraOptions {
                     || options.encoding != ENCODING_JPEG) {
                 options.reformat = true;
             }
+
+            if (!args.isNull(ARG_SAVETOPHOTOALBUM)) {
+                options.saveToPhotoAlbum = parseBoolean(args.getString(ARG_SAVETOPHOTOALBUM));
+            }
+            
         }
 
         return options;
     }
-
+	
+    /**
+     * no parseBoolean in JDK 1.3 :(
+    */
+     
+	public static boolean parseBoolean(String s) {
+		if (s.equals("true")){
+			return true;
+		}else{
+			return false;
+		}
+	}
+	
     /**
      * @see java.lang.Object#toString()
      */
@@ -165,6 +188,7 @@ public class CameraOptions {
         str.append("Encoding:    " + encoding + "\n");
         str.append("Filter: " + imageFilter + "\n");
         str.append("Reformat: " + reformat);
+        str.append("Save To Photo Album: " + saveToPhotoAlbum);
         return str.toString();
     }
 }