+ afb_req_fail_f(request, "afb_req_unsubscribe failed", "called %s.", __FUNCTION__);
+ }
+ else {
+ struct json_object *res = json_object_new_object();
+ hs_add_object_to_json_object_func(res, __FUNCTION__, 2,
+ _error, ret);
+ afb_req_success_f(request, res, "homescreen binder unsubscribe success.");
+ }
+}
+
+/**
+ * showWindow event
+ *
+ * #### Parameters
+ * - request : the request
+ *
+ * #### Return
+ * None
+ *
+ */
+static void showWindow(afb_req_t request)
+{
+ int ret = 0;
+ const char* value = afb_req_value(request, _application_id);
+ if (value) {
+ ret = g_hs_instance->client_manager->handleRequest(request, __FUNCTION__, value);
+ if(ret == AFB_REQ_NOT_STARTED_APPLICATION) {
+ std::string id = g_hs_instance->app_info->getAppProperty(value, _keyId);
+ if (!id.empty()) {
+ HS_AfmMainProxy afm_proxy;
+ afm_proxy.start(g_hs_instance, request, id);
+ ret = 0;
+ } else {
+ ret = AFB_EVENT_BAD_REQUEST;
+ }
+ }
+ }
+ else {
+ ret = AFB_EVENT_BAD_REQUEST;
+ }
+
+ if (ret) {
+ afb_req_fail_f(request, "failed", "called %s, Unknown parameter", __FUNCTION__);
+ }
+ else {
+ struct json_object *res = json_object_new_object();
+ hs_add_object_to_json_object_func(res, __FUNCTION__, 2,
+ _error, ret);
+ afb_req_success(request, res, "afb_event_push event [showWindow]");
+ }
+}
+
+/**
+ * hideWindow event
+ *
+ * #### Parameters
+ * - request : the request
+ *
+ * #### Return
+ * None
+ *
+ */
+static void hideWindow(afb_req_t request)
+{
+ int ret = 0;
+ const char* value = afb_req_value(request, _application_id);
+ if (value) {
+ ret = g_hs_instance->client_manager->handleRequest(request, __FUNCTION__, value);
+ }
+ else {
+ ret = AFB_EVENT_BAD_REQUEST;
+ }
+
+ if (ret) {
+ afb_req_fail_f(request, "failed", "called %s, Unknown parameter", __FUNCTION__);
+ }
+ else {
+ struct json_object *res = json_object_new_object();
+ hs_add_object_to_json_object_func(res, __FUNCTION__, 2,
+ _error, ret);
+ afb_req_success(request, res, "afb_event_push event [hideWindow]");
+ }
+}
+
+/**
+ * replyShowWindow event
+ *
+ * #### Parameters
+ * - request : the request
+ *
+ * #### Return
+ * None
+ *
+ */
+static void replyShowWindow(afb_req_t request)
+{
+ int ret = 0;
+ const char* value = afb_req_value(request, _application_id);
+ if (value) {
+ ret = g_hs_instance->client_manager->handleRequest(request, __FUNCTION__, value);
+ }
+ else {
+ ret = AFB_EVENT_BAD_REQUEST;
+ }
+
+ if (ret) {
+ afb_req_fail_f(request, "failed", "called %s, Unknown parameter", __FUNCTION__);
+ }
+ else {
+ struct json_object *res = json_object_new_object();
+ hs_add_object_to_json_object_func(res, __FUNCTION__, 2,
+ _error, ret);
+ afb_req_success(request, res, "afb_event_push event [replyShowWindow]");
+ }
+}
+
+/**
+ * showNotification event
+ *
+ * the contents to homescreen which display at top area.
+ *
+ * #### Parameters
+ * - request : the request
+ *
+ * #### Return
+ * None
+ *
+ */
+static void showNotification(afb_req_t request)
+{
+ int ret = g_hs_instance->client_manager->handleRequest(request, __FUNCTION__, "homescreen");
+ if (ret) {
+ afb_req_fail_f(request, "failed", "called %s, Unknown parameter", __FUNCTION__);
+ }
+ else {
+ struct json_object *res = json_object_new_object();
+ hs_add_object_to_json_object_func(res, __FUNCTION__, 2,
+ _error, ret);
+ afb_req_success(request, res, "afb_event_push event [showNotification]");