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'};
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");