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