[Bug] fix N_SE-12908 : adjust the size of Memory status bar in Storage in landscape...
authoryigang.jing <yigang.jing@samsung.com>
Sat, 3 Nov 2012 10:27:45 +0000 (18:27 +0800)
committeryigang.jing <yigang.jing@samsung.com>
Sat, 3 Nov 2012 10:27:45 +0000 (18:27 +0800)
Change-Id: Iddfae5f411b297d631039c441883c9897f655581

setting-storage/include/setting-storage.h
setting-storage/src/setting-storage-main.c
setting-storage/src/setting-storage.c

index 081782c..026a18a 100755 (executable)
@@ -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)
 
index 55dbb27..5bc1f7b 100755 (executable)
@@ -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;
index 5611e9f..9b92230 100755 (executable)
@@ -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;