From: Hyunho Kang Date: Tue, 28 Mar 2017 04:19:31 +0000 (+0900) Subject: Add api for watch setup-appid X-Git-Tag: accepted/tizen/common/20170330.151942~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F26%2F121426%2F2;p=platform%2Fcore%2Fappfw%2Fpkgmgr-info.git Add api for watch setup-appid - pkgmgrinfo_appinfo_get_setup_appid Change-Id: I8b6f913fee88a4bfe01279230ef491b574fa1312 Signed-off-by: Hyunho Kang --- diff --git a/include/pkgmgr-info.h b/include/pkgmgr-info.h index 471c881..3ca623a 100644 --- a/include/pkgmgr-info.h +++ b/include/pkgmgr-info.h @@ -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 * diff --git a/include/pkgmgrinfo_basic.h b/include/pkgmgrinfo_basic.h index 275fe65..617bb87 100644 --- a/include/pkgmgrinfo_basic.h +++ b/include/pkgmgrinfo_basic.h @@ -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*/ diff --git a/parser/src/pkgmgr_parser_db.c b/parser/src/pkgmgr_parser_db.c index d5c516c..f3bfcd5 100644 --- a/parser/src/pkgmgr_parser_db.c +++ b/parser/src/pkgmgr_parser_db.c @@ -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) { diff --git a/src/pkgmgrinfo_appinfo.c b/src/pkgmgrinfo_appinfo.c index a25f671..08db1f5 100644 --- a/src/pkgmgrinfo_appinfo.c +++ b/src/pkgmgrinfo_appinfo.c @@ -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) { diff --git a/src/pkgmgrinfo_basic.c b/src/pkgmgrinfo_basic.c index cd683ce..302143f 100644 --- a/src/pkgmgrinfo_basic.c +++ b/src/pkgmgrinfo_basic.c @@ -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);