Return-Path: X-Original-To: apmail-incubator-callback-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-callback-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 43B2D9946 for ; Fri, 9 Mar 2012 20:36:53 +0000 (UTC) Received: (qmail 20276 invoked by uid 500); 9 Mar 2012 20:36:52 -0000 Delivered-To: apmail-incubator-callback-commits-archive@incubator.apache.org Received: (qmail 20228 invoked by uid 500); 9 Mar 2012 20:36:52 -0000 Mailing-List: contact callback-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: callback-dev@incubator.apache.org Delivered-To: mailing list callback-commits@incubator.apache.org Received: (qmail 20183 invoked by uid 99); 9 Mar 2012 20:36:52 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 09 Mar 2012 20:36:52 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id F33B86594; Fri, 9 Mar 2012 20:36:51 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: filmaj@apache.org To: callback-commits@incubator.apache.org X-Mailer: ASF-Git Admin Mailer Subject: [3/5] android commit: updates to JS: removing require+define from global scope, tweaking geolocation code, online/offline events fire on document now Message-Id: <20120309203651.F33B86594@tyr.zones.apache.org> Date: Fri, 9 Mar 2012 20:36:51 +0000 (UTC) updates to JS: removing require+define from global scope, tweaking geolocation code, online/offline events fire on document now Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/commit/715c0a5b Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/tree/715c0a5b Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/diff/715c0a5b Branch: refs/heads/master Commit: 715c0a5bea32eaf42b976a3c564897f89c32d8d9 Parents: 4b05ead Author: Fil Maj Authored: Fri Mar 9 12:32:22 2012 -0800 Committer: Fil Maj Committed: Fri Mar 9 12:32:22 2012 -0800 ---------------------------------------------------------------------- framework/assets/js/cordova.android.js | 71 ++++++++++++++++----------- 1 files changed, 43 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/715c0a5b/framework/assets/js/cordova.android.js ---------------------------------------------------------------------- diff --git a/framework/assets/js/cordova.android.js b/framework/assets/js/cordova.android.js index 66280ba..7f16f2f 100644 --- a/framework/assets/js/cordova.android.js +++ b/framework/assets/js/cordova.android.js @@ -296,6 +296,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +(function() { var require, define; @@ -566,6 +567,8 @@ function createEvent(type, data) { } var cordova = { + define:define, + require:require, /** * Methods to add/remove your own addEventListener hijacking on document + window. */ @@ -1750,7 +1753,7 @@ var exec = require('cordova/exec'), * getting the heading data. * @param {CompassOptions} options The options for getting the heading data (not used). */ - getCurrentHeading:function(successCallback, errorCallback, options) { + getCurrentHeading:function(successCallback, errorCallback) { // successCallback required if (typeof successCallback !== "function") { console.log("Compass Error: successCallback is not a function"); @@ -1803,17 +1806,9 @@ var exec = require('cordova/exec'), // Start watch timer to get headings var id = utils.createUUID(); - var win = function(result) { - var ch = new CompassHeading(result.magneticHeading, result.trueHeading, result.headingAccuracy, result.timestamp); - successCallback(ch); - }; - var fail = function(code) { - var ce = new CompassError(code); - errorCallback(ce); - }; timers[id] = window.setInterval(function() { - exec(win, fail, "Compass", "getHeading", []); + compass.getCurrentHeading(successCallback, errorCallback); }, frequency); return id; @@ -1844,26 +1839,22 @@ define('cordova/plugin/CompassError', function(require, exports, module) { * @constructor */ var CompassError = function(err) { - this.code = (typeof err != 'undefined' ? err : null); + this.code = (err !== undefined ? err : null); }; -/** - * Error codes - */ CompassError.COMPASS_INTERNAL_ERR = 0; CompassError.COMPASS_NOT_SUPPORTED = 20; module.exports = CompassError; - }); define('cordova/plugin/CompassHeading', function(require, exports, module) { var CompassHeading = function(magneticHeading, trueHeading, headingAccuracy, timestamp) { - this.magneticHeading = magneticHeading !== undefined ? magneticHeading : null; - this.trueHeading = trueHeading !== undefined ? trueHeading : null; - this.headingAccuracy = headingAccuracy !== undefined ? headingAccuracy : null; - this.timestamp = timestamp !== undefined ? new Date(timestamp) : new Date(); + this.magneticHeading = (magneticHeading !== undefined ? magneticHeading : null); + this.trueHeading = (trueHeading !== undefined ? trueHeading : null); + this.headingAccuracy = (headingAccuracy !== undefined ? headingAccuracy : null); + this.timestamp = (timestamp !== undefined ? new Date(timestamp) : new Date()); }; module.exports = CompassHeading; @@ -3405,7 +3396,8 @@ module.exports = Flags; define('cordova/plugin/geolocation', function(require, exports, module) { var utils = require('cordova/utils'), exec = require('cordova/exec'), - PositionError = require('cordova/plugin/PositionError'); + PositionError = require('cordova/plugin/PositionError'), + Position = require('cordova/plugin/Position'); var timers = {}; // list of timers in use @@ -3418,13 +3410,13 @@ function parseParameters(options) { }; if (options) { - if (typeof options.maximumAge !== "undefined") { + if (options.maximumAge !== undefined) { opt.maximumAge = options.maximumAge; } - if (typeof options.enableHighAccuracy !== "undefined") { + if (options.enableHighAccuracy !== undefined) { opt.enableHighAccuracy = options.enableHighAccuracy; } - if (typeof options.timeout !== "undefined") { + if (options.timeout !== undefined) { opt.timeout = options.timeout; } } @@ -3442,7 +3434,26 @@ var geolocation = { */ getCurrentPosition:function(successCallback, errorCallback, options) { options = parseParameters(options); - exec(successCallback, errorCallback, "Geolocation", "getLocation", [options.enableHighAccuracy, options.timeout, options.maximumAge]); + + var win = function(p) { + successCallback(new Position( + { + latitude:p.latitude, + longitude:p.longitude, + altitude:p.altitude, + accuracy:p.accuracy, + heading:p.heading, + velocity:p.velocity, + altitudeAccuracy:p.altitudeAccuracy + }, + p.timestamp || new Date() + )); + }; + var fail = function(e) { + errorCallback(new PositionError(e.code, e.message)); + }; + + exec(win, fail, "Geolocation", "getLocation", [options.enableHighAccuracy, options.timeout, options.maximumAge]); }, /** * Asynchronously watches the geolocation for changes to geolocation. When a change occurs, @@ -3455,9 +3466,10 @@ var geolocation = { */ watchPosition:function(successCallback, errorCallback, options) { options = parseParameters(options); + var id = utils.createUUID(); timers[id] = window.setInterval(function() { - exec(successCallback, errorCallback, "Geolocation", "getLocation", [options.enableHighAccuracy, options.timeout, options.maximumAge]); + geolocation.getCurrentPosition(successCallback, errorCallback, options); }, options.timeout); return id; @@ -3822,7 +3834,7 @@ var NetworkConnection = function () { if (info === "none") { // set a timer if still offline at the end of timer send the offline event me._timer = setTimeout(function(){ - cordova.fireWindowEvent("offline"); + cordova.fireDocumentEvent("offline"); me._timer = null; }, me.timeout); } else { @@ -3831,7 +3843,7 @@ var NetworkConnection = function () { clearTimeout(me._timer); me._timer = null; } - cordova.fireWindowEvent("online"); + cordova.fireDocumentEvent("online"); } // should only fire this once @@ -3928,8 +3940,10 @@ module.exports = { define('cordova/plugin/Position', function(require, exports, module) { +var Coordinates = require('cordova/plugin/Coordinates'); + var Position = function(coords, timestamp) { - this.coords = coords; + this.coords = new Coordinates(coords.latitude, coords.longitude, coords.altitude, coords.accuracy, coords.heading, coords.velocity, coords.altitudeAccuracy); this.timestamp = (timestamp !== undefined) ? timestamp : new Date().getTime(); }; @@ -4839,3 +4853,4 @@ window.cordova = require('cordova'); }(window)); +})(); \ No newline at end of file