Evas_Object *control_layout;
Evas_Object *do_not_disturb_popup;
Evas_Object *do_not_disturb_layout;
+ Evas_Object *flight_mode_popup;
+ Evas_Object *flight_mode_layout;
Eina_List *button_list;
} s_info = {
.base_win = NULL,
.control_layout = NULL,
.do_not_disturb_popup = NULL,
.do_not_disturb_layout = NULL,
+ .flight_mode_popup = NULL,
+ .flight_mode_popup = NULL,
.button_list = NULL,
};
static bool __is_with_phone(void);
static bool __is_with_bt_device(void);
static void __do_not_disturb_pressed_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void __flight_mode_pressed_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
const char *controls_btn_group_name[MOMENTS_CONTROLS_BTN_TYPE_MAX] = {
CONTROLS_GROUP_ICON_ONLY,
control_info_t control_button_list[MOMENTS_CONTROLS_MAX] = {
{MOMENTS_CONTROLS_DO_NOT_DISTURB, MOMENTS_CONTROLS_BTN_TYPE_ICON_AND_BAR, "do not disturb", "donotdisturb.png", 0, "", 0, __do_not_disturb_pressed_cb, NULL},
{MOMENTS_CONTROLS_VOLUME, MOMENTS_CONTROLS_BTN_TYPE_ICON_AND_TEXT, "volume", "multimedia.png", 0, "10", 0, NULL, NULL},
- {MOMENTS_CONTROLS_FLIGHT_MODE, MOMENTS_CONTROLS_BTN_TYPE_ICON_AND_BAR, "flight mode", "flight_mode.png", 0, "", 0, NULL, NULL},
+ {MOMENTS_CONTROLS_FLIGHT_MODE, MOMENTS_CONTROLS_BTN_TYPE_ICON_AND_BAR, "flight mode", "flight_mode.png", 0, "", 0, __flight_mode_pressed_cb, NULL},
{MOMENTS_CONTROLS_BRIGHTNESS, MOMENTS_CONTROLS_BTN_TYPE_ICON_AND_TEXT, "brightness", "brightness.png", 0, "7", 0, NULL, NULL},
{MOMENTS_CONTROLS_MUSIC_PLAYER, MOMENTS_CONTROLS_BTN_TYPE_ICON_ONLY, "music player", "music.png", 0, "7", 0, NULL, NULL},
{MOMENTS_CONTROLS_CALL_FORWARDING, MOMENTS_CONTROLS_BTN_TYPE_ICON_ONLY, "call forwarding", "call_forwarding.png", 0, "7", 0, NULL, NULL},
}
}
+static void __change_flight_mode_button_cb(keynode_t *node, void *user_data)
+{
+ int is_flight_mode = false;
+
+ vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &is_flight_mode);
+ if (is_flight_mode == false) {
+ elm_object_signal_emit(control_button_list[MOMENTS_CONTROLS_FLIGHT_MODE].button_layout, "control_bar_off", "control_bar");
+ } else {
+ elm_object_signal_emit(control_button_list[MOMENTS_CONTROLS_FLIGHT_MODE].button_layout, "control_bar_on", "control_bar");
+ }
+}
+
control_info_t *moments_control_create_button(Evas_Object *base_layout, int button_id)
{
control_info_t *button = (control_info_t *)malloc(sizeof(control_info_t));
_E("Failed to register the changed_apps_order callback");
}
break;
+ case MOMENTS_CONTROLS_FLIGHT_MODE:
+ if (vconf_notify_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, __change_flight_mode_button_cb, NULL) < 0) {
+ _E("Failed to register the changed_apps_order callback");
+ }
+ break;
default:
break;
}
case MOMENTS_CONTROLS_DO_NOT_DISTURB:
vconf_ignore_key_changed(VCONFKEY_SETAPPL_BLOCKMODE_WEARABLE_BOOL, __change_do_not_disturb_button_cb);
break;
+ case MOMENTS_CONTROLS_FLIGHT_MODE:
+ vconf_ignore_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, __change_flight_mode_button_cb);
+ break;
default:
break;
}
static Evas_Object *__do_not_disturb_popup_view_create()
{
if (s_info.base_win == NULL) {
- _D("base window is null!!!");
+ _E("base window is null!!!");
return NULL;
}
moments_hide();
__do_not_disturb_popup_view_create();
} else {
- vconf_set_bool(VCONFKEY_SETAPPL_BLOCKMODE_WEARABLE_BOOL, false);
+ int ret = vconf_set_bool(VCONFKEY_SETAPPL_BLOCKMODE_WEARABLE_BOOL, false);
+ if (ret < 0) {
+ _E("Failed to set vconfkey(%s) : %d", VCONFKEY_SETAPPL_BLOCKMODE_WEARABLE_BOOL, ret);
+ }
+ }
+}
+
+static void __flight_mode_popup_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ if (evas_object_visible_get(s_info.flight_mode_popup) == false) {
+ return;
+ }
+
+ if (s_info.flight_mode_popup) {
+ elm_popup_dismiss(s_info.flight_mode_popup);
+ s_info.flight_mode_popup = NULL;
+ }
+}
+
+static void __flight_mode_popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ if (evas_object_visible_get(s_info.flight_mode_popup) == false) {
+ return;
+ }
+
+ int ret = vconf_set_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, true);
+ if (ret < 0) {
+ __T("Failed to set vconfkey(%s) : %d", VCONFKEY_TELEPHONY_FLIGHT_MODE, ret);
+ }
+
+ elm_popup_dismiss(s_info.flight_mode_popup);
+ s_info.flight_mode_popup = NULL;
+}
+
+static Evas_Object *__flight_mode_popup_view_create()
+{
+ if (s_info.base_win == NULL) {
+ _E("base window is null!!!");
+ return NULL;
+ }
+
+ Evas_Object *popup = elm_popup_add(s_info.base_win);
+ s_info.flight_mode_popup = popup;
+
+ elm_object_style_set(popup, "circle");
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, __flight_mode_popup_cancel_cb, NULL);
+ evas_object_smart_callback_add(popup, "dismissed", NULL, NULL);
+
+ Evas_Object *layout = elm_layout_add(popup);
+ s_info.flight_mode_layout = layout;
+ elm_layout_theme_set(layout, "layout", "popup", "content/circle/buttons2");
+ elm_object_content_set(popup, layout);
+
+ /* FIXME - string */
+ elm_object_translatable_part_text_set(layout, "elm.text.title", "Flight mode");
+ elm_object_translatable_part_text_set(layout, "elm.text", "disables calls, messaging and all connections. To use Wi-Fi and Bluetooth, go to Settings.");
+
+ Evas_Object *left_btn = elm_button_add(popup);
+ elm_object_style_set(left_btn, "popup/circle/left");
+ evas_object_size_hint_weight_set(left_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_part_content_set(popup, "button1", left_btn);
+ evas_object_smart_callback_add(left_btn, "clicked", __flight_mode_popup_cancel_cb, popup);
+
+ Evas_Object *left_icon_image = elm_image_add(left_btn);
+ elm_image_file_set(left_icon_image, IMAGEDIR"/tw_ic_popup_btn_delete.png", NULL);
+ evas_object_size_hint_weight_set(left_icon_image, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_part_content_set(left_btn, "elm.swallow.content", left_icon_image);
+ evas_object_show(left_icon_image);
+
+ Evas_Object *right_btn = elm_button_add(popup);
+ elm_object_style_set(right_btn, "popup/circle/right");
+ evas_object_size_hint_weight_set(right_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_part_content_set(popup, "button2", right_btn);
+ evas_object_smart_callback_add(right_btn, "clicked", __flight_mode_popup_ok_cb, popup);
+
+ Evas_Object *right_icon_image = elm_image_add(right_btn);
+ elm_image_file_set(right_icon_image, IMAGEDIR"/tw_ic_popup_btn_check.png", NULL);
+ evas_object_size_hint_weight_set(right_icon_image, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_part_content_set(right_btn, "elm.swallow.content", right_icon_image);
+ evas_object_show(right_icon_image);
+
+ evas_object_move(popup, 0, 0);
+ evas_object_show(popup);
+
+ return popup;
+}
+
+static void __flight_mode_pressed_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ int is_flight_mode = false;
+
+ vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &is_flight_mode);
+ if (is_flight_mode == false) {
+ moments_hide();
+ __flight_mode_popup_view_create();
+ } else {
+ int ret = vconf_set_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, false);
+ if (ret < 0) {
+ _E("Failed to set vconfkey(%s) : %d", VCONFKEY_TELEPHONY_FLIGHT_MODE, ret);
+ }
}
}
_E("Failed to set vconfkey(%s) : %d", VCONFKEY_SETAPPL_BLOCKMODE_WEARABLE_BOOL, ret);
}
}
+Evas_Object *__t__get_moments_flight_mode_popup(void)
+{
+ return s_info.flight_mode_popup;
+}
+Evas_Object *__t__get_moments_flight_mode_popup_layout(void)
+{
+ return s_info.flight_mode_layout;
+}
+void __t__set_flight_mode_state(bool state)
+{
+ int ret = vconf_set_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, state);
+ if (ret < 0) {
+ _E("Failed to set vconfkey(%s) : %d", VCONFKEY_TELEPHONY_FLIGHT_MODE, ret);
+ }
+}
+void __t__flight_mode_popup_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __flight_mode_popup_cancel_cb(data, obj, event_info);
+}
+void __t__flight_mode_popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __flight_mode_popup_ok_cb(data, obj, event_info);
+}
#endif
__t__set_state_3g_with_phone_connection();
__t__update_control_view();
__t__set_do_not_disturb_state(false);
+ __t__set_flight_mode_state(false);
TEST_GROUP_SET_UP_DONE(0.0, s_info.group);
}
TEST_CASE_DONE(s_info.group);
}
+unit_case_func_t __continue_check_flight_mode(void * data);
+unit_case_func_t __case_check_flight_mode(void * data)
+{
+ Eina_List *button_list = __t__get_moments_control_button_list();
+ TEST_ASSERT_TRUE_UPGRADE(button_list != NULL);
+
+ Eina_List *l;
+ control_info_t *button = NULL;
+
+ EINA_LIST_FOREACH(button_list, l, button) {
+ if (button->index == MOMENTS_CONTROLS_FLIGHT_MODE) {
+ break;
+ }
+ }
+
+ TEST_ASSERT_TRUE_UPGRADE(button != NULL);
+ s_info.current_button = button;
+
+ double val = 0.0;
+ TEST_ASSERT_EQUAL_STRING_UPGRADE("default", edje_object_part_state_get(elm_layout_edje_get(button->button_layout), CONTROLS_BAR, &val));
+
+ TEST_ASSERT_TRUE_UPGRADE(button->pressed != NULL);
+
+ button->pressed(NULL, NULL, NULL, NULL);
+
+ TEST_CASE_CONTINUE(0.3, __continue_check_flight_mode, NULL);
+}
+
+unit_case_func_t __continue_check_flight_mode(void * data)
+{
+ TEST_ASSERT_TRUE_UPGRADE(moments_get_visible() == false);
+
+ Evas_Object *popup = __t__get_moments_flight_mode_popup();
+ TEST_ASSERT_TRUE_UPGRADE(popup != NULL);
+ TEST_ASSERT_TRUE_UPGRADE(evas_object_visible_get(popup));
+
+ Evas_Object *layout = __t__get_moments_flight_mode_popup_layout();
+ const char *title_text = elm_object_part_text_get(layout, "elm.text.title");
+ TEST_ASSERT_TRUE_UPGRADE(title_text != NULL);
+ TEST_ASSERT_EQUAL_STRING_UPGRADE("Flight mode", title_text);
+
+ const char *contents_text = elm_object_part_text_get(layout, "elm.text");
+ TEST_ASSERT_TRUE_UPGRADE(contents_text != NULL);
+ TEST_ASSERT_EQUAL_STRING_UPGRADE("disables calls, messaging and all connections. To use Wi-Fi and Bluetooth, go to Settings.", contents_text);
+
+ Evas_Object *left_btn = elm_object_part_content_get(popup, "button1");
+ TEST_ASSERT_TRUE_UPGRADE(left_btn != NULL);
+
+ Evas_Object *left_btn_icon = elm_object_part_content_get(left_btn, "elm.swallow.content");
+ TEST_ASSERT_TRUE_UPGRADE(left_btn_icon != NULL);
+
+ const char *left_icon_image = NULL;
+ elm_image_file_get(left_btn_icon, &left_icon_image , NULL);
+ TEST_ASSERT_TRUE_UPGRADE(left_icon_image != NULL);
+ TEST_ASSERT_EQUAL_STRING_UPGRADE(IMAGEDIR"/tw_ic_popup_btn_delete.png", left_icon_image);
+
+ Evas_Object *right_btn = elm_object_part_content_get(popup, "button2");
+ TEST_ASSERT_TRUE_UPGRADE(right_btn != NULL);
+
+ Evas_Object *right_btn_icon = elm_object_part_content_get(right_btn, "elm.swallow.content");
+ TEST_ASSERT_TRUE_UPGRADE(right_btn_icon != NULL);
+
+ const char *right_icon_image = NULL;
+ elm_image_file_get(right_btn_icon, &right_icon_image, NULL);
+ TEST_ASSERT_TRUE_UPGRADE(right_icon_image != NULL);
+ TEST_ASSERT_EQUAL_STRING_UPGRADE(IMAGEDIR"/tw_ic_popup_btn_check.png", right_icon_image);
+
+ __t__flight_mode_popup_cancel_cb((void*)popup, NULL, NULL);
+
+ TEST_CASE_DONE(s_info.group);
+
+}
+
+unit_case_func_t __continue_check_cancel_button_clicked_on_flight_mode_popup(void * data);
+unit_case_func_t __case_check_cancel_button_clicked_on_flight_mode_popup(void * data)
+{
+ Evas_Object *popup = __t__get_moments_flight_mode_popup();
+ if (popup == NULL) {
+ TEST_ASSERT_TRUE_UPGRADE(s_info.current_button != NULL);
+
+ s_info.current_button->pressed(s_info.current_button, NULL, NULL, NULL);
+ TEST_CASE_CONTINUE(0.2, __case_check_cancel_button_clicked_on_flight_mode_popup, NULL);
+ }
+
+ TEST_ASSERT_TRUE_UPGRADE(popup != NULL);
+ TEST_ASSERT_TRUE_UPGRADE(evas_object_visible_get(popup));
+
+ __t__flight_mode_popup_cancel_cb((void*)popup, NULL, NULL);
+
+ TEST_CASE_CONTINUE(0.3, __continue_check_cancel_button_clicked_on_flight_mode_popup, NULL);
+}
+
+unit_case_func_t __continue_check_cancel_button_clicked_on_flight_mode_popup(void * data)
+{
+ Evas_Object *popup = __t__get_moments_flight_mode_popup();
+ TEST_ASSERT_TRUE_UPGRADE(popup == NULL);
+
+ double val = 0.0;
+ TEST_ASSERT_EQUAL_STRING_UPGRADE("default", edje_object_part_state_get(elm_layout_edje_get(s_info.current_button->button_layout), CONTROLS_BAR, &val));
+
+ TEST_ASSERT_TRUE_UPGRADE(moments_get_visible() == false);
+
+ TEST_CASE_DONE(s_info.group);
+}
+
+unit_case_func_t __continue_check_ok_button_clicked_on_flight_mode_popup(void * data);
+unit_case_func_t __case_check_ok_button_clicked_on_flight_mode_popup(void * data)
+{
+ Evas_Object *popup = __t__get_moments_flight_mode_popup();
+
+ if (popup == NULL) {
+ TEST_ASSERT_TRUE_UPGRADE(s_info.current_button != NULL);
+
+ s_info.current_button->pressed(s_info.current_button, NULL, NULL, NULL);
+ TEST_CASE_CONTINUE(0.2, __case_check_ok_button_clicked_on_flight_mode_popup, NULL);
+ }
+
+ TEST_ASSERT_TRUE_UPGRADE(popup != NULL);
+ TEST_ASSERT_TRUE_UPGRADE(evas_object_visible_get(popup));
+
+ double val = 0.0;
+ TEST_ASSERT_EQUAL_STRING_UPGRADE("default", edje_object_part_state_get(elm_layout_edje_get(s_info.current_button->button_layout), CONTROLS_BAR, &val));
+
+ __t__flight_mode_popup_ok_cb((void*)popup, NULL, NULL);
+
+ TEST_CASE_CONTINUE(0.3, __continue_check_ok_button_clicked_on_flight_mode_popup, NULL);
+}
+
+unit_case_func_t __continue_check_ok_button_clicked_on_flight_mode_popup(void * data)
+{
+ Evas_Object *popup = __t__get_moments_flight_mode_popup();
+ TEST_ASSERT_TRUE_UPGRADE(popup == NULL);
+
+ TEST_ASSERT_TRUE_UPGRADE(moments_get_visible() == false);
+
+ double val = 0.0;
+ TEST_ASSERT_EQUAL_STRING_UPGRADE("on", edje_object_part_state_get(elm_layout_edje_get(s_info.current_button->button_layout), CONTROLS_BAR, &val));
+
+ TEST_CASE_DONE(s_info.group);
+}
+
void group_feature_moments_control_button_status_behavior(unit_group_t * group)
{
s_info.group = group;
TEST_CASE_ADD(s_info.group, __case_check_do_not_disturb, NULL);
TEST_CASE_ADD(s_info.group, __case_check_cancel_button_clicked_on_do_not_disturb_popup, NULL);
TEST_CASE_ADD(s_info.group, __case_check_ok_button_clicked_on_do_not_disturb_popup, NULL);
+
+ TEST_CASE_ADD(s_info.group, __case_check_flight_mode, NULL);
+ TEST_CASE_ADD(s_info.group, __case_check_cancel_button_clicked_on_flight_mode_popup, NULL);
+ TEST_CASE_ADD(s_info.group, __case_check_ok_button_clicked_on_flight_mode_popup, NULL);
+
TEST_GROUP_TEAR_DOWN(s_info.group, __group_tear_down);
TEST_GROUP_RUN(s_info.group);