[Network Information] Fix for actual type of network connection
authorLukasz Bardeli <l.bardeli@samsung.com>
Fri, 4 Dec 2015 12:47:42 +0000 (13:47 +0100)
committerLukasz Bardeli <l.bardeli@samsung.com>
Fri, 4 Dec 2015 12:47:42 +0000 (13:47 +0100)
[Verification] Code compiles without error. Passrate 100% (4 specs, 0 failures)

Change-Id: I6df2f6fa4eae2377b744294d5453e16cbf2835eb
Signed-off-by: Lukasz Bardeli <l.bardeli@samsung.com>
src/networkinformation/cordova_networkinformation_api.js

index 1d5d582..bb013d2 100644 (file)
@@ -20,6 +20,8 @@ var plugin_name = 'cordova-plugin-network-information.tizen.NetworkStatus';
 cordova.define(plugin_name, function(require, exports, module) {
 // TODO: remove -> end
 
+var cordova = require('cordova');
+
 function toCordovaConnectionType(type) {
   switch (type) {
     case 'NONE':
@@ -54,9 +56,9 @@ function onSuccessCallback(info) {
   var type = toCordovaConnectionType(info.networkType);
 
   if (Connection.NONE === type || Connection.UNKNOWN === type) {
-    document.dispatchEvent(new Event('offline'));
+    cordova.fireDocumentEvent('offline');
   } else {
-    document.dispatchEvent(new Event('online'));
+    cordova.fireDocumentEvent('online');
   }
 }
 
@@ -74,7 +76,11 @@ exports = {
   getConnectionInfo: function(successCallback, errorCallback, args) {
     tizen.systeminfo.getPropertyValue('NETWORK', function(info) {
       successCallback(toCordovaConnectionType(info.networkType));
-    }, errorCallback);
+    }, function(e){
+        if (errorCallback) {
+          errorCallback(e);
+        }
+      });
   }
 };
 
@@ -85,7 +91,41 @@ console.log('Loaded cordova.networkinformation API');
 // TODO: remove when added to public cordova repository -> begin
 });
 
+var plugin_name_type = 'cordova-plugin-network-information.tizen.NetworkStatus.type';
+
+cordova.define(plugin_name_type, function(require, exports, module) {
+//TODO: remove -> end
+
+var exec = require('cordova/exec');
+
+function NetworkConnection() {
+  this.type = Connection.UNKNOWN;
+  var that = this;
+  function successCallback(info) {
+    that.type = info;
+  }
+
+  function errorCallback() {
+    that.type = Connection.UNKNOWN;
+  }
+
+  function getType() {
+    exec(successCallback, errorCallback, 'NetworkStatus', 'getConnectionInfo', []);
+  }
+
+  document.addEventListener('offline', getType);
+  document.addEventListener('online', getType);
+}
+var me = new NetworkConnection();
+
+module.exports = me;
+
+//TODO: remove when added to public cordova repository -> begin
+});
+
 exports = function(require) {
   require('cordova-tizen').addPlugin('cordova-plugin-network-information.network', plugin_name, 'runs');
+  require('cordova-tizen').addPlugin('cordova-plugin-network-information.network', plugin_name_type, 'clobbers', 'navigator.connection');
+  require('cordova-tizen').addPlugin('cordova-plugin-network-information.network', plugin_name_type, 'clobbers', 'navigator.network.connection');
 };
 // TODO: remove -> end