From 4c95f7e1b4b33a603470f14e63c01bb5671241a1 Mon Sep 17 00:00:00 2001 From: Pawel Wasowski Date: Tue, 29 Nov 2016 14:07:13 +0100 Subject: [PATCH] [TVInputDevice] Register/unregister keys from mandatoryMap This commit introduce following changes to TVInputDevice API: * list keys from mandatoryMap with getSupportedKeys * register and unregister a single key from mandatoryMap * register and unregister a batch of keys from mandatoryMap Change-Id: I78ce888e8501fb245e5136f574c40d34f5907da3 Signed-off-by: Pawel Wasowski --- src/tvinputdevice/tvinputdevice_api.js | 37 +++++++++++++++++++------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/src/tvinputdevice/tvinputdevice_api.js b/src/tvinputdevice/tvinputdevice_api.js index b2f34f1b..94af4525 100755 --- a/src/tvinputdevice/tvinputdevice_api.js +++ b/src/tvinputdevice/tvinputdevice_api.js @@ -266,7 +266,11 @@ TVInputDeviceManager.prototype.getSupportedKeys = function() { re.push(new TVInputDeviceKey({name: key, code: map[key].keyCode})); } } - + for (var key in mandatoryMap) { + if (mandatoryMap.hasOwnProperty(key)) { + re.push(new TVInputDeviceKey({name: key, code: mandatoryMap[key].keyCode})); + } + } return re; }; @@ -303,12 +307,16 @@ TVInputDeviceManager.prototype.registerKey = function(keyName) { var args = validator.validateArgs(arguments, [ {name: 'keyName', type: types.STRING} ]); - if (!map[args.keyName]) { + if (!map[args.keyName] && !mandatoryMap[args.keyName]) { throw new WebAPIException(WebAPIException.INVALID_VALUES_ERR, 'Parameter "keyName" is invalid.'); } - var ret = native.sendRuntimeSyncMessage('tizen://api/inputdevice/registerKey', map[args.keyName].keyName); + if (map[args.keyName]) { + var ret = native.sendRuntimeSyncMessage('tizen://api/inputdevice/registerKey', map[args.keyName].keyName); + } else { + var ret = native.sendRuntimeSyncMessage('tizen://api/inputdevice/registerKey', mandatoryMap[args.keyName].keyName); + } if (ret === 'error') { throw new WebAPIException(WebAPIException.UNKNOWN_ERR, 'UnknownError'); } @@ -324,13 +332,16 @@ TVInputDeviceManager.prototype.unregisterKey = function(keyName) { var args = validator.validateArgs(arguments, [ {name: 'keyName', type: types.STRING} ]); - - if (!map[args.keyName]) { + if (!map[args.keyName] && !mandatoryMap[args.keyName]) { throw new WebAPIException(WebAPIException.INVALID_VALUES_ERR, 'Parameter "keyName" is invalid.'); } - var ret = native.sendRuntimeSyncMessage('tizen://api/inputdevice/unregisterKey', map[args.keyName].keyName); + if (map[args.keyName]) { + var ret = native.sendRuntimeSyncMessage('tizen://api/inputdevice/unregisterKey', map[args.keyName].keyName); + } else { + var ret = native.sendRuntimeSyncMessage('tizen://api/inputdevice/unregisterKey', mandatoryMap[args.keyName].keyName); + } if (ret === 'error') { throw new WebAPIException(WebAPIException.UNKNOWN_ERR, 'UnknownError'); } @@ -360,11 +371,14 @@ TVInputDeviceManager.prototype.registerKeyBatch = function() { var keysList = ""; for (var i = 0; i < args.keyNames.length; ++i) { - if (!map[args.keyNames[i]]) { + if (map[args.keyNames[i]]) { + keysList += map[args.keyNames[i]].keyName + ((i < args.keyNames.length - 1) ? "," : ""); + } else if (mandatoryMap[args.keyNames[i]]) { + keysList += mandatoryMap[args.keyNames[i]].keyName + ((i < args.keyNames.length - 1) ? "," : ""); + } else { throw new WebAPIException(WebAPIException.INVALID_VALUES_ERR, 'Invalid key name: "' + args.keyNames[i] + '"'); } - keysList += map[args.keyNames[i]].keyName + ((i < args.keyNames.length - 1) ? "," : ""); } setTimeout(function() { @@ -402,11 +416,14 @@ TVInputDeviceManager.prototype.registerKeyBatch = function() { var keysList = ""; for (var i = 0; i < args.keyNames.length; ++i) { - if (!map[args.keyNames[i]]) { + if (map[args.keyNames[i]]) { + keysList += map[args.keyNames[i]].keyName + ((i < args.keyNames.length - 1) ? "," : ""); + } else if (mandatoryMap[args.keyNames[i]]) { + keysList += mandatoryMap[args.keyNames[i]].keyName + ((i < args.keyNames.length - 1) ? "," : ""); + } else { throw new WebAPIException(WebAPIException.INVALID_VALUES_ERR, 'Invalid key name: "' + args.keyNames[i] + '"'); } - keysList += map[args.keyNames[i]].keyName + ((i < args.keyNames.length - 1) ? "," : ""); } setTimeout(function() { -- 2.34.1