[Globalization] Code structure changed to match cordova architecture.
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Fri, 8 Apr 2016 06:56:40 +0000 (08:56 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Fri, 8 Apr 2016 07:19:38 +0000 (09:19 +0200)
Change-Id: I24a19cf4c50fa31498dc432ef436e9a7d01350b5
Signed-off-by: Pawel Andruszkiewicz <p.andruszkie@samsung.com>
src/cordova/cordova_api.js
src/globalization/cordova_globalization_api.js
src/lib/cordova_plugins.js
src/lib/plugins/cordova-plugin-globalization/tizen/Globalization.js [new file with mode: 0755]

index 0dd918a..516c2bc 100755 (executable)
@@ -53,12 +53,7 @@ exports = {
       }
     });
 
-    // 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);
-      }
-    }
+    // load file native plugin
+    tizen.cordova.file(require);
   }
 };
index 42b6a84..c55fe0c 100755 (executable)
  * limitations under the License.
  */
 
-var utils_ = xwalk.utils;
-var native_ = new utils_.NativeManager(extension);
+var native_ = new xwalk.utils.NativeManager(extension);
 
-///// Globalization //////
-var selectorDateStr = 'date';
-var selectorTimeStr = 'time';
-var selectorDateAndTimeStr = selectorDateStr + ' and ' + selectorTimeStr;
+var ONE_HOUR_SECONDS = 60 * 60;
 
