Fixes issue TSAM-11575.
Fixed bugs in app manager when appid != pkgid and missed translation
functions on text IDs.
Change-Id: Ia0b0600900bbf1054483413e5b2f7d45cd67354e
Signed-off-by: Bartlomiej Uliasz <b.uliasz@samsung.com>
void _unset_sel(void *data, Evas_Object *obj, void *event_info)
{
SETTING_TRACE_BEGIN;
+ int ret;
Elm_Object_Item *item = event_info;
- elm_genlist_item_selected_set(item, EINA_FALSE);
default_app *info = (default_app *)data;
+ ret_if(!info);
+
+ elm_genlist_item_selected_set(item, EINA_FALSE);
- int ret;
app_control_h app_control;
ret = app_control_create(&app_control);
SETTING_TRACE_ERROR("calloc() Fail");
return 0;
}
- info->pkgid = SAFE_STRDUP(appid);
- ret = pkgmgrinfo_appinfo_get_usr_appinfo(info->pkgid, getuid(), &handle);
+ ret = pkgmgrinfo_appinfo_get_usr_appinfo(appid, getuid(), &handle);
+ if (ret != PMINFO_R_OK) {
+ SETTING_TRACE_ERROR("Cannot get user appinfo. Error: %s",
+ get_error_message(ret));
+ FREE(info);
+ return -1;
+ }
+
+ ret = pkgmgrinfo_appinfo_get_pkgid(handle, &value);
if (ret != PMINFO_R_OK) {
- SETTING_TRACE_ERROR("pkgmgrinfo_appinfo_get_usr_appinfo() Fail(%s)", get_error_message(ret));
+ SETTING_TRACE_ERROR("Cannot get pkgid. Error: %s",
+ get_error_message(ret));
+ pkgmgrinfo_appinfo_destroy_appinfo(handle);
FREE(info);
return -1;
}
+ info->pkgid = SAFE_STRDUP(value);
ret = pkgmgrinfo_appinfo_get_label(handle, &value);
if (ret == PMINFO_R_OK)
ret = pkgmgrinfo_appinfo_destroy_appinfo(handle);
if (ret != PMINFO_R_OK)
- SETTING_TRACE_ERROR("destroy appinfo handle error(%s)", get_error_message(ret));
+ SETTING_TRACE_ERROR("destroy appinfo handle error(%s)",
+ get_error_message(ret));
*list = eina_list_append(*list, info);
static void _list_init(void *data, Evas_Object *genlist)
{
SETTING_TRACE_BEGIN;
- ret_if(data == NULL);
- SettingApplications *ad = (SettingApplications *)data;
Eina_List *list = NULL;
Eina_List *list_iterator = NULL;
default_app *info = NULL;
+ Setting_GenGroupItem_Data *item = NULL;
int ret = -1;
+ SettingApplications *ad = (SettingApplications *)data;
+ ret_if(!ad);
/* Get list of default app by package manager */
/* init app list */
}
if (NULL == list || eina_list_count(list) == 0) {
- SETTING_TRACE_ERROR("eina_list_count(list) <= 0");
+ SETTING_TRACE("eina_list_count(list) <= 0");
- Setting_GenGroupItem_Data *item = setting_create_Gendial_field_def(
+ item = setting_create_Gendial_field_def(
genlist, &(ad->itc_1text),
NULL, NULL,
SWALLOW_Type_INVALID, NULL,
} else {
list = eina_list_sort(list, eina_list_count(list), _list_sort_atoz);
- EINA_LIST_FOREACH (list, list_iterator, info) {
+ EINA_LIST_FOREACH(list, list_iterator, info) {
info = eina_list_data_get(list_iterator);
if (NULL == info) {
default_app *node = NULL;
SettingApplications *ad = data;
- EINA_LIST_FREE (ad->pkg_list, node)
+ EINA_LIST_FREE(ad->pkg_list, node)
{
free(node->icon_path);
free(node->pkg_label);
elm_genlist_item_selected_set(item, 0);
list_item = (Setting_GenGroupItem_Data *)elm_object_item_data_get(item);
- if(list_item) {
+ if (list_item) {
SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
if (!safeStrCmp(KeyStr_Home, list_item->keyStr)) {
SETTING_TRACE("click Home and run");
APPMGR_TAB_MAX
};
-typedef struct _SettingAppMgr_PkgInfo{
+typedef struct _SettingAppMgr_PkgInfo {
char *id;
char *icon;
char *label;
Eina_List *apps_in_package; /* [char *] data type */
} SettingAppMgr_PkgInfo;
-typedef struct _SettingAppMgr_AppInfo{
+typedef struct _SettingAppMgr_AppInfo {
char *id;
char *pkg_id; /* Package id this app belongs to */
package_info_h package_info; /* Package info this app belongs to */
char *icon;
char *label;
Eina_List *apps_in_package; /*Siblings of the selected app in the same
- package. They are in running state */
+ package. They are in running state */
long long int ram_usage;
} SettingAppMgr_AppInfo;
{
appmgr_worker *worker = data;
- if (worker->alive) {
+ if (worker->alive)
pthread_cancel(worker->tid);
- }
if (worker->worker_idler) {
ecore_idler_del(worker->worker_idler);
running_item_ix);
elm_genlist_item_show(item_to_bring_in, ELM_GENLIST_ITEM_SCROLLTO_TOP);
- for (i = APPMGR_TAB_DOWNLOAD; i<APPMGR_TAB_MAX; i++) {
+ for (i = APPMGR_TAB_DOWNLOAD; i < APPMGR_TAB_MAX; i++) {
if (0 == elm_genlist_items_count(gls[i])) {
evas_object_show(blank_pages[i]);
elm_grid_pack(ad->grid, blank_pages[i], i, 0, 1, 1);
&itc_clear_cache, NULL, NULL,
ELM_GENLIST_ITEM_NONE, _clear_cache_cb,
ad);
- if (ad->selected_pkg.pkg_cached_data_size > 0) {
+ if (ad->selected_pkg.pkg_cached_data_size > 0)
elm_object_item_disabled_set(ad->cache_clear_item, EINA_FALSE);
- } else {
+ else
elm_object_item_disabled_set(ad->cache_clear_item, EINA_TRUE);
- }
}
static void _pkginfo_append_default(SettingAppMgr *ad)
if (privilege_item == last_privilege_item)
break;
- } while((privilege_item = next_privilege_item));
+ } while ((privilege_item = next_privilege_item));
ad->prv_group_item = NULL;
ad->first_prv = ad->last_prv = NULL;
package_info_get_type(pkg->package_info, &tmp);
pkg->is_webapp = false;
if (!safeStrCmp(tmp, "wgt"))
- pkg->is_webapp = true;
+ pkg->is_webapp = true;
finish:
package_manager_filter_destroy(filter_is_disabled_h);
package_manager_filter_destroy(filter_supports_disable_h);
ELM_GENLIST_ITEM_FIELD_TEXT);
elm_genlist_item_fields_update(ad->cache_size_item, "elm.text.sub",
ELM_GENLIST_ITEM_FIELD_TEXT);
- if (pkg->pkg_cached_data_size > 0) {
+ if (pkg->pkg_cached_data_size > 0)
elm_object_item_disabled_set(ad->cache_clear_item, EINA_FALSE);
- } else {
+ else
elm_object_item_disabled_set(ad->cache_clear_item, EINA_TRUE);
- }
}
static bool _supports_disable_filter_cb(package_info_h package_info,
return 0;
}
-UNUSED static void _package_move_finished(int id, const char *type,
+UNUSED
+static void _package_move_finished(int id, const char *type,
const char *package, package_manager_event_type_e event_type,
package_manager_event_state_e event_state, int progress,
package_manager_error_e error, void *user_data)
retv_if(data == NULL, NULL);
- if (0 == strcmp(part, "elm.text")) {
+ if (0 == strcmp(part, "elm.text"))
label = SAFE_STRDUP(pkg->label);
- }
+
if (0 == strcmp(part, "elm.text.sub")) {
snprintf(desc, sizeof(desc), _(MGRAPP_STR_VERSION_STR),
pkg->pkg_version);
retv_if(!data, NULL);
if (!strcmp(part, "elm.text")) {
- if (pkg->is_installed_internally) {
+ if (pkg->is_installed_internally)
return SAFE_STRDUP(_(IDS_ST_BUTTON_MOVE_TO_SD_ABB));
- } else {
+ else
return SAFE_STRDUP(_(IDS_ST_BUTTON_MOVE_TO_PHONE));
- }
}
return NULL;
sizeof(desc));
} else {
snprintf(desc, sizeof(desc), "%s",
- _(IDS_ST_BODY_COMPUTING_ING));
+ _("IDS_ST_BODY_COMPUTING_ING"));
}
return strndup(desc, sizeof(desc));
}
appmgr_size_to_str(pkg->pkg_app_size, desc,
sizeof(desc));
} else {
- snprintf(desc, sizeof(desc), "%s", MGRAPP_STR_COMPUTING);
+ snprintf(desc, sizeof(desc), "%s",
+ _(MGRAPP_STR_COMPUTING));
}
return strndup(desc, sizeof(desc));
}
sizeof(desc));
} else {
snprintf(desc, sizeof(desc), "%s",
- MGRAPP_STR_COMPUTING);
+ _(MGRAPP_STR_COMPUTING));
}
return strndup(desc, sizeof(desc));
}
sizeof(desc));
} else {
snprintf(desc, sizeof(desc), "%s",
- MGRAPP_STR_COMPUTING);
+ _(MGRAPP_STR_COMPUTING));
}
return strndup(desc, sizeof(desc));
}
ret_if(!ad);
elm_genlist_item_selected_set(event_info, EINA_FALSE);
ret = package_manager_clear_cache_dir(ad->selected_pkg.id);
- if (PACKAGE_MANAGER_ERROR_NONE == ret) {
+ if (PACKAGE_MANAGER_ERROR_NONE == ret)
elm_object_item_disabled_set(ad->cache_clear_item, EINA_TRUE);
- }
}
static void _enable_cb(void *data, Evas_Object *button, void *event_info)
elm_genlist_item_selected_set(event_info, EINA_FALSE);
/*
- * Unfortunately the code below will not call event callback:
- * Changes are coming soon. This code should be uncommented then.
- * I will use internal API meanwhile.
- * if (ad->selected_pkg.is_installed_internally) {
+ * Unfortunately the code below will not call event callback:
+ * Changes are coming soon. This code should be uncommented then.
+ * I will use internal API meanwhile.
+ * if (ad->selected_pkg.is_installed_internally) {
move_type = PACKAGE_MANAGER_REQUEST_MOVE_TO_EXTERNAL;
} else {
move_type = PACKAGE_MANAGER_REQUEST_MOVE_TO_INTERNAL;
pkgmgr_client *pc_request = NULL;
ret_if(!data);
- if (ad->selected_pkg.is_installed_internally) {
+ if (ad->selected_pkg.is_installed_internally)
move_type = PACKAGE_MANAGER_REQUEST_MOVE_TO_EXTERNAL;
- } else {
+ else
move_type = PACKAGE_MANAGER_REQUEST_MOVE_TO_INTERNAL;
- }
package_info_get_type(ad->selected_pkg.package_info, &type);
pc_request = pkgmgr_client_new(PC_REQUEST);
do {
next_run_app_item = elm_genlist_item_next_get(run_item);
elm_object_item_del(run_item);
- } while((run_item = next_run_app_item));
+ } while ((run_item = next_run_app_item));
ad->first_run_app_item = NULL;
EINA_LIST_FREE(ad->selected_running_app.apps_in_package, app)
process_memory_info_s *info = NULL;
int ram_used_mb = 0;
+ /* get app id */
ret = app_info_get_app_id(handle, &app_id);
- SETTING_TRACE_ERROR("app_info_get_app_id() %s", get_error_message(ret));
-
- if (APP_MANAGER_ERROR_NONE == ret) {
- ret = app_manager_get_app_context(app_id, &app_context);
- SETTING_TRACE_DEBUG("app_manager_get_app_context() %s",
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ SETTING_TRACE_ERROR("app_info_get_app_id() %s",
+ get_error_message(ret));
+ return 0;
+ }
+ /* get app context if running */
+ ret = app_manager_get_app_context(app_id, &app_context);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ SETTING_TRACE_DEBUG("app_manager_get_app_context(%s) %s",
+ app_id, get_error_message(ret));
+ free(app_id);
+ return 0;
+ }
+ /* get running app pid */
+ ret = app_context_get_pid(app_context, &pid);
+ if (ret == APP_MANAGER_ERROR_NONE) {
+ ret = runtime_info_get_process_memory_info(
+ &pid, 1, &info);
+ if (RUNTIME_INFO_ERROR_NONE == ret && info)
+ ram_used_mb = info->vsz;
+ else
+ SETTING_TRACE_ERROR("runtime_info_get_process_memory_info() %s",
get_error_message(ret));
-
- if (APP_MANAGER_ERROR_NONE == ret) {
- ret = app_context_get_pid(app_context, &pid);
- SETTING_TRACE_DEBUG("app_context_get_pid() %s",
- get_error_message(ret));
-
- if (APP_MANAGER_ERROR_NONE == ret) {
- ret = runtime_info_get_process_memory_info(
- &pid, 1, &info);
- SETTING_TRACE_ERROR(
- "runtime_info_get_process_memory_info() %s",
+ } else {
+ SETTING_TRACE_ERROR("app_context_get_pid() %s",
get_error_message(ret));
-
- if (RUNTIME_INFO_ERROR_NONE == ret && info)
- ram_used_mb = info->vsz;
- }
- }
}
+
app_context_destroy(app_context);
free(info);
free(app_id);
pid_t pid = 0;
setting_retm_if(!pkg, "Data parameter is NULL");
- EINA_LIST_FOREACH(pkg->apps_in_package, cur, app_id){
+ EINA_LIST_FOREACH(pkg->apps_in_package, cur, app_id) {
ret = app_manager_get_app_context(app_id, &app_context);\
if (APP_MANAGER_ERROR_NONE != ret) {
SETTING_TRACE_DEBUG(
/* try harder(internal API): */
ret = pkgmgrinfo_pkginfo_get_pkginfo(node->pkgid,
&internal_api_handle);
- if (PMINFO_R_OK ==ret) {
+ if (PMINFO_R_OK == ret) {
ret = pkgmgrinfo_pkginfo_get_mainappid(
internal_api_handle, &main_app_id);
retv_if(NULL == info1->label, -1);
retv_if(NULL == info2->label, 1);
- if (strlen(info1->label) < strlen(info2->label)) {
+ if (strlen(info1->label) < strlen(info2->label))
len = strlen(info1->label);
- } else {
+ else
len = strlen(info2->label);
- }
+
return strncasecmp(info2->label, info1->label, len);
}
retv_if(NULL == info1->label, -1);
retv_if(NULL == info2->label, 1);
- if (strlen(info1->label) < strlen(info2->label)) {
+ if (strlen(info1->label) < strlen(info2->label))
len = strlen(info1->label);
- } else {
+ else
len = strlen(info2->label);
- }
return strncasecmp(info2->label, info1->label, len);
}
package_info_h package_info = NULL;
ad->only_pkginfo = false;
app_control_get_extra_data(app_control, "viewtype", &viewtype);
- if (0 == safeStrCmp(viewtype, "application-info"))
- {
+ if (0 == safeStrCmp(viewtype, "application-info")) {
ad->only_pkginfo = true;
app_control_get_extra_data(app_control, "pkgid", &pkgid);
ad->selected_pkg.id = pkgid;
ret = package_manager_get_package_info(pkgid, &package_info);
if (PACKAGE_MANAGER_ERROR_NONE != ret) {
+ SETTING_TRACE_ERROR("Cannot get package [%s] info. Error code: %d",
+ pkgid, ret);
free(pkgid);
app_control_reply_to_launch_request(
ad->md.app_reply_svc,
ad->md.app_caller_svc,
APP_CONTROL_RESULT_FAILED);
ui_app_exit();
+ return;
}
- ret =
- package_info_get_label(package_info, &ad->selected_pkg.label);
+ ret = package_info_get_label(package_info,
+ &ad->selected_pkg.label);
if (PACKAGE_MANAGER_ERROR_NONE != ret) {
+ SETTING_TRACE_ERROR("Cannot get package [%s] label. Error code: %d",
+ pkgid, ret);
package_info_destroy(package_info);
free(pkgid);
app_control_reply_to_launch_request(
APP_CONTROL_RESULT_FAILED);
ui_app_exit();
+ return;
}
- ret =
- package_info_get_icon(package_info, &ad->selected_pkg.icon);
+ ret = package_info_get_icon(package_info,
+ &ad->selected_pkg.icon);
if (PACKAGE_MANAGER_ERROR_NONE != ret) {
+ SETTING_TRACE_ERROR("Cannot get package icon. Error code: %d",
+ ret);
package_info_destroy(package_info);
free(pkgid);
free(ad->selected_pkg.label);
APP_CONTROL_RESULT_FAILED);
ui_app_exit();
+ return;
}
if (EINA_TRUE != ecore_file_exists(ad->selected_pkg.icon)) {
strdup(SETTING_ICON_PATH"/mainmenu.png");
}
/* register view table */
- setting_view_node_table_register(&setting_view_appmgr_pkginfo, NULL);
+ setting_view_node_table_register(&setting_view_appmgr_pkginfo,
+ NULL);
SETTING_TRACE("viewtype : %s", viewtype);
SETTING_TRACE("pkgname : %s", pkgid);
setting_view_create(ad->pkginfo_view, ad);
setting_view_node_set_cur_view(ad->pkginfo_view);
} else {
- setting_view_node_table_register(&setting_view_appmgr_main, NULL);
+ setting_view_node_table_register(&setting_view_appmgr_main,
+ NULL);
setting_view_node_table_register(&setting_view_appmgr_runinfo,
&setting_view_appmgr_main);
setting_view_node_table_register(&setting_view_appmgr_pkginfo,