From ad4777885443a6f9b92807f0571cbe4ade25a3e5 Mon Sep 17 00:00:00 2001 From: Szymon Jastrzebski Date: Tue, 12 Dec 2017 11:31:44 +0100 Subject: [PATCH] [Feedback] Refactoring JS layer [Verification] TCT M&A 100% pass rate Change-Id: I98c80653b370292332c48feb0dd764d2e0634acd Signed-off-by: Szymon Jastrzebski --- src/feedback/feedback_api.js | 78 +++++++++--------------------------- 1 file changed, 19 insertions(+), 59 deletions(-) diff --git a/src/feedback/feedback_api.js b/src/feedback/feedback_api.js index 43ffb990..c19fbee1 100755 --- a/src/feedback/feedback_api.js +++ b/src/feedback/feedback_api.js @@ -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(); -- 2.34.1