diff options
author | mk5004.lee <mk5004.lee@samsung.com> | 2018-06-04 13:47:51 +0900 |
---|---|---|
committer | mk5004.lee <mk5004.lee@samsung.com> | 2018-06-04 18:30:40 +0900 |
commit | 41a88adcf9914c1e65440ac2fc382add561e5c3c (patch) | |
tree | b39b08f69a93faceb499a4a39dc0bab9faba7131 | |
parent | c7b29d648b0710d6b749576f1eb1bc675ee3ef5f (diff) | |
download | badge-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.c | 116 |
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); |