return PACKAGE_MANAGER_ERROR_NONE;
}
-static int __convert_status_type(package_manager_status_type_e type)
+static int __convert_status_type(package_manager_status_type_e status_type)
{
- switch (type) {
- case PACKAGE_MANAGER_STATUS_TYPE_ALL:
+ int type = 0;
+
+ if (status_type == PACKAGE_MANAGER_STATUS_TYPE_ALL)
return PKGMGR_CLIENT_STATUS_ALL;
- case PACKAGE_MANAGER_STATUS_TYPE_INSTALL:
- return PKGMGR_CLIENT_STATUS_INSTALL;
- case PACKAGE_MANAGER_STATUS_TYPE_UNINSTALL:
- return PKGMGR_CLIENT_STATUS_UNINSTALL;
- case PACKAGE_MANAGER_STATUS_TYPE_UPGRADE:
- return PKGMGR_CLIENT_STATUS_UPGRADE;
- case PACKAGE_MANAGER_STATUS_TYPE_MOVE:
- return PKGMGR_CLIENT_STATUS_MOVE;
- case PACKAGE_MANAGER_STATUS_TYPE_CLEAR_DATA:
- return PKGMGR_CLIENT_STATUS_CLEAR_DATA;
- case PACKAGE_MANAGER_STATUS_TYPE_INSTALL_PROGRESS:
- return PKGMGR_CLIENT_STATUS_INSTALL_PROGRESS;
- case PACKAGE_MANAGER_STATUS_TYPE_GET_SIZE:
- return PKGMGR_CLIENT_STATUS_GET_SIZE;
- default:
- return -1;
- }
+
+ if (status_type & PACKAGE_MANAGER_STATUS_TYPE_INSTALL)
+ type |= PKGMGR_CLIENT_STATUS_INSTALL;
+ if (status_type & PACKAGE_MANAGER_STATUS_TYPE_UNINSTALL)
+ type |= PKGMGR_CLIENT_STATUS_UNINSTALL;
+ if (status_type & PACKAGE_MANAGER_STATUS_TYPE_UPGRADE)
+ type |= PKGMGR_CLIENT_STATUS_UPGRADE;
+ if (status_type & PACKAGE_MANAGER_STATUS_TYPE_MOVE)
+ type |= PKGMGR_CLIENT_STATUS_MOVE;
+ if (status_type & PACKAGE_MANAGER_STATUS_TYPE_CLEAR_DATA)
+ type |= PKGMGR_CLIENT_STATUS_CLEAR_DATA;
+ if (status_type & PACKAGE_MANAGER_STATUS_TYPE_INSTALL_PROGRESS)
+ type |= PKGMGR_CLIENT_STATUS_INSTALL_PROGRESS;
+ if (status_type & PACKAGE_MANAGER_STATUS_TYPE_GET_SIZE)
+ type |= PKGMGR_CLIENT_STATUS_GET_SIZE;
+
+ return type;
}
API int package_manager_set_event_status(package_manager_h manager, int status_type)
{
int retval;
int type;
+ int type_all = PACKAGE_MANAGER_STATUS_TYPE_INSTALL |
+ PACKAGE_MANAGER_STATUS_TYPE_UNINSTALL |
+ PACKAGE_MANAGER_STATUS_TYPE_UPGRADE |
+ PACKAGE_MANAGER_STATUS_TYPE_MOVE |
+ PACKAGE_MANAGER_STATUS_TYPE_CLEAR_DATA |
+ PACKAGE_MANAGER_STATUS_TYPE_INSTALL_PROGRESS |
+ PACKAGE_MANAGER_STATUS_TYPE_GET_SIZE;
if (manager == NULL)
return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
- type = __convert_status_type(status_type);
- if (type == -1)
+ if (status_type < 0 || status_type > type_all)
return package_manager_error(PACKAGE_MANAGER_ERROR_INVALID_PARAMETER, __FUNCTION__, NULL);
+ type = __convert_status_type(status_type);
retval = pkgmgr_client_set_status_type(manager->pc, type);
if (retval < 0)