From: yigang.jing Date: Sat, 3 Nov 2012 10:27:45 +0000 (+0800) Subject: [Bug] fix N_SE-12908 : adjust the size of Memory status bar in Storage in landscape... X-Git-Tag: accepted/tizen_2.1/20130425.022820~31^2~152 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a76b425cd3e90a2d387a7a384b173d18e90ca591;p=apps%2Fhome%2Fsettings.git [Bug] fix N_SE-12908 : adjust the size of Memory status bar in Storage in landscape mode . Change-Id: Iddfae5f411b297d631039c441883c9897f655581 --- diff --git a/setting-storage/include/setting-storage.h b/setting-storage/include/setting-storage.h index 081782c..026a18a 100755 --- a/setting-storage/include/setting-storage.h +++ b/setting-storage/include/setting-storage.h @@ -77,6 +77,7 @@ #define SETTING_STORAGE_MISCES_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_miscellaneous_files.png" #define SETTING_STORAGE_AVAIL_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_available.png" +#define SETTING_STORAGE_ICON_LANDSCAPE_WIDTH ((int)1200 * WIDGET_SCALE_FACTOR) #define SETTING_STORAGE_ICON_WIDTH ((int)640 * WIDGET_SCALE_FACTOR) #define SETTING_STORAGE_ICON_HEIGHT ((int)16 * WIDGET_SCALE_FACTOR) diff --git a/setting-storage/src/setting-storage-main.c b/setting-storage/src/setting-storage-main.c index 55dbb27..5bc1f7b 100755 --- a/setting-storage/src/setting-storage-main.c +++ b/setting-storage/src/setting-storage-main.c @@ -38,6 +38,20 @@ setting_view setting_view_storage_main = { .cleanup = setting_storage_main_cleanup, }; +static Evas_Object *__setting_storage_main_image_add(Evas *evas, char *icon_path, int width, int height) +{ + Evas_Object *image = NULL; + image = evas_object_image_add(evas); + evas_object_size_hint_weight_set(image, 0.0, EVAS_HINT_EXPAND); + evas_object_image_load_size_set(image, width, height); + evas_object_image_file_set(image, icon_path, NULL); + evas_object_image_fill_set(image, 0, 0, width, height); + evas_object_size_hint_min_set(image, width, height); + evas_object_show(image); + + return image; +} + static char *__gl_text_get(void *data, Evas_Object *obj, const char *part) { retv_if(!data, NULL); @@ -57,12 +71,20 @@ static Evas_Object *__gl_content_get(void *data, Evas_Object *obj, const char *p int width = SETTING_STORAGE_ICON_WIDTH; int height = SETTING_STORAGE_ICON_HEIGHT; + + app_device_orientation_e m = elm_win_rotation_get(ad->win_get); + if(APP_DEVICE_ORIENTATION_90 == m || APP_DEVICE_ORIENTATION_270 == m) { + width = SETTING_STORAGE_ICON_LANDSCAPE_WIDTH; + } else { + width = SETTING_STORAGE_ICON_WIDTH; + } float temp_size = 0.0; if (!safeStrCmp(part, "elm.icon")){ Evas_Object *status_box = NULL; status_box = elm_box_add(obj); retvm_if(status_box == NULL, NULL, "Cannot get box"); + item_data->eo_check = status_box; elm_box_horizontal_set(status_box, 1); evas_object_size_hint_align_set(status_box, 0.0, EVAS_HINT_FILL); evas_object_show(status_box); @@ -78,14 +100,7 @@ static Evas_Object *__gl_content_get(void *data, Evas_Object *obj, const char *p apps_size = (unsigned int)temp_size; } if (apps_size > 0) { - Evas_Object *apps = NULL; - apps = evas_object_image_add(evas); - evas_object_size_hint_weight_set(apps, 0.0, EVAS_HINT_EXPAND); - evas_object_image_load_size_set(apps, apps_size, height); - evas_object_image_file_set(apps, SETTING_STORAGE_APPS_ICON_PATH, NULL); - evas_object_image_fill_set(apps, 0, 0, apps_size, height); - evas_object_size_hint_min_set(apps, apps_size, height); - evas_object_show(apps); + Evas_Object *apps = __setting_storage_main_image_add(evas, SETTING_STORAGE_APPS_ICON_PATH, apps_size, height); elm_box_pack_end(status_box, apps); } @@ -98,14 +113,7 @@ static Evas_Object *__gl_content_get(void *data, Evas_Object *obj, const char *p pics_videos_size = (unsigned int)temp_size; } if (pics_videos_size > 0) { - Evas_Object *pics = NULL; - pics = evas_object_image_add(evas); - evas_object_size_hint_weight_set(pics, 0.0, EVAS_HINT_EXPAND); - evas_object_image_load_size_set(pics, pics_videos_size, height); - evas_object_image_file_set(pics, SETTING_STORAGE_PICS_ICON_PATH, NULL); - evas_object_image_fill_set(pics, 0, 0, pics_videos_size, height); - evas_object_size_hint_min_set(pics, pics_videos_size, height); - evas_object_show(pics); + Evas_Object *pics = __setting_storage_main_image_add(evas, SETTING_STORAGE_PICS_ICON_PATH, pics_videos_size, height); elm_box_pack_end(status_box, pics); } @@ -118,14 +126,7 @@ static Evas_Object *__gl_content_get(void *data, Evas_Object *obj, const char *p downloads_size = (unsigned int)temp_size; } if (downloads_size > 0) { - Evas_Object *downs = NULL; - downs = evas_object_image_add(evas); - evas_object_size_hint_weight_set(downs, 0.0, EVAS_HINT_EXPAND); - evas_object_image_load_size_set(downs, downloads_size, height); - evas_object_image_file_set(downs, SETTING_STORAGE_DOWNS_ICON_PATH, NULL); - evas_object_image_fill_set(downs, 0, 0, downloads_size, height); - evas_object_size_hint_min_set(downs, downloads_size, height); - evas_object_show(downs); + Evas_Object *downs = __setting_storage_main_image_add(evas, SETTING_STORAGE_DOWNS_ICON_PATH, downloads_size, height); elm_box_pack_end(status_box, downs); } @@ -138,14 +139,7 @@ static Evas_Object *__gl_content_get(void *data, Evas_Object *obj, const char *p audio_size = (unsigned int)temp_size; } if (audio_size > 0) { - Evas_Object *audio = NULL; - audio = evas_object_image_add(evas); - evas_object_size_hint_weight_set(audio, 0.0, EVAS_HINT_EXPAND); - evas_object_image_load_size_set(audio, audio_size, height); - evas_object_image_file_set(audio, SETTING_STORAGE_AUDIO_ICON_PATH, NULL); - evas_object_image_fill_set(audio, 0, 0, audio_size, height); - evas_object_size_hint_min_set(audio, audio_size, height); - evas_object_show(audio); + Evas_Object *audio = __setting_storage_main_image_add(evas, SETTING_STORAGE_AUDIO_ICON_PATH, audio_size, height); elm_box_pack_end(status_box, audio); } @@ -158,14 +152,7 @@ static Evas_Object *__gl_content_get(void *data, Evas_Object *obj, const char *p others_size = (unsigned int)temp_size; } if (others_size > 0) { - Evas_Object *misc = NULL; - misc = evas_object_image_add(evas); - evas_object_size_hint_weight_set(misc, 0.0, EVAS_HINT_EXPAND); - evas_object_image_load_size_set(misc, others_size, height); - evas_object_image_file_set(misc, SETTING_STORAGE_MISCES_ICON_PATH, NULL); - evas_object_image_fill_set(misc, 0, 0, others_size, height); - evas_object_size_hint_min_set(misc, others_size, height); - evas_object_show(misc); + Evas_Object *misc = __setting_storage_main_image_add(evas, SETTING_STORAGE_MISCES_ICON_PATH, others_size, height); elm_box_pack_end(status_box, misc); } @@ -178,14 +165,7 @@ static Evas_Object *__gl_content_get(void *data, Evas_Object *obj, const char *p avail_size = (unsigned int)temp_size; } if (avail_size > 0) { - Evas_Object *avail = NULL; - avail = evas_object_image_add(evas); - evas_object_size_hint_weight_set(avail, 0.0, EVAS_HINT_EXPAND); - evas_object_image_load_size_set(avail, avail_size, height); - evas_object_image_file_set(avail, SETTING_STORAGE_AVAIL_ICON_PATH, NULL); - evas_object_image_fill_set(avail, 0, 0, avail_size, height); - evas_object_size_hint_min_set(avail, avail_size, height); - evas_object_show(avail); + Evas_Object *avail = __setting_storage_main_image_add(evas, SETTING_STORAGE_AVAIL_ICON_PATH, avail_size, height); elm_box_pack_end(status_box, avail); } @@ -326,26 +306,62 @@ static void __setting_storage_main_internal_storage_status_get(void *data) ad->internal_status = internal_status; } +static bool __setting_storage_main_media_item_cb(media_info_h media, void *data) +{ + //SETTING_TRACE_BEGIN; + setting_retvm_if(media == NULL, true, "media is NULL"); + setting_retvm_if(data == NULL, true, "Data parameter is NULL"); + double *total_size = (double *) data; + + media_content_type_e media_type = 0; + unsigned long long size = 0; + + media_info_get_media_type(media, &media_type); + //SETTING_TRACE("media_type : [%d]", media_type); + + media_info_get_size(media, &size); + //SETTING_TRACE("size : [%lld]", size); + *total_size += size; + + return true; +} + static double __setting_storage_main_pictures_videos_status_get() { SETTING_TRACE_BEGIN; double total_size = 0.0; - double tmp_size = 0.0; - int ret = SETTING_RETURN_SUCCESS; - tmp_size = __setting_storage_main_folder_size_get(SETTING_STORAGE_PICTURES_PATH); - setting_retvm_if(ret == SETTING_RETURN_FAIL, total_size, "get pictures status failed"); - total_size += tmp_size; + int ret = MEDIA_CONTENT_ERROR_NONE; + filter_h filter = NULL; + + /*Set Filter*/ + char *condition = "(MEDIA_TYPE=0 OR MEDIA_TYPE=1)"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/ + + ret = media_filter_create(&filter); + if(ret != MEDIA_CONTENT_ERROR_NONE) { + SETTING_TRACE_ERROR("Fail to create filter"); + return total_size; + } + + ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT); + if(ret != MEDIA_CONTENT_ERROR_NONE) { + media_filter_destroy(filter); + SETTING_TRACE_ERROR("Fail to set condition"); + return total_size; + } - tmp_size = 0.0; - tmp_size = __setting_storage_main_folder_size_get(SETTING_STORAGE_VIDEOS_PATH); - setting_retvm_if(ret == SETTING_RETURN_FAIL, total_size, "get video status failed"); - total_size += tmp_size; + ret = media_info_foreach_media_from_db(filter, __setting_storage_main_media_item_cb, &total_size); + if(ret != MEDIA_CONTENT_ERROR_NONE) { + media_filter_destroy(filter); + SETTING_TRACE_ERROR("Fail to get media"); + return total_size; + } - tmp_size = 0.0; - tmp_size = __setting_storage_main_folder_size_get(SETTING_STORAGE_CAMERA_PATH); - setting_retvm_if(ret == SETTING_RETURN_FAIL, total_size, "get camera status failed"); - total_size += tmp_size; + ret = media_filter_destroy(filter); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + SETTING_TRACE_ERROR("destroy filter failed\n\n"); + return total_size; + } return total_size; } @@ -363,30 +379,6 @@ static double __setting_storage_main_downloads_status_get() return total_size; } -static bool __setting_storage_main_media_item_cb(media_info_h media, void *data) -{ - //SETTING_TRACE_BEGIN; - setting_retvm_if(media == NULL, true, "media is NULL"); - setting_retvm_if(data == NULL, true, "Data parameter is NULL"); - double *total_size = (double *) data; - - media_content_type_e media_type = 0; - unsigned long long size = 0; - - media_info_get_media_type(media, &media_type); - //SETTING_TRACE("media_type : [%d]", media_type); - - if(media_type == MEDIA_CONTENT_TYPE_MUSIC) { - media_info_get_size(media, &size); - //SETTING_TRACE("size : [%lld]", size); - *total_size += size; - } else { - SETTING_TRACE("Other Content"); - } - - return true; -} - static double __setting_storage_main_audio_status_get() { SETTING_TRACE_BEGIN; @@ -412,17 +404,16 @@ static double __setting_storage_main_audio_status_get() return total_size; } - ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE); + ret = media_info_foreach_media_from_db(filter, __setting_storage_main_media_item_cb, &total_size); if(ret != MEDIA_CONTENT_ERROR_NONE) { media_filter_destroy(filter); - SETTING_TRACE("Fail to set order"); + SETTING_TRACE("Fail to get media"); return total_size; } - ret = media_info_foreach_media_from_db(filter, __setting_storage_main_media_item_cb, &total_size); - if(ret != MEDIA_CONTENT_ERROR_NONE) { - media_filter_destroy(filter); - SETTING_TRACE("Fail to get media"); + ret = media_filter_destroy(filter); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + SETTING_TRACE_ERROR("destroy filter failed\n\n"); return total_size; } @@ -583,6 +574,8 @@ static void __setting_storage_main_launch_ug_destroy_cb(ui_gadget_h ug, void *pr if (back_btn != NULL) { elm_object_style_set(back_btn, NAVI_BACK_BUTTON_STYLE); /* take into effect */ } + + setting_view_update(&setting_view_storage_main, ad); } static void __setting_storage_main_launch_ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) @@ -1806,9 +1799,32 @@ static int setting_storage_main_update(void *cb) SETTING_TRACE_BEGIN; /* error check */ retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER); - SettingStorageUG *ad = (SettingStorageUG *) cb; + int ret = 0; + + __setting_storage_main_internal_storage_status_get(ad); + + /* update internal total size */ + char total_desc[SETTING_STORAGE_MAX_STR_LEN + 1] = {0,}; + ret = __setting_storage_status_size_transition(ad->internal_status.dTotal, total_desc); + setting_retvm_if(ret == SETTING_RETURN_FAIL, SETTING_RETURN_FAIL, "failed to transform") + + G_FREE(ad->internal->keyStr); + ad->internal->keyStr = (char *)g_strdup(total_desc); + elm_object_item_data_set(ad->internal->item, ad->internal); + elm_genlist_item_update(ad->internal->item); + + /* update internal available size */ + char avail_desc[SETTING_STORAGE_MAX_STR_LEN + 1] = {0,}; + ret = __setting_storage_status_size_transition(ad->internal_status.dAvail, avail_desc); + setting_retvm_if(ret == SETTING_RETURN_FAIL, SETTING_RETURN_FAIL, "failed to transform") + + G_FREE(ad->avail->sub_desc); + ad->avail->sub_desc = (char *)g_strdup(avail_desc); + elm_object_item_data_set(ad->avail->item, ad->avail); + elm_genlist_item_update(ad->avail->item); + /* wake up thread */ pthread_mutex_lock(&ad->update_mutex); ad->type = SETTING_STORAGE_REUPDATE; diff --git a/setting-storage/src/setting-storage.c b/setting-storage/src/setting-storage.c index 5611e9f..9b92230 100755 --- a/setting-storage/src/setting-storage.c +++ b/setting-storage/src/setting-storage.c @@ -227,6 +227,9 @@ static void setting_storage_ug_on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv) { SETTING_TRACE_BEGIN; + setting_retm_if(priv == NULL, "priv is NULL"); + SettingStorageUG *ad = (SettingStorageUG *)priv; + switch (event) { case UG_EVENT_LOW_MEMORY: break; @@ -235,12 +238,32 @@ static void setting_storage_ug_on_event(ui_gadget_h ug, enum ug_event event, case UG_EVENT_LANG_CHANGE: break; case UG_EVENT_ROTATE_PORTRAIT: - break; case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN: + { + SETTING_TRACE("UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN"); + if (ad->internal) { + if (ad->internal->eo_check) { + evas_object_del(ad->internal->eo_check); + ad->internal->eo_check = NULL; + } + elm_object_item_data_set(ad->internal->item, ad->internal); + elm_genlist_item_update(ad->internal->item); + } + } break; case UG_EVENT_ROTATE_LANDSCAPE: - break; case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN: + { + SETTING_TRACE("UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN"); + if (ad->internal) { + if (ad->internal->eo_check) { + evas_object_del(ad->internal->eo_check); + ad->internal->eo_check = NULL; + } + elm_object_item_data_set(ad->internal->item, ad->internal); + elm_genlist_item_update(ad->internal->item); + } + } break; case UG_EVENT_REGION_CHANGE: break;