diff options
author | Jiwoong Im <jiwoong.im@samsung.com> | 2015-06-11 14:52:39 +0900 |
---|---|---|
committer | Jiwoong Im <jiwoong.im@samsung.com> | 2015-06-11 14:52:39 +0900 |
commit | 626e0bddc304dc9ea22d561507f0964a9e93feb3 (patch) | |
tree | 689d78c3c281487534879aa61ada13e3fe3cfa1d /app_control | |
parent | ba3841dce24c90e1795436997fa408696ed21311 (diff) | |
download | application-626e0bddc304dc9ea22d561507f0964a9e93feb3.tar.gz application-626e0bddc304dc9ea22d561507f0964a9e93feb3.tar.bz2 application-626e0bddc304dc9ea22d561507f0964a9e93feb3.zip |
add apis to set/get launch modesubmit/tizen/20150615.091318accepted/tizen/wearable/20150616.011000accepted/tizen/tv/20150616.010946accepted/tizen/mobile/20150616.010932
Change-Id: Ia9219247433425735efc117d72bbe4f67c26913f
Signed-off-by: Jiwoong Im <jiwoong.im@samsung.com>
Diffstat (limited to 'app_control')
-rw-r--r-- | app_control/app_control.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/app_control/app_control.c b/app_control/app_control.c index b1d7ee7..33c2352 100644 --- a/app_control/app_control.c +++ b/app_control/app_control.c @@ -48,6 +48,10 @@ #define BUNDLE_KEY_WINDOW "__APP_SVC_K_WIN_ID__" #define BUNDLE_KEY_CATEGORY "__APP_SVC_CATEGORY__" +#define LAUNCH_MODE_SIZE 8 +#define LAUNCH_MODE_SINGLE "single" +#define LAUNCH_MODE_GROUP "group" + typedef enum { APP_CONTROL_TYPE_REQUEST, APP_CONTROL_TYPE_EVENT, @@ -684,6 +688,61 @@ int app_control_clone(app_control_h *clone, app_control_h app_control) return APP_CONTROL_ERROR_NONE; } +int app_control_set_launch_mode(app_control_h app_control, + app_control_launch_mode_e mode) +{ + char launch_mode[LAUNCH_MODE_SIZE] = { 0, }; + + if (app_control_validate(app_control)) { + return app_control_error(APP_CONTROL_ERROR_INVALID_PARAMETER, + __FUNCTION__, NULL); + } + + switch (mode) { + case APP_CONTROL_LAUNCH_MODE_SINGLE: + strncpy(launch_mode, LAUNCH_MODE_SINGLE, strlen(LAUNCH_MODE_SINGLE)); + break; + case APP_CONTROL_LAUNCH_MODE_GROUP: + strncpy(launch_mode, LAUNCH_MODE_GROUP, strlen(LAUNCH_MODE_GROUP)); + break; + default: + return app_control_error(APP_CONTROL_ERROR_INVALID_PARAMETER, + __FUNCTION__, "invalid mode"); + } + + return appsvc_set_launch_mode(app_control->data, launch_mode); +} + +int app_control_get_launch_mode(app_control_h app_control, + app_control_launch_mode_e *mode) +{ + const char *launch_mode; + + if (app_control_validate(app_control)) { + return app_control_error(APP_CONTROL_ERROR_INVALID_PARAMETER, + __FUNCTION__, NULL); + } + + launch_mode = appsvc_get_launch_mode(app_control->data); + if (launch_mode == NULL) { + *mode = APP_CONTROL_LAUNCH_MODE_SINGLE; + return app_control_error(APP_CONTROL_ERROR_INVALID_PARAMETER, + __FUNCTION__, "fail to get launch_mode"); + } else { + if (!strcmp(launch_mode, LAUNCH_MODE_SINGLE)) { + *mode = APP_CONTROL_LAUNCH_MODE_SINGLE; + } else if (!strcmp(launch_mode, LAUNCH_MODE_GROUP)) { + *mode = APP_CONTROL_LAUNCH_MODE_GROUP; + } else { + *mode = APP_CONTROL_LAUNCH_MODE_SINGLE; + return app_control_error(APP_CONTROL_ERROR_INVALID_PARAMETER, + __FUNCTION__, "launch_mode is not matched"); + } + } + + return APP_CONTROL_ERROR_NONE; +} + int app_control_send_launch_request(app_control_h app_control, app_control_reply_cb callback, void *user_data) { const char *operation; |