Add api for watch setup-appid 26/121426/2
authorHyunho Kang <hhstark.kang@samsung.com>
Tue, 28 Mar 2017 04:19:31 +0000 (13:19 +0900)
committerHyunho Kang <hhstark.kang@samsung.com>
Tue, 28 Mar 2017 05:36:10 +0000 (14:36 +0900)
- pkgmgrinfo_appinfo_get_setup_appid

Change-Id: I8b6f913fee88a4bfe01279230ef491b574fa1312
Signed-off-by: Hyunho Kang <hhstark.kang@samsung.com>
include/pkgmgr-info.h
include/pkgmgrinfo_basic.h
parser/src/pkgmgr_parser_db.c
src/pkgmgrinfo_appinfo.c
src/pkgmgrinfo_basic.c

index 471c881..3ca623a 100644 (file)
@@ -4810,6 +4810,22 @@ int pkgmgrinfo_appinfo_is_global(pkgmgrinfo_appinfo_h handle, bool *global);
 int pkgmgrinfo_appinfo_get_splash_screen_display(pkgmgrinfo_appinfo_h handle, bool *splash_screen_display);
 
 /**
+ * @fn int pkgmgrinfo_appinfo_get_setup_appid(pkgmgrinfo_appinfo_h handle, char **setup_appid)
+ * @brief      This API gets the application 'setup_appid' value from the app ID
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle          pointer to application info handle
+ * @param[out] setup_appid     pointer to hold package setup_appid value
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ */
+int pkgmgrinfo_appinfo_get_setup_appid(pkgmgrinfo_appinfo_h handle, char **setup_appid);
+
+/**
  * @fn int pkgmgrinfo_appinfo_is_support_ambient(pkgmgrinfo_appinfo_h handle, bool *support_ambient)
  * @brief      This API gets the application 'support_ambient' value from the app ID
  *
index 275fe65..617bb87 100644 (file)
@@ -139,6 +139,7 @@ typedef struct application_x {
        char *ui_gadget;        /*attr, default: "false"*/
        char *launch_mode;      /*attr, default: "single"*/
        char *support_ambient;  /*attr, default: "false"*/
+       char *setup_appid;      /*attr*/
        char *alias_appid;      /*attr*/
        char *effective_appid;  /*attr*/
        char *package_type;     /*set from package_x*/
index d5c516c..f3bfcd5 100644 (file)
@@ -181,6 +181,7 @@ sqlite3 *pkgmgr_cert_db;
                                                "app_effective_appid TEXT, " \
                                                "app_splash_screen_display TEXT NOT NULL DEFAULT 'true', " \
                                                "app_external_path TEXT, " \
+                                               "app_setup_appid TEXT, " \
                                                "FOREIGN KEY(package) " \
                                                "REFERENCES package_info(package) " \
                                                "ON DELETE CASCADE)"
@@ -1246,7 +1247,7 @@ static int __insert_application_info(manifest_x *mfx)
                        "app_launch_mode, app_ui_gadget, app_support_mode, app_support_disable, component_type, package, " \
                        "app_tep_name, app_zip_mount_file, app_background_category, app_package_type, app_root_path, " \
                        "app_api_version, app_effective_appid, app_splash_screen_display, app_package_system, app_removable, " \
-                       "app_package_installed_time, app_support_ambient) " \
+                       "app_package_installed_time, app_support_ambient, app_setup_appid) " \
                        "VALUES(" \
                        "%Q, %Q, %Q, LOWER(%Q), %Q, " \
                        "LOWER(%Q), LOWER(%Q), LOWER(%Q), LOWER(%Q), " \
@@ -1256,7 +1257,7 @@ static int __insert_application_info(manifest_x *mfx)
                        "COALESCE(%Q, 'caller'), LOWER(%Q), %Q, LOWER(%Q), %Q, %Q, " \
                        "%Q, %Q, %d, %Q, %Q, " \
                        "%Q, %Q, LOWER(%Q), LOWER(%Q), LOWER(%Q), " \
