You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ag...@apache.org on 2013/07/30 20:58:17 UTC
[10/13] js commit: [bb10] Move code from bootstrap-blackberry10.js
into blackberry10/platform.js
[bb10] Move code from bootstrap-blackberry10.js into blackberry10/platform.js
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/08da18a7
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/08da18a7
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/08da18a7
Branch: refs/heads/master
Commit: 08da18a75e206f732a475dd63f92c2c4d461e6c3
Parents: 5965f92
Author: Andrew Grieve <ag...@chromium.org>
Authored: Tue Jul 30 11:49:00 2013 -0400
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Tue Jul 30 11:49:00 2013 -0400
----------------------------------------------------------------------
lib/blackberry10/platform.js | 107 ++++++++++++++++++++++-
lib/scripts/bootstrap-blackberry10.js | 135 -----------------------------
2 files changed, 105 insertions(+), 137 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/08da18a7/lib/blackberry10/platform.js
----------------------------------------------------------------------
diff --git a/lib/blackberry10/platform.js b/lib/blackberry10/platform.js
index eb7fd12..73a322f 100644
--- a/lib/blackberry10/platform.js
+++ b/lib/blackberry10/platform.js
@@ -21,9 +21,13 @@
module.exports = {
id: "blackberry10",
- initialize: function() {
+ bootstrap: function() {
var cordova = require('cordova'),
- addDocumentEventListener = document.addEventListener;
+ channel = require('cordova/channel'),
+ addDocumentEventListener = document.addEventListener,
+ webworksReady = false,
+ alreadyFired = false,
+ listenerRegistered = false;
//override to pass online/offline events to window
document.addEventListener = function (type) {
@@ -31,6 +35,105 @@ module.exports = {
window.addEventListener.apply(window, arguments);
} else {
addDocumentEventListener.apply(document, arguments);
+ //Trapping when users add listeners to the webworks ready event
+ //This way we can make sure not to fire the event before there is a listener
+ if (event.toLowerCase() === 'webworksready') {
+ listenerRegistered = true;
+ fireWebworksReadyEvent();
+ }
+ }
+ };
+
+ channel.onPluginsReady.subscribe(function () {
+ webworksReady = true;
+ fireWebworksReadyEvent();
+ });
+
+ //Only fire the webworks event when both webworks is ready and a listener is registered
+ function fireWebworksReadyEvent() {
+ var evt;
+ if (listenerRegistered && webworksReady && !alreadyFired) {
+ alreadyFired = true;
+ evt = document.createEvent('Events');
+ evt.initEvent('webworksready', true, true);
+ document.dispatchEvent(evt);
+ channel.onNativeReady.fire();
+ }
+ }
+
+ function RemoteFunctionCall(functionUri) {
+ var params = {};
+
+ function composeUri() {
+ return "http://localhost:8472/" + functionUri;
+ }
+
+ function createXhrRequest(uri, isAsync) {
+ var request = new XMLHttpRequest();
+ request.open("POST", uri, isAsync);
+ request.setRequestHeader("Content-Type", "application/json");
+ return request;
+ }
+
+ this.addParam = function (name, value) {
+ params[name] = encodeURIComponent(JSON.stringify(value));
+ };
+
+ this.makeSyncCall = function (success, error) {
+ var requestUri = composeUri(),
+ request = createXhrRequest(requestUri, false),
+ response,
+ errored,
+ cb,
+ data;
+
+ request.send(JSON.stringify(params));
+ response = JSON.parse(decodeURIComponent(request.responseText) || "null");
+ return response;
+ };
+ }
+
+ window.webworks = {
+ exec: function (success, fail, service, action, args) {
+ var uri = service + "/" + action,
+ request = new RemoteFunctionCall(uri),
+ callbackId = service + cordova.callbackId++,
+ response,
+ name,
+ didSucceed;
+
+ for (name in args) {
+ if (Object.hasOwnProperty.call(args, name)) {
+ request.addParam(name, args[name]);
+ }
+ }
+
+ 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, {
+ "value": value,
+ "writable": false
+ });
}
};
}
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/08da18a7/lib/scripts/bootstrap-blackberry10.js
----------------------------------------------------------------------
diff --git a/lib/scripts/bootstrap-blackberry10.js b/lib/scripts/bootstrap-blackberry10.js
deleted file mode 100644
index 691faf0..0000000
--- a/lib/scripts/bootstrap-blackberry10.js
+++ /dev/null
@@ -1,135 +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.
- *
-*/
-/*global cordova*/
-(function () {
- var docAddEventListener = document.addEventListener,
- webworksReady = false,
- alreadyFired = false,
- listenerRegistered = false;
-
- //Only fire the webworks event when both webworks is ready and a listener is registered
- function fireWebworksReadyEvent() {
- var evt;
- if (listenerRegistered && webworksReady && !alreadyFired) {
- alreadyFired = true;
- evt = document.createEvent('Events');
- evt.initEvent('webworksready', true, true);
- document.dispatchEvent(evt);
- }
- }
-
- //Trapping when users add listeners to the webworks ready event
- //This way we can make sure not to fire the event before there is a listener
- document.addEventListener = function (event, callback, capture) {
- docAddEventListener.call(document, event, callback, capture);
- if (event.toLowerCase() === 'webworksready') {
- listenerRegistered = true;
- fireWebworksReadyEvent();
- }
- };
-
- function RemoteFunctionCall(functionUri) {
- var params = {};
-
- function composeUri() {
- return "http://localhost:8472/" + functionUri;
- }
-
- function createXhrRequest(uri, isAsync) {
- var request = new XMLHttpRequest();
- request.open("POST", uri, isAsync);
- request.setRequestHeader("Content-Type", "application/json");
- return request;
- }
-
- this.addParam = function (name, value) {
- params[name] = encodeURIComponent(JSON.stringify(value));
- };
-
- this.makeSyncCall = function (success, error) {
- var requestUri = composeUri(),
- request = createXhrRequest(requestUri, false),
- response,
- errored,
- cb,
- data;
-
- request.send(JSON.stringify(params));
- response = JSON.parse(decodeURIComponent(request.responseText) || "null");
- return response;
- };
- }
-
- window.webworks = {
- exec: function (success, fail, service, action, args) {
- var uri = service + "/" + action,
- request = new RemoteFunctionCall(uri),
- callbackId = service + cordova.callbackId++,
- response,
- name,
- didSucceed;
-
- for (name in args) {
- if (Object.hasOwnProperty.call(args, name)) {
- request.addParam(name, args[name]);
- }
- }
-
- 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, {
- "value": value,
- "writable": false
- });
- }
- };
-
- require("cordova/channel").onPluginsReady.subscribe(function () {
- webworksReady = true;
- fireWebworksReadyEvent();
- });
-}());
-
-document.addEventListener("DOMContentLoaded", function () {
- document.addEventListener("webworksready", function () {
- require('cordova/channel').onNativeReady.fire();
- });
-});