add register/update shortcut
[apps/agl-service-homescreen.git] / src / hs-client.h
index 5b384b1..985ecf1 100644 (file)
@@ -20,6 +20,7 @@
 #include <string>
 #include <unordered_set>
 #include <unordered_map>
+#include <list>
 #include "hs-helper.h"
 
 
@@ -32,6 +33,7 @@ public:
     ~HS_Client();
 
     int handleRequest(afb_req_t request, const char *verb);
+    int pushEvent(const char *event, struct json_object *param);
 
 private:
     int tap_shortcut(afb_req_t request);
@@ -44,29 +46,21 @@ private:
     int unsubscribe(afb_req_t request);
     int showNotification(afb_req_t request);
     int showInformation(afb_req_t request);
+    int registerShortcut(afb_req_t request);
+    int updateShortcut(afb_req_t request);
 
     typedef int (HS_Client::*func_handler)(afb_req_t);
-    const std::unordered_map<std::string, func_handler> func_list {
-        {"tap_shortcut",        &HS_Client::tap_shortcut},
-        {"showWindow",          &HS_Client::showWindow},
-        {"hideWindow",          &HS_Client::hideWindow},
-        {"replyShowWindow",     &HS_Client::replyShowWindow},
-        {"on_screen_message",   &HS_Client::on_screen_message},
-        {"on_screen_reply",     &HS_Client::on_screen_reply},
-        {"subscribe",           &HS_Client::subscribe},
-        {"unsubscribe",         &HS_Client::unsubscribe},
-        {"showNotification",    &HS_Client::showNotification},
-        {"showInformation",     &HS_Client::showInformation}
-    };
+    static const std::unordered_map<std::string, func_handler> func_list;
     bool checkEvent(const char* event);
     bool isSupportEvent(const char* event);
+    void pushUpdateShortcutEvent(void);
 
 private:
     std::string my_id;
     afb_event_t my_event;
     bool subscription = false;
     std::unordered_set<std::string> event_list;
-
+    static std::list<std::pair<std::string, std::string>> shortcut_list;
 };
 
 #endif // HOMESCREEN_CLIENT_H
\ No newline at end of file