Each user can disable global app separately 66/56866/5 accepted/tizen/mobile/20160122.031241 accepted/tizen/mobile/20160129.083355 accepted/tizen/tv/20160122.031302 accepted/tizen/tv/20160129.083419 accepted/tizen/wearable/20160122.031319 accepted/tizen/wearable/20160129.083441 submit/tizen/20160120.053637 submit/tizen/20160127.110348
authorJunghyun Yeon <jungh.yeon@samsung.com>
Wed, 13 Jan 2016 08:20:24 +0000 (17:20 +0900)
committerJunghyun Yeon <jungh.yeon@samsung.com>
Wed, 20 Jan 2016 00:33:37 +0000 (09:33 +0900)
Changes applied at [slp-pkgmgr][pkgmgr-info][pkgmgr-server]

Change-Id: Iab92e323553ab6f58ef330ac9f7b1d37b0094293
Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
include/pkgmgr-server.h
src/pkgmgr-server.c
src/request.c

index 8ab7247..41f0ee8 100644 (file)
@@ -53,6 +53,8 @@ enum request_type {
        PKGMGR_REQUEST_TYPE_GETSIZE,
        PKGMGR_REQUEST_TYPE_CLEARDATA,
        PKGMGR_REQUEST_TYPE_CLEARCACHE,
+       PKGMGR_REQUEST_TYPE_ENABLE_GLOBAL_APP,
+       PKGMGR_REQUEST_TYPE_DISABLE_GLOBAL_APP,
        PKGMGR_REQUEST_TYPE_KILL,
        PKGMGR_REQUEST_TYPE_CHECK,
        PKGMGR_REQUEST_TYPE_GENERATE_LICENSE_REQUEST,
index 0971777..67db3f7 100644 (file)
@@ -802,6 +802,16 @@ static void __process_disable(pm_dbus_msg *item)
        /* TODO */
 }
 
