From: Jiwoong Im Date: Thu, 11 Jun 2015 05:52:39 +0000 (+0900) Subject: add apis to set/get launch mode X-Git-Tag: submit/tizen/20170725.231500~6^2~116 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=626e0bddc304dc9ea22d561507f0964a9e93feb3;p=platform%2Fcore%2Fapi%2Fpreference.git add apis to set/get launch mode Change-Id: Ia9219247433425735efc117d72bbe4f67c26913f Signed-off-by: Jiwoong Im --- 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;