diff options
author | hyunho <hhstark.kang@samsung.com> | 2018-04-04 19:14:44 +0900 |
---|---|---|
committer | hyunho <hhstark.kang@samsung.com> | 2018-04-05 13:04:48 +0900 |
commit | 08fa3316cc659cf28977eb0477d89d35c6b7434c (patch) | |
tree | 6b29bd1f9d2f7f0a90eb12636d042f650c31e060 | |
parent | 9dfe64cb537298e73a1589151df6e8b33794a129 (diff) | |
download | aul-1-08fa3316cc659cf28977eb0477d89d35c6b7434c.tar.gz aul-1-08fa3316cc659cf28977eb0477d89d35c6b7434c.tar.bz2 aul-1-08fa3316cc659cf28977eb0477d89d35c6b7434c.zip |
Add complication launch with extra API
- aul_complication_launch_with_extra_data
Change-Id: I2f647e13d5ed1bf3ab72b21e46af9926e0ce12d8
Signed-off-by: hyunho <hhstark.kang@samsung.com>
-rwxr-xr-x | include/aul_complication.h | 3 | ||||
-rwxr-xr-x | src/aul_complication.c | 62 |
2 files changed, 64 insertions, 1 deletions
diff --git a/include/aul_complication.h b/include/aul_complication.h index ac072fe6..3990b2d5 100755 --- a/include/aul_complication.h +++ b/include/aul_complication.h @@ -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 } diff --git a/src/aul_complication.c b/src/aul_complication.c index 53ca32d4..602e7e86 100755 --- a/src/aul_complication.c +++ b/src/aul_complication.c @@ -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; +} |