updating VERSION file
diff --git a/Res/js/cordova.js b/Res/js/cordova.js index 6204530..a5d8ada 100644 --- a/Res/js/cordova.js +++ b/Res/js/cordova.js
@@ -1,6 +1,6 @@ -// commit 02b91c5313ff37d74a58f71775170afd360f4a1f +// commit 05bd1a469fd7964a7eb8363e55a949594afe9353 -// File generated at :: Thu Nov 01 2012 09:47:22 GMT-0700 (PDT) +// File generated at :: Mon Nov 26 2012 11:26:58 GMT-0800 (PST) /* Licensed to the Apache Software Foundation (ASF) under one @@ -316,6 +316,65 @@ }); +// file: lib/common/argscheck.js +define("cordova/argscheck", function(require, exports, module) { + +var exec = require('cordova/exec'); +var moduleExports = module.exports; + +var typeMap = { + 'A': 'Array', + 'D': 'Date', + 'N': 'Number', + 'S': 'String', + 'F': 'Function', + 'O': 'Object' +}; + +function extractParamName(callee, argIndex) { + return (/.*?\((.*?)\)/).exec(callee)[1].split(', ')[argIndex]; +} + +function checkArgs(spec, functionName, args, opt_callee) { + if (!moduleExports.enableChecks) { + return; + } + var errMsg = null; + var type; + for (var i = 0; i < spec.length; ++i) { + var c = spec.charAt(i), + cUpper = c.toUpperCase(), + arg = args[i]; + // Asterix means allow anything. + if (c == '*') { + continue; + } + type = Object.prototype.toString.call(arg).slice(8, -1); + if ((arg === null || arg === undefined) && c == cUpper) { + continue; + } + if (type != typeMap[cUpper]) { + errMsg = 'Expected ' + typeMap[cUpper]; + break; + } + } + if (errMsg) { + errMsg += ', but got ' + type + '.'; + errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg; + // Don't log when running jake test. + if (typeof jasmine == 'undefined') { + console.error(errMsg); + } + throw TypeError(errMsg); + } +} + +moduleExports.checkArgs = checkArgs; +moduleExports.enableChecks = true; + + +}); + // file: lib/common/builder.js define("cordova/builder", function(require, exports, module) { @@ -329,14 +388,24 @@ } } +function clobber(obj, key, value) { + obj[key] = value; + // Getters can only be overridden by getters. + if (obj[key] !== value) { + utils.defineGetter(obj, key, function() { + return value; + }); + } +} + function assignOrWrapInDeprecateGetter(obj, key, value, message) { if (message) { utils.defineGetter(obj, key, function() { - window.console && console.log(message); + console.log(message); return value; }); } else { - obj[key] = value; + clobber(obj, key, value); } } @@ -395,8 +464,11 @@ // If the target object is a constructor override off prototype. target.prototype[prop] = src[prop]; } else { - target[prop] = typeof src[prop] === 'object' ? recursiveMerge( - target[prop], src[prop]) : src[prop]; + if (typeof src[prop] === 'object') { + target[prop] = recursiveMerge(target[prop], src[prop]); + } else { + clobber(target, prop, src[prop]); + } } } } @@ -404,18 +476,14 @@ } module.exports = { - build: function (objects) { - return { - intoButDoNotClobber: function (target) { - include(target, objects, false, false); - }, - intoAndClobber: function(target) { - include(target, objects, true, false); - }, - intoAndMerge: function(target) { - include(target, objects, true, true); - } - }; + buildIntoButDoNotClobber: function(objects, target) { + include(target, objects, false, false); + }, + buildIntoAndClobber: function(objects, target) { + include(target, objects, true, false); + }, + buildIntoAndMerge: function(objects, target) { + include(target, objects, true, true); } }; @@ -701,7 +769,7 @@ define("cordova/common", function(require, exports, module) { module.exports = { - objects: { + defaults: { cordova: { path: 'cordova', children: { @@ -720,6 +788,9 @@ } } }, + open : { + path: 'cordova/plugin/InAppBrowser' + }, navigator: { children: { notification: { @@ -737,9 +808,6 @@ compass:{ path: 'cordova/plugin/compass' }, - connection: { - path: 'cordova/plugin/network' - }, contacts: { path: 'cordova/plugin/contacts' }, @@ -907,6 +975,15 @@ resolveLocalFileSystemURI:{ path: 'cordova/plugin/resolveLocalFileSystemURI' } + }, + clobbers: { + navigator: { + children: { + connection: { + path: 'cordova/plugin/network' + } + } + } } }; @@ -946,7 +1023,7 @@ module.exports = { id: "bada", initialize: function() {}, - objects: { + clobbers: { device: { path: 'cordova/plugin/bada/device' }, @@ -2981,6 +3058,25 @@ }); +// file: lib/common/plugin/InAppBrowser.js +define("cordova/plugin/InAppBrowser", function(require, exports, module) { + +var exec = require('cordova/exec'); + +var InAppBrowser = { + open : function(strUrl, strWindowName, strWindowFeatures) { + exec(null, null, "InAppBrowser", "open", [strUrl, strWindowName, strWindowFeatures]); + return InAppBrowser; + }, + close : function() { + exec(null, null, "InAppBrowser", "close", []); + } +}; + +module.exports = InAppBrowser.open; + +}); + // file: lib/common/plugin/LocalFileSystem.js define("cordova/plugin/LocalFileSystem", function(require, exports, module) { @@ -3417,7 +3513,8 @@ * This class provides access to device accelerometer data. * @constructor */ -var utils = require("cordova/utils"), +var argscheck = require('cordova/argscheck'), + utils = require("cordova/utils"), exec = require("cordova/exec"), Acceleration = require('cordova/plugin/Acceleration'); @@ -3481,10 +3578,7 @@ * @param {AccelerationOptions} options The options for getting the accelerometer data such as timeout. (OPTIONAL) */ getCurrentAcceleration: function(successCallback, errorCallback, options) { - // successCallback required - if (typeof successCallback !== "function") { - throw "getCurrentAcceleration must be called with at least a success callback function as first parameter."; - } + argscheck.checkArgs('fFO', 'accelerometer.getCurrentAcceleration', arguments); var p; var win = function(a) { @@ -3493,7 +3587,7 @@ }; var fail = function(e) { removeListeners(p); - errorCallback(e); + errorCallback && errorCallback(e); }; p = createCallbackPair(win, fail); @@ -3513,20 +3607,16 @@ * @return String The watch id that must be passed to #clearWatch to stop watching. */ watchAcceleration: function(successCallback, errorCallback, options) { + argscheck.checkArgs('fFO', 'accelerometer.watchAcceleration', arguments); // Default interval (10 sec) var frequency = (options && options.frequency && typeof options.frequency == 'number') ? options.frequency : 10000; - // successCallback required - if (typeof successCallback !== "function") { - throw "watchAcceleration must be called with at least a success callback function as first parameter."; - } - // Keep reference to watch id, and report accel readings as often as defined in frequency var id = utils.createUUID(); var p = createCallbackPair(function(){}, function(e) { removeListeners(p); - errorCallback(e); + errorCallback && errorCallback(e); }); listeners.push(p); @@ -3542,7 +3632,7 @@ if (running) { // If we're already running then immediately invoke the success callback // but only if we have retrieved a value, sample code does not check for null ... - if(accel) { + if (accel) { successCallback(accel); } } else { @@ -4196,7 +4286,7 @@ me.platform = os_vendor + " " + os_name; me.version = os_version; me.uuid = uuid; - me.cordova = "2.2.0"; + me.cordova = "2.3.0rc1"; success(me); } }; @@ -4397,7 +4487,8 @@ // file: lib/common/plugin/compass.js define("cordova/plugin/compass", function(require, exports, module) { -var exec = require('cordova/exec'), +var argscheck = require('cordova/argscheck'), + exec = require('cordova/exec'), utils = require('cordova/utils'), CompassHeading = require('cordova/plugin/CompassHeading'), CompassError = require('cordova/plugin/CompassError'), @@ -4412,23 +4503,13 @@ * @param {CompassOptions} options The options for getting the heading data (not used). */ getCurrentHeading:function(successCallback, errorCallback, options) { - // successCallback required - if (typeof successCallback !== "function") { - console.log("Compass Error: successCallback is not a function"); - return; - } - - // errorCallback optional - if (errorCallback && (typeof errorCallback !== "function")) { - console.log("Compass Error: errorCallback is not a function"); - return; - } + argscheck.checkArgs('fFO', 'compass.getCurrentHeading', arguments); var win = function(result) { var ch = new CompassHeading(result.magneticHeading, result.trueHeading, result.headingAccuracy, result.timestamp); successCallback(ch); }; - var fail = function(code) { + var fail = errorCallback && function(code) { var ce = new CompassError(code); errorCallback(ce); }; @@ -4448,22 +4529,11 @@ * specifies to watch via a distance filter rather than time. */ watchHeading:function(successCallback, errorCallback, options) { + argscheck.checkArgs('fFO', 'compass.watchHeading', arguments); // Default interval (100 msec) var frequency = (options !== undefined && options.frequency !== undefined) ? options.frequency : 100; var filter = (options !== undefined && options.filter !== undefined) ? options.filter : 0; - // successCallback required - if (typeof successCallback !== "function") { - console.log("Compass Error: successCallback is not a function"); - return; - } - - // errorCallback optional - if (errorCallback && (typeof errorCallback !== "function")) { - console.log("Compass Error: errorCallback is not a function"); - return; - } - var id = utils.createUUID(); if (filter > 0) { // is an iOS request for watch by filter, no timer needed @@ -4487,8 +4557,8 @@ // Stop javascript timer & remove from timer list if (id && timers[id]) { if (timers[id] != "iOS") { - clearInterval(timers[id]); - } else { + clearInterval(timers[id]); + } else { // is iOS watch by filter so call into device to stop exec(null, null, "Compass", "stopHeading", []); } @@ -4676,7 +4746,8 @@ // file: lib/common/plugin/contacts.js define("cordova/plugin/contacts", function(require, exports, module) { -var exec = require('cordova/exec'), +var argscheck = require('cordova/argscheck'), + exec = require('cordova/exec'), ContactError = require('cordova/plugin/ContactError'), utils = require('cordova/utils'), Contact = require('cordova/plugin/Contact'); @@ -4695,13 +4766,9 @@ * @return array of Contacts matching search criteria */ find:function(fields, successCB, errorCB, options) { - if (!successCB) { - throw new TypeError("You must specify a success callback for the find command."); - } - if (!fields || (utils.isArray(fields) && fields.length === 0)) { - if (typeof errorCB === "function") { - errorCB(new ContactError(ContactError.INVALID_ARGUMENT_ERROR)); - } + argscheck.checkArgs('afFO', 'contacts.find', arguments); + if (!fields.length) { + errorCB && errorCB(new ContactError(ContactError.INVALID_ARGUMENT_ERROR)); } else { var win = function(result) { var cs = []; @@ -4722,9 +4789,9 @@ * @returns new Contact object */ create:function(properties) { - var i; + argscheck.checkArgs('O', 'contacts.create', arguments); var contact = new Contact(); - for (i in properties) { + for (var i in properties) { if (typeof contact[i] !== 'undefined' && properties.hasOwnProperty(i)) { contact[i] = properties[i]; } @@ -4740,7 +4807,8 @@ // file: lib/common/plugin/device.js define("cordova/plugin/device", function(require, exports, module) { -var channel = require('cordova/channel'), +var argscheck = require('cordova/argscheck'), + channel = require('cordova/channel'), utils = require('cordova/utils'), exec = require('cordova/exec'); @@ -4759,6 +4827,7 @@ this.name = null; this.uuid = null; this.cordova = null; + this.model = null; var me = this; @@ -4770,6 +4839,7 @@ me.name = info.name; me.uuid = info.uuid; me.cordova = info.cordova; + me.model = info.model; channel.onCordovaInfoReady.fire(); },function(e) { me.available = false; @@ -4785,20 +4855,7 @@ * @param {Function} errorCallback The function to call when there is an error getting the heading data. (OPTIONAL) */ Device.prototype.getInfo = function(successCallback, errorCallback) { - - // successCallback required - if (typeof successCallback !== "function") { - console.log("Device Error: successCallback is not a function"); - return; - } - - // errorCallback optional - if (errorCallback && (typeof errorCallback !== "function")) { - console.log("Device Error: errorCallback is not a function"); - return; - } - - // Get info + argscheck.checkArgs('fF', 'Device.getInfo', arguments); exec(successCallback, errorCallback, "Device", "getDeviceInfo", []); }; @@ -4829,7 +4886,8 @@ // file: lib/common/plugin/geolocation.js define("cordova/plugin/geolocation", function(require, exports, module) { -var utils = require('cordova/utils'), +var argscheck = require('cordova/argscheck'), + utils = require('cordova/utils'), exec = require('cordova/exec'), PositionError = require('cordova/plugin/PositionError'), Position = require('cordova/plugin/Position'); @@ -4886,9 +4944,7 @@ * @param {PositionOptions} options The options for getting the position data. (OPTIONAL) */ getCurrentPosition:function(successCallback, errorCallback, options) { - if (arguments.length === 0) { - throw new Error("getCurrentPosition must be called with at least one argument."); - } + argscheck.checkArgs('fFO', 'geolocation.getCurrentPosition', arguments); options = parseParameters(options); // Timer var that will fire an error callback if no position is retrieved from native @@ -4964,9 +5020,7 @@ * @return String The watch id that must be passed to #clearWatch to stop watching. */ watchPosition:function(successCallback, errorCallback, options) { - if (arguments.length === 0) { - throw new Error("watchPosition must be called with at least one argument."); - } + argscheck.checkArgs('fFO', 'geolocation.getCurrentPosition', arguments); options = parseParameters(options); var id = utils.createUUID(); @@ -5028,7 +5082,8 @@ // file: lib/common/plugin/globalization.js define("cordova/plugin/globalization", function(require, exports, module) { -var exec = require('cordova/exec'), +var argscheck = require('cordova/argscheck'), + exec = require('cordova/exec'), GlobalizationError = require('cordova/plugin/GlobalizationError'); var globalization = { @@ -5051,18 +5106,7 @@ * function () {}); */ getPreferredLanguage:function(successCB, failureCB) { - // successCallback required - if (typeof successCB != "function") { - console.log("Globalization.getPreferredLanguage Error: successCB is not a function"); - return; - } - - // errorCallback required - if (typeof failureCB != "function") { - console.log("Globalization.getPreferredLanguage Error: failureCB is not a function"); - return; - } - + argscheck.checkArgs('fF', 'Globalization.getPreferredLanguage', arguments); exec(successCB, failureCB, "Globalization","getPreferredLanguage", []); }, @@ -5084,17 +5128,7 @@ * function () {}); */ getLocaleName:function(successCB, failureCB) { - // successCallback required - if (typeof successCB != "function") { - console.log("Globalization.getLocaleName Error: successCB is not a function"); - return; - } - - // errorCallback required - if (typeof failureCB != "function") { - console.log("Globalization.getLocaleName Error: failureCB is not a function"); - return; - } + argscheck.checkArgs('fF', 'Globalization.getLocaleName', arguments); exec(successCB, failureCB, "Globalization","getLocaleName", []); }, @@ -5125,27 +5159,9 @@ * {formatLength:'short'}); */ dateToString:function(date, successCB, failureCB, options) { - // successCallback required - if (typeof successCB != "function") { - console.log("Globalization.dateToString Error: successCB is not a function"); - return; - } - - // errorCallback required - if (typeof failureCB != "function") { - console.log("Globalization.dateToString Error: failureCB is not a function"); - return; - } - - - if (date instanceof Date){ - var dateValue; - dateValue = date.valueOf(); - exec(successCB, failureCB, "Globalization", "dateToString", [{"date": dateValue, "options": options}]); - } - else { - console.log("Globalization.dateToString Error: date is not a Date object"); - } + argscheck.checkArgs('dfFO', 'Globalization.dateToString', arguments); + var dateValue = date.valueOf(); + exec(successCB, failureCB, "Globalization", "dateToString", [{"date": dateValue, "options": options}]); }, @@ -5185,23 +5201,8 @@ * {selector:'date'}); */ stringToDate:function(dateString, successCB, failureCB, options) { - // successCallback required - if (typeof successCB != "function") { - console.log("Globalization.stringToDate Error: successCB is not a function"); - return; - } - - // errorCallback required - if (typeof failureCB != "function") { - console.log("Globalization.stringToDate Error: failureCB is not a function"); - return; - } - if (typeof dateString == "string"){ - exec(successCB, failureCB, "Globalization", "stringToDate", [{"dateString": dateString, "options": options}]); - } - else { - console.log("Globalization.stringToDate Error: dateString is not a string"); - } + argscheck.checkArgs('sfFO', 'Globalization.stringToDate', arguments); + exec(successCB, failureCB, "Globalization", "stringToDate", [{"dateString": dateString, "options": options}]); }, @@ -5238,18 +5239,7 @@ * {formatLength:'short'}); */ getDatePattern:function(successCB, failureCB, options) { - // successCallback required - if (typeof successCB != "function") { - console.log("Globalization.getDatePattern Error: successCB is not a function"); - return; - } - - // errorCallback required - if (typeof failureCB != "function") { - console.log("Globalization.getDatePattern Error: failureCB is not a function"); - return; - } - + argscheck.checkArgs('fFO', 'Globalization.getDatePattern', arguments); exec(successCB, failureCB, "Globalization", "getDatePattern", [{"options": options}]); }, @@ -5280,17 +5270,7 @@ * function () {}); */ getDateNames:function(successCB, failureCB, options) { - // successCallback required - if (typeof successCB != "function") { - console.log("Globalization.getDateNames Error: successCB is not a function"); - return; - } - - // errorCallback required - if (typeof failureCB != "function") { - console.log("Globalization.getDateNames Error: failureCB is not a function"); - return; - } + argscheck.checkArgs('fFO', 'Globalization.getDateNames', arguments); exec(successCB, failureCB, "Globalization", "getDateNames", [{"options": options}]); }, @@ -5315,28 +5295,9 @@ * function () {}); */ isDayLightSavingsTime:function(date, successCB, failureCB) { - // successCallback required - if (typeof successCB != "function") { - console.log("Globalization.isDayLightSavingsTime Error: successCB is not a function"); - return; - } - - // errorCallback required - if (typeof failureCB != "function") { - console.log("Globalization.isDayLightSavingsTime Error: failureCB is not a function"); - return; - } - - - if (date instanceof Date){ - var dateValue; - dateValue = date.valueOf(); - exec(successCB, failureCB, "Globalization", "isDayLightSavingsTime", [{"date": dateValue}]); - } - else { - console.log("Globalization.isDayLightSavingsTime Error: date is not a Date object"); - } - + argscheck.checkArgs('dfF', 'Globalization.isDayLightSavingsTime', arguments); + var dateValue = date.valueOf(); + exec(successCB, failureCB, "Globalization", "isDayLightSavingsTime", [{"date": dateValue}]); }, /** @@ -5358,18 +5319,7 @@ * function () {}); */ getFirstDayOfWeek:function(successCB, failureCB) { - // successCallback required - if (typeof successCB != "function") { - console.log("Globalization.getFirstDayOfWeek Error: successCB is not a function"); - return; - } - - // errorCallback required - if (typeof failureCB != "function") { - console.log("Globalization.getFirstDayOfWeek Error: failureCB is not a function"); - return; - } - + argscheck.checkArgs('fF', 'Globalization.getFirstDayOfWeek', arguments); exec(successCB, failureCB, "Globalization", "getFirstDayOfWeek", []); }, @@ -5398,24 +5348,8 @@ * {type:'decimal'}); */ numberToString:function(number, successCB, failureCB, options) { - // successCallback required - if (typeof successCB != "function") { - console.log("Globalization.numberToString Error: successCB is not a function"); - return; - } - - // errorCallback required - if (typeof failureCB != "function") { - console.log("Globalization.numberToString Error: failureCB is not a function"); - return; - } - - if(typeof number == "number") { - exec(successCB, failureCB, "Globalization", "numberToString", [{"number": number, "options": options}]); - } - else { - console.log("Globalization.numberToString Error: number is not a number"); - } + argscheck.checkArgs('nfFO', 'Globalization.numberToString', arguments); + exec(successCB, failureCB, "Globalization", "numberToString", [{"number": number, "options": options}]); }, /** @@ -5442,24 +5376,8 @@ * function () { alert('Error parsing number');}); */ stringToNumber:function(numberString, successCB, failureCB, options) { - // successCallback required - if (typeof successCB != "function") { - console.log("Globalization.stringToNumber Error: successCB is not a function"); - return; - } - - // errorCallback required - if (typeof failureCB != "function") { - console.log("Globalization.stringToNumber Error: failureCB is not a function"); - return; - } - - if(typeof numberString == "string") { - exec(successCB, failureCB, "Globalization", "stringToNumber", [{"numberString": numberString, "options": options}]); - } - else { - console.log("Globalization.stringToNumber Error: numberString is not a string"); - } + argscheck.checkArgs('sfFO', 'Globalization.stringToNumber', arguments); + exec(successCB, failureCB, "Globalization", "stringToNumber", [{"numberString": numberString, "options": options}]); }, /** @@ -5495,18 +5413,7 @@ * function () {}); */ getNumberPattern:function(successCB, failureCB, options) { - // successCallback required - if (typeof successCB != "function") { - console.log("Globalization.getNumberPattern Error: successCB is not a function"); - return; - } - - // errorCallback required - if (typeof failureCB != "function") { - console.log("Globalization.getNumberPattern Error: failureCB is not a function"); - return; - } - + argscheck.checkArgs('fFO', 'Globalization.getNumberPattern', arguments); exec(successCB, failureCB, "Globalization", "getNumberPattern", [{"options": options}]); }, @@ -5538,24 +5445,8 @@ * function () {}); */ getCurrencyPattern:function(currencyCode, successCB, failureCB) { - // successCallback required - if (typeof successCB != "function") { - console.log("Globalization.getCurrencyPattern Error: successCB is not a function"); - return; - } - - // errorCallback required - if (typeof failureCB != "function") { - console.log("Globalization.getCurrencyPattern Error: failureCB is not a function"); - return; - } - - if(typeof currencyCode == "string") { - exec(successCB, failureCB, "Globalization", "getCurrencyPattern", [{"currencyCode": currencyCode}]); - } - else { - console.log("Globalization.getCurrencyPattern Error: currencyCode is not a currency code"); - } + argscheck.checkArgs('sfF', 'Globalization.getCurrencyPattern', arguments); + exec(successCB, failureCB, "Globalization", "getCurrencyPattern", [{"currencyCode": currencyCode}]); } }; @@ -5809,49 +5700,9 @@ }); } -var NetworkConnection = function () { - this.type = null; - this._firstRun = true; - this._timer = null; - this.timeout = 500; - - var me = this; - - channel.onCordovaReady.subscribe(function() { - me.getInfo(function (info) { - me.type = info; - if (info === "none") { - // set a timer if still offline at the end of timer send the offline event - me._timer = setTimeout(function(){ - cordova.fireDocumentEvent("offline"); - me._timer = null; - }, me.timeout); - } else { - // If there is a current offline event pending clear it - if (me._timer !== null) { - clearTimeout(me._timer); - me._timer = null; - } - cordova.fireDocumentEvent("online"); - } - - // should only fire this once - if (me._firstRun) { - me._firstRun = false; - channel.onCordovaConnectionReady.fire(); - } - }, - function (e) { - // If we can't get the network info we should still tell Cordova - // to fire the deviceready event. - if (me._firstRun) { - me._firstRun = false; - channel.onCordovaConnectionReady.fire(); - } - console.log("Error initializing Network Connection: " + e); - }); - }); -}; +function NetworkConnection() { + this.type = 'unknown'; +} /** * Get connection info @@ -5859,12 +5710,48 @@ * @param {Function} successCallback The function to call when the Connection data is available * @param {Function} errorCallback The function to call when there is an error getting the Connection data. (OPTIONAL) */ -NetworkConnection.prototype.getInfo = function (successCallback, errorCallback) { - // Get info +NetworkConnection.prototype.getInfo = function(successCallback, errorCallback) { exec(successCallback, errorCallback, "NetworkStatus", "getConnectionInfo", []); }; -module.exports = new NetworkConnection(); +var me = new NetworkConnection(); +var timerId = null; +var timeout = 500; + +channel.onCordovaReady.subscribe(function() { + me.getInfo(function(info) { + me.type = info; + if (info === "none") { + // set a timer if still offline at the end of timer send the offline event + timerId = setTimeout(function(){ + cordova.fireDocumentEvent("offline"); + timerId = null; + }, timeout); + } else { + // If there is a current offline event pending clear it + if (timerId !== null) { + clearTimeout(timerId); + timerId = null; + } + cordova.fireDocumentEvent("online"); + } + + // should only fire this once + if (channel.onCordovaConnectionReady.state !== 2) { + channel.onCordovaConnectionReady.fire(); + } + }, + function (e) { + // If we can't get the network info we should still tell Cordova + // to fire the deviceready event. + if (channel.onCordovaConnectionReady.state !== 2) { + channel.onCordovaConnectionReady.fire(); + } + console.log("Error initializing Network Connection: " + e); + }); +}); + +module.exports = me; }); @@ -5933,7 +5820,8 @@ // file: lib/common/plugin/requestFileSystem.js define("cordova/plugin/requestFileSystem", function(require, exports, module) { -var FileError = require('cordova/plugin/FileError'), +var argscheck = require('cordova/argscheck'), + FileError = require('cordova/plugin/FileError'), FileSystem = require('cordova/plugin/FileSystem'), exec = require('cordova/exec'); @@ -5945,10 +5833,9 @@ * @param errorCallback invoked if error occurs retrieving file system */ var requestFileSystem = function(type, size, successCallback, errorCallback) { + argscheck.checkArgs('nnFF', 'requestFileSystem', arguments); var fail = function(code) { - if (typeof errorCallback === 'function') { - errorCallback(new FileError(code)); - } + errorCallback && errorCallback(new FileError(code)); }; if (type < 0 || type > 3) { @@ -5957,7 +5844,7 @@ // if successful, return a FileSystem object var success = function(file_system) { if (file_system) { - if (typeof successCallback === 'function') { + if (successCallback) { // grab the name and root from the file system object var result = new FileSystem(file_system.name, file_system.root); successCallback(result); @@ -5979,7 +5866,8 @@ // file: lib/common/plugin/resolveLocalFileSystemURI.js define("cordova/plugin/resolveLocalFileSystemURI", function(require, exports, module) { -var DirectoryEntry = require('cordova/plugin/DirectoryEntry'), +var argscheck = require('cordova/argscheck'), + DirectoryEntry = require('cordova/plugin/DirectoryEntry'), FileEntry = require('cordova/plugin/FileEntry'), FileError = require('cordova/plugin/FileError'), exec = require('cordova/exec'); @@ -5991,11 +5879,10 @@ * @param errorCallback invoked if error occurs retrieving file system entry */ module.exports = function(uri, successCallback, errorCallback) { + argscheck.checkArgs('sFF', 'resolveLocalFileSystemURI', arguments); // error callback var fail = function(error) { - if (typeof errorCallback === 'function') { - errorCallback(new FileError(error)); - } + errorCallback && errorCallback(new FileError(error)); }; // sanity check for 'not:valid:filename' if(!uri || uri.split(":").length > 2) { @@ -6008,15 +5895,10 @@ var success = function(entry) { var result; if (entry) { - if (typeof successCallback === 'function') { + if (successCallback) { // create appropriate Entry object result = (entry.isDirectory) ? new DirectoryEntry(entry.name, entry.fullPath) : new FileEntry(entry.name, entry.fullPath); - try { - successCallback(result); - } - catch (e) { - console.log('Error invoking callback: ' + e); - } + successCallback(result); } } else { @@ -6064,6 +5946,30 @@ } }; +utils.arrayIndexOf = function(a, item) { + if (a.indexOf) { + return a.indexOf(item); + } + var len = a.length; + for (var i = 0; i < len; ++i) { + if (a[i] == item) { + return i; + } + } + return -1; +}; + +/** + * Returns whether the item was found in the array. + */ +utils.arrayRemove = function(a, item) { + var index = utils.arrayIndexOf(a, item); + if (index != -1) { + a.splice(index, 1); + } + return index != -1; +}; + /** * Returns an indication of whether the argument is an array or not */ @@ -6259,10 +6165,10 @@ (function (context) { // Replace navigator before any modules are required(), to ensure it happens as soon as possible. // We replace it so that properties that can't be clobbered can instead be overridden. - if (typeof navigator != 'undefined') { - var CordovaNavigator = function () {}; - CordovaNavigator.prototype = navigator; - navigator = new CordovaNavigator(); + if (context.navigator) { + function CordovaNavigator() {} + CordovaNavigator.prototype = context.navigator; + context.navigator = new CordovaNavigator(); } var channel = require("cordova/channel"), @@ -6277,17 +6183,13 @@ platform = require('cordova/platform'); // Drop the common globals into the window object, but be nice and don't overwrite anything. - builder.build(base.objects).intoButDoNotClobber(window); + builder.buildIntoButDoNotClobber(base.defaults, context); + builder.buildIntoAndMerge(base.merges, context); + builder.buildIntoAndClobber(base.clobbers, context); - // Drop the platform-specific globals into the window object - // and clobber any existing object. - builder.build(platform.objects).intoAndClobber(window); - - // Merge the platform-specific overrides/enhancements into - // the window object. - if (typeof platform.merges !== 'undefined') { - builder.build(platform.merges).intoAndMerge(window); - } + builder.buildIntoButDoNotClobber(platform.defaults, context); + builder.buildIntoAndMerge(platform.merges, context); + builder.buildIntoAndClobber(platform.clobbers, context); // Call the platform-specific initialization platform.initialize();
diff --git a/VERSION b/VERSION index ccbccc3..d2a7ed1 100644 --- a/VERSION +++ b/VERSION
@@ -1 +1 @@ -2.2.0 +2.3.0rc1