Connection failure view added 46/183846/10
authorKrzysztof Wieclaw <k.wieclaw@samsung.com>
Tue, 10 Jul 2018 14:08:40 +0000 (16:08 +0200)
committerKrzysztof Wieclaw <k.wieclaw@samsung.com>
Tue, 17 Jul 2018 12:23:05 +0000 (14:23 +0200)
Change-Id: Idf3e063b2bfb064b58c2827af4e05a5c4e02f6ce
Signed-off-by: Krzysztof Wieclaw <k.wieclaw@samsung.com>
inc/controller/controller_network_failure.h
inc/model/model_base.h
inc/model/model_connection.h
res/edje/view_network_failure.edc [new file with mode: 0644]
src/controller/controller_network_failure.c
src/model/model_connection.c
src/view/view_network_failure.c

index 20485d9..23e65d7 100644 (file)
@@ -24,4 +24,6 @@ void controller_network_failure_init(t_view_update_cb view_update_cb);
 void controller_network_failure_back(void);
 void controller_network_failure_next();
 
+void controller_network_failure_try_reconnect(void);
+
 #endif /* CONTROLLER_CONTROLLER_NETWORK_FAILURE_H_ */
index 5252376..19d006a 100644 (file)
@@ -34,6 +34,7 @@ typedef void (*t_model_update_cb)(s_model_data *data);
 
 typedef struct _s_model {
        t_model_update_cb controller_update_cb;
+       t_model_update_cb reconnect_cb;
        char player_name[PLAYER_NAME_MAX_LEN + 1];
 } s_model;
 
index d56fc14..73002d4 100644 (file)
@@ -28,5 +28,7 @@ void model_connection_subscribe_event(t_model_update_cb model_update_cb);
 void model_connection_connect(void);
 
 bool model_connection_player_name_set(const char *player_name);
+void model_connection_subscribe_reconnect(t_model_update_cb model_update_cb);
+void model_connection_try_reconnect(void);
 
 #endif /* MODEL_MODEL_CONNECTION_H_ */
diff --git a/res/edje/view_network_failure.edc b/res/edje/view_network_failure.edc
new file mode 100644 (file)
index 0000000..d942a61
--- /dev/null
@@ -0,0 +1,47 @@
+images{
+   image: "bg_dark.png" COMP;
+}
+collections{
+   group{
+      name: "main";
+      parts{
+         part{
+            name: "background";
+            type: IMAGE;
+            desc{
+               state: "default" 0.0;
+               image.normal: "bg_dark.png";
+            }
+         }
+         part{
+            name: "error_text";
+            type: TEXT;
+            desc{
+               state: "default" 0.0;
+               rel1.relative: 0.0 0.13;
+               rel2.relative: 1.0 0.19;
+               color: 240 35 61 255;
+               text{
+                  text: "Network error!";
+                  size: 22;
+                  font: "SamsungOne";
+               }
+            }
+         }
+         part{
+            name: "description_text";
+            type: TEXT;
+            desc{
+               rel1.relative: 0.0 0.3;
+               rel2.relative: 1.0 0.7;
+               color: 248 238 204 255;
+               text{
+                  text: "Trying to reconnect...";
+                  size: 25;
+                  font: "SamsungOne";
+               }
+            }
+         }
+      }
+   }
+}
\ No newline at end of file
index 3e1c054..ad949a2 100644 (file)
@@ -26,6 +26,7 @@ static s_controller *controller = NULL;
 static void controller_network_failure_destroy(void)
 {
        free(controller);
+       model_connection_subscribe_reconnect(NULL);
 }
 
 static void _connected_cb(s_model_data *model_data)
@@ -34,12 +35,19 @@ static void _connected_cb(s_model_data *model_data)
        controller_network_failure_destroy();
 }
 
+static void _reconnected_cb(s_model_data *model_data)
+{
+       view_manager_set_view(VIEW_CONNECT_TO_CAR);
+       controller_network_failure_destroy();
+}
+
 void controller_network_failure_init(t_view_update_cb view_update_cb)
 {
        controller = calloc(1, sizeof(s_controller));
        controller->view_update_cb = view_update_cb;
 
        model_connection_subscribe_event(_connected_cb);
+       model_connection_subscribe_reconnect(_reconnected_cb);
 }
 
 void controller_network_failure_back(void)
@@ -51,3 +59,8 @@ void controller_network_failure_next()
 {
        model_connection_connect();
 }
+
+void controller_network_failure_try_reconnect(void)
+{
+       model_connection_try_reconnect();
+}
index 814763f..5a91fb7 100644 (file)
@@ -17,7 +17,7 @@
 #include "gear-racing-controller.h"
 #include "model/model_connection.h"
 
-s_model model_connection = { 0, { 0, } };
+s_model model_connection = { 0, 0, { 0, } };
 
 void model_connection_init(void)
 {
@@ -46,4 +46,21 @@ bool model_connection_player_name_set(const char *player_name)
        return true;
 }
 
+void model_connection_subscribe_reconnect(t_model_update_cb model_update_cb)
+{
+       model_connection.reconnect_cb = model_update_cb;
+}
+
+void model_connection_try_reconnect(void)
+{
+       static s_model_data model_data = {
+                       .type = MODEL_TYPE_END,
+                       0,
+       };
 
+       //TODO: Reconnect processing
+
+       if (model_connection.reconnect_cb) {
+               model_connection.reconnect_cb(&model_data);
+       }
+}
index 6734608..bd17d58 100644 (file)
@@ -31,19 +31,13 @@ static void _layout_back_cb(void *data, Evas_Object *obj, void *event_info)
        controller_network_failure_back();
 }
 
-static void _ok_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       controller_network_failure_next();
-}
-
 static void _view_network_failure_create_gui(Evas_Object *parent)
 {
-       s_info.view_base.layout = view_base_create_layout(parent, EDJ_FILE, GRP_MAIN);
+       s_info.view_base.layout = view_base_create_layout(parent, "edje/view_network_failure.edj", GRP_MAIN);
        eext_object_event_callback_add(s_info.view_base.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
        elm_layout_text_set(s_info.view_base.layout, "txt_title", "Network failure");
 
-       view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok",  NULL, NULL, _ok_button_clicked_cb, NULL);
-       view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel",  NULL, NULL, NULL, NULL);
+       controller_network_failure_try_reconnect();
 }
 
 s_view_base *view_network_failure_init(Evas_Object *parent)