summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormk5004.lee <mk5004.lee@samsung.com>2018-06-04 13:47:51 +0900
committermk5004.lee <mk5004.lee@samsung.com>2018-06-04 18:30:40 +0900
commit41a88adcf9914c1e65440ac2fc382add561e5c3c (patch)
treeb39b08f69a93faceb499a4a39dc0bab9faba7131
parentc7b29d648b0710d6b749576f1eb1bc675ee3ef5f (diff)
downloadbadge-41a88adcf9914c1e65440ac2fc382add561e5c3c.tar.gz
badge-41a88adcf9914c1e65440ac2fc382add561e5c3c.tar.bz2
badge-41a88adcf9914c1e65440ac2fc382add561e5c3c.zip
Apply PMINFO_APPINFO_PROP_PRIVILEGE
To optimize initializing db, apply the PMINFO_APPINFO_PROP_PRIVILEGE for retrieving some applictions. Change-Id: Ib32949b31e57068963725d440bbf81ed2e63da52 Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com> Signed-off-by: mk5004.lee <mk5004.lee@samsung.com>
-rw-r--r--src/badge_setting_service.c116
1 files changed, 47 insertions, 69 deletions
diff --git a/src/badge_setting_service.c b/src/badge_setting_service.c
index 9a61b7d..8c5d92e 100644
--- a/src/badge_setting_service.c
+++ b/src/badge_setting_service.c
@@ -466,61 +466,6 @@ out:
return 0;
}
-static int package_info_callback(const pkgmgrinfo_pkginfo_h package_info, void *user_data)
-{
- char *pkgname = NULL;
- int pkgmgr_ret = PACKAGE_MANAGER_ERROR_NONE;
- pkgmgrinfo_appinfo_filter_h handle = NULL;
- badge_setting_info *info = (badge_setting_info *)user_data;
-
- pkgmgr_ret = pkgmgrinfo_pkginfo_get_pkgname(package_info, &pkgname);
- if (pkgmgr_ret != PACKAGE_MANAGER_ERROR_NONE) {
- ERR("package_info_get_package failed [%d]", pkgmgr_ret);
- goto out;
- }
-
- pkgmgr_ret = pkgmgrinfo_appinfo_filter_create(&handle);
- if (pkgmgr_ret != PMINFO_R_OK) {
- /* LCOV_EXCL_START */
- ERR("pkgmgrinfo_appinfo_filter_create failed [%d]", pkgmgr_ret);
- goto out;
- /* LCOV_EXCL_STOP */
- }
-
- pkgmgr_ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_PACKAGE, pkgname);
- if (pkgmgr_ret != PMINFO_R_OK) {
- /* LCOV_EXCL_START */
- ERR("pkgmgrinfo_appinfo_filter_add_string failed [%d]",
- pkgmgr_ret);
- goto out;
- /* LCOV_EXCL_STOP */
- }
-
- pkgmgr_ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_NODISPLAY, false);
- if (pkgmgr_ret != PMINFO_R_OK) {
- /* LCOV_EXCL_START */
- ERR("pkgmgrinfo_appinfo_filter_add_bool failed [%d]",
- pkgmgr_ret);
- goto out;
- /* LCOV_EXCL_STOP */
- }
-
- pkgmgr_ret = pkgmgrinfo_appinfo_usr_filter_foreach_appinfo(handle, app_info_callback, info, info->uid);
- if (pkgmgr_ret != PMINFO_R_OK) {
- /* LCOV_EXCL_START */
- ERR("pkgmgrinfo_pkginfo_filter_foreach_appinfo failed [%d]",
- pkgmgr_ret);
- goto out;
- /* LCOV_EXCL_STOP */
- }
-
-out:
- if (handle)
- pkgmgrinfo_appinfo_filter_destroy(handle);
-
- return 0;
-}
-
EXPORT_API int badge_setting_insert_package_for_uid(const char *pkgname, uid_t uid)
{
sqlite3 *db;
@@ -528,7 +473,7 @@ EXPORT_API int badge_setting_insert_package_for_uid(const char *pkgname, uid_t u
int sqlite3_ret = SQLITE_OK;
int pkgmgr_ret = PACKAGE_MANAGER_ERROR_NONE;
badge_setting_info info;
- pkgmgrinfo_pkginfo_filter_h handle = NULL;
+ pkgmgrinfo_appinfo_filter_h handle = NULL;
sqlite3_ret = sqlite3_open_v2(BADGE_DB_PATH, &db, SQLITE_OPEN_READWRITE, NULL);
if (sqlite3_ret != SQLITE_OK || db == NULL) {
@@ -539,19 +484,30 @@ EXPORT_API int badge_setting_insert_package_for_uid(const char *pkgname, uid_t u
sqlite3_exec(db, "BEGIN immediate;", NULL, NULL, NULL);
- pkgmgr_ret = pkgmgrinfo_pkginfo_filter_create(&handle);
+ pkgmgr_ret = pkgmgrinfo_appinfo_filter_create(&handle);
+ if (pkgmgr_ret != PMINFO_R_OK) {
+ /* LCOV_EXCL_START */
+ ERR("pkgmgrinfo_appinfo_filter_create failed [%d]", pkgmgr_ret);
+ ret = BADGE_ERROR_FROM_DB;
+ goto out;
+ /* LCOV_EXCL_STOP */
+ }
+
+ pkgmgr_ret = pkgmgrinfo_appinfo_filter_add_string(handle,
+ PMINFO_APPINFO_PROP_PRIVILEGE, BADGE_PRIVILEGE);
if (pkgmgr_ret != PMINFO_R_OK) {
/* LCOV_EXCL_START */
- ERR("pkgmgrinfo_pkginfo_filter_create failed [%d]", pkgmgr_ret);
+ ERR("Failed to add string to appinfo_filter[%d]", pkgmgr_ret);
ret = BADGE_ERROR_FROM_DB;
goto out;
/* LCOV_EXCL_STOP */
}
- pkgmgr_ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_ID, pkgname);
+ pkgmgr_ret = pkgmgrinfo_appinfo_filter_add_string(handle,
+ PMINFO_APPINFO_PROP_APP_PACKAGE, pkgname);
if (pkgmgr_ret != PMINFO_R_OK) {
/* LCOV_EXCL_START */
- ERR("pkgmgrinfo_pkginfo_filter_add_string failed [%d]",
+ ERR("pkgmgrinfo_appinfo_filter_add_string failed [%d]",
pkgmgr_ret);
ret = BADGE_ERROR_FROM_DB;
goto out;
@@ -560,10 +516,11 @@ EXPORT_API int badge_setting_insert_package_for_uid(const char *pkgname, uid_t u
info.db = db;
info.uid = uid;
- pkgmgr_ret = pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo(handle, package_info_callback, &info, uid);
+ pkgmgr_ret = pkgmgrinfo_appinfo_usr_filter_foreach_appinfo(handle,
+ app_info_callback, &info, uid);
if (pkgmgr_ret != PMINFO_R_OK) {
/* LCOV_EXCL_START */
- ERR("pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo failed [%d]",
+ ERR("pkgmgrinfo_appinfo_usr_filter_foreach_appinfo failed [%d]",
pkgmgr_ret);
ret = BADGE_ERROR_FROM_DB;
goto out;
@@ -572,7 +529,7 @@ EXPORT_API int badge_setting_insert_package_for_uid(const char *pkgname, uid_t u
out:
if (handle)
- pkgmgrinfo_pkginfo_filter_destroy(handle);
+ pkgmgrinfo_appinfo_filter_destroy(handle);
if (db) {
if (ret == BADGE_ERROR_NONE)
sqlite3_exec(db, "END;", NULL, NULL, NULL);
@@ -647,7 +604,7 @@ EXPORT_API int badge_setting_refresh_setting_table(uid_t uid)
int pkgmgr_ret;
sqlite3 *db = NULL;
badge_setting_info info;
- pkgmgrinfo_pkginfo_filter_h filter;
+ pkgmgrinfo_appinfo_filter_h filter = NULL;
sql_ret = sqlite3_open_v2(BADGE_DB_PATH, &db, SQLITE_OPEN_READWRITE, NULL);
if (sql_ret != SQLITE_OK || db == NULL) {
@@ -657,21 +614,42 @@ EXPORT_API int badge_setting_refresh_setting_table(uid_t uid)
sqlite3_exec(db, "BEGIN immediate;", NULL, NULL, NULL);
- pkgmgr_ret = pkgmgrinfo_pkginfo_filter_create(&filter);
+ pkgmgr_ret = pkgmgrinfo_appinfo_filter_create(&filter);
if (pkgmgr_ret != PMINFO_R_OK) {
/* LCOV_EXCL_START */
- ERR("pkgmgrinfo_pkginfo_filter_create failed [%d]", pkgmgr_ret);
+ ERR("pkgmgrinfo_appinfo_filter_create failed [%d]", pkgmgr_ret);
ret = BADGE_ERROR_FROM_DB;
goto out;
/* LCOV_EXCL_STOP */
}
+ pkgmgr_ret = pkgmgrinfo_appinfo_filter_add_string(filter,
+ PMINFO_APPINFO_PROP_PRIVILEGE, BADGE_PRIVILEGE);
+ if (pkgmgr_ret != PMINFO_R_OK) {
+ /* LCOV_EXCL_START */
+ ERR("pkgmgrinfo_appinfo_filter_add_string failed [%d]",
+ pkgmgr_ret);
+ goto out;
+ /* LCOV_EXCL_STOP */
+ }
+
+ pkgmgr_ret = pkgmgrinfo_appinfo_filter_add_bool(filter,
+ PMINFO_APPINFO_PROP_APP_NODISPLAY, false);
+ if (pkgmgr_ret != PMINFO_R_OK) {
+ /* LCOV_EXCL_START */
+ ERR("pkgmgrinfo_appinfo_filter_add_bool failed [%d]",
+ pkgmgr_ret);
+ goto out;
+ /* LCOV_EXCL_STOP */
+ }
+
info.db = db;
info.uid = uid;
- pkgmgr_ret = pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo(filter, package_info_callback, &info, uid);
+ pkgmgr_ret = pkgmgrinfo_appinfo_usr_filter_foreach_appinfo(filter,
+ app_info_callback, &info, uid);
if (pkgmgr_ret != PMINFO_R_OK) {
/* LCOV_EXCL_START */
- ERR("pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo failed [%d]",
+ ERR("pkgmgrinfo_appinfo_usr_filter_foreach_appinfo failed [%d]",
pkgmgr_ret);
ret = BADGE_ERROR_FROM_DB;
goto out;
@@ -680,7 +658,7 @@ EXPORT_API int badge_setting_refresh_setting_table(uid_t uid)
out:
if (filter)
- pkgmgrinfo_pkginfo_filter_destroy(filter);
+ pkgmgrinfo_appinfo_filter_destroy(filter);
if (db) {
if (ret == BADGE_ERROR_NONE)
sqlite3_exec(db, "END;", NULL, NULL, NULL);