[Feedback] Refactoring JS layer 19/163619/2
authorSzymon Jastrzebski <s.jastrzebsk@partner.samsung.com>
Tue, 12 Dec 2017 10:31:44 +0000 (11:31 +0100)
committerSzymon Jastrzebski <s.jastrzebsk@partner.samsung.com>
Mon, 18 Dec 2017 11:01:26 +0000 (12:01 +0100)
[Verification] TCT M&A 100% pass rate

Change-Id: I98c80653b370292332c48feb0dd764d2e0634acd
Signed-off-by: Szymon Jastrzebski <s.jastrzebsk@partner.samsung.com>
src/feedback/feedback_api.js

index 43ffb9901de821c42b6feba31c2a229eeec2709a..c19fbee14b384d1cefdde97a058231235089e3ed 100755 (executable)
@@ -20,58 +20,9 @@ var types_ = validator_.Types;
 var type_ = xwalk.utils.type;
 var native_ = new xwalk.utils.NativeManager(extension);
 
-var ExceptionMap = {
-  'UnknownError' : WebAPIException.UNKNOWN_ERR,
-  'TypeMismatchError' : WebAPIException.TYPE_MISMATCH_ERR,
-  'InvalidValuesError' : WebAPIException.INVALID_VALUES_ERR,
-  'IOError' : WebAPIException.IO_ERR,
-  'ServiceNotAvailableError' : WebAPIException.SERVICE_NOT_AVAILABLE_ERR,
-  'SecurityError' : WebAPIException.SECURITY_ERR,
-  'NetworkError' : WebAPIException.NETWORK_ERR,
-  'NotSupportedError' : WebAPIException.NOT_SUPPORTED_ERR,
-  'NotFoundError' : WebAPIException.NOT_FOUND_ERR,
-  'InvalidAccessError' : WebAPIException.INVALID_ACCESS_ERR,
-  'AbortError' : WebAPIException.ABORT_ERR,
-  'QuotaExceededError' : WebAPIException.QUOTA_EXCEEDED_ERR
-};
-
-function callNative(cmd, args) {
-  var json = {'cmd': cmd, 'args': args};
-  var argjson = JSON_.stringify(json);
-  var resultString = extension.internal.sendSyncMessage(argjson);
-  var result = JSON_.parse(resultString);
-
-  if (typeof result !== 'object') {
-    throw new WebAPIException(WebAPIException.UNKNOWN_ERR);
-  }
-
-  if (result['status'] == 'success') {
-    if (result.hasOwnProperty('result')) {
-      return result['result'];
-    }
-    return true;
-  }
-  else if (result['status'] == 'error') {
-    var err = result['error'];
-    if (err) {
-      if (ExceptionMap[err.name]) {
-        throw new WebAPIException(ExceptionMap[err.name], err.message);
-      } else {
-        throw new WebAPIException(WebAPIException.UNKNOWN_ERR, err.message);
-      }
-    }
-    return false;
-  }
-}
-
-function SetReadOnlyProperty(obj, n, v) {
-  Object.defineProperty(obj, n, {value: v, writable: false});
-}
-
 var FeedbackType = {
     TYPE_SOUND: 'TYPE_SOUND',
-    TYPE_VIBRATION: 'TYPE_VIBRATION',
-    NONE: 'NONE'
+    TYPE_VIBRATION: 'TYPE_VIBRATION'
 };
 
 var FeedbackPattern = {
@@ -114,7 +65,7 @@ var FeedbackPattern = {
   LIST_REORDER: 'LIST_REORDER',
   LIST_SLIDER: 'LIST_SLIDER',
   VOLUME_KEY: 'VOLUME_KEY'
-  };
+};
 
 function FeedbackManager() {
   // constructor of FeedbackManager
@@ -126,7 +77,12 @@ FeedbackManager.prototype.isPatternSupported = function(pattern, type) {
     {name: 'pattern', type: types_.ENUM, values: Object.keys(FeedbackPattern)},
     {name: 'type', type: types_.ENUM, values: Object.keys(FeedbackType)},
   ]);
-  return callNative('FeedbackManager_isPatternSupported', args);
+
+  var result = native_.callSync('FeedbackManager_isPatternSupported', args);
+  if (native_.isFailure(result)) {
+    throw native_.getErrorObject(result);
+  }
+  return native_.getResultObject(result);
 };
 
 FeedbackManager.prototype.play = function(pattern, type) {
@@ -146,19 +102,23 @@ FeedbackManager.prototype.play = function(pattern, type) {
   ]);
 
   var nativeParam = {
-      'pattern': args.pattern,
-      'type': args.type ? args.type : 'any'
-    };
+    'pattern': args.pattern,
+    'type': args.type ? args.type : 'any'
+  };
 
-  callNative('FeedbackManager_play', nativeParam);
-  return;
+  var result = native_.callSync('FeedbackManager_play', nativeParam);
+  if (native_.isFailure(result)) {
+    throw native_.getErrorObject(result);
+  }
 };
 
 FeedbackManager.prototype.stop = function() {
   var args = validator_.validateArgs(arguments, []);
 
-  callNative('FeedbackManager_stop', args);
-  return;
+  var result = native_.callSync('FeedbackManager_stop', args);
+  if (native_.isFailure(result)) {
+    throw native_.getErrorObject(result);
+  }
 };
 
 exports = new FeedbackManager();