X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fpkgmgrinfo_private.c;h=1d314300dd0b497250e4783c5d2ff3247376d490;hb=ff4ec1895ee086c291bfce33f4e3e1baf2a16fd7;hp=7e26eb0d942829ee8f592e91f495770927095b53;hpb=22c60c86c4eb2228532f9132398cc1e452802d3a;p=platform%2Fcore%2Fappfw%2Fpkgmgr-info.git diff --git a/src/pkgmgrinfo_private.c b/src/pkgmgrinfo_private.c index 7e26eb0..1d31430 100644 --- a/src/pkgmgrinfo_private.c +++ b/src/pkgmgrinfo_private.c @@ -235,7 +235,7 @@ inline pkgmgrinfo_appinfo_filter_prop_bool _pminfo_appinfo_convert_to_prop_bool( return prop; } -int __get_filter_condition(gpointer data, char **condition, GList **params) +int __get_filter_condition(gpointer data, uid_t uid, char **condition, GList **params) { pkgmgrinfo_node_x *node = (pkgmgrinfo_node_x *)data; char buf[MAX_QUERY_LEN] = {'\0'}; @@ -386,7 +386,15 @@ int __get_filter_condition(gpointer data, char **condition, GList **params) flag = E_PMINFO_APPINFO_JOIN_METADATA; break; case E_PMINFO_APPINFO_PROP_APP_DISABLE: - snprintf(buf, MAX_QUERY_LEN, "ai.app_disable=? COLLATE NOCASE"); + if (strcasecmp(node->value, "true") == 0) + snprintf(buf, MAX_QUERY_LEN, "(ai.app_disable=? COLLATE NOCASE OR " + "ai.app_id IN (SELECT app_id FROM package_app_info_for_uid " + "WHERE uid=%d AND is_disabled='true'))", uid); + else + snprintf(buf, MAX_QUERY_LEN, "(ai.app_disable=? COLLATE NOCASE AND " + "ai.app_id NOT IN (SELECT app_id FROM package_app_info_for_uid " + "WHERE uid=%d AND is_disabled='true'))", uid); + flag = E_PMINFO_APPINFO_JOIN_APPINFO_FOR_UID; break; case E_PMINFO_APPINFO_PROP_APP_SUPPORT_DISABLE: snprintf(buf, MAX_QUERY_LEN, "ai.app_support_disable=? COLLATE NOCASE");