-var formatShortStr = 'short';
-var formatMediumStr = 'medium';
-var formatLongStr = 'long';
-var formatFullStr = 'full';
-
-var typeWide = 'wide';
-var typeNarrow = 'narrow';
-var itemMonths = 'months';
-var itemDays = 'days';
-
-var numberTypeDecimal = 'decimal';
-var numberTypePercent = 'percent';
-var numberTypeCurrency = 'currency';
-
-var oneHourSeconds = 60*60;
-
-function Globalization_getPreferredLanguage(successCb, errorCb) {
-  // TODO Indicates the current language setting in the (LANGUAGE)_(REGION) syntax.
-  // The language setting is in the ISO 630-2 format and the region setting is in the ISO 3166-1 format.
-  tizen.systeminfo.getPropertyValue ('LOCALE',
-    function (locale) {
-      // replacing '_' with '-' to satisfy cordova language and region separator
-      var result = locale.language.replace('_', '-');
-      successCb( {'value': result} );
-    },
-    function(error) {
-      console.log('Cordova, getLocaleName, An error occurred ' + error.message);
-      errorCb(new GlobalizationError(GlobalizationError.UNKNOWN_ERROR ,
-          'cannot retrieve language name'));
-    }
-  );
-}
-
-function Globalization_dateToString(timestamp, successCb, errorCb, options) {
-  var formatLength = (options && options.formatLength) || formatShortStr;
-  var selector = (options && options.selector) || selectorDateAndTimeStr;
+function GlobalizationManager() {}
 
+GlobalizationManager.prototype.dateToString = function(timestamp, formatLength, selector, successCb, errorCb) {
   var callback = function(result) {
     if (native_.isFailure(result)) {
       var error = new GlobalizationError(
@@ -74,13 +36,9 @@ function Globalization_dateToString(timestamp, successCb, errorCb, options) {
     timestamp: String(timestamp)
   };
   native_.call('CordovaGlobalization_dateToString', callArgs, callback);
-}
-
-function Globalization_stringToDate(dateString, successCb, errorCb, options) {
-  var result = null;
-  var formatLength = (options && options.formatLength) || formatShortStr;
-  var selector = (options && options.selector) || selectorDateAndTimeStr;
+};
 
+GlobalizationManager.prototype.stringToDate = function(dateString, formatLength, selector, successCb, errorCb) {
   var callback = function(result) {
     if (native_.isFailure(result)) {
       var error = new GlobalizationError(
@@ -96,12 +54,9 @@ function Globalization_stringToDate(dateString, successCb, errorCb, options) {
       dateString : String(dateString)
   };
   native_.call('CordovaGlobalization_stringToDate', callArgs, callback);
-}
-
-function Globalization_getDatePattern(successCb, errorCb, options) {
-  var formatLength = (options && options.formatLength) || formatShortStr;
-  var selector = (options && options.selector) || selectorDateAndTimeStr;
+};
 
+GlobalizationManager.prototype.getDatePattern = function(formatLength, selector, successCb, errorCb) {
   var callback = function(result) {
     // Checking success of gathering pattern
     var fullResult = {};
@@ -123,7 +78,7 @@ function Globalization_getDatePattern(successCb, errorCb, options) {
       // timezoneOffset = timezoneOffsetWithoutDST + DSTAdditionalOffset
       // if other behavior is correct, just need to subtract dstOffset from utcOffset
       var utcOffset = currentDateTime.secondsFromUTC() * (-1);
-      var dstOffset = currentDateTime.isDST() ? oneHourSeconds : 0;
+      var dstOffset = currentDateTime.isDST() ? ONE_HOUR_SECONDS : 0;
 
       fullResult["utc_offset"] = utcOffset;
       fullResult["dst_offset"] = dstOffset;
@@ -139,13 +94,9 @@ function Globalization_getDatePattern(successCb, errorCb, options) {
       selector: String(selector)
   };
   native_.call('CordovaGlobalization_getDatePattern', callArgs, callback);
-}
-
-
-function Globalization_getDateNames(successCb, errorCb, options) {
-  var type = (options && options.type) || typeWide;
-  var item = (options && options.item) || itemMonths;
+};
 
+GlobalizationManager.prototype.getDateNames = function(type, item, successCb, errorCb) {
   var callback = function(result) {
     if (native_.isFailure(result)) {
       var error = new GlobalizationError(
@@ -160,24 +111,9 @@ function Globalization_getDateNames(successCb, errorCb, options) {
       item: String(item)
   };
   native_.call('CordovaGlobalization_getDateNames', callArgs, callback);
-}
-
-
-function Globalization_isDayLightSavingsTime(timestamp, successCb, errorCb) {
-  var tzdate = new tizen.TZDate(new Date(timestamp)); //creates tzdate with local default timezone
-  if (tzdate) {
-    var result = tzdate.isDST();
-    setTimeout( function() {
-      successCb ( {'dst' : result} );
-    }, 0);
-  } else {
-    setTimeout( function() {
-      errorCb(new GlobalizationError(GlobalizationError.UNKNOWN_ERROR , "cannot get information"));
-    }, 0);
-  }
-}
+};
 
-function Globalization_getFirstDayOfWeek(successCb, errorCb) {
+GlobalizationManager.prototype.getFirstDayOfWeek = function(successCb, errorCb) {
   var callback = function(result) {
     if (native_.isFailure(result)) {
       var error = new GlobalizationError(
@@ -188,11 +124,9 @@ function Globalization_getFirstDayOfWeek(successCb, errorCb) {
     }
   };
   native_.call('CordovaGlobalization_getFirstDayOfWeek', {}, callback);
-}
-
-function Globalization_numberToString(number, successCb, errorCb, options) {
-  var type = (options && options.type) || numberTypeDecimal;
+};
 
+GlobalizationManager.prototype.numberToString = function(number, type, successCb, errorCb) {
   var callback = function(result) {
     if (native_.isFailure(result)) {
       var error = new GlobalizationError(
@@ -207,11 +141,9 @@ function Globalization_numberToString(number, successCb, errorCb, options) {
       type: String(type)
   };
   native_.call('CordovaGlobalization_numberToString', callArgs, callback);
-}
-
-function Globalization_stringToNumber(numberStr, successCb, errorCb, options) {
-  var type = (options && options.type) || numberTypeDecimal;
+};
 
+GlobalizationManager.prototype.stringToNumber = function(numberStr, type, successCb, errorCb) {
   var callback = function(result) {
     if (native_.isFailure(result)) {
       var error = new GlobalizationError(
@@ -228,11 +160,9 @@ function Globalization_stringToNumber(numberStr, successCb, errorCb, options) {
       type: String(type)
   };
   native_.call('CordovaGlobalization_stringToNumber', callArgs, callback);
-}
-
-function Globalization_getNumberPattern(successCb, errorCb, options) {
-  var type = (options && options.type) || numberTypeDecimal;
+};
 
+GlobalizationManager.prototype.getNumberPattern = function(type, successCb, errorCb) {
   var callback = function(result) {
     if (native_.isFailure(result)) {
       var error = new GlobalizationError(
@@ -246,9 +176,9 @@ function Globalization_getNumberPattern(successCb, errorCb, options) {
       type: String(type)
   };
   native_.call('CordovaGlobalization_getNumberPattern', callArgs, callback);
-}
+};
 
-function Globalization_getCurrencyPattern(currencyCode, successCb, errorCb) {
+GlobalizationManager.prototype.getCurrencyPattern = function(currencyCode, successCb, errorCb) {
   var callback = function(result) {
     if (native_.isFailure(result)) {
       var error = new GlobalizationError(
@@ -262,56 +192,6 @@ function Globalization_getCurrencyPattern(currencyCode, successCb, errorCb) {
       currencyCode : String(currencyCode)
   };
   native_.call('CordovaGlobalization_getCurrencyPattern', callArgs, callback);
-}
-
-
-//TODO: remove when added to public cordova repository -> begin
-var plugin_name = 'cordova-plugin-globalization.tizen.Globalization';
-cordova.define(plugin_name, function(require, exports, module) {
-//TODO: remove -> end
-  exports = {
-      getPreferredLanguage: function (successCb, errorCb, args) {
-        Globalization_getPreferredLanguage(successCb, errorCb);
-      },
-      getLocaleName: function (successCb, errorCb, args) {
-        Globalization_getPreferredLanguage(successCb, errorCb);
-      },
-      dateToString: function (successCb, errorCb, args) {
-        Globalization_dateToString(args[0]['date'], successCb, errorCb, args[0]['options']);
-      },
-      stringToDate: function (successCb, errorCb, args) {
-        Globalization_stringToDate(args[0]['dateString'], successCb, errorCb, args[0]['options']);
-      },
-      getDatePattern: function (successCb, errorCb, args) {
-        Globalization_getDatePattern(successCb, errorCb, args[0]['options']);
-      },
-      getDateNames: function (successCb, errorCb, args) {
-        Globalization_getDateNames(successCb, errorCb, args[0]['options']);
-      },
-      isDayLightSavingsTime: function (successCb, errorCb, args) {
-        Globalization_isDayLightSavingsTime(args[0]['date'], successCb, errorCb);
-      },
-      getFirstDayOfWeek: function (successCb, errorCb, args) {
-        Globalization_getFirstDayOfWeek(successCb, errorCb);
-      },
-      numberToString: function (successCb, errorCb, args) {
-        Globalization_numberToString(args[0]['number'], successCb, errorCb, args[0]['options']);
-      },
-      stringToNumber: function (successCb, errorCb, args) {
-        Globalization_stringToNumber(args[0]['numberString'], successCb, errorCb, args[0]['options']);
-      },
-      getNumberPattern: function (successCb, errorCb, args) {
-        Globalization_getNumberPattern(successCb, errorCb, args[0]['options']);
-      },
-      getCurrencyPattern: function (successCb, errorCb, args) {
-        Globalization_getCurrencyPattern(args[0]['currencyCode'], successCb, errorCb);
-      }
-  };
-  require("cordova/exec/proxy").add("Globalization", exports);
-  console.log('Loaded cordova.globalization API');
-// TODO: remove when added to public cordova repository -> begin
-});
-exports = function(require) {
-  require('cordova-tizen').addPlugin('cordova-plugin-globalization.globalization', plugin_name, 'runs');
 };
-// TODO: remove -> end
+
+exports = new GlobalizationManager();
index ebf0716..443c37f 100644 (file)
@@ -267,6 +267,11 @@ module.exports = [
         ]
     },
     {
+      "file": "plugins/cordova-plugin-globalization/tizen/Globalization.js",
+      "id": "cordova-plugin-globalization.tizen.Globalization",
+      "runs": true
+    },
+    {
         "file": "plugins/cordova-plugin-media/www/MediaError.js",
         "id": "cordova-plugin-media.MediaError",
         "clobbers": [
diff --git a/src/lib/plugins/cordova-plugin-globalization/tizen/Globalization.js b/src/lib/plugins/cordova-plugin-globalization/tizen/Globalization.js
new file mode 100755 (executable)
index 0000000..4c5131e
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// TODO: remove when added to public cordova repository -> begin
+var plugin_name = 'cordova-plugin-globalization.tizen.Globalization';
+cordova.define(plugin_name, function(require, exports, module) {
+// TODO: remove -> end
+
+var SELECTOR_DATE_STR = 'date';
+var SELECTOR_TIME_STR = 'time';
+var SELECTOR_DATE_AND_TIME_STR = SELECTOR_DATE_STR + ' and ' + SELECTOR_TIME_STR;
+
+var FORMAT_SHORT_STR = 'short';
+var FORMAT_MEDIUM_STR = 'medium';
+var FORMAT_LONG_STR = 'long';
+var FORMAT_FULL_STR = 'full';
+
+var TYPE_WIDE = 'wide';
+var TYPE_NARROW = 'narrow';
+
+var ITEM_MONTHS = 'months';
+var ITEM_DAYS = 'days';
+
+var NUMBER_TYPE_DECIMAL = 'decimal';
+var NUMBER_TYPE_PERCENT = 'percent';
+var NUMBER_TYPE_CURRENCY = 'currency';
+
+function Globalization_getPreferredLanguage(successCb, errorCb) {
+  // TODO Indicates the current language setting in the (LANGUAGE)_(REGION) syntax.
+  // The language setting is in the ISO 630-2 format and the region setting is in the ISO 3166-1 format.
+  tizen.systeminfo.getPropertyValue('LOCALE',
+    function (locale) {
+      // replacing '_' with '-' to satisfy cordova language and region separator
+      var result = locale.language.replace('_', '-');
+      successCb( {'value': result} );
+    },
+    function(error) {
+      console.log('Cordova, getLocaleName, An error occurred ' + error.message);
+      errorCb(new GlobalizationError(GlobalizationError.UNKNOWN_ERROR ,
+          'cannot retrieve language name'));
+    }
+  );
+}
+
+function Globalization_dateToString(timestamp, successCb, errorCb, options) {
+  var formatLength = (options && options.formatLength) || FORMAT_SHORT_STR;
+  var selector = (options && options.selector) || SELECTOR_DATE_AND_TIME_STR;
+
+  tizen.cordova.globalization.dateToString(timestamp, formatLength, selector, successCb, errorCb);
+}
+
+function Globalization_stringToDate(dateString, successCb, errorCb, options) {
+  var formatLength = (options && options.formatLength) || FORMAT_SHORT_STR;
+  var selector = (options && options.selector) || SELECTOR_DATE_AND_TIME_STR;
+
+  tizen.cordova.globalization.stringToDate(dateString, formatLength, selector, successCb, errorCb);
+}
+
+function Globalization_getDatePattern(successCb, errorCb, options) {
+  var formatLength = (options && options.formatLength) || FORMAT_SHORT_STR;
+  var selector = (options && options.selector) || SELECTOR_DATE_AND_TIME_STR;
+
+  tizen.cordova.globalization.getDatePattern(formatLength, selector, successCb, errorCb);
+}
+
+function Globalization_getDateNames(successCb, errorCb, options) {
+  var type = (options && options.type) || TYPE_WIDE;
+  var item = (options && options.item) || ITEM_MONTHS;
+
+  tizen.cordova.globalization.getDateNames(type, item, successCb, errorCb);
+}
+
+function Globalization_isDayLightSavingsTime(timestamp, successCb, errorCb) {
+  var tzdate = new tizen.TZDate(new Date(timestamp)); //creates tzdate with local default timezone
+  if (tzdate) {
+    var result = tzdate.isDST();
+    setTimeout( function() {
+      successCb ( {'dst' : result} );
+    }, 0);
+  } else {
+    setTimeout( function() {
+      errorCb(new GlobalizationError(GlobalizationError.UNKNOWN_ERROR , "cannot get information"));
+    }, 0);
+  }
+}
+
+function Globalization_getFirstDayOfWeek(successCb, errorCb) {
+  tizen.cordova.globalization.getFirstDayOfWeek(successCb, errorCb);
+}
+
+function Globalization_numberToString(number, successCb, errorCb, options) {
+  var type = (options && options.type) || NUMBER_TYPE_DECIMAL;
+
+  tizen.cordova.globalization.numberToString(number, type, successCb, errorCb);
+}
+
+function Globalization_stringToNumber(numberStr, successCb, errorCb, options) {
+  var type = (options && options.type) || NUMBER_TYPE_DECIMAL;
+
+  tizen.cordova.globalization.stringToNumber(numberStr, type, successCb, errorCb);
+}
+
+function Globalization_getNumberPattern(successCb, errorCb, options) {
+  var type = (options && options.type) || NUMBER_TYPE_DECIMAL;
+
+  tizen.cordova.globalization.getNumberPattern(type, successCb, errorCb);
+}
+
+function Globalization_getCurrencyPattern(currencyCode, successCb, errorCb) {
+  tizen.cordova.globalization.getCurrencyPattern(currencyCode, successCb, errorCb);
+}
+
+exports = {
+    getPreferredLanguage: function (successCb, errorCb, args) {
+      Globalization_getPreferredLanguage(successCb, errorCb);
+    },
+    getLocaleName: function (successCb, errorCb, args) {
+      Globalization_getPreferredLanguage(successCb, errorCb);
+    },
+    dateToString: function (successCb, errorCb, args) {
+      Globalization_dateToString(args[0]['date'], successCb, errorCb, args[0]['options']);
+    },
+    stringToDate: function (successCb, errorCb, args) {
+      Globalization_stringToDate(args[0]['dateString'], successCb, errorCb, args[0]['options']);
+    },
+    getDatePattern: function (successCb, errorCb, args) {
+      Globalization_getDatePattern(successCb, errorCb, args[0]['options']);
+    },
+    getDateNames: function (successCb, errorCb, args) {
+      Globalization_getDateNames(successCb, errorCb, args[0]['options']);
+    },
+    isDayLightSavingsTime: function (successCb, errorCb, args) {
+      Globalization_isDayLightSavingsTime(args[0]['date'], successCb, errorCb);
+    },
+    getFirstDayOfWeek: function (successCb, errorCb, args) {
+      Globalization_getFirstDayOfWeek(successCb, errorCb);
+    },
+    numberToString: function (successCb, errorCb, args) {
+      Globalization_numberToString(args[0]['number'], successCb, errorCb, args[0]['options']);
+    },
+    stringToNumber: function (successCb, errorCb, args) {
+      Globalization_stringToNumber(args[0]['numberString'], successCb, errorCb, args[0]['options']);
+    },
+    getNumberPattern: function (successCb, errorCb, args) {
+      Globalization_getNumberPattern(successCb, errorCb, args[0]['options']);
+    },
+    getCurrencyPattern: function (successCb, errorCb, args) {
+      Globalization_getCurrencyPattern(args[0]['currencyCode'], successCb, errorCb);
+    }
+};
+
+require("cordova/exec/proxy").add("Globalization", exports);
+console.log('Loaded cordova.globalization API');
+
+// TODO: remove when added to public cordova repository -> begin
+});
+// TODO: remove -> end