#include <efl_extension.h>
#include <vconf.h>
#include <sound_manager.h>
+#include <device/display.h>
#include "log.h"
#include "util.h"
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);
static void __volume_pressed_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void __brightness_pressed_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
static void __do_not_disturb_status_changed_cb(keynode_t *node, void *user_data);
static void __flight_mode_status_changed_cb(keynode_t *node, void *user_data);
static void __volume_status_changed_cb(sound_type_e type, unsigned int volume, void *data);
+static void __brightness_status_changed_cb();
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, __volume_pressed_cb, NULL},
+ {MOMENTS_CONTROLS_VOLUME, MOMENTS_CONTROLS_BTN_TYPE_ICON_AND_TEXT, "volume", "multimedia.png", 0, "5", 0, __volume_pressed_cb, 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_BRIGHTNESS, MOMENTS_CONTROLS_BTN_TYPE_ICON_AND_TEXT, "brightness", "brightness.png", 0, "5", 0, __brightness_pressed_cb, 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},
};
__do_not_disturb_status_changed_cb(NULL, NULL);
__flight_mode_status_changed_cb(NULL, NULL);
__volume_status_changed_cb(0, NULL, NULL);
+ __brightness_status_changed_cb();
}
void moments_control_fini(void)
elm_object_part_text_set(control_button_list[MOMENTS_CONTROLS_VOLUME].button_layout, CONTROLS_TEXT, volume_text);
}
+static void __brightness_status_changed_cb()
+{
+ int level = -1;
+ if (device_display_get_brightness(0, &level) != DEVICE_ERROR_NONE) {
+ _E("Fail to get device display state");
+ return;
+ }
+
+ char brightness_text[3];
+ snprintf(brightness_text, sizeof(brightness_text), "%d", level/10);
+ elm_object_part_text_set(control_button_list[MOMENTS_CONTROLS_BRIGHTNESS].button_layout, CONTROLS_TEXT, brightness_text);
+}
+
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 __flight_mode_status_changed_cb callback");
}
break;
+ case MOMENTS_CONTROLS_BRIGHTNESS:
+ if (vconf_notify_key_changed(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, __brightness_status_changed_cb, NULL) < 0) {
+ _E("Failed to register the _brightness_status_changed_cb callback");
+ }
+ break;
default:
break;
}
case MOMENTS_CONTROLS_FLIGHT_MODE:
vconf_ignore_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, __flight_mode_status_changed_cb);
break;
+ case MOMENTS_CONTROLS_BRIGHTNESS:
+ vconf_ignore_key_changed(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, __brightness_status_changed_cb);
default:
break;
}
util_launch_app(SETTING_PKG_NAME, "launch-type", "volume");
}
+static void __brightness_pressed_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ moments_hide();
+ util_launch_app(SETTING_PKG_NAME, "launch-type", "brightness");
+}
+
#include "test.h"
#if TEST_MODE
Eina_List *__t__get_moments_control_button_list(void)
}
void __t__set_volume_level(int level)
{
+ int ret = -1;
if(moments_check_is_3g_device()) {
- sound_manager_set_volume(SOUND_TYPE_RINGTONE, level);
+ ret = sound_manager_set_volume(SOUND_TYPE_RINGTONE, level);
} else {
- sound_manager_set_volume(SOUND_TYPE_MEDIA, level);
+ ret = sound_manager_set_volume(SOUND_TYPE_MEDIA, level);
+ }
+
+ if (ret != SOUND_MANAGER_ERROR_NONE) {
+ _E("Fail to set volume");
+ }
+}
+void __t__set_brightness_level(int level)
+{
+ int ret = device_display_set_brightness(0, level);
+ if (ret != DEVICE_ERROR_NONE) {
+ _E("Fail to set brightness");
}
}
#endif
static void __group_set_up(void)
{
- __t__set_state_3g_with_phone_connection();
+ __t__set_state_stand_alone();
__t__update_control_view();
__t__set_do_not_disturb_state(false);
__t__set_flight_mode_state(false);
__t__set_volume_level(5);
+ __t__set_brightness_level(50);
TEST_GROUP_SET_UP_DONE(0.0, s_info.group);
}
Eina_List *button_list = __t__get_moments_control_button_list();
TEST_ASSERT_TRUE_UPGRADE(button_list != NULL);
- Eina_List *l;
+ Eina_List *l = NULL;
control_info_t *button = NULL;
EINA_LIST_FOREACH(button_list, l, button) {
Eina_List *button_list = __t__get_moments_control_button_list();
TEST_ASSERT_TRUE_UPGRADE(button_list != NULL);
- Eina_List *l;
+ Eina_List *l = NULL;
control_info_t *button = NULL;
EINA_LIST_FOREACH(button_list, l, button) {
Eina_List *button_list = __t__get_moments_control_button_list();
TEST_ASSERT_TRUE_UPGRADE(button_list != NULL);
- Eina_List *l;
+ Eina_List *l = NULL;
control_info_t *button = NULL;
EINA_LIST_FOREACH(button_list, l, button) {
TEST_CASE_DONE(s_info.group);
}
+unit_case_func_t __continue_check_brightness(void * data);
+unit_case_func_t __case_check_brightness(void * data)
+{
+ Eina_List *button_list = __t__get_moments_control_button_list();
+ TEST_ASSERT_TRUE_UPGRADE(button_list != NULL);
+
+ Eina_List *l = NULL;
+ control_info_t *button = NULL;
+
+ EINA_LIST_FOREACH(button_list, l, button) {
+ if (button->index == MOMENTS_CONTROLS_BRIGHTNESS) {
+ break;
+ }
+ }
+
+ TEST_ASSERT_TRUE_UPGRADE(button != NULL);
+ s_info.current_button = button;
+
+ const char *brightness_text = elm_object_part_text_get(button->button_layout, CONTROLS_TEXT);
+ TEST_ASSERT_EQUAL_STRING_UPGRADE("5", brightness_text);
+
+ Evas_Object *icon = elm_object_part_content_get(button->button_layout, CONTROLS_ICON);
+ const char *icon_image = NULL;
+ elm_image_file_get(icon, &icon_image, NULL);
+
+ TEST_ASSERT_TRUE_UPGRADE(icon_image != NULL);
+ TEST_ASSERT_EQUAL_STRING_UPGRADE(IMAGEDIR"/brightness.png", icon_image);
+
+ TEST_ASSERT_TRUE_UPGRADE(button->pressed != NULL);
+
+ button->pressed(NULL, NULL, NULL, NULL);
+
+ TEST_CASE_CONTINUE(0.3, __continue_check_brightness, NULL);
+}
+
+unit_case_func_t __continue_check_brightness(void * data)
+{
+ TEST_ASSERT_TRUE_UPGRADE(moments_get_visible() == false);
+
+ app_context_h setting_app_context = NULL;
+ int ret = APP_MANAGER_ERROR_NONE;
+
+ ret = app_manager_get_app_context("org.tizen.watch-setting", &setting_app_context);
+ TEST_ASSERT_EQUAL_INT_UPGRADE(APP_MANAGER_ERROR_NONE, ret);
+
+ app_state_e setting_app_state = APP_STATE_UNDEFINED;
+ ret = app_context_get_app_state(setting_app_context , &setting_app_state);
+ TEST_ASSERT_EQUAL_INT_UPGRADE(APP_MANAGER_ERROR_NONE, ret);
+
+ TEST_ASSERT_EQUAL_INT_UPGRADE(APP_STATE_FOREGROUND, setting_app_state);
+
+ app_context_h home_app_context = NULL;
+ ret = app_manager_get_app_context(PACKAGE, &home_app_context);
+ TEST_ASSERT_EQUAL_INT_UPGRADE(APP_MANAGER_ERROR_NONE, ret);
+
+ ret = app_manager_resume_app(home_app_context);
+ TEST_ASSERT_EQUAL_INT_UPGRADE(APP_MANAGER_ERROR_NONE, ret);
+
+ ret = app_manager_request_terminate_bg_app(setting_app_context);
+ TEST_ASSERT_EQUAL_INT_UPGRADE(APP_MANAGER_ERROR_NONE, ret);
+
+ ret = app_context_destroy(home_app_context);
+ TEST_ASSERT_EQUAL_INT_UPGRADE(APP_MANAGER_ERROR_NONE, ret);
+
+ ret = app_context_destroy(setting_app_context);
+ TEST_ASSERT_EQUAL_INT_UPGRADE(APP_MANAGER_ERROR_NONE, ret);
+
+ 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_CASE_ADD(s_info.group, __case_check_volume, NULL);
TEST_CASE_ADD(s_info.group, __case_check_volume_sound, NULL);
TEST_CASE_ADD(s_info.group, __case_check_volume_mute, NULL);
+ TEST_CASE_ADD(s_info.group, __case_check_brightness, NULL);
TEST_GROUP_TEAR_DOWN(s_info.group, __group_tear_down);