Add complication launch with extra API 24/174824/2
authorhyunho <hhstark.kang@samsung.com>
Wed, 4 Apr 2018 10:14:44 +0000 (19:14 +0900)
committerhyunho <hhstark.kang@samsung.com>
Thu, 5 Apr 2018 04:04:48 +0000 (13:04 +0900)
- aul_complication_launch_with_extra_data

Change-Id: I2f647e13d5ed1bf3ab72b21e46af9926e0ce12d8
Signed-off-by: hyunho <hhstark.kang@samsung.com>
include/aul_complication.h
src/aul_complication.c

index ac072fe..3990b2d 100755 (executable)
@@ -22,7 +22,8 @@ extern "C" {
 #endif
 
 int aul_complication_update_request(const char *appid, const char *provider_appid, uid_t uid);
-
+int aul_complication_launch_with_extra_data(const char *appid,
+               const char *provider_appid, uid_t uid, const char *key, char *value);
 
 #ifdef __cplusplus
 }
index 53ca32d..602e7e8 100755 (executable)
@@ -79,3 +79,65 @@ API int aul_complication_update_request(const char *appid, const char *provider_
 
        return AUL_R_OK;
 }
+
+API int aul_complication_launch_with_extra_data(const char *appid,
+               const char *provider_appid, uid_t uid, const char *key, char *value)
+{
+       bundle *b;
+       int r;
+       char buf[MAX_UID_STR_BUFSZ];
+
+       if (!appid || !provider_appid || !key || !value) {
+               _E("Invalid parameter");
+               return AUL_R_EINVAL;
+       }
+
+       b = bundle_create();
+       if (!b) {
+               _E("Out of memory");
+               return AUL_R_ERROR;
+       }
+
+       r = bundle_add(b, AUL_K_CALLER_APPID, appid);
+       if (r != BUNDLE_ERROR_NONE) {
+               _E("Failed to add appid(%s)", appid);
+               bundle_free(b);
+               return AUL_R_ERROR;
+       }
+
+       r = bundle_add(b, AUL_K_APPID, provider_appid);
+       if (r != BUNDLE_ERROR_NONE) {
+               _E("Failed to add provider_appid(%s)", provider_appid);
+               bundle_free(b);
+               return AUL_R_ERROR;
+       }
+
+       snprintf(buf, sizeof(buf), "%d", uid);
+       r = bundle_add(b, AUL_K_TARGET_UID, buf);
+       if (r != BUNDLE_ERROR_NONE) {
+               _E("Failed to add uid(%d)", uid);
+               bundle_free(b);
+               return AUL_R_ERROR;
+       }
+
+       if (key && value) {
+               r = bundle_add(b, key, value);
+               if (r != BUNDLE_ERROR_NONE) {
+                       _E("Failed to add key value data (%s)", key);
+                       bundle_free(b);
+                       return AUL_R_ERROR;
+               }
+       }
+
+       r = aul_sock_send_bundle(AUL_UTIL_PID, getuid(),
+               COMPLICATION_UPDATE_REQUEST, b, AUL_SOCK_QUEUE);
+       if (r < 0) {
+               _E("Failed to send request(%d:%s)",
+                               COMPLICATION_UPDATE_REQUEST, appid);
+               bundle_free(b);
+               return r;
+       }
+       bundle_free(b);
+
+       return AUL_R_OK;
+}