- This patch will enable filtering app list with pkg privilege.
Change-Id: I46e3cee50991a2a2a6043a85be2ffafc3b296321
Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
#define PMINFO_APPINFO_PROP_APP_PACKAGE "PMINFO_APPINFO_PROP_APP_PACKAGE"
/** String property for filtering based on app info*/
#define PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE "PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE"
+ /** String property for filtering based on app info*/
+#define PMINFO_APPINFO_PROP_PRIVILEGE "PMINFO_APPINFO_PROP_PRIVILEGE"
/** Integer property for filtering app support mode */
#define PMINFO_APPINFO_PROP_APP_SUPPORT_MODE "PMINFO_APPINFO_PROP_APP_SUPPORT_MODE"
static const char join_metadata[] =
" LEFT OUTER JOIN package_app_app_metadata"
" ON ai.app_id=package_app_app_metadata.app_id ";
+static const char join_privilege[] =
+ " LEFT OUTER JOIN package_privilege_info"
+ " ON ai.package=package_privilege_info.package ";
static int _get_filtered_query(pkgmgrinfo_filter_x *filter,
const char *locale, uid_t uid, char **query, GList **bind_params)
strncat(tmp_query, join_app_control, sizeof(tmp_query) - strlen(tmp_query) - 1);
if (joined & E_PMINFO_APPINFO_JOIN_METADATA)
strncat(tmp_query, join_metadata, sizeof(tmp_query) - strlen(tmp_query) - 1);
+ if (joined & E_PMINFO_APPINFO_JOIN_PRIVILEGE)
+ strncat(tmp_query, join_privilege, sizeof(tmp_query) - strlen(tmp_query) - 1);
strncat(tmp_query, buf, sizeof(tmp_query) - strlen(tmp_query) - 1);
{E_PMINFO_APPINFO_PROP_APP_HWACCELERATION, PMINFO_APPINFO_PROP_APP_HWACCELERATION},
{E_PMINFO_APPINFO_PROP_APP_SCREENREADER, PMINFO_APPINFO_PROP_APP_SCREENREADER},
{E_PMINFO_APPINFO_PROP_APP_PACKAGE, PMINFO_APPINFO_PROP_APP_PACKAGE},
- {E_PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE, PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE}
+ {E_PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE, PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE},
+ {E_PMINFO_APPINFO_PROP_PRIVILEGE, PMINFO_APPINFO_PROP_PRIVILEGE}
};
struct _appinfo_int_map_t {
case E_PMINFO_APPINFO_PROP_APP_CHECK_STORAGE:
*condition = NULL;
return 0;
+ case E_PMINFO_APPINFO_PROP_PRIVILEGE:
+ snprintf(buf, sizeof(buf), "package_privilege_info.privilege=?");
+ flag = E_PMINFO_APPINFO_JOIN_PRIVILEGE;
+ break;
default:
_LOGE("Invalid Property Type\n");
*condition = NULL;
E_PMINFO_APPINFO_PROP_APP_SCREENREADER,
E_PMINFO_APPINFO_PROP_APP_PACKAGE,
E_PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE,
- E_PMINFO_APPINFO_PROP_APP_MAX_STR = E_PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE
+ E_PMINFO_APPINFO_PROP_PRIVILEGE,
+ E_PMINFO_APPINFO_PROP_APP_MAX_STR = E_PMINFO_APPINFO_PROP_PRIVILEGE
} pkgmgrinfo_appinfo_filter_prop_str;
/*Boolean properties for filtering based on app info*/
E_PMINFO_APPINFO_JOIN_CATEGORY = 0x0002,
E_PMINFO_APPINFO_JOIN_APP_CONTROL = 0x0004,
E_PMINFO_APPINFO_JOIN_METADATA = 0x0008,
+ E_PMINFO_APPINFO_JOIN_PRIVILEGE = 0x0010,
} pkgmgrinfo_appinfo_join_flag;
typedef enum _pkgmgrinfo_appinfo_disable_type {