From: Ilho Kim Date: Thu, 2 May 2024 09:31:59 +0000 (+0900) Subject: Fix activate, deactivate apps with --global option X-Git-Tag: accepted/tizen/unified/20240813.181631~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=23dccdd0d2c82f21658e1249f943c51df44cd9ba;p=platform%2Fcore%2Fappfw%2Fpkgmgr-tool.git Fix activate, deactivate apps with --global option Fix the "--global" option for activate, deactivate of global app Change-Id: I5fd5eb1173106d5fd6769ac3a7ded5f394fde680 Signed-off-by: Ilho Kim --- diff --git a/src/pkgcmd/pkg_cmd.c b/src/pkgcmd/pkg_cmd.c index 8a0f68c..44af6e8 100644 --- a/src/pkgcmd/pkg_cmd.c +++ b/src/pkgcmd/pkg_cmd.c @@ -1111,40 +1111,34 @@ static int __activate_app(pkgmgr_client *pc, } pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h); - if (data->global) { - if (data->uid != -1) - /* enable global app for this user only */ - ret = pkgmgr_client_activate_global_app_for_uid(pc, - data->pkgid, __app_return_cb, data, - __get_current_user_id()); - else - /* enable global app for all user */ - ret = pkgmgr_client_usr_activate_app(pc, data->pkgid, - __app_return_cb, data, GLOBAL_USER); - } else { - /* enable local apps */ - n_apps = g_list_length(data->pkgs); - if (n_apps) { - pkgs = malloc(sizeof(char *) * n_apps); - if (pkgs == NULL) { - printf("Out of memory\n"); - return -1; - } + if (data->global && data->uid != -1) { + /* enable global app for this user only */ + ret = pkgmgr_client_activate_global_app_for_uid(pc, + data->pkgid, __app_return_cb, data, + __get_current_user_id()); + } else if ((n_apps = g_list_length(data->pkgs)) != 0) { + /* enable apps for uid */ + pkgs = malloc(sizeof(char *) * n_apps); + if (pkgs == NULL) { + printf("Out of memory\n"); + return -1; + } - for (list = data->pkgs, i = 0; list; list = list->next, i++) - pkgs[i] = (char *)list->data; + for (list = data->pkgs, i = 0; list; list = list->next, i++) + pkgs[i] = (char *)list->data; - data->end_count = n_apps; - ret = pkgmgr_client_usr_activate_apps(pc, pkgs, n_apps, - __apps_return_cb, data, target_uid); + data->end_count = n_apps; + ret = pkgmgr_client_usr_activate_apps(pc, pkgs, n_apps, + __apps_return_cb, data, + (data->global ? GLOBAL_USER : target_uid)); - if (pkgs) - free(pkgs); - } else { - /* enable local app */ + if (pkgs) + free(pkgs); + } else { + /* enable app for uid */ ret = pkgmgr_client_usr_activate_app(pc, data->pkgid, - __app_return_cb, data, target_uid); - } + __app_return_cb, data, + (data->global ? GLOBAL_USER : target_uid)); } return ret; @@ -1239,44 +1233,38 @@ static int __deactivate_app(pkgmgr_client *pc, } pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h); - if (data->global) { - if (data->uid != -1 && data->uid != getuid()) { + if (data->global && data->uid != -1) { + if (data->uid != getuid()) { printf("Invalid uid : %d\n", data->uid); return -1; } - if (data->uid != -1) - /* disable global app for this user only */ - ret = pkgmgr_client_deactivate_global_app_for_uid(pc, - data->pkgid, __app_return_cb, NULL, - __get_current_user_id()); - else - /* disable global app for all user */ - ret = pkgmgr_client_usr_deactivate_app(pc, data->pkgid, - __app_return_cb, NULL, GLOBAL_USER); - } else { - /* disable local apps */ - n_apps = g_list_length(data->pkgs); - if (n_apps) { - pkgs = malloc(sizeof(char *) * n_apps); - if (pkgs == NULL) { - printf("Out of memory\n"); - return -1; - } + /* disable global app for this user only */ + ret = pkgmgr_client_deactivate_global_app_for_uid(pc, + data->pkgid, __app_return_cb, NULL, + __get_current_user_id()); + } else if ((n_apps = g_list_length(data->pkgs)) != 0) { + /* disable apps for uid */ + pkgs = malloc(sizeof(char *) * n_apps); + if (pkgs == NULL) { + printf("Out of memory\n"); + return -1; + } - for (list = data->pkgs, i = 0; list; list = list->next, i++) - pkgs[i] = (char *)list->data; + for (list = data->pkgs, i = 0; list; list = list->next, i++) + pkgs[i] = (char *)list->data; - data->end_count = n_apps; - ret = pkgmgr_client_usr_deactivate_apps(pc, pkgs, n_apps, - __apps_return_cb, data, target_uid); + data->end_count = n_apps; + ret = pkgmgr_client_usr_deactivate_apps(pc, pkgs, n_apps, + __apps_return_cb, data, + (data->global ? GLOBAL_USER : target_uid)); + + free(pkgs); + } else { + /* disable app for uid */ + ret = pkgmgr_client_usr_deactivate_app(pc, data->pkgid, + __app_return_cb, NULL, + (data->global ? GLOBAL_USER : target_uid)); - if (pkgs) - free(pkgs); - } else { - /* disable local app */ - ret = pkgmgr_client_usr_deactivate_app(pc, data->pkgid, - __app_return_cb, NULL, target_uid); - } } return ret;