2 * Copyright (c) 2011 - 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
23 #include <pkgmgr-info.h>
26 #include <app_internal.h>
32 #define LOG_TAG "CAPI_APPFW_APPLICATION"
34 int app_get_package_app_name(const char *appid, char **name)
36 char *name_token = NULL;
39 return app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
41 /* com.vendor.name -> name */
42 name_token = strrchr(appid, '.');
43 if (name_token == NULL)
44 return app_error(APP_ERROR_INVALID_CONTEXT, __FUNCTION__, NULL);
48 *name = strdup(name_token);
50 return app_error(APP_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
52 return APP_ERROR_NONE;
55 int app_get_package(char **package)
57 return app_get_id(package);
60 int app_get_id(char **id)
62 static char id_buf[TIZEN_PATH_MAX] = {0, };
66 return app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
68 if (id_buf[0] == '\0') {
69 ret = aul_app_get_appid_bypid(getpid(), id_buf, sizeof(id_buf));
71 return app_error(APP_ERROR_INVALID_CONTEXT, __FUNCTION__, "failed to get the application ID");
74 if (id_buf[0] == '\0')
75 return app_error(APP_ERROR_INVALID_CONTEXT, __FUNCTION__, "failed to get the application ID");
79 return app_error(APP_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
81 return APP_ERROR_NONE;
84 int app_get_name(char **name)
89 pkgmgrinfo_appinfo_h appinfo = NULL;
92 return app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
94 if (app_get_id(&appid) != 0)
95 return app_error(APP_ERROR_INVALID_CONTEXT, __FUNCTION__, "failed to get the package");
97 retval = pkgmgrinfo_appinfo_get_usr_appinfo(appid, getuid(), &appinfo);
100 return app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
103 retval = pkgmgrinfo_appinfo_get_label(appinfo, &label);
106 pkgmgrinfo_appinfo_destroy_appinfo(appinfo);
107 return app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
110 *name = strdup(label);
111 pkgmgrinfo_appinfo_destroy_appinfo(appinfo);
115 return app_error(APP_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
117 return APP_ERROR_NONE;
120 int app_get_version(char **version)
125 char *pkg_version = NULL;
126 pkgmgrinfo_pkginfo_h pkginfo = NULL;
127 pkgmgrinfo_appinfo_h appinfo = NULL;
130 return app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
132 if (app_get_id(&appid) != 0)
133 return app_error(APP_ERROR_INVALID_CONTEXT, __FUNCTION__, "failed to get the package");
135 retval = pkgmgrinfo_appinfo_get_usr_appinfo(appid, getuid(), &appinfo);
138 return app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
141 retval = pkgmgrinfo_appinfo_get_pkgid(appinfo, &pkgid);
144 pkgmgrinfo_appinfo_destroy_appinfo(appinfo);
145 return app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
148 retval = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &pkginfo);
151 pkgmgrinfo_appinfo_destroy_appinfo(appinfo);
152 return app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
155 retval = pkgmgrinfo_pkginfo_get_version(pkginfo, &pkg_version);
158 pkgmgrinfo_appinfo_destroy_appinfo(appinfo);
159 pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo);
160 return app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
163 *version = strdup(pkg_version);
164 pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo);
165 pkgmgrinfo_appinfo_destroy_appinfo(appinfo);
168 if (*version == NULL)
169 return app_error(APP_ERROR_OUT_OF_MEMORY, __FUNCTION__, NULL);
171 return APP_ERROR_NONE;