From: Michal Michalski Date: Fri, 15 Mar 2019 11:42:35 +0000 (+0100) Subject: [widgetservice][utils] Fix CommonListenerManager implementation. X-Git-Tag: submit/tizen/20190328.074934~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eb333d70a8db4ec33528bbb1b0714f2fc35e4958;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [widgetservice][utils] Fix CommonListenerManager implementation. CommonListenerManager implementation used native.getResultObject on listener input before passing it to the callback. This behavior is widgetservice specific and so it was moved outside CommonListenerManager implementation. [Verification] Manual tests. Change-Id: Ied82281a660562c2697f4f6c298ec11a2e2d5549 Signed-off-by: Michal Michalski --- diff --git a/src/utils/utils_api.js b/src/utils/utils_api.js index 88ce91a5..a096ea39 100644 --- a/src/utils/utils_api.js +++ b/src/utils/utils_api.js @@ -57,7 +57,7 @@ var CommonListenerManager = function(nativeMgr, managerName, onIdNotFound) { CommonListenerManager.prototype.onListenerCalled = function(msg) { for (var watchId in this.listeners) { if (this.listeners.hasOwnProperty(watchId)) { - this.listeners[watchId](this.native.getResultObject(msg)); + this.listeners[watchId](msg); } } }; diff --git a/src/widgetservice/widgetservice_api.js b/src/widgetservice/widgetservice_api.js index 0126865e..08448410 100644 --- a/src/widgetservice/widgetservice_api.js +++ b/src/widgetservice/widgetservice_api.js @@ -337,8 +337,9 @@ Widget.prototype.addStateChangeListener = function() { } var func = function(msg) { - if (msg.widgetId === this.id) { - args.eventCallback(new WidgetInstance(msg, this), msg.event); + var result = native.getResultObject(msg); + if (result.widgetId === this.id) { + args.eventCallback(new WidgetInstance(result, this), result.event); } }.bind(this); diff --git a/src/widgetservice/widgetservice_instance.cc b/src/widgetservice/widgetservice_instance.cc index a6b6df2b..1b36c66d 100644 --- a/src/widgetservice/widgetservice_instance.cc +++ b/src/widgetservice/widgetservice_instance.cc @@ -37,8 +37,6 @@ using common::TizenSuccess; std::mutex WidgetServiceInstance::listener_mutex_; namespace { -const common::ListenerToken kWidgetChangeCallbackToken{"WidgetStateChangeCallback"}; - const std::string kPrivilegeWidgetService = "http://tizen.org/privilege/widget.viewer"; const std::string kLocale = "locale"; @@ -156,6 +154,12 @@ void bundleIterator(const char* key, const char* val, void* data) { obj->insert(std::make_pair(key, picojson::value(val))); } +common::ListenerToken getWidgetStateChangeListenerToken(const std::string& callback_token, + const std::string& widget_id) { + common::ListenerToken kWidgetChangeCallbackToken{callback_token + "_" + widget_id}; + return kWidgetChangeCallbackToken; +} + } // namespace WidgetServiceInstance::WidgetServiceInstance() { @@ -472,7 +476,7 @@ void WidgetServiceInstance::CallWidgetLifecycleListener(const std::string& widge std::lock_guard lock(listener_mutex_); const auto it = listener_map_.find(widget_id); if (listener_map_.end() != it) { - Post(kWidgetChangeCallbackToken, TizenSuccess{response}); + Post(getWidgetStateChangeListenerToken("WidgetStateChangeCallback", widget_id), TizenSuccess{response}); return; }