Apply PMINFO_APPINFO_PROP_PRIVILEGE 62/180762/2
authormk5004.lee <mk5004.lee@samsung.com>
Mon, 4 Jun 2018 04:47:51 +0000 (13:47 +0900)
committermk5004.lee <mk5004.lee@samsung.com>
Mon, 4 Jun 2018 09:30:40 +0000 (18:30 +0900)
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>
src/badge_setting_service.c

index 9a61b7d..8c5d92e 100644 (file)
@@ -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);