+static void __process_enable_global_app(pm_dbus_msg *item)
+{
+       pkgmgr_parser_update_global_app_disable_info_in_db(item->pkgid, item->uid, 0);
+}
+
+static void __process_disable_global_app(pm_dbus_msg *item)
+{
+       pkgmgr_parser_update_global_app_disable_info_in_db(item->pkgid, item->uid, 1);
+}
+
 static void __process_getsize(pm_dbus_msg *item)
 {
        char **args_vector;
@@ -1016,6 +1026,12 @@ gboolean queue_job(void *data)
                case PKGMGR_REQUEST_TYPE_CLEARCACHE:
                        __process_clearcache(item);
                        break;
+               case PKGMGR_REQUEST_TYPE_ENABLE_GLOBAL_APP:
+                       __process_enable_global_app(item);
+                       break;
+               case PKGMGR_REQUEST_TYPE_DISABLE_GLOBAL_APP:
+                       __process_disable_global_app(item);
+                       break;
                case PKGMGR_REQUEST_TYPE_KILL:
                        __process_kill(item);
                        break;
index 0019428..ca27a2e 100644 (file)
@@ -62,6 +62,16 @@ static const char instropection_xml[] =
        "      <arg type='s' name='appid' direction='in'/>"
        "      <arg type='i' name='ret' direction='out'/>"
        "    </method>"
+       "    <method name='enable_global_app'>"
+       "      <arg type='u' name='uid' direction='in'/>"
+       "      <arg type='s' name='appid' direction='in'/>"
+       "      <arg type='i' name='ret' direction='out'/>"
+       "    </method>"
+       "    <method name='disable_global_app'>"
+       "      <arg type='u' name='uid' direction='in'/>"
+       "      <arg type='s' name='appid' direction='in'/>"
+       "      <arg type='i' name='ret' direction='out'/>"
+       "    </method>"
        "    <method name='getsize'>"
        "      <arg type='u' name='uid' direction='in'/>"
        "      <arg type='s' name='pkgid' direction='in'/>"
@@ -324,7 +334,7 @@ static int __handle_request_enable(uid_t uid,
                return -1;
        }
 
-       if (_pm_queue_push(target_uid, "", PKGMGR_REQUEST_TYPE_ENABLE, "pkg",
+       if (_pm_queue_push(target_uid, "", PKGMGR_REQUEST_TYPE_ENABLE, "none",
                                pkgid, "")) {
                g_dbus_method_invocation_return_value(invocation,
                                g_variant_new("(i)", PKGMGR_R_ESYSTEM));
@@ -350,7 +360,7 @@ static int __handle_request_disable(uid_t uid,
                return -1;
        }
 
-       if (_pm_queue_push(target_uid, "", PKGMGR_REQUEST_TYPE_DISABLE, "pkg",
+       if (_pm_queue_push(target_uid, "", PKGMGR_REQUEST_TYPE_DISABLE, "none",
                                pkgid, "")) {
                g_dbus_method_invocation_return_value(invocation,
                                g_variant_new("(i)", PKGMGR_R_ESYSTEM));
@@ -363,6 +373,58 @@ static int __handle_request_disable(uid_t uid,
        return 0;
 }
 
+static int __handle_request_enable_global_app(uid_t uid,
+               GDBusMethodInvocation *invocation, GVariant *parameters)
+{
+       uid_t target_uid = (uid_t)-1;
+       char *appid = NULL;
+
+       g_variant_get(parameters, "(u&s)", &target_uid, &appid);
+       if (target_uid == (uid_t)-1 || appid == NULL) {
+               g_dbus_method_invocation_return_value(invocation,
+                               g_variant_new("(i)", PKGMGR_R_ECOMM));
+               return -1;
+       }
+
+       if (_pm_queue_push(target_uid, "", PKGMGR_REQUEST_TYPE_ENABLE_GLOBAL_APP, "none",
+                               appid, "")) {
+               g_dbus_method_invocation_return_value(invocation,
+                               g_variant_new("(i)", PKGMGR_R_ESYSTEM));
+               return -1;
+       }
+
+       g_dbus_method_invocation_return_value(invocation,
+                       g_variant_new("(i)", PKGMGR_R_OK));
+
+       return 0;
+}
+
+static int __handle_request_disable_global_app(uid_t uid,
+               GDBusMethodInvocation *invocation, GVariant *parameters)
+{
+       uid_t target_uid = (uid_t)-1;
+       char *appid = NULL;
+
+       g_variant_get(parameters, "(u&s)", &target_uid, &appid);
+       if (target_uid == (uid_t)-1 || appid == NULL) {
+               g_dbus_method_invocation_return_value(invocation,
+                               g_variant_new("(i)", PKGMGR_R_ECOMM));
+               return -1;
+       }
+
+       if (_pm_queue_push(target_uid, "", PKGMGR_REQUEST_TYPE_DISABLE_GLOBAL_APP, "none",
+                               appid, "")) {
+               g_dbus_method_invocation_return_value(invocation,
+                               g_variant_new("(i)", PKGMGR_R_ESYSTEM));
+               return -1;
+       }
+
+       g_dbus_method_invocation_return_value(invocation,
+                       g_variant_new("(i)", PKGMGR_R_OK));
+
+       return 0;
+}
+
 static int __handle_request_getsize(uid_t uid,
                GDBusMethodInvocation *invocation, GVariant *parameters)
 {
@@ -668,6 +730,10 @@ static void __handle_method_call(GDBusConnection *connection,
                ret = __handle_request_getsize(uid, invocation, parameters);
        else if (g_strcmp0(method_name, "clearcache") == 0)
                ret = __handle_request_clearcache(uid, invocation, parameters);
+       else if (g_strcmp0(method_name, "enable_global_app") == 0)
+               ret = __handle_request_enable_global_app(uid, invocation, parameters);
+       else if (g_strcmp0(method_name, "disable_global_app") == 0)
+               ret = __handle_request_disable_global_app(uid, invocation, parameters);
        else if (g_strcmp0(method_name, "kill") == 0)
                ret = __handle_request_kill(uid, invocation, parameters);
        else if (g_strcmp0(method_name, "check") == 0)