wearable/rotary_selector: support page detent transition UX in editmode 93/203893/1
authorTaehyub Kim <taehyub.kim@samsung.com>
Wed, 30 May 2018 06:15:53 +0000 (15:15 +0900)
committerTaehyub Kim <taehyub.kim@samsung.com>
Thu, 18 Apr 2019 05:42:46 +0000 (14:42 +0900)
Change-Id: I40174628d9350d87b1990dcd02d7ebda111c5045

src/wearable/efl_extension_rotary_selector.c

index 50ae47278c11dbb183522c82357fe030a991eac9..7fe8a48b84fbffdb8a5aeb60481d516d029feebb 100644 (file)
@@ -1469,7 +1469,8 @@ _rotary_selector_rotary_cb(void *data, Evas_Object *obj, Eext_Rotary_Event_Info
         int diff = info->time_stamp - rsd->rotary_event_time_stamp;
         if (diff < _ROTARY_SELECTOR_ROTARY_EVENT_TIME_ACCELERATION_THRESHOLD)
           {
-             rsd->acceleration = EINA_TRUE;
+             if (!rsd->editing)
+               rsd->acceleration = EINA_TRUE;
           }
         else
           {
@@ -1481,6 +1482,20 @@ _rotary_selector_rotary_cb(void *data, Evas_Object *obj, Eext_Rotary_Event_Info
      {
         if (rsd->selected_index < rsd->item_count - 1)
           {
+             if (rsd->editing)
+               {
+                  rsd->selected_index = last_index + 1;
+                  if (rsd->selected_index > rsd->item_count - 1)
+                    {
+                       rsd->selected_index = rsd->item_count - 1;
+                       return ECORE_CALLBACK_PASS_ON;
+                    }
+                  _item_selected_signal_send(rsd, previous_item_index, rsd->selected_index);
+                  _page_animation_run(rsd, EINA_TRUE);
+                  _selector_update(rsd, EINA_TRUE, EINA_TRUE, EINA_TRUE);
+                  return ECORE_CALLBACK_PASS_ON;
+               }
+
              if (!rsd->acceleration)
                {
                   if (elm_atspi_bridge_utils_is_screen_reader_enabled() && rsd->is_first_rotary_control)
@@ -1561,6 +1576,20 @@ _rotary_selector_rotary_cb(void *data, Evas_Object *obj, Eext_Rotary_Event_Info
      {
         if (rsd->selected_index > 0)
           {
+             if (rsd->editing)
+               {
+                  rsd->selected_index = first_index - 1;
+                  if (rsd->selected_index < 0)
+                    {
+                       rsd->selected_index = 0;
+                       return ECORE_CALLBACK_PASS_ON;
+                    }
+                  _item_selected_signal_send(rsd, previous_item_index, rsd->selected_index);
+                  _page_animation_run(rsd, EINA_FALSE);
+                  _selector_update(rsd, EINA_TRUE, EINA_TRUE, EINA_TRUE);
+                  return ECORE_CALLBACK_PASS_ON;
+               }
+
              if (!rsd->acceleration)
                {
                   if (elm_atspi_bridge_utils_is_screen_reader_enabled() && rsd->is_first_rotary_control)