EditAlarmView: allow change snooze on item click 31/140231/1
authorLukasz Stanislawski <l.stanislaws@samsung.com>
Fri, 21 Jul 2017 13:38:34 +0000 (15:38 +0200)
committerLukasz Stanislawski <l.stanislaws@samsung.com>
Fri, 21 Jul 2017 14:00:17 +0000 (16:00 +0200)
Clicking on "snooze" item did not change value of snooze.
Path adds handling of item clicking and additionally
removed double-click sound issue which happened on clicking
snooze radio button.

Change-Id: I45b3582cd7bc7163a9eb55ed388ae744ea5533a6

clock/src/View/EditAlarmView.cpp

index 4d9458605f5dd2288b9cbd97835917dfa0382ae4..bb341bf8655da4be4f7ee302655df564a28ade23 100644 (file)
@@ -36,6 +36,7 @@ using namespace model;
 
 #define VIBRATION_ICON_PATH "images/01_volume_vibration.png"
 #define SOUND_ICON_PATH "images/00_volume_icon.png"
+#define SNOOZE_ICON_PART_NAME "elm.swallow.end"
 
 EditAlarmView::EditAlarmView(view::MainView &main)
        : PageView(main), discard_popup_(nullptr), week_flags_view_(main, data_.flags), is_muted_(false), main_(main)
@@ -351,7 +352,12 @@ void EditAlarmView::RepeatItemSelectedCallback(void *data, Evas_Object *obj, voi
 void EditAlarmView::SnoozeItemSelectedCallback(void *data, Evas_Object *obj, void *event)
 {
        Elm_Object_Item *it = static_cast<Elm_Object_Item*>(event);
+       EditAlarmView *view = static_cast<EditAlarmView*>(data);
+
        elm_genlist_item_selected_set(it, EINA_FALSE);
+       view->data_.snooze = !view->data_.snooze;
+       Evas_Object *ck = elm_object_item_part_content_get(it, SNOOZE_ICON_PART_NAME);
+       if (ck) elm_check_state_set(ck, view->data_.snooze);
 }
 
 void EditAlarmView::ChooseAlarmToneItemSelectedCallback(void *data, Evas_Object *obj, void *event)
@@ -474,9 +480,10 @@ void EditAlarmView::CreateGenlistItems()
        itc->item_style = "multiline"; // from tizen-theme
        itc->func.content_get = [](void *data, Evas_Object *o, const char *part) -> Evas_Object* {
                EditAlarmView *view = static_cast<EditAlarmView*>(data);
-               if (!strcmp(part, "elm.swallow.end")) {
+               if (!strcmp(part, SNOOZE_ICON_PART_NAME)) {
                        Evas_Object *ck = elm_check_add(o);
                        elm_object_style_set(ck, "on&off");
+                       evas_object_propagate_events_set(ck, EINA_FALSE);
                        evas_object_smart_callback_add(ck, "changed",
                                        EditAlarmView::CheckChangedCallback, view);
                        elm_check_state_set(ck, view->data_.snooze);