[W-Indicator] Fix app launch issue 90/74090/1 accepted/tizen/wearable/20160613.022217 submit/tizen/20160612.124602
authorGowtham Anandha Babu <gowtham.ab@samsung.com>
Sun, 12 Jun 2016 12:33:12 +0000 (18:03 +0530)
committerGowtham Anandha Babu <gowtham.ab@samsung.com>
Sun, 12 Jun 2016 12:33:12 +0000 (18:03 +0530)
Added naviframe support.

Change-Id: I57981441ffaeecb0fa28e18fd832879456ec5ee1

include/windicator.h
include/windicator_util.h
src/windicator.c
src/windicator_moment_bar.c
src/windicator_moment_view.c
src/windicator_util.c

index add02f23a145bd5bacbce21935f312ef330c2c7e..90134ecc023fcda12a940a9c52e384b945bebbb3 100644 (file)
@@ -91,8 +91,9 @@ struct appdata
     Evas_Object *moment_bar_win;
     Evas_Object *moment_bar_bg;
     Evas_Object *moment_bar_conformant;
-    Evas_Object *moment_bar_circle_surface;
+    Eext_Circle_Surface *moment_bar_circle_surface;
     Evas_Object *moment_bar_first_page_layout;
+    Evas_Object *nf;
     Evas_Object *moment_bar_second_page_layout;
     Evas_Object *moment_bar_main_layout;
     Evas_Object *moment_bar_scroller;
index 4ab018e9be8ea6d1958b2a8ea40a97d823994493..078c9833983cf5c8f598e95845290eade8b50c23 100644 (file)
@@ -22,6 +22,8 @@ Evas_Object* windicator_util_win_create(const char *name, Eina_Bool is_alpha, wi
 void windicator_util_win_status_change(Evas_Object *win);
 Evas_Object *windicator_util_bg_create(Evas_Object *parent);
 Evas_Object *windicator_util_conformant_create(Evas_Object *parent);
+Evas_Object *windicator_util_layout_create(Evas_Object *parent);
+Evas_Object *windicator_util_naviframe_create(Evas_Object *parent);
 windicator_error_e windicator_util_win_notification_property_set(Evas_Object *win);
 
 void windicator_util_launch_app(void *data);
index e925be8ad05773b492068c49a4c403c325908094..2b2d63a6b29f5f895ec8826e34a040222b2c623b 100644 (file)
@@ -63,6 +63,7 @@ static void _init_variables(void *data)
         ad->moment_bar_conformant = NULL;
         ad->moment_bar_circle_surface = NULL;
         ad->moment_bar_first_page_layout = NULL;
+       ad->nf = NULL;
         ad->moment_bar_second_page_layout = NULL;
         ad->moment_bar_main_layout = NULL;
         ad->moment_bar_scroller = NULL;
@@ -155,16 +156,16 @@ void windicator_lo_update(void* data)
 static bool app_create(void *data)
 {
        _D("app_create");
-    struct appdata *ad = (struct appdata *)data;
-    retv_if(ad == NULL, false);
+       struct appdata *ad = (struct appdata *)data;
+       retv_if(ad == NULL, false);
 
 #ifdef _TIZEN_3G_ENABLE
-        _D("_TIZEN_3G_ENABLE");
+       _D("_TIZEN_3G_ENABLE");
 #else
-        _D("_TIZEN_BT");
+       _D("_TIZEN_BT");
 #endif
 
-    elm_app_base_scale_set(1.3);
+       elm_app_base_scale_set(1.3);
        create_moments_bar_win(ad);
        return true;
 }
@@ -180,10 +181,6 @@ void create_moments_bar_win(void *user_data)
     elm_config_preferred_engine_set("opengl_x11");
     _init_variables(ad);
 
-    Evas_Object *win = elm_win_add(NULL, "dummy_window", ELM_WIN_BASIC);
-    elm_win_screen_size_get(win, NULL, NULL, &ad->win_w, &ad->win_h);
-    _D("win_w(%d) win_h(%d)", ad->win_w, ad->win_h);
-
     /* initialize Moment Bar */
     if(WINDICATOR_ERROR_OK != windicator_moment_bar_init(ad)) {
             _E("Failed to initialize moment bar");
@@ -195,8 +192,6 @@ void create_moments_bar_win(void *user_data)
     }
     //evas_object_show(ad->moment_view_win);
     //evas_object_show(ad->moment_bar_win);
-
-    ecore_animator_source_set(ECORE_ANIMATOR_SOURCE_TIMER);
 }
 
 static void app_control(app_control_h app_control, void *user_data)
index c556050dc3e26fbe314a424427bc345f620b1c89..a6f55f1a787643462a28b5737fa6538da35c60b8 100644 (file)
@@ -42,7 +42,8 @@ Evas_Object *windicator_moment_bar_first_page_layout_create(void *data)
         _I("moment bar first layout create");
 
         /* create the first page layout */
