modify subscribe opportunity
authorwang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com>
Thu, 16 May 2019 06:20:09 +0000 (14:20 +0800)
committerwang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com>
Thu, 16 May 2019 06:20:09 +0000 (14:20 +0800)
Change-Id: I47ff97e4eab37e4b942c1721560f8b381ce14592

include/libhomescreen.hpp
src/libhomescreen.cpp

index e51e01c..32a9121 100644 (file)
@@ -65,6 +65,7 @@ public:
        int onScreenReply(const char* reply_message);
 
        void set_event_handler(enum EventType et, handler_func f);
+       void publishSubscription(void);
 
        void registerCallback(
                void (*event_cb)(const std::string& event, struct json_object* event_contents),
index ad18ca4..71afa66 100644 (file)
@@ -307,37 +307,30 @@ int LibHomeScreen::onScreenReply(const char* reply_message)
 void LibHomeScreen::set_event_handler(enum EventType et, handler_func f)
 {
        if (et > Event_Min && et < Event_Max) {
-               switch (et) {
-                       case Event_ShowWindow:
-                               this->subscribe(LibHomeScreen::event_list[0]);
-                               break;
-                       case Event_OnScreenMessage:
-                               this->subscribe(LibHomeScreen::event_list[1]);
-                               break;
-                       case Event_OnScreenReply:
-                               this->subscribe(LibHomeScreen::event_list[2]);
-                               break;
-                       case Event_HideWindow:
-                               this->subscribe(LibHomeScreen::event_list[3]);
-                               break;
-                       case Event_ReplyShowWindow:
-                               this->subscribe(LibHomeScreen::event_list[4]);
-                               break;
-                       case Event_ShowNotification:
-                               this->subscribe(LibHomeScreen::event_list[5]);
-                               break;
-                       case Event_ShowInformation:
-                               this->subscribe(LibHomeScreen::event_list[6]);
-                               break;
-                       case Event_AppListChanged:
-                               this->subscribe(LibHomeScreen::event_list[7]);
-                               break;
-               }
-
                this->handlers[et] = std::move(f);
        }
 }
 
+/**
+ * This function subscribe HomeScreen event
+ *
+ * #### Parameters
+ * None
+ *
+ * #### Return
+ * - Nothing
+ *
+ * #### Note
+ * To call HomeScreen's subscribe APIs.
+ *
+ */
+void LibHomeScreen::publishSubscription(void)
+{
+       for(auto &it : handlers) {
+               this->subscribe(LibHomeScreen::event_list[it.first - 1]);
+       }
+}
+
 /**
  * This function calls the API of HomeScreen via WebSocket
  *