[Bug] fix P120907-4551 : add new item 'Audio' and add click event for items except...
authorJing Yigang <yigang.jing@samsung.com>
Wed, 12 Sep 2012 02:37:37 +0000 (10:37 +0800)
committerJing Yigang <yigang.jing@samsung.com>
Wed, 12 Sep 2012 02:39:12 +0000 (10:39 +0800)
Change-Id: I8da7aefb98245175e7ec064e95e66808a5604f63

resource/icons/A01-1_icon_color_Audio.png [new file with mode: 0755]
setting-storage/include/setting-storage.h
setting-storage/src/setting-storage-main.c

diff --git a/resource/icons/A01-1_icon_color_Audio.png b/resource/icons/A01-1_icon_color_Audio.png
new file mode 100755 (executable)
index 0000000..8b75424
Binary files /dev/null and b/resource/icons/A01-1_icon_color_Audio.png differ
index c2a5cda..3b96083 100755 (executable)
 #define SETTING_STORAGE_SD_CARD_MOUNT_ALREADY_DESC "Already mount"
 
 #define SETTING_STORAGE_DEFAULT_STORAGE_STR "Default storage"
-#define SETTING_STORAGE_INTERNAL_STORAGE_STR "IDS_ST_BODY_DEVICE_MEMORY"
+//#define SETTING_STORAGE_INTERNAL_STORAGE_STR "IDS_ST_BODY_DEVICE_MEMORY"
+#define SETTING_STORAGE_INTERNAL_STORAGE_STR "Device storage"
+#define SETTING_STORAGE_AUDIO_STR "Audio"
+
 #define SETTING_STORAGE_PICS_STR "IDS_ST_BODY_PICTURES_VIDEOS"
 #define SETTING_STORAGE_DOWNS_STR "IDS_ST_BODY_DOWNLOADS"
 #define SETTING_STORAGE_MISCES_STR "IDS_ST_BODY_MISCELLANEOUS_FILES"
@@ -60,6 +63,7 @@
 #define SETTING_STORAGE_APPS_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_applications.png"
 #define SETTING_STORAGE_PICS_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_pictures.png"
 #define SETTING_STORAGE_DOWNS_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_downloads.png"
+#define SETTING_STORAGE_AUDIO_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_Audio.png"
 #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"
 
@@ -71,6 +75,7 @@
 #define SETTING_STORAGE_PICTURES_PATH          "/opt/media/Images"
 #define SETTING_STORAGE_VIDEOS_PATH            "/opt/media/Videos"
 #define SETTING_STORAGE_DOWNLOADS_PATH         "/opt/media/Downloads"
+#define SETTING_STORAGE_AUDIO_PATH             "/opt/media/Sounds"
 #define SETTING_STORAGE_MMC_PATH               "/opt/storage/sdcard"
 #define SETTING_STORAGE_MMC_PARENT_PATH        "/opt/storage/sdcard/.."
 
@@ -131,12 +136,14 @@ struct _SettingStorageUG {
        Setting_Storage_Status apps_status;
        Setting_Storage_Status pics_videos_status;
        Setting_Storage_Status downloads_status;
+       Setting_Storage_Status audio_status;
        Setting_Storage_Status others_status;
 
        Setting_GenGroupItem_Data *internal;
        Setting_GenGroupItem_Data *apps;
        Setting_GenGroupItem_Data *pics_videos;
        Setting_GenGroupItem_Data *downloads;
+       Setting_GenGroupItem_Data *audio;
        Setting_GenGroupItem_Data *others;
        Setting_GenGroupItem_Data *avail;
 
index 14ffcaf..2cdd16f 100755 (executable)
@@ -134,6 +134,26 @@ static Evas_Object *__gl_content_get(void *data, Evas_Object *obj, const char *p
                        elm_box_pack_end(status_box, downs);
                }
 
+               /* audio */
+               unsigned int audio_size = 0;
+               temp_size = ((float)ad->audio_status.dTotal / ad->internal_status.dTotal) * width;
+               if (temp_size < 1 && temp_size > 0) {
+                       audio_size = 1;
+               } else {
+                       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);
+                       elm_box_pack_end(status_box, audio);
+               }
+
                /* Miscellaneous files */
                unsigned int others_size = 0;
                temp_size = ((float)ad->others_status.dTotal / ad->internal_status.dTotal) * width;
