Fix activate, deactivate apps with --global option 94/310594/5
authorIlho Kim <ilho159.kim@samsung.com>
Thu, 2 May 2024 09:31:59 +0000 (18:31 +0900)
committerIlho Kim <ilho159.kim@samsung.com>
Fri, 3 May 2024 04:34:34 +0000 (13:34 +0900)
Fix the "--global" option for activate, deactivate of global app

Change-Id: I5fd5eb1173106d5fd6769ac3a7ded5f394fde680
Signed-off-by: Ilho Kim <ilho159.kim@samsung.com>
src/pkgcmd/pkg_cmd.c

index 8a0f68c218b8dd6e9be6a2d4ae146a5b2a8427f7..44af6e80b83ef9f3ffab15d77eda2f503a3d5c88 100644 (file)
@@ -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;