flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From p...@apache.org
Subject git commit: [flex-asjs] [refs/heads/release0.8.0] - Update mobile Cordova Camera package so that it works again on Android and Air. Note that PhotoLibrary (for Cordova) is not available in this release.
Date Tue, 30 May 2017 18:50:02 GMT
Repository: flex-asjs
Updated Branches:
  refs/heads/release0.8.0 ff24a87c6 -> 4c2928367


Update mobile Cordova Camera package so that it works again on Android and Air. Note that
PhotoLibrary (for Cordova) is not available in this release.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/4c292836
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/4c292836
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/4c292836

Branch: refs/heads/release0.8.0
Commit: 4c292836760365cd78b2b0a295751de3b6362022
Parents: ff24a87
Author: Peter Ent <pent@apache.org>
Authored: Tue May 30 14:49:59 2017 -0400
Committer: Peter Ent <pent@apache.org>
Committed: Tue May 30 14:49:59 2017 -0400

----------------------------------------------------------------------
 .../Mobile/src/main/flex/CordovaClasses.as      |   8 +-
 .../main/flex/org/apache/cordova/Application.as |  86 ---------
 .../src/main/flex/org/apache/cordova/Weinre.as  |  88 ---------
 .../flex/org/apache/cordova/camera/Camera.as    | 192 -------------------
 .../apache/cordova/geolocation/Geolocation.as   |  61 ------
 .../flex/org/apache/flex/cordova/Application.as |  86 +++++++++
 .../main/flex/org/apache/flex/cordova/Camera.as | 173 +++++++++++++++++
 .../main/flex/org/apache/flex/cordova/Weinre.as |  88 +++++++++
 .../flex/cordova/geolocation/Geolocation.as     |  61 ++++++
 .../src/main/resources/cordova-manifest.xml     |   8 +-
 10 files changed, 416 insertions(+), 435 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4c292836/frameworks/projects/Mobile/src/main/flex/CordovaClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/CordovaClasses.as b/frameworks/projects/Mobile/src/main/flex/CordovaClasses.as
