You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by lo...@apache.org on 2013/05/14 20:32:50 UTC
[08/33] js commit: [BlackBerry10] Initial work on cleaning up the
exec chain. Includes the removal of the battery extension to test its working
correctly.
[BlackBerry10] Initial work on cleaning up the exec chain. Includes the removal of the
battery extension to test its working correctly.
Reviewed by Bryan Higgins <bh...@blackberry.com>
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/e8f1e595
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/e8f1e595
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/e8f1e595
Branch: refs/heads/master
Commit: e8f1e595c7c6056dcb3d131b930e3f1cf1efe2f1
Parents: 2e12eda
Author: Jeffrey Heifetz <jh...@rim.com>
Authored: Thu Mar 21 14:31:20 2013 -0400
Committer: Bryan Higgins <bh...@blackberry.com>
Committed: Fri May 3 09:49:38 2013 -0400
----------------------------------------------------------------------
lib/blackberry10/exec.js | 35 +--------
lib/blackberry10/plugin/blackberry10/battery.js | 40 ----------
lib/blackberry10/plugin/blackberry10/manager.js | 1 -
lib/scripts/bootstrap-blackberry10.js | 40 ++++++----
test/blackberry10/test.battery.js | 72 ------------------
5 files changed, 27 insertions(+), 161 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/e8f1e595/lib/blackberry10/exec.js
----------------------------------------------------------------------
diff --git a/lib/blackberry10/exec.js b/lib/blackberry10/exec.js
index 5880fbc..e84cd69 100644
--- a/lib/blackberry10/exec.js
+++ b/lib/blackberry10/exec.js
@@ -40,39 +40,8 @@ var cordova = require('cordova'),
module.exports = function(success, fail, service, action, args) {
try {
- var manager = require('cordova/plugin/blackberry10/manager'),
- v = manager.exec(success, fail, service, action, args);
-
- // If status is OK, then return value back to caller
- if (v.status == cordova.callbackStatus.OK) {
-
- // If there is a success callback, then call it now with returned value
- if (success) {
- try {
- success(v.message);
- }
- catch (e) {
- console.log("Error in success callback: "+cordova.callbackId+" = "+e);
- }
- }
- return v.message;
- } else if (v.status == cordova.callbackStatus.NO_RESULT) {
-
- } else {
- // If error, then display error
- console.log("Error: Status="+v.status+" Message="+v.message);
-
- // If there is a fail callback, then call it now with returned value
- if (fail) {
- try {
- fail(v.message);
- }
- catch (e) {
- console.log("Error in error callback: "+cordova.callbackId+" = "+e);
- }
- }
- return null;
- }
+ require('cordova/plugin/blackberry10/manager').exec(success, fail, service, action, args);
+ return null;
} catch (e) {
utils.alert("Error: "+e);
}
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/e8f1e595/lib/blackberry10/plugin/blackberry10/battery.js
----------------------------------------------------------------------
diff --git a/lib/blackberry10/plugin/blackberry10/battery.js b/lib/blackberry10/plugin/blackberry10/battery.js
deleted file mode 100644
index 8bd9f44..0000000
--- a/lib/blackberry10/plugin/blackberry10/battery.js
+++ /dev/null
@@ -1,40 +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.
- *
-*/
-
-var cordova = require('cordova'),
- interval;
-
-module.exports = {
- start: function (args, win, fail) {
- interval = window.setInterval(function () {
- win({
- level: navigator.webkitBattery.level * 100,
- isPlugged: navigator.webkitBattery.charging
- });
- }, 500);
- return { "status" : cordova.callbackStatus.NO_RESULT, "message" : "WebWorks Is On It" };
- },
-
- stop: function (args, win, fail) {
- window.clearInterval(interval);
- return { "status" : cordova.callbackStatus.OK, "message" : "stopped" };
- }
-};
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/e8f1e595/lib/blackberry10/plugin/blackberry10/manager.js
----------------------------------------------------------------------
diff --git a/lib/blackberry10/plugin/blackberry10/manager.js b/lib/blackberry10/plugin/blackberry10/manager.js
index b0855b7..6fc0dda 100644
--- a/lib/blackberry10/plugin/blackberry10/manager.js
+++ b/lib/blackberry10/plugin/blackberry10/manager.js
@@ -22,7 +22,6 @@
var cordova = require('cordova'),
plugins = {
'Accelerometer' : require('cordova/plugin/blackberry10/accelerometer'),
- 'Battery' : require('cordova/plugin/blackberry10/battery'),
'Compass' : require('cordova/plugin/blackberry10/magnetometer'),
'Camera' : require('cordova/plugin/blackberry10/camera'),
'Capture' : require('cordova/plugin/blackberry10/capture'),
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/e8f1e595/lib/scripts/bootstrap-blackberry10.js
----------------------------------------------------------------------
diff --git a/lib/scripts/bootstrap-blackberry10.js b/lib/scripts/bootstrap-blackberry10.js
index 153d2c9..ac32edd 100644
--- a/lib/scripts/bootstrap-blackberry10.js
+++ b/lib/scripts/bootstrap-blackberry10.js
@@ -95,20 +95,8 @@
data;
request.send(JSON.stringify(params));
-
response = JSON.parse(decodeURIComponent(request.responseText) || "null");
- errored = response.code < 0;
- cb = errored ? error : success;
- data = errored ? response.msg : response.data;
-
- if (cb) {
- cb(data, response);
- }
- else if (errored) {
- throw data;
- }
-
- return { status: 0 };
+ return response;
};
}
@@ -116,7 +104,10 @@
exec: function (success, fail, service, action, args) {
var uri = service + "/" + action,
request = new RemoteFunctionCall(uri),
- name;
+ callbackId = service + cordova.callbackId++,
+ response,
+ name,
+ didSucceed;
for (name in args) {
if (Object.hasOwnProperty.call(args, name)) {
@@ -124,7 +115,26 @@
}
}
- return request.makeSyncCall(success, fail);
+ cordova.callbacks[callbackId] = {success:success, fail:fail};
+ request.addParam("callbackId", callbackId);
+
+ response = request.makeSyncCall();
+
+ //Old WebWorks Extension success
+ if (response.code === 42) {
+ if (success) {
+ success(response.data, response);
+ }
+ delete cordova.callbacks[callbackId];
+ } else if (response.code < 0) {
+ if (fail) {
+ fail(response.msg, response);
+ }
+ delete cordova.callbacks[callbackId];
+ } else {
+ didSucceed = response.code === cordova.callbackStatus.OK || response.code === cordova.callbackStatus.NO_RESULT;
+ cordova.callbackFromNative(callbackId, didSucceed, response.code, [didSucceed ? response.data : response.msg], !!response.keepCallback);
+ }
},
defineReadOnlyField: function (obj, field, value) {
Object.defineProperty(obj, field, {
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/e8f1e595/test/blackberry10/test.battery.js
----------------------------------------------------------------------
diff --git a/test/blackberry10/test.battery.js b/test/blackberry10/test.battery.js
deleted file mode 100644
index 4e8b0b0..0000000
--- a/test/blackberry10/test.battery.js
+++ /dev/null
@@ -1,72 +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.
- *
-*/
-
-describe("blackberry10 battery", function () {
- var battery = require('cordova/plugin/blackberry10/battery'),
- cordova = require('cordova');
-
- beforeEach(function () {
- spyOn(window, "setInterval").andReturn(1);
- spyOn(window, "clearInterval");
- });
-
- it("returns no_result when calling start", function () {
- expect(battery.start()).toEqual({
- status: cordova.callbackStatus.NO_RESULT,
- message: "WebWorks Is On It"
- });
- });
-
- it("sets an interval for 500 ms when calling start", function () {
- battery.start();
- expect(window.setInterval).toHaveBeenCalledWith(jasmine.any(Function), 500);
- });
-
- it("calls the win callback with values from navigator.webkitBattery", function () {
- global.navigator = window.navigator;
- window.navigator.webkitBattery = { level: 0.12, charging: true };
-
- var win = jasmine.createSpy("win");
- battery.start({}, win);
-
- window.setInterval.mostRecentCall.args[0]();
-
- expect(win).toHaveBeenCalledWith({
- level: 12,
- isPlugged: true
- });
-
- delete window.navigator.webkitBattery;
- });
-
- it("returns ok when calling stop", function () {
- expect(battery.stop()).toEqual({
- status: cordova.callbackStatus.OK,
- message: "stopped"
- });
- });
-
- it("calls clearInterval when stopping", function () {
- battery.start();
- battery.stop();
- expect(window.clearInterval).toHaveBeenCalledWith(1);
- });
-});