Add setup-wizard container fail event 41/78941/6 accepted/tizen/common/20160711.165608 accepted/tizen/ivi/20160709.071916 accepted/tizen/mobile/20160709.071745 accepted/tizen/tv/20160709.071841 accepted/tizen/wearable/20160709.071858 submit/tizen/20160709.035033
authorseolhee, kim <s414.kim@samsung.com>
Thu, 7 Jul 2016 11:11:23 +0000 (20:11 +0900)
committerseolhee, kim <s414.kim@samsung.com>
Fri, 8 Jul 2016 01:11:29 +0000 (10:11 +0900)
Change-Id: I90643fa486ea455d0a1e24bb81cadeb5dde2369e
Signed-off-by: seolhee, kim <s414.kim@samsung.com>
tools/apps/setup-wizard/include/krate-setup.h
tools/apps/setup-wizard/include/setup-text.h
tools/apps/setup-wizard/include/widget.h
tools/apps/setup-wizard/src/main.c
tools/apps/setup-wizard/src/ui.c
tools/apps/setup-wizard/src/widget.c

index 66fa072..a003d41 100644 (file)
@@ -61,6 +61,7 @@ typedef struct {
 } appdata_s;
 
 typedef struct {
+       Evas_Object *win;
        Evas_Object *conform;
        Evas_Object *nf;
        char *edj_path;
@@ -74,5 +75,6 @@ void _create_two_button_layout(Evas_Object *parent, Evas_Object *left_button, Ev
 int _send_zone_create_request(appdata_s *ad);
 int _send_zone_remove_request(appdata_s *ad);
 void _create_notification(app_control_h app_control);
+void *zone_request_fail(void *ad);
 
 #endif /* __ZONE_SETUP_H__ */
index 4e8b7e6..7d96ad8 100644 (file)
@@ -50,4 +50,9 @@
 #define PREV_BUTTON "Previous"
 #define REMOVE_BUTTON "Remove"
 
+#define OK_BUTTON "OK"
+#define SETUP_POPUP_HEADER "Setup Wizard"
+#define BODY_ZONE_CREATE_ERROR "Failed to create the Separated Zone."
+#define BODY_ZONE_REMOVE_ERROR "Failed to remove the Separated Zone."
+
 #endif /*__SETUP_TEXT_H__*/
index 040c969..de65535 100644 (file)
@@ -32,6 +32,7 @@ Evas_Object *_create_button(Evas_Object *parent, const char *text, Evas_Smart_Cb
 Evas_Object *_create_textblock(Evas_Object *parent, const char *text, char *style);
 Evas_Object *_create_progressbar(Evas_Object *parent, const char *style);
 Evas_Object *_create_entry(Evas_Object *parent);
+Evas_Object *_create_popup(Evas_Object *parent, const char *title, const char *body);
 
 Elm_Genlist_Item_Class *_create_genlist_item_class(char *style, Elm_Genlist_Item_Text_Get_Cb text_func, Elm_Genlist_Item_Content_Get_Cb content_func);
 Elm_Object_Item *_append_genlist_item(Evas_Object *genlist, Elm_Genlist_Item_Class *itc, Elm_Object_Select_Mode select_mode, void* data);
index a3b3ff0..658ed80 100644 (file)
@@ -19,7 +19,7 @@
 #include "krate-setup.h"
 #include "widget.h"
 
-static void __launch_zone_app(zone_manager_h zone_mgr, const charzone_name, app_control_h app_control)
+static void __launch_zone_app(zone_manager_h zone_mgr, const char *zone_name, app_control_h app_control)
 {
        zone_app_proxy_h zone_app;
 
@@ -34,6 +34,10 @@ static void __zone_request_done(const char *from, const char *info, void *user_d
        char uri[PATH_MAX];
 
        appdata_s *ad = (appdata_s *) user_data;
+       if (!strcmp(info, "Error")) {
+               ecore_main_loop_thread_safe_call_sync(zone_request_fail, ad);
+               return;
+       }
 
        if (!strcmp(ad->mode, "create")) {
                zone_manager_reset_zone_password(ad->zone_manager, ad->zone_name, ad->zone_password);
index 0189711..c8a4937 100644 (file)
@@ -33,7 +33,7 @@ static Eina_Bool __naviframe_pop_cb(void *data, Elm_Object_Item *it)
        return EINA_FALSE;
 }
 
-static void __welcome_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+static void setup_wizard_cancel_cb(void *data, Evas_Object *obj, void *event_info)
 {
        appdata_s *ad = (appdata_s *)data;
 
@@ -43,15 +43,17 @@ static void __welcome_cancel_cb(void *data, Evas_Object *obj, void *event_info)
        return;
 }
 
-static void __welcome_next_cb(void *data, Evas_Object *obj, void *event_info)
+static void setup_wizard_next_cb(void *data, Evas_Object *obj, void *event_info)
 {
        appdata_s *ad = (appdata_s *)data;
 
        if (!strcmp(ad->mode, "create")) {
                _create_security_view(ad);
        } else {
-               if (_send_zone_remove_request(ad) != 0)
-                       ui_app_exit();
+               if (_send_zone_remove_request(ad) != 0) {
+                       ecore_main_loop_thread_safe_call_sync(zone_request_fail, ad);
+                       return;
+               }
                _create_setup_view(ad);
        }
 
@@ -94,9 +96,28 @@ static Eina_Bool __progressbar_timer_cb(void *data)
        return ECORE_CALLBACK_RENEW;
 }
 
+void *zone_request_fail(void *user_data)
+{
+       Evas_Object *popup = NULL;
+       appdata_s *ad = (appdata_s *)user_data;
+
+       if (!strcmp(ad->mode, "create"))
+               popup = _create_popup(ud.win, SETUP_POPUP_HEADER, BODY_ZONE_CREATE_ERROR);
+       else
+               popup = _create_popup(ud.win, SETUP_POPUP_HEADER, BODY_ZONE_REMOVE_ERROR);
+
+       Evas_Object *btn = elm_button_add(popup);
+       elm_object_style_set(btn, "popup");
+       elm_object_text_set(btn, OK_BUTTON);
+       evas_object_smart_callback_add(btn, "clicked", setup_wizard_cancel_cb, ad);
+       elm_object_part_content_set(popup, "button1", btn);
+       evas_object_show(popup);
+
+       return NULL;
+}
+
 void _create_base_window(appdata_s *ad)
 {
-       Evas_Object *win;
        Evas_Object *layout;
 
        char edj_path[PATH_MAX] = "\0";
@@ -117,8 +138,8 @@ void _create_base_window(appdata_s *ad)
        free(res_path);
 
        /* Create main UI widget */
-       win = _create_win(PACKAGE);
-       ud.conform = _create_conformant(win);
+       ud.win = _create_win(PACKAGE);
+       ud.conform = _create_conformant(ud.win);
        layout = _create_layout(ud.conform, NULL, NULL);
        elm_object_content_set(ud.conform, layout);
        ud.nf = elm_naviframe_add(layout);
@@ -130,7 +151,7 @@ void _create_base_window(appdata_s *ad)
        elm_object_part_content_set(layout, "elm.swallow.content", ud.nf);
        eext_object_event_callback_add(ud.nf, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
 
-       evas_object_show(win);
+       evas_object_show(ud.win);
        return;
 }
 
@@ -165,8 +186,8 @@ static void __create_welcome_view(appdata_s *ad)
 
        elm_object_part_content_set(layout, "content_layout", welcome_layout);
 
-       left_button = _create_button(layout, text[2], __welcome_cancel_cb, ad);
-       right_button = _create_button(layout, text[3], __welcome_next_cb, ad);
+       left_button = _create_button(layout, text[2], setup_wizard_cancel_cb, ad);
+       right_button = _create_button(layout, text[3], setup_wizard_next_cb, ad);
 
        _create_two_button_layout(layout, left_button, right_button);
 
index 75b8ee9..426a404 100644 (file)
@@ -16,7 +16,6 @@
  * limitations under the License.
  *
  */
-
 #include "widget.h"
 
 static void __win_delete_request_cb(void *data , Evas_Object *obj , void *event_info)
@@ -30,7 +29,9 @@ Evas_Object *_create_win(const char *package)
 
         elm_app_base_scale_set(1.8);
 
-       win = elm_win_util_standard_add(package, package);
+       win = elm_win_add(NULL, package, ELM_WIN_BASIC);
+       elm_win_indicator_mode_set(win, ELM_WIN_INDICATOR_SHOW);
+
         elm_win_conformant_set(win, EINA_TRUE);
         elm_win_autodel_set(win, EINA_TRUE);
         elm_win_alpha_set(win, EINA_TRUE);
@@ -158,3 +159,16 @@ Evas_Object *_create_entry(Evas_Object *parent)
        evas_object_show(entry);
        return entry;
 }
+
+Evas_Object *_create_popup(Evas_Object *parent, const char *title, const char *body)
+{
+       Evas_Object *popup = elm_popup_add(parent);
+
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_style_set(popup, "default");
+       elm_object_part_text_set(popup, "title,text", title);
+       elm_object_item_part_text_translatable_set(popup, "title,text", EINA_TRUE);
+       elm_object_text_set(popup, body);
+
+       return popup;
+}