index 1c0b98e..73a73a8 100644
--- a/frameworks/projects/Mobile/src/main/flex/CordovaClasses.as
+++ b/frameworks/projects/Mobile/src/main/flex/CordovaClasses.as
@@ -27,10 +27,10 @@ package
  */
 internal class CordovaClasses
 {
-	import org.apache.cordova.camera.Camera; Camera;
-	import org.apache.cordova.Application; Application;
-	import org.apache.cordova.Weinre; Weinre;
-	import org.apache.cordova.geolocation.Geolocation; Geolocation;
+	import org.apache.flex.cordova.Camera; Camera;
+	import org.apache.flex.cordova.Application; Application;
+	import org.apache.flex.cordova.Weinre; Weinre;
+	import org.apache.flex.cordova.geolocation.Geolocation; Geolocation;
 }
 
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4c292836/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/Application.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/Application.as b/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/Application.as
deleted file mode 100644
index 2564637..0000000
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/Application.as
+++ /dev/null
@@ -1,86 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-package org.apache.cordova
-{
-	import org.apache.flex.events.Event;
-	import org.apache.flex.core.Application;
-	import org.apache.flex.core.IFlexInfo;
-
-	/**
-	 *  A customized Application that dispatches the Cordova deviceReady event
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10.2
-	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
-	 */
-	public class Application extends org.apache.flex.core.Application implements IFlexInfo
-	{
-		/**
-		 * FalconJX will inject html into the index.html file.  Surround with
-		 * "inject_html" tag as follows:
-		 *
-		 * <inject_html>
-		 * <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,
user-scalable=0">
-		 * <script type="text/javascript" src="cordova.js"></script>
-		 * </inject_html>
-		 */
-		public function Application()
-		{
-			super();
-		}
-		
-		public var isDeviceReady:Boolean = false
-		
-		/**
-		 * @private
-		 */
-		COMPILE::JS
-		override public function start():void
-		{
-			// listen for Cordova's deviceReady event
-			document.addEventListener("deviceReady", startOnReady, false);
-			
-			// listen for preinitialize event which will be cancelled until
-			// the Cordova 'deviceReady' event is received.
-			addEventListener("preinitialize", handlePreInit);
-			
-			super.start();
-		}
-		
-		/**
-		 * @private
-		 */
-		private function handlePreInit(event:Event):void
-		{
-			if (!isDeviceReady) {
-				event.preventDefault(); // basically, cancel the event until the device is ready
-			}
-		}
-		
-		/**
-		 * @private
-		 */
-		private function startOnReady(event:*):void
-		{
-			isDeviceReady = true;
-			removeEventListener("preinitialize", handlePreInit);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4c292836/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/Weinre.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/Weinre.as b/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/Weinre.as
deleted file mode 100644
index ae32d47..0000000
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/Weinre.as
+++ /dev/null
@@ -1,88 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-package org.apache.cordova
-{
-    COMPILE::SWF
-    {
-        import flash.net.URLRequest;
-        import flash.net.navigateToURL;            
-    }
-	
-	import org.apache.flex.core.IBead;
-	import org.apache.flex.core.IStrand;
-	
-	/**
-	 *  A class that helps set up to use Weinre for debugging
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10.2
-	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
-	 */
-	public class Weinre implements IBead
-	{
-		public function Weinre()
-		{
-		}
-
-		private var _strand:IStrand;
-		
-		/**
-		 *  @copy org.apache.flex.core.IBead#strand
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function set strand(value:IStrand):void
-		{
-			_strand = value;
-		}
-		
-		/**
-		 *  The guid to use at the Weinre server
-		 *  http://debug.phonegap.com
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-         *  @flexjsignorecoercion HTMLScriptElement
-         *  @flexjsignorecoercion HTMLHeadElement
-		 */
-		public function set guid(value:String):void
-		{
-            COMPILE::SWF
-            {
-                navigateToURL(new URLRequest("http://debug.phonegap.com/client/#" + value),
"_blank");                    
-            }
-            COMPILE::JS
-            {
-                var scriptNode:HTMLScriptElement = document.createElement('SCRIPT') as HTMLScriptElement;
-                scriptNode.type = 'text/javascript';
-                scriptNode.src = 'http://debug.phonegap.com/target/target-script-min.js#'
+ value;
-                
-                var headNode:HTMLHeadElement = document.getElementsByTagName('HEAD') as HTMLHeadElement;
-                if (headNode[0] != null)
-                    headNode[0].appendChild(scriptNode);
-            }
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4c292836/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/camera/Camera.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/camera/Camera.as
b/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/camera/Camera.as
deleted file mode 100644
index 8adf787..0000000
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/camera/Camera.as
+++ /dev/null
@@ -1,192 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-package org.apache.cordova.camera
-{
-    COMPILE::SWF
-    {
-        import flash.display.BitmapData;
-        import flash.display.DisplayObject;
-        import flash.display.DisplayObjectContainer;
-        import flash.display.Sprite;
-        import flash.events.ActivityEvent;
-        import flash.events.KeyboardEvent;
-        import flash.events.MouseEvent;
-        import flash.filesystem.File;
-        import flash.filesystem.FileMode;
-        import flash.filesystem.FileStream;
-        import flash.geom.Rectangle;
-        import flash.media.Camera;
-        import flash.media.Video;
-        import flash.ui.Keyboard;
-        import flash.utils.ByteArray;
-        
-        import org.apache.flex.utils.PNGEncoder;
-    }
-    
-	[Mixin]
-	/**
-	 * The Camera class implements the Cordova Camera
-	 * 
-	 * @langversion 3.0
-	 * @playerversion Flash 10.2
-	 * @playerversion AIR 2.6
-	 * @productversion FlexJS 0.0
-	 * @flexjscordovaplugin cordova-plugin-camera
-	 * @flexjsignorecoercion FileEntry
-	 * @flexjsignorecoercion FileWriter
-	 * @flexjsignorecoercion window
-     * @flexjsignorecoercion Blob
-	 */
-	public class Camera
-	{
-		public static var DestinationType:Object = {
-			DATA_URL : 0,      // Return image as base64-encoded string
-			FILE_URI : 1,      // Return image file URI
-			NATIVE_URI : 2     // Return image native URI (e.g., assets-library:// on iOS or content://
on Android)
-		};
-		
-		public static var PictureSourceType:Object = {
-			PHOTOLIBRARY : 0,
-			CAMERA : 1,
-			SAVEDPHOTOALBUM : 2
-		};
-		
-		public static var EncodingType:Object = {
-			JPEG : 0,               // Return JPEG encoded image
-			PNG : 1                 // Return PNG encoded image
-		};
-		
-		public static var MediaType:Object = {
-			PICTURE: 0,    // allow selection of still pictures only. DEFAULT. Will return format
specified via DestinationType
-			VIDEO: 1,      // allow selection of video only, WILL ALWAYS RETURN FILE_URI
-			ALLMEDIA : 2   // allow selection from all media types
-		};
-		
-		public static var Direction:Object = {
-			BACK : 0,      // Use the back-facing camera
-			FRONT : 1      // Use the front-facing camera
-		};
-
-        COMPILE::SWF
-		private static var root:DisplayObjectContainer;
-		
-        COMPILE::SWF
-		public static function init(r:DisplayObjectContainer):void
-		{
-			root = r;		
-		}
-		
-		public function Camera()
-		{
-			pictureSourceType = org.apache.cordova.camera.Camera.PictureSourceType.PHOTOLIBRARY;
-			destinationType = org.apache.cordova.camera.Camera.DestinationType.DATA_URL;
-			mediaType = org.apache.cordova.camera.Camera.MediaType.PICTURE;
-			encodingType = org.apache.cordova.camera.Camera.EncodingType.JPEG;
-			direction = org.apache.cordova.camera.Camera.Direction.BACK;
-		}
-		
-		public var pictureSourceType:int;
-		public var destinationType:int;
-		public var mediaType:int;
-		public var encodingType:int;
-		public var direction:int;
-		
-		private var cameraSuccess:Function;
-		private var cameraError:Function;
-        COMPILE::SWF
-		private var ui:Sprite;
-        COMPILE::SWF
-		private var camera:flash.media.Camera;
-		
-		public function getPicture( cameraSuccess:Function, cameraError:Function, cameraOptions:Object
) : void
-		{
-            COMPILE::SWF
-            {
-                this.cameraSuccess = cameraSuccess;
-                this.cameraError = cameraError;
-                
-                camera = flash.media.Camera.getCamera();
-                
-                if (camera != null) {
-                    ui = new Sprite();
-                    var video:Video = new Video(camera.width * 2, camera.height * 2);
-                    video.attachCamera(camera);
-                    ui.addChild(video);
-                    root.addChild(ui);
-                    ui.addEventListener(MouseEvent.CLICK, mouseClickHandler);
-                    ui.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
-                } else {
-                    trace("You need a camera.");
-                }                    
-            }
-            COMPILE::JS
-            {
-                // TODO: (aharui) Cordova externs
-                navigator["camera"].getPicture(cameraSuccess, cameraError, cameraOptions);
-            }
-		}
-		
-        COMPILE::SWF
-		private function mouseClickHandler(event:MouseEvent):void
-		{
-			savePicture();
-			root.removeChild(ui);
-		}
-		
-        COMPILE::SWF
-		private function keyDownHandler(event:KeyboardEvent):void
-		{
-			if (event.keyCode == Keyboard.ESCAPE)
-				root.removeChild(ui);
-			else if (event.keyCode == Keyboard.ENTER || event.keyCode == Keyboard.SPACE)
-			{
-				savePicture();
-				root.removeChild(ui);
-			}
-		}
-
-        COMPILE::SWF
-		private function savePicture():void
-		{
-			var f:File = File.createTempFile();
-			var bd:BitmapData = new BitmapData(camera.width, camera.height, false);
-			var pix:ByteArray = new ByteArray();
-			var rect:Rectangle = new Rectangle(0, 0, camera.width, camera.height);
-			camera.copyToByteArray(rect, pix);
-			pix.position = 0;
-			bd.setPixels(rect, pix);
-			var png:PNGEncoder = new PNGEncoder();
-			var ba:ByteArray = png.encode(bd);
-			var fs:FileStream = new FileStream();
-			fs.open(f, FileMode.WRITE);
-			fs.writeBytes(ba);
-			fs.close();
-			cameraSuccess(f.url);
-		}
-		
-		public function cleanup( cameraSuccess:Function, cameraError:Function ) : void
-		{
-            // no cleanup required in Flash
-            COMPILE::JS
-            {
-                navigator["camera"].cleanup();                
-            }
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4c292836/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/geolocation/Geolocation.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/geolocation/Geolocation.as
b/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/geolocation/Geolocation.as
deleted file mode 100644
index 97e99eb..0000000
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/cordova/geolocation/Geolocation.as
+++ /dev/null
@@ -1,61 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-package org.apache.cordova.geolocation
-{
-	/**
-	 * Geolocation provides the interface to the Cordova Geolocation plugin.
-	 */
-
-	[Mixin]
-	/**
-	 * The Geolocation class implements Cordova geolocation plugin
-	 * 
-	 * @langversion 3.0
-	 * @playerversion Flash 10.2
-	 * @playerversion AIR 2.6
-	 * @productversion FlexJS 0.0
-	 * @flexjscordovaplugin cordova-plugin-geolocation
-	 * @flexjsignorecoercion FileEntry
-	 * @flexjsignorecoercion FileWriter
-	 * @flexjsignorecoercion window
-     * @flexjsignorecoercion Blob
-	 */
-	public class Geolocation
-	{
-		/**
-		 * Constructor
-		 */
-		public function Geolocation()
-		{
-		}
-
-		/**
-		 * Gets the device current location. If successful, the onSuccess function is
-		 * called with position parameter (see Cordova documentation). If failure, the
-		 * onError function is called with an error parameter (.code and .message members).
-		 */
-		public function getCurrentPosition(onSuccess:Function, onError:Function):void
-		{
-			COMPILE::JS {
-				// TODO: (pent) Cordova externs
-				navigator["geolocation"].getCurrentPosition(onSuccess, onError);
-			}
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4c292836/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/Application.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/Application.as
b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/Application.as
new file mode 100644
index 0000000..52de8d6
--- /dev/null
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/Application.as
@@ -0,0 +1,86 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.cordova
+{
+	import org.apache.flex.events.Event;
+	import org.apache.flex.core.Application;
+	import org.apache.flex.core.IFlexInfo;
+
+	/**
+	 *  A customized Application that dispatches the Cordova deviceReady event
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class Application extends org.apache.flex.core.Application implements IFlexInfo
+	{
+		/**
+		 * FalconJX will inject html into the index.html file.  Surround with
+		 * "inject_html" tag as follows:
+		 *
+		 * <inject_html>
+		 * <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,
user-scalable=0">
+		 * <script type="text/javascript" src="cordova.js"></script>
+		 * </inject_html>
+		 */
+		public function Application()
+		{
+			super();
+		}
+		
+		public var isDeviceReady:Boolean = false
+		
+		/**
+		 * @private
+		 */
+		COMPILE::JS
+		override public function start():void
+		{
+			// listen for Cordova's deviceReady event
+			document.addEventListener("deviceReady", startOnReady, false);
+			
+			// listen for preinitialize event which will be cancelled until
+			// the Cordova 'deviceReady' event is received.
+			addEventListener("preinitialize", handlePreInit);
+			
+			super.start();
+		}
+		
+		/**
+		 * @private
+		 */
+		private function handlePreInit(event:Event):void
+		{
+			if (!isDeviceReady) {
+				event.preventDefault(); // basically, cancel the event until the device is ready
+			}
+		}
+		
+		/**
+		 * @private
+		 */
+		private function startOnReady(event:*):void
+		{
+			isDeviceReady = true;
+			removeEventListener("preinitialize", handlePreInit);
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4c292836/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/Camera.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/Camera.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/Camera.as
new file mode 100644
index 0000000..8333fb2
--- /dev/null
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/Camera.as
@@ -0,0 +1,173 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.cordova
+{
+	COMPILE::SWF
+	{
+		import flash.display.BitmapData;
+		import flash.display.DisplayObject;
+		import flash.display.DisplayObjectContainer;
+		import flash.display.Sprite;
+		import flash.events.ActivityEvent;
+		import flash.events.KeyboardEvent;
+		import flash.events.MouseEvent;
+		import flash.filesystem.File;
+		import flash.filesystem.FileMode;
+		import flash.filesystem.FileStream;
+		import flash.geom.Rectangle;
+		import flash.media.Camera;
+		import flash.media.Video;
+		import flash.ui.Keyboard;
+		import flash.utils.ByteArray;
+		
+		import org.apache.flex.utils.PNGEncoder;
+	}
+		
+	/**
+	 * The Camera class implements the Cordova Camera
+	 * 
+	 * @langversion 3.0
+	 * @playerversion Flash 10.2
+	 * @playerversion AIR 2.6
+	 * @productversion FlexJS 0.0
+	 * @flexjscordovaplugin cordova-plugin-camera
+	 * @flexjsignorecoercion FileEntry
+	 * @flexjsignorecoercion FileWriter
+	 * @flexjsignorecoercion window
+     * @flexjsignorecoercion Blob
+	 */
+	COMPILE::JS
+	public class Camera
+	{
+		private var pictureSource:*;   // picture source
+		private var destinationType:*; // sets the format of returned value
+		
+		public function Camera()
+		{
+			pictureSource=navigator['camera'].PictureSourceType;
+			destinationType=navigator['camera'].DestinationType;
+		}
+		
+		public function capturePhoto(onPhotoDataSuccess:Function, onFail:Function):void
+		{
+			// Take picture using device camera and retrieve image as base64-encoded string
+			navigator['camera'].getPicture(onPhotoDataSuccess, onFail, { quality: 50,
+				destinationType: destinationType.FILE_URI }); //DATA_URL
+		}
+		
+		public function getPhotoFromLibrary(onPhotoURISuccess:Function, onFail:Function):void
+		{
+			// Retrieve image file location from specified source
+			navigator['camera'].getPicture(onPhotoURISuccess, onFail, { quality: 50,
+				destinationType: destinationType.FILE_URI,
+				sourceType: navigator['camera'].PictureSourceType.PHOTOLIBRARY });
+		}
+		
+		public function cleanup( cameraSuccess:Function, cameraError:Function ) : void
+		{
+			navigator["camera"].cleanup();
+		}
+	}
+	
+	[Mixin]
+	COMPILE::SWF
+	public class Camera
+	{
+		private var cameraSuccess:Function;
+		private var cameraError:Function;
+		private var ui:Sprite;
+		private var camera:flash.media.Camera;
+		
+		private static var root:DisplayObjectContainer;
+		
+		public static function init(r:DisplayObjectContainer):void
+		{
+			root = r;		
+		}
+		
+		public function Camera()
+		{
+		}
+		
+		public function capturePhoto(onPhotoDataSuccess:Function, onFail:Function):void
+		{
+			this.cameraSuccess = onPhotoDataSuccess;
+			this.cameraError = onFail;
+			
+			camera = flash.media.Camera.getCamera();
+			
+			if (camera != null) {
+				ui = new Sprite();
+				var video:Video = new Video(camera.width * 2, camera.height * 2);
+				video.attachCamera(camera);
+				ui.addChild(video);
+				root.addChild(ui);
+				ui.addEventListener(MouseEvent.CLICK, mouseClickHandler);
+				ui.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
+			} else {
+				trace("You need a camera.");
+			}
+		}
+		
+		public function getPhotoFromLibrary(onPhotoURISuccess:Function, onFail:Function):void
+		{
+			// TBD
+		}
+		
+		private function mouseClickHandler(event:MouseEvent):void
+		{
+			savePicture();
+			root.removeChild(ui);
+		}
+		
+		private function keyDownHandler(event:KeyboardEvent):void
+		{
+			if (event.keyCode == Keyboard.ESCAPE)
+				root.removeChild(ui);
+			else if (event.keyCode == Keyboard.ENTER || event.keyCode == Keyboard.SPACE)
+			{
+				savePicture();
+				root.removeChild(ui);
+			}
+		}
+		
+		private function savePicture():void
+		{
+			var f:File = File.createTempFile();
+			var bd:BitmapData = new BitmapData(camera.width, camera.height, false);
+			var pix:ByteArray = new ByteArray();
+			var rect:Rectangle = new Rectangle(0, 0, camera.width, camera.height);
+			camera.copyToByteArray(rect, pix);
+			pix.position = 0;
+			bd.setPixels(rect, pix);
+			var png:PNGEncoder = new PNGEncoder();
+			var ba:ByteArray = png.encode(bd);
+			var fs:FileStream = new FileStream();
+			fs.open(f, FileMode.WRITE);
+			fs.writeBytes(ba);
+			fs.close();
+			cameraSuccess(f.url);
+		}
+		
+		public function cleanup( cameraSuccess:Function, cameraError:Function ) : void
+		{
+			// not required for SWF version
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4c292836/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/Weinre.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/Weinre.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/Weinre.as
new file mode 100644
index 0000000..2daf982
--- /dev/null
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/Weinre.as
@@ -0,0 +1,88 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.cordova
+{
+    COMPILE::SWF
+    {
+        import flash.net.URLRequest;
+        import flash.net.navigateToURL;            
+    }
+	
+	import org.apache.flex.core.IBead;
+	import org.apache.flex.core.IStrand;
+	
+	/**
+	 *  A class that helps set up to use Weinre for debugging
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class Weinre implements IBead
+	{
+		public function Weinre()
+		{
+		}
+
+		private var _strand:IStrand;
+		
+		/**
+		 *  @copy org.apache.flex.core.IBead#strand
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+		}
+		
+		/**
+		 *  The guid to use at the Weinre server
+		 *  http://debug.phonegap.com
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+         *  @flexjsignorecoercion HTMLScriptElement
+         *  @flexjsignorecoercion HTMLHeadElement
+		 */
+		public function set guid(value:String):void
+		{
+            COMPILE::SWF
+            {
+                navigateToURL(new URLRequest("http://debug.phonegap.com/client/#" + value),
"_blank");                    
+            }
+            COMPILE::JS
+            {
+                var scriptNode:HTMLScriptElement = document.createElement('SCRIPT') as HTMLScriptElement;
+                scriptNode.type = 'text/javascript';
+                scriptNode.src = 'http://debug.phonegap.com/target/target-script-min.js#'
+ value;
+                
+                var headNode:HTMLHeadElement = document.getElementsByTagName('HEAD') as HTMLHeadElement;
+                if (headNode[0] != null)
+                    headNode[0].appendChild(scriptNode);
+            }
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4c292836/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/geolocation/Geolocation.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/geolocation/Geolocation.as
b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/geolocation/Geolocation.as
new file mode 100644
index 0000000..830d2cc
--- /dev/null
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/cordova/geolocation/Geolocation.as
@@ -0,0 +1,61 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.cordova.geolocation
+{
+	/**
+	 * Geolocation provides the interface to the Cordova Geolocation plugin.
+	 */
+
+	[Mixin]
+	/**
+	 * The Geolocation class implements Cordova geolocation plugin
+	 * 
+	 * @langversion 3.0
+	 * @playerversion Flash 10.2
+	 * @playerversion AIR 2.6
+	 * @productversion FlexJS 0.0
+	 * @flexjscordovaplugin cordova-plugin-geolocation
+	 * @flexjsignorecoercion FileEntry
+	 * @flexjsignorecoercion FileWriter
+	 * @flexjsignorecoercion window
+     * @flexjsignorecoercion Blob
+	 */
+	public class Geolocation
+	{
+		/**
+		 * Constructor
+		 */
+		public function Geolocation()
+		{
+		}
+
+		/**
+		 * Gets the device current location. If successful, the onSuccess function is
+		 * called with position parameter (see Cordova documentation). If failure, the
+		 * onError function is called with an error parameter (.code and .message members).
+		 */
+		public function getCurrentPosition(onSuccess:Function, onError:Function):void
+		{
+			COMPILE::JS {
+				// TODO: (pent) Cordova externs
+				navigator["geolocation"].getCurrentPosition(onSuccess, onError);
+			}
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4c292836/frameworks/projects/Mobile/src/main/resources/cordova-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/resources/cordova-manifest.xml b/frameworks/projects/Mobile/src/main/resources/cordova-manifest.xml
index d20b9ff..274b7fb 100644
--- a/frameworks/projects/Mobile/src/main/resources/cordova-manifest.xml
+++ b/frameworks/projects/Mobile/src/main/resources/cordova-manifest.xml
@@ -21,9 +21,9 @@
 
 <componentPackage>
 
-    <component id="Application" class="org.apache.cordova.Application"/>
-    <component id="Camera" class="org.apache.cordova.camera.Camera"/>
-    <component id="Weinre" class="org.apache.cordova.Weinre"/>
-    <component id="Geolocation" class="org.apache.cordova.geolocation.Geolocation" />
+    <component id="Application" class="org.apache.flex.cordova.Application"/>
+    <component id="Camera" class="org.apache.flex.cordova.Camera"/>
+    <component id="Weinre" class="org.apache.flex.cordova.Weinre"/>
+    <component id="Geolocation" class="org.apache.flex.cordova.geolocation.Geolocation"
/>
 
 </componentPackage>


Mime
View raw message