Unsubscribing events when a controller is destroyed 93/184393/3
authorMichal Skorupinski <m.skorupinsk@samsung.com>
Tue, 17 Jul 2018 15:28:51 +0000 (17:28 +0200)
committerMichal Skorupinski <m.skorupinsk@samsung.com>
Wed, 18 Jul 2018 15:04:40 +0000 (17:04 +0200)
Change-Id: Iab72c4b1b6683fdae5602b2b5b70859614a894f6
Signed-off-by: Michal Skorupinski <m.skorupinsk@samsung.com>
18 files changed:
inc/model/model_car_connection.h
inc/model/model_cloud_connection.h
inc/model/model_sensors.h
src/controller/controller_car_selection.c
src/controller/controller_connect_to_car.c
src/controller/controller_connection_successed.c
src/controller/controller_emergency_stop.c
src/controller/controller_help.c
src/controller/controller_name_input.c
src/controller/controller_network_failure.c
src/controller/controller_racing.c
src/controller/controller_reset.c
src/model/model_car_connection.c
src/model/model_cloud_connection.c
src/model/model_sensors.c
src/view/view_connect_to_car.c
src/view/view_name_input.c
src/view/view_progress.c

index b3f50b9..8dbe64c 100644 (file)
@@ -29,6 +29,7 @@ typedef void (*t_model_car_connection_update_cb)(s_model_car_connection_cb_data
 
 void model_car_connection_init(void);
 void model_car_connection_subscribe_event(t_model_car_connection_update_cb model_update_cb);
+void model_car_connection_unsubscirbe_event();
 void model_car_connection_connect(void);
 
 #endif /* MODEL_MODEL_CAR_CONNECTION_H_ */
index 0cf4026..69b8779 100644 (file)
@@ -30,6 +30,7 @@ typedef void (*t_model_cloud_connection_update_cb)(s_model_cloud_connection_cb_d
 
 void model_cloud_connection_init(void);
 void model_cloud_connection_subscribe_event(t_model_cloud_connection_update_cb model_update_cb);
+void model_cloud_connection_unsubscirbe_event(void);
 void model_cloud_connection_subscribe_reconnect(t_model_cloud_connection_update_cb reconnect_cb);
 bool model_cloud_connection_player_name_set(const char *player_name);
 void model_cloud_connection_try_reconnect(void);
index a6a7568..2242f9d 100644 (file)
@@ -29,8 +29,7 @@ typedef struct _s_model_sensors_cb_data {
 typedef void (*t_model_sensors_update_cb)(s_model_sensors_cb_data *data);
 
 void model_sensors_init(void);
-void model_sensors_unsubscirbe_event();
+void model_sensors_unsubscirbe_event(void);
 void model_sensors_subscribe_event(t_model_sensors_update_cb model_update_cb);
-//void model_sensors_connect(void);
 
 #endif /* MODEL_MODEL_SENSORS_H_ */
index ab4ec9b..94912b5 100644 (file)
@@ -23,11 +23,13 @@ static s_controller s_info = { 0, };
 
 static void controller_car_selection_destroy(void)
 {
-       //TODO: deinit controller
+       model_car_connection_unsubscirbe_event();
+       model_cloud_connection_unsubscirbe_event();
 }
 
 static void _car_connected_cb(s_model_car_connection_cb_data *model_data)
 {
+       controller_car_selection_destroy();
        view_manager_set_view(VIEW_CONNECTION_SUCCESSED);
 }
 
index 2a582dd..e1f3e91 100644 (file)
@@ -25,13 +25,13 @@ static s_controller s_info = {  0, };
 
 static void controller_connect_to_car_destroy(void)
 {
-       //TODO: deinit controller
+       model_cloud_connection_unsubscirbe_event();
 }
 
 static void _connected_cb(s_model_cloud_connection_cb_data *model_data)
 {
-       view_manager_set_view(VIEW_CAR_SELECTION);
        controller_connect_to_car_destroy();
+       view_manager_set_view(VIEW_CAR_SELECTION);
 }
 
 void controller_connect_to_car_init(t_view_update_cb view_update_cb)
index b507fd0..0ee9c20 100644 (file)
@@ -23,13 +23,13 @@ static s_controller s_info = {  0, };
 
 static void _connection_successed_destroy(void)
 {
-       //TODO: deinit controller
+       model_cloud_connection_unsubscirbe_event();
 }
 
 static void _connected_cb(s_model_cloud_connection_cb_data *model_data)
 {
-       view_manager_set_view(VIEW_NAME_INPUT);
        _connection_successed_destroy();
+       view_manager_set_view(VIEW_NAME_INPUT);
 }
 
 void controller_connection_successed_init(t_view_update_cb view_update_cb)
index 006a0d3..8f56098 100644 (file)
@@ -25,26 +25,25 @@ static s_controller s_info = {  0, };
 
 static void controller_emergency_stop_destroy(void)
 {
-       //TODO: deinit controller
+       model_cloud_connection_unsubscirbe_event();
 }
 
 static void _connected_cb(s_model_cloud_connection_cb_data *model_data)
 {
-       view_manager_set_view(VIEW_RESET);
        controller_emergency_stop_destroy();
+       view_manager_set_view(VIEW_RESET);
 }
 
 void controller_emergency_stop_init(t_view_update_cb view_update_cb)
 {
        s_info.view_update_cb = view_update_cb;
-
        model_cloud_connection_subscribe_event(_connected_cb);
 }
 
 void controller_emergency_stop_back(void)
 {
-       view_manager_set_view(VIEW_RACING); //No model
        controller_emergency_stop_destroy();
+       view_manager_set_view(VIEW_RACING);
 }
 
 void controller_emergency_stop_next()
index ae53930..9d665da 100644 (file)
@@ -25,13 +25,13 @@ static s_controller s_info = {  0, };
 
 static void controller_help_destroy(void)
 {
-       //TODO: deinit controller
+       model_cloud_connection_unsubscirbe_event();
 }
 
 static void _connected_cb(s_model_cloud_connection_cb_data *model_data)
 {
-       view_manager_set_view(VIEW_RACING);
        controller_help_destroy();
+       view_manager_set_view(VIEW_RACING);
 }
 
 void controller_help_init(t_view_update_cb view_update_cb)
index d6801ec..2aafae3 100644 (file)
@@ -25,19 +25,18 @@ static s_controller s_info = {  0, };
 
 static void controller_name_input_destroy(void)
 {
-       //TODO: deinit controller
+       model_cloud_connection_unsubscirbe_event();
 }
 
 static void _connected_cb(s_model_cloud_connection_cb_data *model_data)
 {
-       view_manager_set_view(VIEW_HELP);
        controller_name_input_destroy();
+       view_manager_set_view(VIEW_HELP);
 }
 
 void controller_name_input_init(t_view_update_cb view_update_cb)
 {
        s_info.view_update_cb = view_update_cb;
-
        model_cloud_connection_subscribe_event(_connected_cb);
 }
 
index dca49f6..149ad0d 100644 (file)
@@ -23,14 +23,13 @@ static s_controller s_info = {  0, };
 
 static void controller_network_failure_destroy(void)
 {
-       //TODO: deinit controller
-       model_cloud_connection_subscribe_reconnect(NULL);
+       model_cloud_connection_unsubscirbe_event();
 }
 
 static void _connected_cb(s_model_cloud_connection_cb_data *model_data)
 {
-       view_manager_set_view(VIEW_CONNECT_TO_CAR);
        controller_network_failure_destroy();
+       view_manager_set_view(VIEW_CONNECT_TO_CAR);
 }
 
 static void _reconnected_cb(s_model_cloud_connection_cb_data *model_data)
@@ -42,7 +41,6 @@ static void _reconnected_cb(s_model_cloud_connection_cb_data *model_data)
 void controller_network_failure_init(t_view_update_cb view_update_cb)
 {
        s_info.view_update_cb = view_update_cb;
-
        model_cloud_connection_subscribe_event(_connected_cb);
        model_cloud_connection_subscribe_reconnect(_reconnected_cb);
 }
index 6f2409b..22e7c86 100644 (file)
@@ -30,13 +30,13 @@ static s_racing_controller s_info = { { 0, } };
 static void controller_racing_destroy(void)
 {
        model_sensors_unsubscirbe_event();
-       //TODO: deinit controller
+       model_cloud_connection_unsubscirbe_event();
 }
 
 static void _model_connected_cb(s_model_cloud_connection_cb_data *model_data)
 {
-       view_manager_set_view(VIEW_EMERGENCY_STOP);
        controller_racing_destroy();
+       view_manager_set_view(VIEW_EMERGENCY_STOP);
 }
 
 static void _sensors_cb(s_model_sensors_cb_data *model_data)
index 1b32374..a358075 100644 (file)
@@ -25,7 +25,7 @@ static s_controller s_info = {  0, };
 
 static void controller_reset_destroy(void)
 {
-       //TODO: deinit controller
+       model_cloud_connection_unsubscirbe_event();
 }
 
 static void _connected_cb(s_model_cloud_connection_cb_data *model_data)
@@ -53,14 +53,14 @@ void controller_reset_next()
 
 static void _connected_reset_cb(s_model_cloud_connection_cb_data *model_data)
 {
-       view_manager_set_view(VIEW_NAME_INPUT);
        controller_reset_destroy();
+       view_manager_set_view(VIEW_NAME_INPUT);
 }
 
 static void _connected_discard_cb(s_model_cloud_connection_cb_data *model_data)
 {
-       view_manager_set_view(VIEW_RACING);
        controller_reset_destroy();
+       view_manager_set_view(VIEW_RACING);
 }
 
 void controller_reset_reset()
index f5452d4..21d2c17 100644 (file)
@@ -40,3 +40,8 @@ void model_car_connection_connect(void)
 
        model_car_connection.controller_update_cb(&model_data);
 }
+void model_car_connection_unsubscirbe_event()
+{
+       model_car_connection.controller_update_cb = NULL;
+}
+
index c3d5135..cafbb89 100644 (file)
@@ -43,6 +43,12 @@ void model_cloud_connection_connect(void)
        model_cloud_connection.controller_update_cb(&model_data);
 }
 
+void model_cloud_connection_unsubscirbe_event(void)
+{
+       model_cloud_connection.controller_update_cb = NULL;
+       model_cloud_connection.reconnect_cb = NULL;
+}
+
 bool model_cloud_connection_player_name_set(const char *player_name)
 {
        strncpy(model_cloud_connection.player_name, player_name, PLAYER_NAME_MAX_LEN);
index 9a5a6dd..9ad8a28 100644 (file)
@@ -70,7 +70,7 @@ void model_sensors_subscribe_event(t_model_sensors_update_cb model_update_cb)
        model_sensors.sensors_update_cb = model_update_cb;
 }
 
-void model_sensors_unsubscirbe_event()
+void model_sensors_unsubscirbe_event(void)
 {
        model_sensors.sensors_update_cb = NULL;
 }
index a40eefd..5b401b2 100644 (file)
@@ -46,7 +46,6 @@ static void connect_to_car_create_gui(Evas_Object *parent)
        view_base_create_button(s_info.view_base.view, "Button_Ok", NULL,  "images/yes.png", "racing_right", _ok_button_clicked_cb, NULL);
 }
 
-
 s_view_base *view_connect_to_car_init(Evas_Object *parent)
 {
        connect_to_car_create_gui(parent);
index 8360ea0..9165f77 100644 (file)
@@ -74,7 +74,6 @@ static void _text_entered(Evas_Object * entry)
 
 static void _text_set_cb(void *data, Evas_Object *obj, void *event_info)
 {
-
        _text_entered(obj);
        elm_object_focus_set(obj, EINA_FALSE);
 }
index 3d69acc..b2ae9b4 100644 (file)
@@ -30,11 +30,10 @@ static void _view_progress_create_gui(Evas_Object *parent)
        s_info.view_base.view = elm_popup_add(parent);
 
        Evas_Object *layout = view_base_create_layout(s_info.view_base.view, "edje/progress_popup.edj", GRP_MAIN);
-
        elm_object_content_set(s_info.view_base.view, layout);
 
        elm_object_style_set(s_info.view_base.view, "circle");
-       elm_popup_timeout_set(s_info.view_base.view, 5.0); //TODO Temporaty solution will be changed after the update of the controller
+       elm_popup_timeout_set(s_info.view_base.view, 1.0); //TODO Temporaty solution will be changed after the update of the controller
        evas_object_show(s_info.view_base.view);
 }