int LibHomeScreen::init(const int port, const string& token)
{
int ret = 0;
-
if(port > 0 && token.size() > 0)
{
mport = port;
HMI_DEBUG("libhomescreen","Initialized");
}
- mapp_id = std::getenv("AFM_ID");
- if(mapp_id.size()) {
- mapp_id.erase(mapp_id.find('@'));
- HMI_DEBUG("libhomescreen","My application id is: %s.", mapp_id);
- }
- else
- {
- HMI_ERROR("libhomescreen","Failed to get my application id");
- }
-
return ret;
}
* When HomeScreen shortcut area is tapped, sending a event
*
* #### Parameters
- * - application_id [in] : Tapped application id
+ * - application_id [in] : Tapped application id (label)
*
* #### Return
* - Returns 0 on success or -1 in case of error.
}
/*
-* event is like "homescreen/tap_shortcut"
-* msg is like {"event":"homescreen\/tap_shortcut","data":{"application_id":"hoge"},"jtype":"afb-event"}
+* event is like "homescreen/hvac"
+* msg is like {"event":"homescreen\/hvac","data":{"type":"tap_shortcut"},"jtype":"afb-event"}
* so you can get
event name : struct json_object obj = json_object_object_get(msg,"event")
*/
void LibHomeScreen::on_event(void *closure, const char *event, struct afb_wsj1_msg *msg)
{
+ HMI_DEBUG("libhomescreen","event: (%s) msg: (%s).", event, afb_wsj1_msg_object_s(msg));
+
if (strstr(event, API) == NULL) {
return;
}
struct json_object* ev_contents = afb_wsj1_msg_object_j(msg);
- struct json_object *json_data = json_object_object_get(ev_contents, "data");
+ struct json_object *json_data;
+ if(!json_object_object_get_ex(ev_contents, "data", &json_data)) {
+ HMI_ERROR("libhomescreen", "got ev_contents error.");
+ return;
+ }
if(onEvent != nullptr)
{
onEvent(ev, ev_contents);
}
- const char* event_only = strchr(event, '/');
- if (event_only != nullptr) {
- event_only = event_only + 1;
- }else{
- HMI_WARNING("libhomescreen","event_only is null.");
+ const char* event_type = nullptr;
+ struct json_object *json_event_type;
+ if(json_object_object_get_ex(json_data, "type", &json_event_type)) {
+ event_type = json_object_get_string(json_event_type);
+ }
+ else {
+ HMI_WARNING("libhomescreen","event_type is null.");
return;
}
- if (strcasecmp(event_only, LibHomeScreen::event_list[0].c_str()) == 0) {
- struct json_object *j_id;
- json_object_object_get_ex(json_data, "application_id", &j_id);
- const char* app_id = json_object_get_string(j_id);
-
- if(!strcasecmp(app_id, mapp_id.c_str())) {
- HMI_DEBUG("libhomescreen","send Event_TapShortcut to: (%s).", mapp_id.c_str());
- auto i = this->handlers.find(Event_TapShortcut);
- if ( i != this->handlers.end() ) {
- i->second(json_data);
- }
+ if (strcasecmp(event_type, LibHomeScreen::event_list[0].c_str()) == 0) {
+ auto i = this->handlers.find(Event_TapShortcut);
+ if ( i != this->handlers.end() ) {
+ i->second(json_data);
}
}
- else if (strcasecmp(event_only, LibHomeScreen::event_list[1].c_str()) == 0) {
+ else if (strcasecmp(event_type, LibHomeScreen::event_list[1].c_str()) == 0) {
auto i = this->handlers.find(Event_OnScreenMessage);
if ( i != this->handlers.end() ) {
i->second(json_data);
}
}
- else if (strcasecmp(event_only, LibHomeScreen::event_list[2].c_str()) == 0) {
+ else if (strcasecmp(event_type, LibHomeScreen::event_list[2].c_str()) == 0) {
auto i = this->handlers.find(Event_OnScreenReply);
if ( i != this->handlers.end() ) {
i->second(json_data);