Previously configured settings got overwritten by defaults [Fixes #179]
This commit is contained in:
parent
0f94708c7a
commit
5fdfb9885c
@ -88,6 +88,15 @@ exports.getDefaults = function () {
|
|||||||
return this._defaults;
|
return this._defaults;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The actual applied settings.
|
||||||
|
*
|
||||||
|
* @return [ Object ]
|
||||||
|
*/
|
||||||
|
exports.getSettings = function () {
|
||||||
|
return this._settings || {};
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Overwrite the default settings.
|
* Overwrite the default settings.
|
||||||
*
|
*
|
||||||
@ -118,10 +127,15 @@ exports.setDefaults = function (overrides) {
|
|||||||
* @return [ Void ]
|
* @return [ Void ]
|
||||||
*/
|
*/
|
||||||
exports.configure = function (options) {
|
exports.configure = function (options) {
|
||||||
var settings = this.mergeWithDefaults(options);
|
var settings = this.getSettings(),
|
||||||
|
defaults = this.getDefaults();
|
||||||
|
|
||||||
|
this.mergeObjects(options, settings);
|
||||||
|
this.mergeObjects(options, defaults);
|
||||||
|
this._settings = options;
|
||||||
|
|
||||||
if (this._isAndroid) {
|
if (this._isAndroid) {
|
||||||
cordova.exec(null, null, 'BackgroundMode', 'configure', [settings, true]);
|
cordova.exec(null, null, 'BackgroundMode', 'configure', [options, true]);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -348,15 +362,14 @@ exports.onfailure = function () {};
|
|||||||
* Merge settings with default values.
|
* Merge settings with default values.
|
||||||
*
|
*
|
||||||
* @param [ Object ] options The custom options.
|
* @param [ Object ] options The custom options.
|
||||||
|
* @param [ Object ] toMergeIn The options to merge in.
|
||||||
*
|
*
|
||||||
* @return [ Object ] Default values merged with custom values.
|
* @return [ Object ] Default values merged with custom values.
|
||||||
*/
|
*/
|
||||||
exports.mergeWithDefaults = function (options) {
|
exports.mergeObjects = function (options, toMergeIn) {
|
||||||
var defaults = this.getDefaults();
|
for (var key in toMergeIn) {
|
||||||
|
|
||||||
for (var key in defaults) {
|
|
||||||
if (!options.hasOwnProperty(key)) {
|
if (!options.hasOwnProperty(key)) {
|
||||||
options[key] = defaults[key];
|
options[key] = toMergeIn[key];
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user