[TVInputDevice] Register/unregister keys from mandatoryMap 93/100893/4
authorPawel Wasowski <p.wasowski2@partner.samsung.com>
Tue, 29 Nov 2016 13:07:13 +0000 (14:07 +0100)
committerPawel Wasowski <p.wasowski2@partner.samsung.com>
Wed, 30 Nov 2016 07:27:53 +0000 (08:27 +0100)
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 <p.wasowski2@partner.samsung.com>
src/tvinputdevice/tvinputdevice_api.js

index b2f34f1b73349d25561730ae0aa65fe881766819..94af4525a72cbafbb3fed627ec0f647bbb79963a 100755 (executable)
@@ -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() {