@@ -438,6 +458,25 @@ static void __setting_storage_main_downloads_status_get(void *data)
        ad->downloads_status = downloads_status;
 }
 
+static void __setting_storage_main_audio_status_get(void *data)
+{
+       SETTING_TRACE_BEGIN;
+       setting_retm_if(data == NULL, "Data parameter is NULL");
+       SettingStorageUG *ad = (SettingStorageUG *) data;
+
+       double dTotal = 0.0;
+       int ret = SETTING_RETURN_SUCCESS;
+       Setting_Storage_Status audio_status;
+
+       dTotal = __setting_storage_main_folder_size_get(SETTING_STORAGE_AUDIO_PATH);
+       setting_retm_if(ret == SETTING_RETURN_FAIL, "get audio status failed");
+       audio_status.dTotal = dTotal;
+
+       //SETTING_TRACE("audio_status = %f", dTotal);
+
+       ad->audio_status = audio_status;
+}
+
 static void __setting_storage_main_launch_ug_destroy_cb(ui_gadget_h ug, void *priv)
 {
        SETTING_TRACE_BEGIN;
@@ -513,6 +552,20 @@ static void __setting_storage_main_launch_manage_app_ug(void *data)
        FREE(cbs);
 }
 
+static void __setting_storage_main_app_launch(char *app_name)
+{
+       SETTING_TRACE_BEGIN;
+       setting_retm_if(app_name == NULL, "app_name is NULL");
+
+       if(aul_app_is_running((const char *)app_name)) {
+               SETTING_TRACE_DEBUG("%s is already launched.", app_name);
+               aul_open_app((const char *)app_name);
+       } else {
+               SETTING_TRACE_DEBUG("%s will be launched. ", app_name);
+               aul_launch_app((const char *)app_name, NULL);
+       }
+}
+
 static void __setting_storage_main_Gendial_mouse_up_cb(void *data, Evas_Object *obj, void *event_info)
 {
        SETTING_TRACE_BEGIN;
@@ -531,6 +584,14 @@ static void __setting_storage_main_Gendial_mouse_up_cb(void *data, Evas_Object *
        } else if (!safeStrCmp(SETTING_STORAGE_DEFAULT_STORAGE_STR, list_item->keyStr)) {
                setting_view_change(&setting_view_storage_main,
                                    &setting_view_storage_default_storage, ad);
+       } else if (!safeStrCmp(SETTING_STORAGE_PICS_STR, list_item->keyStr)) {
+               __setting_storage_main_app_launch("org.tizen.gallery");
+       } else if (!safeStrCmp(SETTING_STORAGE_DOWNS_STR, list_item->keyStr)) {
+               __setting_storage_main_app_launch("org.tizen.download-manager");
+       } else if (!safeStrCmp(SETTING_STORAGE_AUDIO_STR, list_item->keyStr)) {
+               __setting_storage_main_app_launch("org.tizen.music-player");
+       } else if (!safeStrCmp(SETTING_STORAGE_MISCES_STR, list_item->keyStr)) {
+               //__setting_storage_main_app_launch("org.tizen.myfile");
        } else {
                // do nothing now
        }
@@ -1068,6 +1129,8 @@ static int setting_storage_main_create(void *cb)
 
        __setting_storage_main_downloads_status_get(ad);
 
+       __setting_storage_main_audio_status_get(ad);
+
        Elm_Object_Item *item = NULL;
 
        if (!isEmulBin()) {
@@ -1129,13 +1192,13 @@ static int setting_storage_main_create(void *cb)
        char pics_videos_desc[SETTING_STORAGE_MAX_STR_LEN + 1] = {0,};
        ret = __setting_storage_status_size_transition(ad->pics_videos_status.dTotal, pics_videos_desc);
        setting_retvm_if(ret == SETTING_RETURN_FAIL, SETTING_RETURN_FAIL, "failed to transform")
-       ad->pics_videos = setting_create_Gendial_field_def(ad->genlist, &(ad->itc_2text_1icon_3), NULL,
+       ad->pics_videos = setting_create_Gendial_field_def(ad->genlist, &(ad->itc_2text_1icon_3),
+                                            __setting_storage_main_Gendial_mouse_up_cb,
                                             ad, SWALLOW_Type_INVALID, SETTING_STORAGE_PICS_ICON_PATH,
                                             NULL, 0, SETTING_STORAGE_PICS_STR,
                                             pics_videos_desc, NULL);
        if (ad->pics_videos) {
                ad->pics_videos->userdata = ad;
-               elm_genlist_item_select_mode_set(ad->pics_videos->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
        } else {
                SETTING_TRACE_ERROR("ad->pics_videos is NULL");
                return SETTING_RETURN_FAIL;
@@ -1145,28 +1208,47 @@ static int setting_storage_main_create(void *cb)
        char downloads_desc[SETTING_STORAGE_MAX_STR_LEN + 1] = {0,};
        ret = __setting_storage_status_size_transition(ad->downloads_status.dTotal, downloads_desc);
        setting_retvm_if(ret == SETTING_RETURN_FAIL, SETTING_RETURN_FAIL, "failed to transform")
-       ad->downloads = setting_create_Gendial_field_def(ad->genlist, &(ad->itc_2text_1icon_3), NULL,
+       ad->downloads = setting_create_Gendial_field_def(ad->genlist, &(ad->itc_2text_1icon_3),
+                                            __setting_storage_main_Gendial_mouse_up_cb,
                                             ad, SWALLOW_Type_INVALID, SETTING_STORAGE_DOWNS_ICON_PATH,
                                             NULL, 0, SETTING_STORAGE_DOWNS_STR,
                                             downloads_desc,
                                             NULL);
        if (ad->downloads) {
                ad->downloads->userdata = ad;
-               elm_genlist_item_select_mode_set(ad->downloads->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
        } else {
                SETTING_TRACE_ERROR("ad->downloads is NULL");
                return SETTING_RETURN_FAIL;
        }
 
+       /* Audio */
+       char audio_desc[SETTING_STORAGE_MAX_STR_LEN + 1] = {0,};
+       ret = __setting_storage_status_size_transition(ad->audio_status.dTotal, audio_desc);
+       setting_retvm_if(ret == SETTING_RETURN_FAIL, SETTING_RETURN_FAIL, "failed to transform")
+       ad->audio = setting_create_Gendial_field_def(ad->genlist, &(ad->itc_2text_1icon_3),
+                                            __setting_storage_main_Gendial_mouse_up_cb,
+                                            ad, SWALLOW_Type_INVALID, SETTING_STORAGE_AUDIO_ICON_PATH,
+                                            NULL, 0, SETTING_STORAGE_AUDIO_STR,
+                                            audio_desc,
+                                            NULL);
+       if (ad->audio) {
+               ad->audio->userdata = ad;
+       } else {
+               SETTING_TRACE_ERROR("ad->audio is NULL");
+               return SETTING_RETURN_FAIL;
+       }
+
        /* Miscellaneous files */
        ad->others_status.dTotal = ad->internal_status.dTotal - ad->internal_status.dAvail
-                                - ad->apps_status.dTotal - ad->pics_videos_status.dTotal - ad->downloads_status.dTotal;
+                                - ad->apps_status.dTotal - ad->pics_videos_status.dTotal
+                                - ad->downloads_status.dTotal - ad->audio_status.dTotal;
        ad->others_status.dAvail = 0.0;
        char others_desc[SETTING_STORAGE_MAX_STR_LEN + 1] = {0,};
        ret = __setting_storage_status_size_transition(ad->others_status.dTotal, others_desc);
        setting_retvm_if(ret == SETTING_RETURN_FAIL, SETTING_RETURN_FAIL, "failed to transform")
 
-       ad->others = setting_create_Gendial_field_def(ad->genlist, &(ad->itc_2text_1icon_3), NULL,
+       ad->others = setting_create_Gendial_field_def(ad->genlist, &(ad->itc_2text_1icon_3), 
+                                            __setting_storage_main_Gendial_mouse_up_cb,
                                             ad, SWALLOW_Type_INVALID, SETTING_STORAGE_MISCES_ICON_PATH,
                                             NULL, 0, SETTING_STORAGE_MISCES_STR,
                                             others_desc, NULL);