-        Evas_Object *layout = elm_layout_add(ad->moment_bar_conformant);
+        Evas_Object *layout = elm_layout_add(ad->nf);
+       Elm_Object_Item *nf_it = NULL;
 
         retv_if(layout == NULL, NULL);
         _I("main %x first %x",ad->moment_bar_main_layout,layout );
@@ -122,7 +123,9 @@ Evas_Object *windicator_moment_bar_first_page_layout_create(void *data)
         }
 #endif
 
-        evas_object_show(layout);
+       nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, NULL);
+       elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
+
         _I("moment bar first layout create END");
         return layout;
 }
@@ -250,6 +253,8 @@ windicator_error_e windicator_moment_bar_init(void *data)
         ad->moment_bar_win = windicator_util_win_create("__MOMENT_BAR__", EINA_TRUE, TYPE_MOMENT_BAR);
         retv_if(ad->moment_bar_win == NULL, WINDICATOR_ERROR_FAIL);
 
+       elm_win_screen_size_get(ad->moment_bar_win, NULL, NULL, &ad->win_w, &ad->win_h);
+
         ad->moment_bar_evas = evas_object_evas_get(ad->moment_bar_win);
         ad->moment_bar_ee = ecore_evas_ecore_evas_get(ad->moment_bar_evas);
 
@@ -261,16 +266,23 @@ windicator_error_e windicator_moment_bar_init(void *data)
         ad->moment_bar_conformant = windicator_util_conformant_create(ad->moment_bar_win);
         retv_if(ad->moment_bar_conformant == NULL, WINDICATOR_ERROR_FAIL);
 
+       evas_object_resize(ad->moment_bar_win, &ad->win_w, &ad->win_h);
+
         // Eext Circle Surface Creation
         ad->moment_bar_circle_surface = eext_circle_surface_conformant_add(ad->moment_bar_conformant);
         retv_if(ad->moment_bar_circle_surface == NULL, WINDICATOR_ERROR_FAIL);
 
+       ad->moment_bar_first_page_layout = windicator_util_layout_create(ad->moment_bar_win);
+        retv_if(ad->moment_bar_first_page_layout == NULL, WINDICATOR_ERROR_FAIL);
+
         // Indicator
-        elm_win_indicator_mode_set(ad->moment_bar_win, ELM_WIN_INDICATOR_SHOW);
+        elm_win_indicator_mode_set(ad->moment_bar_win, ELM_WIN_INDICATOR_HIDE);
+
+       //Naviframe
+       ad->nf = windicator_util_naviframe_create(ad->moment_bar_first_page_layout);
 
         /* create moment bar's layout to main layout's scroller */
-        ad->moment_bar_first_page_layout = windicator_moment_bar_first_page_layout_create(ad);
-        retv_if(ad->moment_bar_first_page_layout == NULL, WINDICATOR_ERROR_FAIL);
+        windicator_moment_bar_first_page_layout_create(ad);
 
         windicator_moment_bar_update_main_view(ad);
 
@@ -280,9 +292,6 @@ windicator_error_e windicator_moment_bar_init(void *data)
 
         windi_connection_update(ad->moment_bar_rssi_icon, ad->moment_bar_connection_icon);
 
-        elm_object_content_set(ad->moment_bar_conformant, ad->moment_bar_first_page_layout);
-        elm_win_conformant_set(ad->moment_bar_win, EINA_TRUE);
-
         windicator_moment_bar_show(data);
 
         _I("initialize moment bar END");
index 6eb2af0ccd8434e572fe7d3e8f297278f47ab762..ffc8fba75f1640bdb141bd9026607b155bfdf6e7 100644 (file)
@@ -174,7 +174,6 @@ windicator_error_e windicator_moment_view_init(void *data)
         ad->moment_view_layout = windicator_moment_view_layout_create(ad);
         retv_if(ad->moment_view_layout == NULL, WINDICATOR_ERROR_FAIL);
 
-        //evas_object_resize(ad->moment_view_win, ad->win_w, ad->moment_view_h);
         evas_object_resize(ad->moment_view_win, ad->win_w, ad->moment_view_h);
         ad->moment_view_evas = evas_object_evas_get(ad->moment_view_win);
         ad->moment_view_ee = ecore_evas_ecore_evas_get(ad->moment_view_evas);
index 8f778ce9ab6d51be86fde3a60df03edd88f2e6e7..3ee922f86c3c0a0b2fc9224d28c833a2f248d5c4 100644 (file)
@@ -36,6 +36,42 @@ Evas_Object *windicator_util_conformant_create(Evas_Object *parent)
 
 }
 
