Added mute/unmute for all of volume. 23/107723/1
authorjinwang.an <jinwang.an@samsung.com>
Thu, 29 Dec 2016 10:34:47 +0000 (19:34 +0900)
committerjinwang.an <jinwang.an@samsung.com>
Thu, 29 Dec 2016 10:34:47 +0000 (19:34 +0900)
Change-Id: I089232ef5e76625911f74c58fc3c189af2b549c4
Signed-off-by: jinwang.an <jinwang.an@samsung.com>
src/setting-volume-page.c

index f2ca01c59bb11d9f63d4d31c8e8428a2b4c70b03..487a783767589c84822c318b966952927032bfc0 100644 (file)
 
 #define VOLUME_LIST_COUNT 4
 
+#ifndef VCONFKEY_SETAPPL_CALL_RINGTONE_SOUND_VOLUME_BACKUP_INT
+#define VCONFKEY_SETAPPL_CALL_RINGTONE_SOUND_VOLUME_BACKUP_INT "db/setting/sound/call/ringtone_sound_volume_backup"
+#define VCONFKEY_SETAPPL_MEDIA_SOUND_VOLUME_BACKUP_INT "db/setting/sound/media/sound_volume_backup"
+#define VCONFKEY_SETAPPL_NOTI_SOUND_VOLUME_BACKUP_INT "db/setting/sound/noti/sound_volume_backup"
+#define VCONFKEY_SETAPPL_TOUCH_FEEDBACK_SOUND_VOLUME_BACKUP_INT "db/setting/sound/touch_feedback/sound_volume_backup"
+#endif
+
 static char *setting_volume_img_names[VOLUME_LIST_COUNT] = {
        "b_setting_multi_media.png",
        "b_setting_multi_media.png",
@@ -39,6 +46,13 @@ static char *img_string[VOLUME_LIST_COUNT] = {
        "IDS_ST_BODY_SYSTEM_M_VOLUME_ABB"
 };
 
+static char *vconf_name_backup[VOLUME_LIST_COUNT] = {
+       VCONFKEY_SETAPPL_CALL_RINGTONE_SOUND_VOLUME_BACKUP_INT,
+       VCONFKEY_SETAPPL_MEDIA_SOUND_VOLUME_BACKUP_INT,
+       VCONFKEY_SETAPPL_NOTI_SOUND_VOLUME_BACKUP_INT,
+       VCONFKEY_SETAPPL_TOUCH_FEEDBACK_SOUND_VOLUME_BACKUP_INT
+};
+
 static char *vconf_name[VOLUME_LIST_COUNT] = {
        VCONFKEY_SETAPPL_CALL_RINGTONE_SOUND_VOLUME_INT,
        VCONFKEY_SETAPPL_MEDIA_SOUND_VOLUME_INT,
@@ -401,9 +415,10 @@ static void _volume_value_minus(void *data, int cur_page)
                _change_btn_img(pd->page_layout[cur_page], pd->plus_btn[cur_page], "b_slider_icon_plus.png", "btn2");
        }
 
-       if (pd->slider_value[cur_page] == 0)    {
+       if (pd->slider_value[cur_page] == 0) {
                _change_btn_img(data, pd->minus_btn[cur_page], "b_slider_icon_minus_disable.png", "btn1");
                _change_btn_img(pd->page_layout[cur_page], pd->center_img[cur_page], setting_volume_img_mute_names[is_telephony_enable() ? cur_page : cur_page+1], "elm.icon");
+               vconf_set_int(vconf_name_backup[is_telephony_enable() ? cur_page : cur_page+1], pd->slider_value[cur_page]);
        }
 }
 
@@ -433,6 +448,34 @@ static void change_volume_page(void *data, int page)
        }
 }
 
+static void set_mute_unmute_page(void *data, int page)
+{
+       page_data *pd = (page_data *)data;
+       int page_idx = page;
+       if (!is_telephony_enable()) {
+               /* Ringtone supports only telephony feature */
+               page++;
+       }
+
+
+       switch (page) {
+       case 0: /*ringtone*/
+               normal_volume_value_changed_page(pd->slider_value[page_idx]);
+               break;
+       case 1: /*media */
+               multimedia_value_changed_page(pd->slider_value[page_idx]);
+               break;
+       case 2: /*nodification */
+               normal_volume_value_changed_page(pd->slider_value[page_idx]);
+               break;
+       case 3: /*system */
+               normal_volume_value_changed_page(pd->slider_value[page_idx]);
+               break;
+       default:
+               break;
+       }
+}
+
 static Eina_Bool
 _value_changed_rotary(void *data, Evas_Object *obj, Eext_Rotary_Event_Info *info)
 {
@@ -518,6 +561,37 @@ static void _press_minus_volume_cb(void *data, Evas_Object *obj, void *event_inf
        change_volume_page(data, cur_page);
 }
 
+static void _press_mute_numute_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       char buf[1024];
+       /*Evas_Object *layout = (Evas_Object *)data; */
+       page_data *pd = (page_data *)data;
+       int cur_page = 0;
+       elm_scroller_current_page_get(pd->scroller, &cur_page, NULL);
+
+       if (pd->slider_value[cur_page] > 0) {
+               vconf_set_int(vconf_name_backup[is_telephony_enable() ? cur_page : cur_page+1], pd->slider_value[cur_page]);
+               _change_btn_img(data, pd->minus_btn[cur_page], "b_slider_icon_minus_disable.png", "btn1");
+               _change_btn_img(pd->page_layout[cur_page], pd->center_img[cur_page], setting_volume_img_mute_names[is_telephony_enable() ? cur_page : cur_page+1], "elm.icon");
+               pd->slider_value[cur_page] = 0;
+       } else {
+               vconf_get_int(vconf_name_backup[is_telephony_enable() ? cur_page : cur_page+1], &pd->slider_value[cur_page]);
+               if (pd->slider_value[cur_page] > 0) {
+                       _change_btn_img(pd->page_layout[cur_page], pd->minus_btn[cur_page], "b_slider_icon_minus.png", "btn1");
+                       _change_btn_img(pd->page_layout[cur_page], pd->center_img[cur_page], setting_volume_img_names[is_telephony_enable() ? cur_page : cur_page+1], "elm.icon");
+               }
+       }
+
+       snprintf(buf, sizeof(buf), "%02d", pd->slider_value[cur_page]);
+       ERR("Slider value = %s\n", buf);
+       elm_object_part_text_set(pd->page_layout[cur_page], "elm.text.slider", buf);
+       eext_circle_object_value_set(pd->slider[cur_page], (float)pd->slider_value[cur_page]);
+
+       set_mute_unmute_page(data, cur_page);
+
+}
+
+
 static char *
 _accessible_name_cb(void *data, Evas_Object *obj)
 {
@@ -756,6 +830,7 @@ Evas_Object *_create_volume_page(void *data)
                Evas_Object *img_bg = NULL;
                img_bg = elm_image_add(page_layout);
                snprintf(img_path, sizeof(img_path), "%s/b_slider_btn_bg.png", IMG_DIR);
+               evas_object_smart_callback_add(img_bg, "clicked", _press_mute_numute_cb, pd);
                elm_image_file_set(img_bg, img_path, NULL);
                elm_object_part_content_set(page_layout, "elm.icon_circle", img_bg);
                evas_object_show(img_bg);