add new features in homescreen-service and homescreen
[src/libqthomescreen.git] / src / qlibhomescreen.cpp
index 13093c3..f769469 100644 (file)
@@ -24,7 +24,7 @@ using namespace std;
 #define _REQ_POPUP_MESSAGE "on_screen_message"
 #define _TAPSHORTCUT "tap_shortcut"
 #define _KEY_DATA "data"
-#define _KEY_APPLICATION_DATA "application_name"
+#define _KEY_APPLICATION_DATA "application_id"
 #define _KEY_REPLY_MESSAGE "reply_message"
 #define _KEY_REQUEST_MESSAGE "display_message"
 
@@ -169,14 +169,143 @@ void QLibHomeScreen::set_event_handler(enum QEventType et, handler_fun f)
  * tapShortcut function
  *
  * #### Parameters
- * - application_name : tapped application name
+ * - application_id : tapped application id
   *
  * #### Return
  * - None.
  *
  */
-void QLibHomeScreen::tapShortcut(QString application_name)
+void QLibHomeScreen::tapShortcut(QString application_id)
 {
-    HMI_DEBUG("qlibhomescreen","tapShortcut %s", application_name.toStdString().c_str());
-    this->mp_hs->tapShortcut(application_name.toStdString().c_str());
-}
\ No newline at end of file
+    HMI_DEBUG("qlibhomescreen","tapShortcut %s", application_id.toStdString().c_str());
+    mp_hs->showWindow(application_id.toStdString().c_str(), nullptr);
+}
+
+/**
+ * show application by application id
+ *
+ * #### Parameters
+ * - application_id  : application id
+ * - json  : json parameters
+ *
+ * #### Return
+ * - None.
+ *
+ */
+void QLibHomeScreen::showWindow(QString application_id, json_object* json)
+{
+    mp_hs->showWindow(application_id.toStdString().c_str(), json);
+}
+
+/**
+ * show application by application id, json string
+ *
+ * #### Parameters
+ * - application_id  : application id
+ * - json  : json parameters
+ *
+ * #### Return
+ * - None.
+ *
+ */
+void QLibHomeScreen::showWindow(QString application_id, QString json)
+{
+    if(json.isNull())
+        mp_hs->showWindow(application_id.toStdString().c_str(), nullptr);
+    else
+        mp_hs->showWindow(application_id.toStdString().c_str(), json_tokener_parse(json.toStdString().c_str()));
+}
+
+/**
+ * hide application by application id
+ *
+ * #### Parameters
+ * - application_id  : application id
+ *
+ * #### Return
+ * - None.
+ *
+ */
+void QLibHomeScreen::hideWindow(QString application_id)
+{
+    mp_hs->hideWindow(application_id.toStdString().c_str());
+}
+
+/**
+ * send onscreen or software keyboard message to application
+ *
+ * #### Parameters
+ * - application_id  : application id
+ * - json  : json parameters
+ *
+ * #### Return
+ * - None.
+ *
+ */
+void QLibHomeScreen::replyShowWindow(QString application_id, json_object* json)
+{
+    mp_hs->replyShowWindow(application_id.toStdString().c_str(), json);
+}
+
+/**
+ * send onscreen or software keyboard message to application
+ *
+ * #### Parameters
+ * - application_id  : application id
+ * - json  : json parameters
+ *
+ * #### Return
+ * - None.
+ *
+ */
+void QLibHomeScreen::replyShowWindow(QString application_id, QString json)
+{
+    if(json.isNull())
+        mp_hs->replyShowWindow(application_id.toStdString().c_str(), nullptr);
+    else
+        mp_hs->replyShowWindow(application_id.toStdString().c_str(), json_tokener_parse(json.toStdString().c_str()));
+}
+
+/**
+ * show information
+ *
+ * use libhomescreen api to push information to menubarApp
+ *
+ * #### Parameters
+ * - params : json parameters
+ *
+ * #### Return
+ * - None.
+ *
+ */
+void QLibHomeScreen::showInformation(QString info)
+{
+       struct json_object* j_obj = json_object_new_object();
+       struct json_object* val = json_object_new_string(info.toStdString().c_str());
+       json_object_object_add(j_obj, "info", val);
+
+    mp_hs->showInformation(j_obj);
+}
+
+/**
+ * show notification
+ *
+ * use libhomescreen api to push notification to menubarApp
+ *
+ * #### Parameters
+ * - params : json parameters
+ *
+ * #### Resturn
+ * - None.
+ *
+ */
+void QLibHomeScreen::showNotification(QString icon, QString text)
+{
+       struct json_object* j_obj = json_object_new_object();
+       struct json_object* val_icon = json_object_new_string(icon.toStdString().c_str());
+       struct json_object* val_text = json_object_new_string(text.toStdString().c_str());
+       json_object_object_add(j_obj, "icon", val_icon);
+       json_object_object_add(j_obj, "text", val_text);
+
+    mp_hs->showNotification(j_obj);
+}