[Application] Unmarshal the app ID and event name.
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Wed, 26 Aug 2015 13:47:14 +0000 (15:47 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Thu, 27 Aug 2015 06:43:43 +0000 (08:43 +0200)
Fixes: EventCallback_onevent
[Verification] TCT pass rate (r36): 100% (184/184/0/0/0).

Change-Id: I52d2e61c9e0a098749139d7d3d60f3200f7ce985
Signed-off-by: Pawel Andruszkiewicz <p.andruszkie@samsung.com>
src/application/application_api.js

index 7932be6b758ddb4241e3df75c00429f720062ed0..08774c5167c1a7dca2e7523dca41a6ae04ef8e0a 100755 (executable)
@@ -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);
           }
         }
       }