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