-                       "%Q, LOWER(%Q))", \
+                       "%Q, LOWER(%Q), %Q)", \
                        app->appid, app->component_type, app->exec, __get_bool(app->nodisplay, false), app->type,
                        __get_bool(app->onboot, false), __get_bool(app->multiple, false), __get_bool(app->autorestart, false), __get_bool(app->taskmanage, false),
                        app->hwacceleration, app->screenreader, app->mainapp, app->recentimage, app->launchcondition,
@@ -1265,7 +1266,8 @@ static int __insert_application_info(manifest_x *mfx)
                        __get_bool(mfx->preload, false), __get_bool(app->submode, false), app->submode_mainid, mfx->installed_storage, __get_bool(app->process_pool, false),
                        app->launch_mode, __get_bool(app->ui_gadget, false), mfx->support_mode, __get_bool(mfx->support_disable, false), app->component_type, mfx->package,
                        mfx->tep_name, mfx->zip_mount_file, background_value, type, mfx->root_path, mfx->api_version,
-                       effective_appid, __get_bool(app->splash_screen_display, false), __get_bool(mfx->system, false), __get_bool(mfx->removable, true), mfx->installed_time, __get_bool(app->support_ambient, false));
+                       effective_appid, __get_bool(app->splash_screen_display, false), __get_bool(mfx->system, false), __get_bool(mfx->removable, true),
+                       mfx->installed_time, __get_bool(app->support_ambient, false), app->setup_appid);
 
                ret = __exec_query(query);
                if (ret == -1) {
index a25f671..08db1f5 100644 (file)
@@ -563,7 +563,7 @@ static int _appinfo_get_applications(uid_t db_uid, uid_t uid,
                "ai.app_zip_mount_file, ai.component_type, ai.package, "
                "ai.app_external_path, ai.app_package_system, ai.app_removable, "
                "ai.app_package_installed_time, ai.app_support_mode, "
-               "ai.app_support_ambient";
+               "ai.app_support_ambient, ai.app_setup_appid";
        static const char query_label[] =
                ", COALESCE("
                "(SELECT app_label FROM package_app_localized_info WHERE ai.app_id=app_id AND app_locale=?), "
@@ -699,6 +699,7 @@ static int _appinfo_get_applications(uid_t db_uid, uid_t uid,
                _save_column_str(stmt, idx++, &info->package_installed_time);
                _save_column_str(stmt, idx++, &info->support_mode);
                _save_column_str(stmt, idx++, &info->support_ambient);
+               _save_column_str(stmt, idx++, &info->setup_appid);
 
                info->for_all_users =
                        strdup((db_uid != GLOBAL_USER) ? "false" : "true");
@@ -2799,6 +2800,22 @@ API int pkgmgrinfo_appinfo_get_splash_screen_display(pkgmgrinfo_appinfo_h handle
        return PMINFO_R_OK;
 }
 
+API int pkgmgrinfo_appinfo_get_setup_appid(pkgmgrinfo_appinfo_h handle, char **setup_appid)
+{
+       pkgmgr_appinfo_x *info = (pkgmgr_appinfo_x *)handle;
+
+       if (info == NULL || setup_appid == NULL) {
+               _LOGE("Invalid parameter");
+               return PMINFO_R_EINVAL;
+       }
+
+       if (info->app_info == NULL || info->app_info->setup_appid == NULL)
+               return PMINFO_R_ERROR;
+
+       *setup_appid = info->app_info->setup_appid;
+       return PMINFO_R_OK;
+}
+
 API int pkgmgrinfo_appinfo_is_support_ambient(pkgmgrinfo_appinfo_h handle,
                bool *support_ambient)
 {
index cd683ce..302143f 100644 (file)
@@ -335,6 +335,8 @@ static void __ps_free_application(gpointer data)
                free((void *)application->package_installed_time);
        if (application->support_mode)
                free((void *)application->support_mode);
+       if (application->setup_appid)
+               free((void *)application->setup_appid);
 
        /*Free Label*/
        g_list_free_full(application->label, __ps_free_label);