label = SAFE_STRDUP(node->label);
else if (!strcmp(part, "elm.text.sub") && node->size >= 0) {
appmgr_size_to_str(node->size, desc, sizeof(desc));
+ if(strncmp(desc, "0.00KB", 6) == 0){
+ snprintf(desc, sizeof(desc), "Loading...");
+ }
+
label = strdup(desc);
}
return elm_genlist_item_index_get(tmp_item);
}
+
+
static void _update_ui(SettingAppMgr *ad)
{
+ // Case to prevent second update of package size
+ if(!ad->is_invoked_by_timer && ad->is_size_set) {
+ return;
+ }
+
Eina_List *cursor = NULL;
package_node *package_node_info = NULL;
app_node *app_node_info = NULL;
int disabled_item_ix = 0;
ui_node *tmp = NULL;
+ bool is_zero_occure = false;
+ bool did_loop_iterate = false;
+
Evas_Object *gls[] = {
ad->downloads_gl, ad->running_gl,
ad->all_gl, ad->disabled_gl
}
EINA_LIST_FOREACH(ad->packages, cursor, package_node_info) {
-
+ did_loop_iterate = true;
if (!package_node_info)
continue;
}
tmp = NULL;
_package_node_2_ui_node_adapter(package_node_info, &tmp);
+ if(tmp->size == 0) {
+ is_zero_occure = true;
+ }
elm_genlist_item_append(
ad->all_gl,
&ad->itc_package_nodes_list,
}
}
elm_scroller_page_show(ad->scroller, ad->tabtype, 0);
+
+ //When 0 size did not appear and ensure that loop at least once went through
+ if(!is_zero_occure && did_loop_iterate) {
+ ad->is_size_set = true;
+ }
}
static int appmgr_main_create(void *data)
package_node *package_node_info = NULL;
static unsigned int update_cycle = 0;
SettingAppMgr *ad = data;
+ int size_update_count = 0;
+
retv_if(!ad, EINA_FALSE);
update_cycle++;
return EINA_TRUE;
}
+ if (ad->size_update_needed) {
+ EINA_LIST_FOREACH(ad->packages, cursor, package_node_info) {
+ if (!package_node_info)
+ continue;
+
+ if (!package_node_info->size_update_in_progress) {
+ size_update_count++;
+ }
+ }
+
+ SETTING_TRACE("ad->size_update_needed == %d; size_update_count = %d; eina_list_count(ad->packages) == %d",
+ ad->size_update_needed, size_update_count, eina_list_count(ad->packages));
+
+ if (eina_list_count(ad->packages) == size_update_count && ad->size_update_needed && size_update_count != 0) {
+ ad->size_update_needed = false;
+ size_update_count = 0;
+
+ SETTING_TRACE("[MS] _update_ui size_update_needed");
+ //Invoke update only once, to get right size
+ if(!ad->is_size_set) {
+ ad->is_invoked_by_timer = true;
+ _update_ui(ad);
+ ad->is_invoked_by_timer = false;
+ }
+ }
+ }
+
if (ad->needs_to_update_on_lists_contents) {
EINA_LIST_FOREACH(ad->packages, cursor, package_node_info) {
if (!package_node_info)