fix N_SE-11026, 11017, 10424, 7981
[apps/core/preloaded/settings.git] / setting-profile / src / setting-profile-sound-main.c
index 9852290..8dd3cbc 100755 (executable)
@@ -361,6 +361,28 @@ void __volume_stop_change_cb(void *data, Evas_Object *obj, void *event_info)
        SETTING_TRACE_END;
 }
 
+static void __main_list_unrealized_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       SETTING_TRACE_BEGIN;
+       retv_if(data == NULL, NULL);
+
+       SettingProfileUG *ad = (SettingProfileUG *) data;
+
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       Setting_GenGroupItem_Data *list_item =
+           (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
+
+       /* backup each slider's value */
+       if(list_item == ad->data_call_volume)
+               sound_manager_set_volume(SOUND_TYPE_RINGTONE, ad->data_call_volume->chk_status);
+       else if(list_item == ad->data_noti_volume)
+               sound_manager_set_volume(SOUND_TYPE_NOTIFICATION, ad->data_noti_volume->chk_status);
+       else if(list_item == ad->data_media_volume)
+               sound_manager_set_volume(SOUND_TYPE_MEDIA, ad->data_media_volume->chk_status);
+       else if(list_item == ad->data_touch_volume)
+               sound_manager_set_volume(SOUND_TYPE_SYSTEM, ad->data_touch_volume->chk_status);
+}
+
 static Evas_Object *__get_main_list(void *data)
 {
        retv_if(data == NULL, NULL);
@@ -531,6 +553,8 @@ static Evas_Object *__get_main_list(void *data)
 
        __change_state_of_sliderbars(ad);
 
+       evas_object_smart_callback_add(genlist, "unrealized", __main_list_unrealized_cb, ad);
+
        ad->sub_view[SETTING_PROF_VIEW_VOL] = genlist;
 
        return ad->sub_view[SETTING_PROF_VIEW_VOL];