Tizen-specific code is now loaded after all the other plugins and only if it's required.
Change-Id: Ia69ada6161411b7622e136a16590905abf45f2d3
Signed-off-by: Pawel Andruszkiewicz <p.andruszkie@samsung.com>
*/
console.log('Loaded cordova API');
+
+exports = {
+ load: function(require) {
+ // delete this method
+ delete exports.load;
+
+ var plugins = [];
+
+ // mechanism to add Tizen-specific plugins to cordova
+ cordova.define('cordova-tizen', function(require, exports, module) {
+ module.exports = {
+ addPlugin: function(dependency, name, algorithm, symbol) {
+ plugins.push({
+ dependency: dependency,
+ name: name,
+ algorithm: algorithm,
+ symbol: symbol
+ });
+ }
+ };
+ });
+
+ var channel = require('cordova/channel');
+
+ // executed when all cordova plugins have been loaded
+ channel.onPluginsReady.subscribe(function() {
+ var mm = require('cordova/modulemapper');
+
+ // add plugins to module mapper, but only if they are required
+ // (their dependencies have been defined/loaded)
+ for (var i = 0; i < plugins.length; ++i) {
+ var p = plugins[i];
+ if (cordova.define.moduleMap[p.dependency]) {
+ mm[p.algorithm](p.name, p.symbol);
+ }
+ }
+ });
+
+ // load all native plugins
+ for (var prop in tizen.cordova) {
+ if (tizen.cordova.hasOwnProperty(prop)) {
+ console.log('Trying to load: tizen.cordova.' + prop);
+ tizen.cordova[prop](require);
+ }
+ }
+ }
+};
console.log('Loaded cordova.device API');
-//TODO: remove when added to public cordova repository -> begin
+// TODO: remove when added to public cordova repository -> begin
});
exports = function(require) {
- // this plugin is not loaded via cordova_plugins.js, we need to manually add
- // it to module mapper
- var mm = require('cordova/modulemapper');
- mm.runs(plugin_name);
+ require('cordova-tizen').addPlugin('cordova-plugin-device.device', plugin_name, 'runs');
};
-//TODO: remove -> end
+// TODO: remove -> end
console.log('Loaded cordova.dialog API');
-//TODO: remove when added to public cordova repository -> begin
+// TODO: remove when added to public cordova repository -> begin
});
exports = function(require) {
- // this plugin is not loaded via cordova_plugins.js, we need to manually add
- // it to module mapper
- var mm = require('cordova/modulemapper');
- mm.runs(plugin_name);
+ require('cordova-tizen').addPlugin('cordova-plugin-dialogs.notification', plugin_name, 'runs');
};
-//TODO: remove -> end
+// TODO: remove -> end
console.log('Loaded cordova.file API');
-//TODO: remove when added to public cordova repository -> begin
+// TODO: remove when added to public cordova repository -> begin
});
exports = function(require) {
- // this plugin is not loaded via cordova_plugins.js, we need to manually add
- // it to module mapper
- var mm = require('cordova/modulemapper');
- mm.runs(plugin_name);
+ require('cordova-tizen').addPlugin('cordova-plugin-file.File', plugin_name, 'runs');
};
-//TODO: remove -> end
+// TODO: remove -> end
*/
// TODO: remove when added to public cordova repository -> begin
-var plugin_name = 'cordova-plugin-file.tizen.FileTransfer';
+var plugin_name = 'cordova-plugin-file-transfer.tizen.FileTransfer';
cordova.define(plugin_name, function(require, exports, module) {
// TODO: remove -> end
console.log('Loaded cordova.file-transfer API');
-//TODO: remove when added to public cordova repository -> begin
+// TODO: remove when added to public cordova repository -> begin
});
exports = function(require) {
- // this plugin is not loaded via cordova_plugins.js, we need to manually add
- // it to module mapper
- var mm = require('cordova/modulemapper');
- mm.runs(plugin_name);
+ require('cordova-tizen').addPlugin('cordova-plugin-file-transfer.FileTransfer', plugin_name, 'runs');
};
-//TODO: remove -> end
+// TODO: remove -> end
//TODO: remove when added to public cordova repository -> begin
-var plugin_name = 'cordova-plugin-device.tizen.Globalization';
+var plugin_name = 'cordova-plugin-globalization.tizen.Globalization';
cordova.define(plugin_name, function(require, exports, module) {
//TODO: remove -> end
exports = {
};
require("cordova/exec/proxy").add("Globalization", exports);
console.log('Loaded cordova.globalization API');
-//TODO: remove when added to public cordova repository -> begin
+// TODO: remove when added to public cordova repository -> begin
});
exports = function(require) {
-//this plugin is not loaded via cordova_plugins.js, we need to manually add
-//it to module mapper
- var mm = require('cordova/modulemapper');
- mm.runs(plugin_name);
+ require('cordova-tizen').addPlugin('cordova-plugin-globalization.globalization', plugin_name, 'runs');
};
-//TODO: remove -> end
+// TODO: remove -> end
modulemapper.clobbers('cordova/exec/proxy', 'cordova.commandProxy');
- // load all Tizen plugins
- for (var plugin in tizen.cordova) {
- if (tizen.cordova.hasOwnProperty(plugin)) {
- tizen.cordova[plugin](require);
- }
- }
+ tizen.cordova.load(require);
channel.onNativeReady.fire();
console.log('Loaded cordova.media API');
-//TODO: remove when added to public cordova repository -> begin
+// TODO: remove when added to public cordova repository -> begin
});
exports = function(require) {
- // this plugin is not loaded via cordova_plugins.js, we need to manually add
- // it to module mapper
- var mm = require('cordova/modulemapper');
- mm.runs(plugin_name);
+ require('cordova-tizen').addPlugin('cordova-plugin-media.Media', plugin_name, 'runs');
};
+// TODO: remove -> end
*/
// TODO: remove when added to public cordova repository -> begin
-var plugin_name = 'cordova-plugin-file.tizen.NetworkStatus';
+var plugin_name = 'cordova-plugin-network-information.tizen.NetworkStatus';
cordova.define(plugin_name, function(require, exports, module) {
// TODO: remove -> end
console.log('Loaded cordova.networkinformation API');
-//TODO: remove when added to public cordova repository -> begin
+// TODO: remove when added to public cordova repository -> begin
});
exports = function(require) {
- // this plugin is not loaded via cordova_plugins.js, we need to manually add
- // it to module mapper
- var mm = require('cordova/modulemapper');
- mm.runs(plugin_name);
+ require('cordova-tizen').addPlugin('cordova-plugin-network-information.network', plugin_name, 'runs');
};
-//TODO: remove -> end
+// TODO: remove -> end