[TIZENIOT-2409] Added back key in slide show | Fixed hw back key operation 10/253610/4 submit/tizen/20210216.060257
authormohitkr1 <mohit.kr1@samsung.com>
Tue, 16 Feb 2021 04:12:47 +0000 (09:42 +0530)
committermohitkr1 <mohit.kr1@samsung.com>
Tue, 16 Feb 2021 05:34:47 +0000 (11:04 +0530)
Change-Id: Iae608130472599c0f04aca88c10eee998e019eb0
Signed-off-by: mohitkr1 <mohit.kr1@samsung.com>
res/edje/ivug-main.edc
res/edje/ivug-ss-ly.edc
src/main/view/ivug-main-view.cpp
src/slideshow/control/ivug-slideshow.cpp

index aca5bd2e961849bb47c80ade537d2204171dcbfa..a807c2e2bbcb8173557f78d4b5a6243db4999080 100644 (file)
@@ -93,20 +93,6 @@ collections {
                                        visible: 0;
                                }
                        }
-                       part {
-                               name: "mainview.popup";
-                               type: SWALLOW;
-                               clip_to: "clip";
-                               scale: 1;
-                               description {
-                                       state: "default" 0.0;
-                                       align: 0.15 0.1;
-                                       visible: 1;
-                                       min : 320 150;
-                                       rel1 { relative: 1275/1280 120/720;}
-                                       rel2 { relative: 1.0 (85+100)/720;}
-                               }
-                       }
                }
                programs {
                        program {
index cdcddc1bda300dd91d0a57e27c1d0a3e387be042..efaa13538413a91efec27c0a9f970a059837f8c9 100644 (file)
@@ -14,6 +14,8 @@
  * limitations under the License.
  */
 
+#define ICON_BACK_BUTTON "core_icon_back.png"
+
 collections {
        base_scale: 2.4;
 
@@ -25,6 +27,7 @@ collections {
                        image: "Image_viewer_popup_bg.#.png" COMP;
                        image: "Image_viewer_popup_bg_stroke.#.png" COMP;
                        image: "core_icon_back.png" COMP;
+                       image: ICON_BACK_BUTTON COMP;
                }
 
                plugins {
@@ -52,55 +55,44 @@ collections {
                                }
                        }
                        part {
-                               name: "elm.padding.left";
-                               type: SPACER;
-                               scale: 1;
+                               name: "back_button_icon";
+                               type: IMAGE;
+                               scale: 1 ;
                                description {
                                        state: "default" 0.0;
-                                       rel1 {relative: 0.0 0.0; to: "bg";}
-                                       rel2 {relative: 0.0 1.0; to: "bg";}
-                                       align: 0 0.5;
-                                       min: 15 0;
-                                       fixed: 1 0;
+                                       visible : 1;
+                                       align: 0.0 0.0;
+                                       fixed: 1 1;
+                                       image.normal : ICON_BACK_BUTTON;
+                                       rel1{relative: 35/1280 32/720; to: "bg";}
+                                       rel2{relative: 48/1280 53/720; to: "bg";}
                                }
-                       }
-                       part {
-                               name: "elm.padding.right";
-                               type: SPACER;
-                               scale: 1;
                                description {
-                                       state: "default" 0.0;
-                                       rel1 {relative: 1.0 0.0; to: "bg";}
-                                       rel2 {relative: 1.0 1.0; to: "bg";}
-                                       align: 1 0.5;
-                                       min: 15 0;
-                                       fixed: 1 0;
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                                       image.normal : ICON_BACK_BUTTON;
                                }
                        }
                        part {
-                               name: "elm.padding.top";
-                               type: SPACER;
-                               scale: 1;
+                               name: "back_button_area";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 0;
+                               scale: 1 ;
                                description {
                                        state: "default" 0.0;
-                                       rel1 {relative: 0.0 0.0; to: "bg";}
-                                       rel2 {relative: 1.0 0.0; to: "bg";}
-                                       align: 0 0;
-                                       min: 0 13;
-                                       fixed: 0 1;
+                                       visible : 1;
+                                       align: 0.0 0.0;
+                                       fixed: 1 1;
+                                       rel1{relative: 30/1280 27/720; to: "bg";}
+                                       rel2{relative: 55/1280 55/720; to: "bg";}
+                                       color: 0 0 0 0;
                                }
-                       }
-                       part {
-                               name: "elm.padding.bottom";
-                               type: SPACER;
-                               scale: 1;
                                description {
-                                       state: "default" 0.0;
-                                       rel1 {relative: 0.0 1.0; to: "bg";}
-                                       rel2 {relative: 1.0 1.0; to: "bg";}
-                                       align: 0 1;
-                                       min: 0 16;
-                                       fixed: 0 1;
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
                                }
                        }
                        /*play icon*/
@@ -134,6 +126,19 @@ collections {
                                        image.normal: "viwer_video_play_press.png";
                                }
                        }
+                       part {
+                               name: "elm.padding.bottom";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {relative: 0.0 1.0; to: "bg";}
+                                       rel2 {relative: 1.0 1.0; to: "bg";}
+                                       align: 0 1;
+                                       min: 0 16;
+                                       fixed: 0 1;
+                               }
+                       }
                        part {
                                name: "bottom_icon_area";
                                type: RECT;
@@ -416,6 +421,12 @@ collections {
                                source: "slide_interval_setting.icon.click";
                                action: RUN_PLUGIN "touch_sound";
                        }
+                       program {
+                               name:   "buttontextclicked";
+                               signal: "mouse,clicked,1";
+                               source: "back_button_area";
+                               action: SIGNAL_EMIT "back,icon,clicked" "back_button_area";
+                       }
                        program {
                                name: "hide_slideshow_pause";
                                signal: "elm,state,hide";
@@ -426,6 +437,8 @@ collections {
                                        set_state(PART:"play.icon", "hide", 0.0);
                                        set_state(PART:"stop.icon.bg", "hide", 0.0);
                                        set_state(PART:"stop.icon.click", "hide", 0.0);
+                                       set_state(PART:"back_button_icon", "hide", 0.0);
+                                       set_state(PART:"back_button_area", "hide", 0.0);
                                        set_state(PART:"slide_interval_setting.icon.bg", "hide", 0.0);
                                        set_state(PART:"slide_interval_setting.icon.bg.storke", "hide", 0.0);
                                        set_state(PART:"slide_interval_setting.icon.text", "hide", 0.0);
index dc93ff2d71e11fa820a5f7fdbdce1e9460793676..5a9f77f8a49fa747c78d6e40b18be58f8e6ade0d 100644 (file)
@@ -448,9 +448,6 @@ static Eina_Bool _on_key_down(void *user_data, int type, void *event)
 
        if (!strcmp(key_event->keyname, "XF86Back")) {
                MSG_MAIN_HIGH("Back(End) key");
-               if (pMainView->ssHandle) {
-                       ivug_ss_stop(pMainView->ssHandle, false);
-               }
        } else if (!strcmp(key_event->keyname, "XF86Home")) {
                MSG_MAIN_HIGH("Home key");
        } else if (!strcmp(key_event->keyname, "XF86PowerOff")) {
@@ -560,7 +557,6 @@ on_slideshow_finished(void *data, Evas_Object *obj, void *event_info)
        if (bDestoryed) {
                return;
        }
-
        Media_Item * item = NULL;
        pMainView->isSliding = false;
 
index dff7f55000f5c854b3b8952cdc6425108077c2a6..1648168e0a93f314f3a3953fbe0d0c17e01ae330 100644 (file)
@@ -606,6 +606,19 @@ static bool _ivug_ss_create_image_layout(Evas_Object *parent, Slide_Layout *sLay
        return true;
 }
 
+static void _back_hw_icon_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_MAIN_HIGH("_back_hw_icon_cb");
+
+       if (!data) {
+               MSG_MAIN_ERROR("user data is NULL");
+               return;
+       }
+
+       SlideShow *pSlideShow = (SlideShow*)data;
+       ivug_ss_stop(pSlideShow, false);
+}
+
 /**
  * create slide show
  * @param parent: evas object parent
@@ -677,6 +690,8 @@ SlideShow *ivug_ss_create(Evas_Object *parent)
        evas_object_event_callback_add(pSlideShow->event, EVAS_CALLBACK_MOUSE_DOWN, _ivug_ss_on_mouse_down, pSlideShow);
        evas_object_event_callback_add(pSlideShow->event, EVAS_CALLBACK_MOUSE_UP, _ivug_ss_on_mouse_up, pSlideShow);
 
+       eext_object_event_callback_add(pSlideShow->obj, EEXT_CALLBACK_BACK, _back_hw_icon_cb, (void *)pSlideShow);
+
        return pSlideShow;
 }
 
@@ -1353,6 +1368,16 @@ static void _setting_icon_cb(void *data, Evas_Object *obj, const char *emission,
        return;
 }
 
+static void _back_icon_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       MSG_MAIN_HIGH("_back_icon_cb");
+
+       IV_ASSERT(data != NULL);
+
+       SlideShow *pSlideShow = (SlideShow*)data;
+       ivug_ss_stop(pSlideShow, false);
+}
+
 /**
  * show pause state layout in slide show
  * @param pSlideShow
@@ -1376,6 +1401,7 @@ static void ivug_show_pause_state_layout(SlideShow *pSlideShow)
        elm_object_domain_translatable_part_text_set(pSlideShow->pauseLayout, "effect.icon.text", textdomain(NULL), GET_STR(IDS_SLIDESHOW_EFFECT));
 
        /*register callback*/
+       elm_object_signal_callback_add(pSlideShow->pauseLayout, "back,icon,clicked", "back_button_area", _back_icon_cb, (void *)pSlideShow);;
        elm_object_signal_callback_add(pSlideShow->pauseLayout, "mouse,clicked,1", "play.icon", _play_icon_cb, (void *)pSlideShow);
        elm_object_signal_callback_add(pSlideShow->pauseLayout, "mouse,clicked,1", "stop.icon.click", _stop_cb, (void *)pSlideShow);
        elm_object_signal_callback_add(pSlideShow->pauseLayout, "mouse,clicked,1", "slide_interval_setting.icon.click", _setting_icon_cb, (void *)pSlideShow);
@@ -1400,6 +1426,7 @@ static void ivug_show_pause_state_layout(SlideShow *pSlideShow)
        elm_object_domain_translatable_part_text_set(pSlideShow->pauseLayout2, "effect.icon.text", textdomain(NULL), GET_STR(IDS_SLIDESHOW_EFFECT));
 
        /*register callback*/
+       elm_object_signal_callback_add(pSlideShow->pauseLayout2, "back,icon,clicked", "back_button_area", _back_icon_cb, (void *)pSlideShow);
        elm_object_signal_callback_add(pSlideShow->pauseLayout2, "mouse,clicked,1", "play.icon", _play_icon_cb, (void *)pSlideShow);
        elm_object_signal_callback_add(pSlideShow->pauseLayout2, "mouse,clicked,1", "stop.icon.click", _stop_cb, (void *)pSlideShow);
        elm_object_signal_callback_add(pSlideShow->pauseLayout2, "mouse,clicked,1", "slide_interval_setting.icon.click", _setting_icon_cb, (void *)pSlideShow);