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/07 22:59:18 UTC
[6/9] js commit: moved playbook plugins for the manager into their
own modules
moved playbook plugins for the manager into their own modules
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/d5818e1d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/tree/d5818e1d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/diff/d5818e1d
Branch: refs/heads/master
Commit: d5818e1d9bf9049bcc051fd85e5db08fe34e7a4f
Parents: ce4a05c
Author: Gord Tanner <gt...@gmail.com>
Authored: Tue May 29 15:33:20 2012 -0400
Committer: Tim Kim <ti...@nitobi.com>
Committed: Thu Jun 7 13:50:55 2012 -0700
----------------------------------------------------------------------
lib/playbook/plugin/manager.js | 338 +--------------------
lib/playbook/plugin/playbook/battery.js | 36 +++
lib/playbook/plugin/playbook/camera.js | 8 +
lib/playbook/plugin/playbook/capture.js | 40 +++
lib/playbook/plugin/playbook/device.js | 31 +--
lib/playbook/plugin/playbook/logger.js | 9 +
lib/playbook/plugin/playbook/media.js | 167 ++++++++++
lib/playbook/plugin/playbook/network.js | 33 ++
lib/playbook/plugin/playbook/notification.js | 31 ++
9 files changed, 341 insertions(+), 352 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/d5818e1d/lib/playbook/plugin/manager.js
----------------------------------------------------------------------
diff --git a/lib/playbook/plugin/manager.js b/lib/playbook/plugin/manager.js
index 04d070d..0d951e9 100644
--- a/lib/playbook/plugin/manager.js
+++ b/lib/playbook/plugin/manager.js
@@ -1,334 +1,12 @@
var cordova = require('cordova'),
- MediaFile = require('cordova/plugin/MediaFile'),
- /**
- * Private list of HTML 5 audio objects, indexed by the Cordova media object ids
- */
- audioObjects = {},
- retInvalidAction = function () {
- return { "status" : cordova.callbackStatus.INVALID_ACTION, "message" : "Action not found" };
- },
- retAsyncCall = function () {
- return { "status" : cordova.callbackStatus.NO_RESULT, "message" : "WebWorks Is On It" };
- },
- batteryAPI = {
- start: function (args, win, fail) {
- // Register one listener to each of level and state change
- // events using WebWorks API.
- blackberry.system.event.deviceBatteryStateChange(function(state) {
- var me = navigator.battery;
- // state is either CHARGING or UNPLUGGED
- if (state === 2 || state === 3) {
- var info = {
- "level" : me._level,
- "isPlugged" : state === 2
- };
-
- if (me._isPlugged !== info.isPlugged && typeof win === 'function') {
- win(info);
- }
- }
- });
- blackberry.system.event.deviceBatteryLevelChange(function(level) {
- var me = navigator.battery;
- if (level != me._level && typeof win === 'function') {
- win({'level' : level, 'isPlugged' : me._isPlugged});
- }
- });
-
- return retAsyncCall();
- },
- stop: function (args, win, fail) {
- // Unregister battery listeners.
- blackberry.system.event.deviceBatteryStateChange(null);
- blackberry.system.event.deviceBatteryLevelChange(null);
- return retAsyncCall();
- }
- },
- cameraAPI = {
- takePicture: function (args, win, fail) {
- blackberry.media.camera.takePicture(win, fail, fail);
- return retAsyncCall();
- }
- },
- deviceAPI = {
- getDeviceInfo: function (args, win, fail) {
- return {"status" : cordova.callbackStatus.OK,
- "message" : {
- "version" : blackberry.system.softwareVersion,
- "name" : blackberry.system.model,
- "uuid" : blackberry.identity.PIN,
- "platform" : "PlayBook",
- "cordova" : "1.7.0rc1"
- }
- };
- }
- },
- loggerAPI = {
- log: function (args, win, fail) {
- console.log(args);
- return {"status" : cordova.callbackStatus.OK,
- "message" : 'Message logged to console: ' + args};
- }
- },
- mediaAPI = {
- startPlayingAudio: function (args, win, fail) {
- if (!args.length) {
- return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
- }
-
- var id = args[0],
- audio = audioObjects[id],
- result;
-
- if (args.length === 1) {
- return {"status" : 9, "message" : "Media source argument not found"};
- }
-
- if (audio) {
- audio.pause();
- audioObjects[id] = undefined;
- }
-
- audio = audioObjects[id] = new Audio(args[1]);
- audio.play();
-
- return {"status" : 1, "message" : "Audio play started" };
- },
- stopPlayingAudio: function (args, win, fail) {
- if (!args.length) {
- return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
- }
-
- var id = args[0],
- audio = audioObjects[id],
- result;
-
- if (!audio) {
- return {"status" : 2, "message" : "Audio Object has not been initialized"};
- }
-
- audio.pause();
- audioObjects[id] = undefined;
-
- return {"status" : 1, "message" : "Audio play stopped" };
- },
- seekToAudio: function (args, win, fail) {
- if (!args.length) {
- return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
- }
-
- var id = args[0],
- audio = audioObjects[id],
- result;
-
- if (!audio) {
- result = {"status" : 2, "message" : "Audio Object has not been initialized"};
- } else if (args.length === 1) {
- result = {"status" : 9, "message" : "Media seek time argument not found"};
- } else {
- try {
- audio.currentTime = args[1];
- } catch (e) {
- console.log('Error seeking audio: ' + e);
- return {"status" : 3, "message" : "Error seeking audio: " + e};
- }
-
- result = {"status" : 1, "message" : "Seek to audio succeeded" };
- }
-
- return result;
- },
- pausePlayingAudio: function (args, win, fail) {
- if (!args.length) {
- return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
- }
-
- var id = args[0],
- audio = audioObjects[id],
- result;
-
- if (!audio) {
- return {"status" : 2, "message" : "Audio Object has not been initialized"};
- }
-
- audio.pause();
-
- return {"status" : 1, "message" : "Audio paused" };
- },
- getCurrentPositionAudio: function (args, win, fail) {
- if (!args.length) {
- return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
- }
-
- var id = args[0],
- audio = audioObjects[id],
- result;
-
- if (!audio) {
- return {"status" : 2, "message" : "Audio Object has not been initialized"};
- }
-
- return {"status" : 1, "message" : audio.currentTime };
- },
- getDuration: function (args, win, fail) {
- if (!args.length) {
- return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
- }
-
- var id = args[0],
- audio = audioObjects[id],
- result;
-
- if (!audio) {
- return {"status" : 2, "message" : "Audio Object has not been initialized"};
- }
-
- return {"status" : 1, "message" : audio.duration };
- },
- startRecordingAudio: function (args, win, fail) {
- if (!args.length) {
- return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
- }
-
- var id = args[0],
- audio = audioObjects[id],
- result;
-
- if (args.length <= 1) {
- result = {"status" : 9, "message" : "Media start recording, insufficient arguments"};
- }
-
- blackberry.media.microphone.record(args[1], win, fail);
- return retAsyncCall();
- },
- stopRecordingAudio: function (args, win, fail) {
- },
- release: function (args, win, fail) {
- if (!args.length) {
- return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
- }
-
- var id = args[0],
- audio = audioObjects[id],
- result;
-
- if (audio) {
- audioObjects[id] = undefined;
- audio.src = undefined;
- //delete audio;
- }
-
- result = {"status" : 1, "message" : "Media resources released"};
-
- return result;
- }
- },
- mediaCaptureAPI = {
- getSupportedAudioModes: function (args, win, fail) {
- return {"status": cordova.callbackStatus.OK, "message": []};
- },
- getSupportedImageModes: function (args, win, fail) {
- return {"status": cordova.callbackStatus.OK, "message": []};
- },
- getSupportedVideoModes: function (args, win, fail) {
- return {"status": cordova.callbackStatus.OK, "message": []};
- },
- captureImage: function (args, win, fail) {
- var limit = args[0];
-
- if (limit > 0) {
- blackberry.media.camera.takePicture(win, fail, fail);
- }
- else {
- win([]);
- }
-
- return retAsyncCall();
- },
- captureVideo: function (args, win, fail) {
- var limit = args[0];
-
- if (limit > 0) {
- blackberry.media.camera.takeVideo(win, fail, fail);
- }
- else {
- win([]);
- }
-
- return retAsyncCall();
- },
- captureAudio: function (args, win, fail) {
- return {"status": cordova.callbackStatus.INVALID_ACTION, "message": "captureAudio is not currently supported"};
- }
- },
- networkAPI = {
- getConnectionInfo: function (args, win, fail) {
- var connectionType = require("cordova/plugin/Connection").NONE,
- eventType = "offline",
- callbackID,
- request;
-
- /**
- * For PlayBooks, we currently only have WiFi connections, so
- * return WiFi if there is any access at all.
- * TODO: update if/when PlayBook gets other connection types...
- */
- if (blackberry.system.hasDataCoverage()) {
- connectionType = require("cordova/plugin/Connection").WIFI;
- eventType = "online";
- }
-
- //Register an event handler for the networkChange event
- callbackID = blackberry.events.registerEventHandler("networkChange", function (status) {
- win(status.type);
- });
-
- //pass our callback id down to our network extension
- request = new blackberry.transport.RemoteFunctionCall("org/apache/cordova/getConnectionInfo");
- request.addParam("networkStatusChangedID", callbackID);
- request.makeSyncCall();
-
- return { "status": cordova.callbackStatus.OK, "message": connectionType};
- }
- },
- notificationAPI = {
- alert: function (args, win, fail) {
- if (args.length !== 3) {
- return {"status" : 9, "message" : "Notification action - alert arguments not found"};
- }
-
- //Unpack and map the args
- var msg = args[0],
- title = args[1],
- btnLabel = args[2];
-
- blackberry.ui.dialog.customAskAsync.apply(this, [ msg, [ btnLabel ], win, { "title" : title } ]);
- return retAsyncCall();
- },
- confirm: function (args, win, fail) {
- if (args.length !== 3) {
- return {"status" : 9, "message" : "Notification action - confirm arguments not found"};
- }
-
- //Unpack and map the args
- var msg = args[0],
- title = args[1],
- btnLabel = args[2],
- btnLabels = btnLabel.split(",");
-
- blackberry.ui.dialog.customAskAsync.apply(this, [msg, btnLabels, win, {"title" : title} ]);
- return retAsyncCall();
- }
- },
plugins = {
- 'Battery' : batteryAPI,
- 'Camera' : cameraAPI,
- 'Device' : deviceAPI,
- 'Logger' : loggerAPI,
- 'Media' : mediaAPI,
- 'Capture' : mediaCaptureAPI,
- 'NetworkStatus' : networkAPI,
- 'Notification' : notificationAPI
+ 'Battery' : require('cordova/plugin/playbook/battery'),
+ 'Camera' : require('cordova/plugin/playbook/camera'),
+ 'Logger' : require('cordova/plugin/playbook/logger'),
+ 'Media' : require('cordova/plugin/playbook/media'),
+ 'Capture' : require('cordova/plugin/playbook/capture'),
+ 'NetworkStatus' : require('cordova/plugin/playbook/network'),
+ 'Notification' : require('cordova/plugin/playbook/notification')
};
module.exports = {
@@ -340,7 +18,7 @@ module.exports = {
result = plugins[clazz][action](args, win, fail);
}
else {
- result = retInvalidAction();
+ result = { "status" : cordova.callbackStatus.INVALID_ACTION, "message" : "Action not found: " + action };
}
}
http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/d5818e1d/lib/playbook/plugin/playbook/battery.js
----------------------------------------------------------------------
diff --git a/lib/playbook/plugin/playbook/battery.js b/lib/playbook/plugin/playbook/battery.js
new file mode 100644
index 0000000..14eb7ce
--- /dev/null
+++ b/lib/playbook/plugin/playbook/battery.js
@@ -0,0 +1,36 @@
+var cordova = require('cordova');
+
+module.exports = {
+ start: function (args, win, fail) {
+ // Register one listener to each of level and state change
+ // events using WebWorks API.
+ blackberry.system.event.deviceBatteryStateChange(function(state) {
+ var me = navigator.battery;
+ // state is either CHARGING or UNPLUGGED
+ if (state === 2 || state === 3) {
+ var info = {
+ "level" : me._level,
+ "isPlugged" : state === 2
+ };
+
+ if (me._isPlugged !== info.isPlugged && typeof win === 'function') {
+ win(info);
+ }
+ }
+ });
+ blackberry.system.event.deviceBatteryLevelChange(function(level) {
+ var me = navigator.battery;
+ if (level != me._level && typeof win === 'function') {
+ win({'level' : level, 'isPlugged' : me._isPlugged});
+ }
+ });
+
+ return { "status" : cordova.callbackStatus.NO_RESULT, "message" : "WebWorks Is On It" };
+ },
+ stop: function (args, win, fail) {
+ // Unregister battery listeners.
+ blackberry.system.event.deviceBatteryStateChange(null);
+ blackberry.system.event.deviceBatteryLevelChange(null);
+ return { "status" : cordova.callbackStatus.NO_RESULT, "message" : "WebWorks Is On It" };
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/d5818e1d/lib/playbook/plugin/playbook/camera.js
----------------------------------------------------------------------
diff --git a/lib/playbook/plugin/playbook/camera.js b/lib/playbook/plugin/playbook/camera.js
new file mode 100644
index 0000000..e8e6af2
--- /dev/null
+++ b/lib/playbook/plugin/playbook/camera.js
@@ -0,0 +1,8 @@
+var cordova = require('cordova');
+
+module.exports = {
+ takePicture: function (args, win, fail) {
+ blackberry.media.camera.takePicture(win, fail, fail);
+ return { "status" : cordova.callbackStatus.NO_RESULT, "message" : "WebWorks Is On It" };
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/d5818e1d/lib/playbook/plugin/playbook/capture.js
----------------------------------------------------------------------
diff --git a/lib/playbook/plugin/playbook/capture.js b/lib/playbook/plugin/playbook/capture.js
new file mode 100644
index 0000000..d26d5c8
--- /dev/null
+++ b/lib/playbook/plugin/playbook/capture.js
@@ -0,0 +1,40 @@
+var cordova = require('cordova');
+
+module.exports = {
+ getSupportedAudioModes: function (args, win, fail) {
+ return {"status": cordova.callbackStatus.OK, "message": []};
+ },
+ getSupportedImageModes: function (args, win, fail) {
+ return {"status": cordova.callbackStatus.OK, "message": []};
+ },
+ getSupportedVideoModes: function (args, win, fail) {
+ return {"status": cordova.callbackStatus.OK, "message": []};
+ },
+ captureImage: function (args, win, fail) {
+ var limit = args[0].limit;
+
+ if (limit > 0) {
+ blackberry.media.camera.takePicture(win, fail, fail);
+ }
+ else {
+ win([]);
+ }
+
+ return { "status" : cordova.callbackStatus.NO_RESULT, "message" : "WebWorks Is On It" };
+ },
+ captureVideo: function (args, win, fail) {
+ var limit = args[0];
+
+ if (limit > 0) {
+ blackberry.media.camera.takeVideo(win, fail, fail);
+ }
+ else {
+ win([]);
+ }
+
+ return { "status" : cordova.callbackStatus.NO_RESULT, "message" : "WebWorks Is On It" };
+ },
+ captureAudio: function (args, win, fail) {
+ return {"status": cordova.callbackStatus.INVALID_ACTION, "message": "captureAudio is not currently supported"};
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/d5818e1d/lib/playbook/plugin/playbook/device.js
----------------------------------------------------------------------
diff --git a/lib/playbook/plugin/playbook/device.js b/lib/playbook/plugin/playbook/device.js
index f0e0027..fc49d3a 100644
--- a/lib/playbook/plugin/playbook/device.js
+++ b/lib/playbook/plugin/playbook/device.js
@@ -1,24 +1,11 @@
-var me = {},
- exec = require('cordova/exec'),
- channel = require('cordova/channel');
+var channel = require('cordova/channel');
-channel.onCordovaReady.subscribeOnce(function() {
- exec(function (device) {
- me.platform = device.platform;
- me.version = device.version;
- me.name = device.name;
- me.uuid = device.uuid;
- me.cordova = device.cordova;
+module.exports = {
+ platform: "PlayBook",
+ version: blackberry.system.softwareVersion,
+ name: blackberry.system.model,
+ uuid: blackberry.identity.PIN,
+ cordova: "1.7.0rc1"
+};
- channel.onCordovaInfoReady.fire();
- },
- function (e) {
- console.log("error initializing cordova: " + e);
- },
- "Device",
- "getDeviceInfo",
- []
- );
-});
-
-module.exports = me;
\ No newline at end of file
+channel.onCordovaInfoReady.fire();
http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/d5818e1d/lib/playbook/plugin/playbook/logger.js
----------------------------------------------------------------------
diff --git a/lib/playbook/plugin/playbook/logger.js b/lib/playbook/plugin/playbook/logger.js
new file mode 100644
index 0000000..8b8310b
--- /dev/null
+++ b/lib/playbook/plugin/playbook/logger.js
@@ -0,0 +1,9 @@
+var cordova = require('cordova');
+
+module.exports = {
+ log: function (args, win, fail) {
+ console.log(args);
+ return {"status" : cordova.callbackStatus.OK,
+ "message" : 'Message logged to console: ' + args};
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/d5818e1d/lib/playbook/plugin/playbook/media.js
----------------------------------------------------------------------
diff --git a/lib/playbook/plugin/playbook/media.js b/lib/playbook/plugin/playbook/media.js
new file mode 100644
index 0000000..1609238
--- /dev/null
+++ b/lib/playbook/plugin/playbook/media.js
@@ -0,0 +1,167 @@
+var cordova = require('cordova'),
+ audioObjects = {};
+
+module.exports = {
+ create: function (args, win, fail) {
+ if (!args.length) {
+ return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
+ }
+
+ var id = args[0],
+ src = args[1];
+
+ audioObjects[id] = new Audio(src);
+ return {"status" : 1, "message" : "Audio object created" };
+ },
+ startPlayingAudio: function (args, win, fail) {
+ if (!args.length) {
+ return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
+ }
+
+ var id = args[0],
+ audio = audioObjects[id],
+ result;
+
+ if (args.length === 1) {
+ return {"status" : 9, "message" : "Media source argument not found"};
+ }
+
+ if (audio) {
+ audio.pause();
+ audioObjects[id] = undefined;
+ }
+
+ audio = audioObjects[id] = new Audio(args[1]);
+ audio.play();
+
+ return {"status" : 1, "message" : "Audio play started" };
+ },
+ stopPlayingAudio: function (args, win, fail) {
+ if (!args.length) {
+ return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
+ }
+
+ var id = args[0],
+ audio = audioObjects[id],
+ result;
+
+ if (!audio) {
+ return {"status" : 2, "message" : "Audio Object has not been initialized"};
+ }
+
+ audio.pause();
+ audioObjects[id] = undefined;
+
+ return {"status" : 1, "message" : "Audio play stopped" };
+ },
+ seekToAudio: function (args, win, fail) {
+ if (!args.length) {
+ return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
+ }
+
+ var id = args[0],
+ audio = audioObjects[id],
+ result;
+
+ if (!audio) {
+ result = {"status" : 2, "message" : "Audio Object has not been initialized"};
+ } else if (args.length === 1) {
+ result = {"status" : 9, "message" : "Media seek time argument not found"};
+ } else {
+ try {
+ audio.currentTime = args[1];
+ } catch (e) {
+ console.log('Error seeking audio: ' + e);
+ return {"status" : 3, "message" : "Error seeking audio: " + e};
+ }
+
+ result = {"status" : 1, "message" : "Seek to audio succeeded" };
+ }
+
+ return result;
+ },
+ pausePlayingAudio: function (args, win, fail) {
+ if (!args.length) {
+ return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
+ }
+
+ var id = args[0],
+ audio = audioObjects[id],
+ result;
+
+ if (!audio) {
+ return {"status" : 2, "message" : "Audio Object has not been initialized"};
+ }
+
+ audio.pause();
+
+ return {"status" : 1, "message" : "Audio paused" };
+ },
+ getCurrentPositionAudio: function (args, win, fail) {
+ if (!args.length) {
+ return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
+ }
+
+ var id = args[0],
+ audio = audioObjects[id],
+ result;
+
+ if (!audio) {
+ return {"status" : 2, "message" : "Audio Object has not been initialized"};
+ }
+
+ return {"status" : 1, "message" : audio.currentTime };
+ },
+ getDuration: function (args, win, fail) {
+ if (!args.length) {
+ return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
+ }
+
+ var id = args[0],
+ audio = audioObjects[id],
+ result;
+
+ if (!audio) {
+ return {"status" : 2, "message" : "Audio Object has not been initialized"};
+ }
+
+ return {"status" : 1, "message" : audio.duration };
+ },
+ startRecordingAudio: function (args, win, fail) {
+ if (!args.length) {
+ return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
+ }
+
+ var id = args[0],
+ audio = audioObjects[id],
+ result;
+
+ if (args.length <= 1) {
+ result = {"status" : 9, "message" : "Media start recording, insufficient arguments"};
+ }
+
+ blackberry.media.microphone.record(args[1], win, fail);
+ return { "status" : cordova.callbackStatus.NO_RESULT, "message" : "WebWorks Is On It" };
+ },
+ stopRecordingAudio: function (args, win, fail) {
+ },
+ release: function (args, win, fail) {
+ if (!args.length) {
+ return {"status" : 9, "message" : "Media Object id was not sent in arguments"};
+ }
+
+ var id = args[0],
+ audio = audioObjects[id],
+ result;
+
+ if (audio) {
+ audioObjects[id] = undefined;
+ audio.src = undefined;
+ //delete audio;
+ }
+
+ result = {"status" : 1, "message" : "Media resources released"};
+
+ return result;
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/d5818e1d/lib/playbook/plugin/playbook/network.js
----------------------------------------------------------------------
diff --git a/lib/playbook/plugin/playbook/network.js b/lib/playbook/plugin/playbook/network.js
new file mode 100644
index 0000000..d8e0e91
--- /dev/null
+++ b/lib/playbook/plugin/playbook/network.js
@@ -0,0 +1,33 @@
+var cordova = require('cordova'),
+ connection = require('cordova/plugin/Connection');
+
+module.exports = {
+ getConnectionInfo: function (args, win, fail) {
+ var connectionType = connection.NONE,
+ eventType = "offline",
+ callbackID,
+ request;
+
+ /**
+ * For PlayBooks, we currently only have WiFi connections, so
+ * return WiFi if there is any access at all.
+ * TODO: update if/when PlayBook gets other connection types...
+ */
+ if (blackberry.system.hasDataCoverage()) {
+ connectionType = connection.WIFI;
+ eventType = "online";
+ }
+
+ //Register an event handler for the networkChange event
+ callbackID = blackberry.events.registerEventHandler("networkChange", function (status) {
+ win(status.type);
+ });
+
+ //pass our callback id down to our network extension
+ request = new blackberry.transport.RemoteFunctionCall("org/apache/cordova/getConnectionInfo");
+ request.addParam("networkStatusChangedID", callbackID);
+ request.makeSyncCall();
+
+ return { "status": cordova.callbackStatus.OK, "message": connectionType};
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/d5818e1d/lib/playbook/plugin/playbook/notification.js
----------------------------------------------------------------------
diff --git a/lib/playbook/plugin/playbook/notification.js b/lib/playbook/plugin/playbook/notification.js
new file mode 100644
index 0000000..fb95527
--- /dev/null
+++ b/lib/playbook/plugin/playbook/notification.js
@@ -0,0 +1,31 @@
+var cordova = require('cordova');
+
+module.exports = {
+ alert: function (args, win, fail) {
+ if (args.length !== 3) {
+ return {"status" : 9, "message" : "Notification action - alert arguments not found"};
+ }
+
+ //Unpack and map the args
+ var msg = args[0],
+ title = args[1],
+ btnLabel = args[2];
+
+ blackberry.ui.dialog.customAskAsync.apply(this, [ msg, [ btnLabel ], win, { "title" : title } ]);
+ return { "status" : cordova.callbackStatus.NO_RESULT, "message" : "WebWorks Is On It" };
+ },
+ confirm: function (args, win, fail) {
+ if (args.length !== 3) {
+ return {"status" : 9, "message" : "Notification action - confirm arguments not found"};
+ }
+
+ //Unpack and map the args
+ var msg = args[0],
+ title = args[1],
+ btnLabel = args[2],
+ btnLabels = btnLabel.split(",");
+
+ blackberry.ui.dialog.customAskAsync.apply(this, [msg, btnLabels, win, {"title" : title} ]);
+ return { "status" : cordova.callbackStatus.NO_RESULT, "message" : "WebWorks Is On It" };
+ }
+};