From 718c665194975ddcd4bb2bb360c94f81b5d916b8 Mon Sep 17 00:00:00 2001
From: Pawel Andruszkiewicz
Date: Wed, 26 Aug 2015 15:47:14 +0200
Subject: [PATCH] [Application] Unmarshal the app ID and event name.
Fixes: EventCallback_onevent
[Verification] TCT pass rate (r36): 100% (184/184/0/0/0).
Change-Id: I52d2e61c9e0a098749139d7d3d60f3200f7ce985
Signed-off-by: Pawel Andruszkiewicz
---
src/application/application_api.js | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/application/application_api.js b/src/application/application_api.js
index 7932be6b..08774c51 100755
--- a/src/application/application_api.js
+++ b/src/application/application_api.js
@@ -673,6 +673,7 @@ Application.prototype.addEventListener = function(event, callback) {
_checkEventName(args.event.name);
_checkAppId(args.event.appId);
+ // the 'event.' prefix is required by platform
data.name = 'event.' + args.event.appId + '.' + args.event.name;
// }
@@ -684,7 +685,11 @@ Application.prototype.addEventListener = function(event, callback) {
if (!Object.keys(event_listeners_[data.name]).length) {
native.addListener(data.name, function(msg) {
var eventName = msg.name;
- var event = eventName.split('.').pop();
+ var event = eventName.split('.');
+ event = {
+ appId: event.slice(1, -1).join('.'), // app ID is everything besides the 'event' prefix and event name
+ name: event[event.length - 1] // event name cannot contain '.', so it's always the last element in array
+ };
for (var id in event_listeners_[eventName]) {
if (event_listeners_[eventName].hasOwnProperty(id)) {
if (msg.data) {
@@ -692,7 +697,7 @@ Application.prototype.addEventListener = function(event, callback) {
} else {
delete msg.name;
msg.type = event; //TODO: type should come from native site
- event_listeners_[eventName][id](event.toUpperCase(), msg);
+ event_listeners_[eventName][id](event, msg);
}
}
}
--
2.34.1