+Evas_Object *windicator_util_layout_create(Evas_Object *parent)
+{
+        Evas_Object *layout;
+
+        if (parent == NULL) return NULL;
+
+        layout = elm_layout_add(parent);
+
+        if (layout == NULL) {
+                _D("Failed elm_layout_add.\n");
+                return NULL;
+        }
+
+        elm_layout_theme_set(layout, "layout", "application", "default");
+        evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+        elm_win_resize_object_add(parent, layout);
+
+        evas_object_show(layout);
+
+        return layout;
+}
+
+Evas_Object *windicator_util_naviframe_create(Evas_Object *parent)
+{
+        Evas_Object *nf = NULL;
+
+        if (parent == NULL) return NULL;
+
+        nf = elm_naviframe_add(parent);
+        elm_object_part_content_set(parent, "elm.swallow.content", nf);
+
+        evas_object_show(nf);
+
+        return nf;
+}
+
 windicator_error_e windicator_util_win_notification_property_set(Evas_Object *win)
 {
                retv_if(win == NULL, WINDICATOR_ERROR_FAIL);
@@ -46,43 +82,6 @@ windicator_error_e windicator_util_win_notification_property_set(Evas_Object *wi
         return WINDICATOR_ERROR_OK;
 }
 
-#if 0
-static void _aux_hint_set(Evas_Object *obj)
-{
-        ret_if(obj == NULL);
-
-        const Eina_List *l, *ll;
-        int id = -1;
-        char *hint;
-        Ecore_X_Window xid;
-        char buffer[128]={0,};
-
-        xid = elm_win_xwindow_get(obj);
-        l = elm_win_aux_hints_supported_get(obj);
-
-        id = elm_win_aux_hint_add(obj, "wm.comp.win.effect.enable", "1");
-        if (-1 == id) _E("Failed to get effect enable id");
-
-        EINA_LIST_FOREACH(l, ll, hint) {
-                _D("aux hint : %s", hint);
-                if (!strncmp(hint, "wm.comp.win.effect.launch.pos", strlen("wm.comp.win.effect.launch.pos"))) {
-                        /*source format is WIN_ID.ROTATION_ANGLE.X.Y.W.H*/
-                        sprintf(buffer, "%d.0.0.%d.0.0", xid, -1);
-                        _D("pos buffer : %s", buffer);
-                        id = elm_win_aux_hint_add(obj, "wm.comp.win.effect.launch.pos", buffer);
-                        if (id != -1) {
-                                //ad->launch_id = id; // save id to enable effect
-                        }
-                } else if (!strncmp(hint, "wm.comp.win.effect.close.pos", strlen("wm.comp.win.effect.close.pos"))) {
-                        id = elm_win_aux_hint_add(obj, "wm.comp.win.effect.close.pos", buffer); // close effect direction.
-                        if (id != -1) {
-                                //ad->close_id = id; // save id to enable effect
-                        }
-                }
-        }
-}
-#endif
-
 static void _quit_cb(void *data, Evas_Object *obj, void *ei)
 {
         elm_exit();
@@ -114,10 +113,6 @@ Evas_Object* windicator_util_win_create(const char *name, Eina_Bool is_alpha, wi
         }
         else
         {
-            //unsigned int opaque_val = 0;
-            //Ecore_X_Atom opaque_atom;
-            //Ecore_X_Window xwin;
-            //Ecore_X_Window root_win;
             Evas_Object *win = NULL;
 
             retv_if(!name, NULL);
@@ -126,38 +121,13 @@ Evas_Object* windicator_util_win_create(const char *name, Eina_Bool is_alpha, wi
             retv_if(!win, NULL);
 
             elm_win_title_set(win, name);
-
-            elm_win_role_set(win, "no-effect");
-
-            //_aux_hint_set(win);
-
-            //opaque_atom = ecore_x_atom_get("_E_ILLUME_WINDOW_REGION_OPAQUE");
-            //xwin = elm_win_xwindow_get(win);
-            //ecore_x_window_prop_card32_set(xwin, opaque_atom, &opaque_val, 1);
+           elm_win_autodel_set(win, EINA_TRUE);
 
             if (elm_win_wm_rotation_supported_get(win)) {
-                    const int rots[1] = {0};
-                    elm_win_wm_rotation_available_rotations_set(win, rots, 1);
+               int rots[4] = { 0, 90, 180, 270 };
+                elm_win_wm_rotation_available_rotations_set(win, (const int*)(&rots), 4);
             }
 
-            evas_object_color_set(win, 0, 0, 0, 0);
-
-            //xwin = elm_win_xwindow_get(win);
-
-            //ecore_x_e_illume_quickpanel_set(xwin, 1);
-
-            elm_win_quickpanel_priority_major_set(win, 300);
-
-            Ecore_Evas *ee;
-            ee = ecore_evas_ecore_evas_get(evas_object_evas_get(win));
-            ecore_evas_name_class_set(ee,"QUICKPANEL","QUICKPANEL");
-
-            evas_object_move(win, 0, -360);
-            evas_object_show(win);
-
-            //elm_win_title_set(win, title);
-            elm_win_borderless_set(win, EINA_TRUE);
-
             return win;
         }
 }