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

[3/10] js commit: wrapping up the exec rewrite

wrapping up the exec rewrite


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

Branch: refs/heads/master
Commit: c3180d73e28bdbc3c0d730f965e3a07483452b55
Parents: f4a423d
Author: Jesse MacFadyen <pu...@gmail.com>
Authored: Wed Jul 18 13:37:31 2012 -0700
Committer: Jesse MacFadyen <pu...@gmail.com>
Committed: Wed Jul 18 13:37:31 2012 -0700

----------------------------------------------------------------------
 lib/wp7/exec.js                      |   85 +----------------------------
 lib/wp7/platform.js                  |    4 ++
 lib/wp7/plugin/wp7/DirectoryEntry.js |   50 +++++++++++++++++
 lib/wp7/plugin/wp7/FileTransfer.js   |   14 +++---
 4 files changed, 63 insertions(+), 90 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/c3180d73/lib/wp7/exec.js
----------------------------------------------------------------------
diff --git a/lib/wp7/exec.js b/lib/wp7/exec.js
index 74421e9..3f59f5b 100644
--- a/lib/wp7/exec.js
+++ b/lib/wp7/exec.js
@@ -1,67 +1,5 @@
 var cordova = require('cordova');
 
-
- /* definition of named properties expected by the native side,
-    all arrays are stored in order of how they are received from common js code.
-    When other platforms evolve to using named args this will be removed.
- */
-
-var NamedArgs =  {
-    File:{
-        getFileMetadata:["fullPath"],
-        getMetadata:["fullPath"],
-        getParent:["fullPath"],
-        readAsText:["fileName","encoding"],
-        readAsDataURL:["fileName"],
-        getDirectory:["fullPath","path","options"],
-        remove:["fullPath"],
-        removeRecursively:["fullPath"],
-        getFile:["fullPath","path","options"],
-        readEntries:["fullPath"],
-        write:["fileName","data","position"],
-        truncate:["fileName","size"],
-        copyTo:["fullPath","parent", "newName"],
-        moveTo:["fullPath","parent", "newName"],
-        requestFileSystem:["type","size"],
-        resolveLocalFileSystemURI:["uri"]
-    }
-    // ,
-    // FileTransfer:{
-    //     upload:["filePath", "server", "fileKey", "fileName", "mimeType", "params", "debug", "chunkedMode"],
-    //     download:["url","filePath"]
-    // },
-
-};
-
-/*
-    Notification: {
-        alert:["message","title","buttonLabel"],
-        confirm:["message","title","buttonLabel"]
-    },
-    Camera:{
-        takePicture:["quality", "destinationType", "sourceType", "targetWidth", "targetHeight", "encodingType",
-                     "mediaType", "allowEdit", "correctOrientation", "saveToPhotoAlbum" ]
-    },
-    Contacts:{
-        search:["fields","options"]
-    },
-    Capture:{
-        getFormatData:["fullPath","type"]
-    }
-    Media:{
-        create:["id","src"],
-        startPlayingAudio:["id","src","milliseconds"],
-        stopPlayingAudio:["id"],
-        seekToAudio:["id","milliseconds"],
-        pausePlayingAudio:["id"],
-        getCurrentPositionAudio:["id"],
-        startRecordingAudio:["id","src"],
-        stopRecordingAudio:["id"],
-        release:["id"],
-        setVolume:["id","volume"]
-    },
-*/
-
 /**
  * Execute a cordova command.  It is up to the native side whether this action
  * is synchronous or asynchronous.  The native side can return:
@@ -80,30 +18,11 @@ var NamedArgs =  {
 
 module.exports = function(success, fail, service, action, args) {
 
-
     var callbackId = service + cordova.callbackId++;
-    if (typeof success == "function" || typeof fail == "function")
-    {
+    if (typeof success == "function" || typeof fail == "function") {
         cordova.callbacks[callbackId] = {success:success, fail:fail};
     }
-
-    // generate a new command string, ex. DebugConsole/log/DebugConsole23/{"message":"wtf dude?"}
-
-    if(NamedArgs[service] && NamedArgs[service][action]) {
-        var argNames = NamedArgs[service][action];
-        var newArgs = {};
-        var len = Math.min(args.length,argNames.length);
-
-        for(var n = 0; n < len; n++) {
-            newArgs[argNames[n]] = args[n];
-        }
-
-        args = newArgs;
-    }
-    // else if(args && args.length && args.length == 1) {
-    //     args = args[0];
-    // }
-
+    // generate a new command string, ex. DebugConsole/log/DebugConsole23/["wtf dude?"]
     var command = service + "/" + action + "/" + callbackId + "/" + JSON.stringify(args);
     // pass it on to Notify
     try {

http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/c3180d73/lib/wp7/platform.js
----------------------------------------------------------------------
diff --git a/lib/wp7/platform.js b/lib/wp7/platform.js
index 718830c..f482ce7 100644
--- a/lib/wp7/platform.js
+++ b/lib/wp7/platform.js
@@ -56,7 +56,11 @@ module.exports = {
         },
         FileTransfer: {
             path: 'cordova/plugin/wp7/FileTransfer'
+        },
+        DirectoryEntry: {
+            path: 'cordova/plugin/wp7/DirectoryEntry'
         }
+        
     },
     merges:{
         navigator: {

http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/c3180d73/lib/wp7/plugin/wp7/DirectoryEntry.js
----------------------------------------------------------------------
diff --git a/lib/wp7/plugin/wp7/DirectoryEntry.js b/lib/wp7/plugin/wp7/DirectoryEntry.js
new file mode 100644
index 0000000..4c1a4cb
--- /dev/null
+++ b/lib/wp7/plugin/wp7/DirectoryEntry.js
@@ -0,0 +1,50 @@
+
+var DirectoryEntry = require('cordova/plugin/DirectoryEntry'),
+    exec = require('cordova/exec'),
+    FileError = require('cordova/plugin/FileError');
+
+// Note, this is a special case, we need to overwrite the functions getDirectory + getFile.
+// Entry uses require at runtime, and will not find our patched version of the funks
+// so we have to overwrite the prototype manually -jm
+// In this case there is nothing to export.
+
+/**
+ * Creates or looks up a directory
+ *
+ * @param {DOMString} path either a relative or absolute path from this directory in which to look up or create a directory
+ * @param {Flags} options to create or excluively create the directory
+ * @param {Function} successCallback is called with the new entry
+ * @param {Function} errorCallback is called with a FileError
+ */
+DirectoryEntry.prototype.getDirectory = function(path, options, successCallback, errorCallback) {
+
+    var win = typeof successCallback !== 'function' ? null : function(result) {
+        var entry = new DirectoryEntry(result.name, result.fullPath);
+        successCallback(entry);
+    };
+    var fail = typeof errorCallback !== 'function' ? null : function(code) {
+        errorCallback(new FileError(code));
+    };
+    exec(win, fail, "File", "getDirectory", [this.fullPath, path, JSON.stringify(options)]);
+};
+
+/**
+ * Creates or looks up a file
+ *
+ * @param {DOMString} path either a relative or absolute path from this directory in which to look up or create a file
+ * @param {Flags} options to create or excluively create the file
+ * @param {Function} successCallback is called with the new entry
+ * @param {Function} errorCallback is called with a FileError
+ */
+DirectoryEntry.prototype.getFile = function(path, options, successCallback, errorCallback) {
+
+    var win = typeof successCallback !== 'function' ? null : function(result) {
+        var FileEntry = require('cordova/plugin/FileEntry');
+        var entry = new FileEntry(result.name, result.fullPath);
+        successCallback(entry);
+    };
+    var fail = typeof errorCallback !== 'function' ? null : function(code) {
+        errorCallback(new FileError(code));
+    };
+    exec(win, fail, "File", "getFile", [this.fullPath, path, JSON.stringify(options)]);
+};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/c3180d73/lib/wp7/plugin/wp7/FileTransfer.js
----------------------------------------------------------------------
diff --git a/lib/wp7/plugin/wp7/FileTransfer.js b/lib/wp7/plugin/wp7/FileTransfer.js
index c4baef7..a1393e5 100644
--- a/lib/wp7/plugin/wp7/FileTransfer.js
+++ b/lib/wp7/plugin/wp7/FileTransfer.js
@@ -54,13 +54,13 @@ FileTransfer.prototype.upload = function(filePath, server, successCallback, erro
         var error = new FileTransferError(e.code, e.source, e.target, e.http_status);
         errorCallback(error);
     };
-    exec(successCallback, fail, 'FileTransfer', 'upload', [{"filePath":filePath, 
-                                                              "server":server, 
-                                                              "fileKey":fileKey, 
-                                                              "fileName":fileName, 
-                                                              "mimeType":mimeType, 
-                                                              "params":params, 
-                                                              "trustAllHosts":trustAllHosts, 
+    exec(successCallback, fail, 'FileTransfer', 'upload', [{"filePath":filePath,
+                                                              "server":server,
+                                                              "fileKey":fileKey,
+                                                              "fileName":fileName,
+                                                              "mimeType":mimeType,
+                                                              "params":params,
+                                                              "trustAllHosts":trustAllHosts,
                                                               "chunkedMode":chunkedMode}]);
 };