#include <setting-storage-main.h>
#include <Ecore_X.h>
#include <package-manager.h>
+#include <pkgmgr-info.h>
#include <ail.h>
static int setting_storage_main_create(void *cb);
return AIL_CB_RET_CONTINUE;
}
-static void __setting_storage_main_applications_list_get(Eina_List **apps_list)
+void __setting_storage_pkg_list_cb (const pkgmgrinfo_pkginfo_h handle, void *data)
{
SETTING_TRACE_BEGIN;
- /* get app_info from AIL */
- ail_filter_h filter_rpm = NULL;
- ail_filter_h filter_wrt = NULL;
- ail_filter_h filter_tpk = NULL;
-
- ail_filter_new(&filter_rpm);
- ail_filter_new(&filter_wrt);
- ail_filter_new(&filter_tpk);
-
- ail_filter_add_str(filter_rpm, AIL_PROP_X_SLP_PACKAGETYPE_STR, RPM_PREFIX);
- ail_filter_add_str(filter_wrt, AIL_PROP_X_SLP_PACKAGETYPE_STR, WRT_PREFIX);
- ail_filter_add_str(filter_tpk, AIL_PROP_X_SLP_PACKAGETYPE_STR, TPK_PREFIX);
-
- ail_filter_list_appinfo_foreach(filter_rpm, __setting_storage_main_appinfo_func_cb, (void*)apps_list);
- ail_filter_list_appinfo_foreach(filter_wrt, __setting_storage_main_appinfo_func_cb, (void*)apps_list);
- ail_filter_list_appinfo_foreach(filter_tpk, __setting_storage_main_appinfo_func_cb, (void*)apps_list);
-
- ail_filter_destroy(filter_rpm);
- ail_filter_destroy(filter_wrt);
- ail_filter_destroy(filter_tpk);
+ setting_retvm_if(data == NULL, 0.0, "Data parameter is NULL");
+ SettingStorageUG *ad = (SettingStorageUG *)data;
+
+ int ret = -1;
+ int size = 0;
+ char *pkgid;
+ ret = pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid);
+ if(ret < 0) {
+ SETTING_TRACE_ERROR("pkgmgrinfo_pkginfo_get_pkgid() failed");
+ return;
+ }
+ ret = pkgmgrinfo_pkginfo_get_total_size(handle, &size);
+ if(ret < 0) {
+ SETTING_TRACE_ERROR("pkgmgrinfo_pkginfo_get_total_size() failed");
+ return;
+ }
+ SETTING_TRACE("pkg id = %s", pkgid);
+ SETTING_TRACE("app size = %d", size);
+ ad->total_size += size;
}
static double __setting_storage_main_applications_status_get(void *data)
setting_retvm_if(data == NULL, 0.0, "Data parameter is NULL");
SettingStorageUG *ad = (SettingStorageUG *)data;
- Eina_List *apps_list = NULL;
- __setting_storage_main_applications_list_get(&apps_list);
-
- SETTING_TRACE("count = %d", eina_list_count(apps_list));
-
- double total_size = 0.0;
-
- Eina_List *l = NULL;
- App_Info *app_info = NULL;
- EINA_LIST_FOREACH (apps_list, l, app_info)
- {
- int exit_flag = 0;
- pthread_mutex_lock(&ad->exit_mutex);
- exit_flag = ad->exit_flag;
- pthread_mutex_unlock(&ad->exit_mutex);
-
- if (exit_flag == 1) {
- SETTING_TRACE("exit_flag is 1");
- break;
- }
-
- //SETTING_TRACE("pkg_name: %s ", app_info->pkg_name);
- //SETTING_TRACE("pkg_type: %s", app_info->pkg_type);
- pkgmgr_info *pkg_info = pkgmgr_info_new(app_info->pkg_type, app_info->pkg_name);
- if (!pkg_info) {
- //SETTING_TRACE("pkg_info is null, couldn't get the sizes");
- app_info->total_size = 0;
- } else {
- char *buf = NULL;
- buf = pkgmgr_info_get_string(pkg_info, STR_INSTALLED_SIZE);
- if (buf) {
- //SETTING_TRACE("size : %s", buf);
- app_info->total_size = atoi(buf);
- G_FREE(buf);
- } else {
- app_info->total_size = 0;
- }
- pkgmgr_info_free(pkg_info);
- }
-
- total_size += app_info->total_size;
- }
-
- /* free the list */
- Eina_List *tmp = NULL;
- app_info = NULL;
- EINA_LIST_FOREACH(apps_list, tmp, app_info)
- {
- G_FREE(app_info->pkg_name);
- G_FREE(app_info->pkg_type);
- FREE(app_info);
+ ad->total_size = 0.0;
+ int ret = -1;
+ ret = pkgmgrinfo_pkginfo_get_list(__setting_storage_pkg_list_cb, data);
+ if(ret < 0) {
+ SETTING_TRACE_ERROR("pkgmgrinfo_pkginfo_get_list() failed");
+ return 0;
}
- eina_list_free(apps_list);
- apps_list = NULL;
-
- return total_size;
+ SETTING_TRACE("ad->total_size = %f", ad->total_size);
+ return ad->total_size;
}
void __setting_storage_main_pipe_cb(void *data, void *buffer, unsigned int nbyte)