SET(SETTING_RINGTONE setting-ringtone)
SET(SETTING_APPMGR setting-appmgr)
SET(SETTING_FLIGHTMODE setting-flightmode)
-SET(SETTING_ACCESSIBILITY setting-accessibility)
SET(SETTING_SMARTMANAGER setting-smartmanager)
SET(SETTING_PRIVACY setting-privacy)
SET(SETTING_BACKUP_AND_RESET setting-backup-and-reset)
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/${SETTING_ABOUT})
-ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/${SETTING_ACCESSIBILITY})
ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/${SETTING_APPLICATIONS})
ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/${SETTING_APPMGR})
ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/${SETTING_CONNECTIVITY})
<label xml:lang="ja-jp">端末情報</label>
<label xml:lang="ko-kr">디바이스 정보</label>
</ui-application>
- <ui-application appid="org.tizen.setting-accessibility" exec="@TZ_SYS_RO_APP@/org.tizen.setting/bin/setting-accessibility" nodisplay="true" multiple="false" type="capp" taskmanage="false" hw-acceleration="on" launch_mode="caller">
+ <ui-application appid="org.tizen.accessibility-setting" exec="@TZ_SYS_RO_APP@/org.tizen.accessibility-setting/bin/accessibility-setting" nodisplay="true" multiple="false" type="capp" taskmanage="false" hw-acceleration="on" launch_mode="caller">
<metadata key="http://developer.samsung.com/tizen/metadata/legacylifecycle"/>
<icon>@TZ_SYS_RO_APP@/org.tizen.setting/res/icons/Accessibility.png</icon>
<label>Accessibility</label>
<privilege>http://tizen.org/privilege/dpm.password</privilege>
</privileges>
</manifest>
-
+++ /dev/null
-SET(PROJECT_SETTING_ACCESSIBILITY "setting-accessibility")
-SET(SETTING_PKG_ACCESSIBILITY "org.tizen.setting-accessibility")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/${SETTING_COMMON}/include)
-
-FILE(GLOB ACC_SRCS ./src/*.c)
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs_acc REQUIRED
- elementary
- capi-appfw-application
- capi-appfw-preference
- evas
- dlog
- edje
- glib-2.0
- appcore-efl
- eina
- appsvc
- capi-appfw-app-manager
- vconf
- app2sd
- json-glib-1.0
- efl-extension
- libtzplatform-config
- tts
- tts-setting
- capi-appfw-event
- bundle
-)
-FOREACH(flag ${pkgs_acc_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE -Werror-implicit-function-declaration")
-SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
-
-IF("${ARCH}" STREQUAL "arm")
- ADD_DEFINITIONS("-DTARGET")
- MESSAGE("add -DTARGET")
-ENDIF("${ARCH}" STREQUAL "arm")
-
-ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
-
-ADD_EXECUTABLE(${PROJECT_SETTING_ACCESSIBILITY} ${ACC_SRCS})
-
-TARGET_LINK_LIBRARIES(${PROJECT_SETTING_ACCESSIBILITY} ${LIB_SETTING_COMMON})
-TARGET_LINK_LIBRARIES(${PROJECT_SETTING_ACCESSIBILITY} ${pkgs_acc_LDFLAGS} -pie)
-
-INSTALL(PROGRAMS ${PROJECT_SETTING_ACCESSIBILITY} DESTINATION ${TZ_SYS_RO_APP}/${SETTING_PKG_NAME}/bin)
+++ /dev/null
-#ifndef SETTINGACCESSIBILITYACCESSIBILITYLAUNCHER_H
-#define SETTINGACCESSIBILITYACCESSIBILITYLAUNCHER_H
-
-#include "setting-accessibility.h"
-
-void setting_accessibility_accessibility_launcher_page_create(SettingAccessibility *data);
-
-#endif /* SETTINGACCESSIBILITYACCESSIBILITYLAUNCHER_H */
\ No newline at end of file
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Contact: Tomasz Olszak <t.olszak@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-#ifndef __SETTING_ACCESSIBILITY_MAIN_H__
-#define __SETTING_ACCESSIBILITY_MAIN_H__
-
-#include "setting-accessibility.h"
-
-
-
-
-
-#endif /*__SETTING_ACCESSIBILITY_MAIN_H__ */
+++ /dev/null
-#ifndef SETTING_ACCESSIBILITY_SCREEN_READER_SETTINGS_H
-#define SETTING_ACCESSIBILITY_SCREEN_READER_SETTINGS_H
-
-#include "setting-accessibility.h"
-
-void setting_accessibility_screen_reader_settings_page_create(
- SettingAccessibility *data);
-
-#endif /* SETTING_ACCESSIBILITY_SCREEN_READER_SETTINGS_H */
-
+++ /dev/null
-#ifndef SETTINGACCESSIBILITYSCREENREADER_H
-#define SETTINGACCESSIBILITYSCREENREADER_H
-
-#include "setting-accessibility.h"
-
-void setting_accessibility_screen_reader_page_create(
- SettingAccessibility *data);
-
-#endif /* SETTINGACCESSIBILITYSCREENREADER_H */
-
+++ /dev/null
-#ifndef SETTINGACCESSIBILITYUNIVERSALSWITCHACTION_H
-#define SETTINGACCESSIBILITYUNIVERSALSWITCHACTION_H
-
-#include "setting-accessibility.h"
-
-void setting_accessibility_universal_switch_action_page_create(SettingAccessibility *ad);
-void setting_accessibility_universal_switch_action_callback_attach(SettingAccessibility *ad, switch_action_cb cb, void *user_data);
-
-#endif /* SETTINGACCESSIBILITYUNIVERSALSWITCHACTION_H */
-
+++ /dev/null
-#ifndef SETTINGACCESSIBILITYUNIVERSALSWITCHADDSWITCHACCESSORIES_H
-#define SETTINGACCESSIBILITYUNIVERSALSWITCHADDSWITCHACCESSORIES_H
-
-#include "setting-accessibility.h"
-
-void setting_accessibility_universal_switch_add_switch_accessories_page_create(SettingAccessibility *ad);
-void setting_accessibility_universal_switch_add_switch_accessories_new_switch_callback_attach(SettingAccessibility *ad, universal_switch_added_cb cb);
-
-#endif /* SETTINGACCESSIBILITYUNIVERSALSWITCHADDSWITCHACCESSORIES_H */
-
+++ /dev/null
-#ifndef SETTINGACCESSIBILITYUNIVERSALSWITCHADDSWITCHCAMERA_H
-#define SETTINGACCESSIBILITYUNIVERSALSWITCHADDSWITCHCAMERA_H
-
-#include "setting-accessibility.h"
-
-void setting_accessibility_universal_switch_add_switch_camera_page_create(SettingAccessibility *ad);
-void setting_accessibility_universal_switch_add_switch_camera_new_switch_callback_attach(SettingAccessibility *ad, universal_switch_added_cb cb);
-
-#endif /* SETTINGACCESSIBILITYUNIVERSALSWITCHADDSWITCHCAMERA_H */
-
+++ /dev/null
-#ifndef SETTINGACCESSIBILITYUNIVERSALSWITCHADDSWITCHSCREEN_H
-#define SETTINGACCESSIBILITYUNIVERSALSWITCHADDSWITCHSCREEN_H
-
-#include "setting-accessibility.h"
-
-void setting_accessibility_universal_switch_add_switch_screen_page_create(SettingAccessibility *ad);
-void setting_accessibility_universal_switch_add_switch_screen_new_switch_callback_attach(SettingAccessibility *ad, universal_switch_added_cb cb);
-
-#endif /* SETTINGACCESSIBILITYUNIVERSALSWITCHADDSWITCHSCREEN_H */
-
+++ /dev/null
-#ifndef SETTINGACCESSIBILITYUNIVERSALSWITCHADDSWITCH_H
-#define SETTINGACCESSIBILITYUNIVERSALSWITCHADDSWITCH_H
-
-#include "setting-accessibility.h"
-
-void setting_accessibility_universal_switch_add_switch_page_create(SettingAccessibility *ad);
-void setting_accessibility_universal_switch_add_switch_new_switch_callback_attach(SettingAccessibility *ad, universal_switch_added_cb cb);
-void setting_accessibility_universal_switch_disable_already_mapped_switch(Eina_Array *configuration_items, const char *switch_id, Elm_Object_Item *item);
-
-#endif /* SETTINGACCESSIBILITYUNIVERSALSWITCHADDSWITCH_H */
-
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Michal Pawluk <m.pawluk@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-#ifndef SETTINGACCESSIBILITYUNIVERSALSWITCHDBUS_H
-#define SETTINGACCESSIBILITYUNIVERSALSWITCHDBUS_H
-
-#include <Eldbus.h>
-
-typedef void (*capture_switch_cb)(void *data, const char *switch_id);
-typedef void (*init_done_cb)(void *data);
-
-
-struct _UniversalSwitchEldbus {
- Eldbus_Connection *conn;
- Eldbus_Object *dobj;
- Eldbus_Proxy *proxy;
-
- Eldbus_Pending *capture_switch_request;
-
- capture_switch_cb capture_switch_callback;
- void *capture_switch_data;
-
- init_done_cb init_done_callback;
- void *init_done_callback_data;
-
- Eina_Bool is_init;
-};
-
-typedef struct _UniversalSwitchEldbus UniversalSwitchEldbus;
-
-struct _UniversalSwitchInfoType {
- char *id;
- char *name;
- char *description;
-};
-
-typedef struct _UniversalSwitchInfoType UniversalSwitchInfoType;
-typedef struct _UniversalSwitchInfoType UniversalSwitchActivityType;
-typedef struct _UniversalSwitchInfoType UniversalSwitchSwitchProviderInfoType;
-typedef struct _UniversalSwitchInfoType UniversalSwitchSwitchType;
-
-struct _UniversalSwitchConfigurationItem {
- char *switch_id;
- char *user_name;
- char *activity_type;
- char *provider_id;
-};
-
-typedef struct _UniversalSwitchConfigurationItem UniversalSwitchConfigurationItem;
-
-struct _UniversalSwitchSwitchProvider {
- UniversalSwitchSwitchProviderInfoType *info;
- Eina_Array *switches;
-};
-
-typedef struct _UniversalSwitchSwitchProvider UniversalSwitchSwitchProvider;
-
-struct _UniversalSwitchDbusConfig {
- UniversalSwitchEldbus eldbus;
- Eina_Array *activity_types;
- Eina_Array *configuration_items;
- Eina_Array *switch_providers;
-};
-
-typedef struct _UniversalSwitchDbusConfig UniversalSwitchDbusConfig;
-
-Eina_Bool setting_accessibility_universal_switch_dbus_config_init(UniversalSwitchDbusConfig *config, init_done_cb callback, void *callback_data);
-int setting_accessibility_universal_switch_dbus_config_get_switch_count(UniversalSwitchDbusConfig *config);
-const char * setting_accessibility_universal_switch_dbus_config_get_activity_name(UniversalSwitchDbusConfig *config, const char * activity_id);
-Eina_Array * setting_accessibility_universal_switch_dbus_config_get_switches(UniversalSwitchDbusConfig *config, const char * provider_id);
-void setting_accessibility_universal_switch_dbus_config_shutdown(UniversalSwitchDbusConfig *config);
-void setting_accessibility_universal_switch_dbus_config_addSwitchConfigurationItem(UniversalSwitchDbusConfig *config, const char *switch_id, const char *user_name, const char *activity_type);
-void setting_accessibility_universal_switch_dbus_config_updateSwitchConfigurationItem(UniversalSwitchDbusConfig *config, const char *switch_id, const char *user_name, const char *activity_type);
-void setting_accessibility_universal_switch_dbus_config_removeSwitchConfigurationItem(UniversalSwitchDbusConfig *config, const char *switch_id);
-
-void setting_accessibility_universal_switch_dbus_config_captureSwitch(UniversalSwitchDbusConfig *config, const char *provider_id, double timeout, capture_switch_cb callback, void *calback_data);
-void setting_accessibility_universal_switch_dbus_config_cancelCaptureSwitch(UniversalSwitchDbusConfig *config);
-
-
-#endif /* SETTINGACCESSIBILITYUNIVERSALSWITCHDBUS_H */
+++ /dev/null
-#ifndef SETTINGACCESSIBILITYUNIVERSALSWITCHREMOVESWITCH_H
-#define SETTINGACCESSIBILITYUNIVERSALSWITCHREMOVESWITCH_H
-
-#include "setting-accessibility.h"
-
-void setting_accessibility_universal_switch_remove_switch_page_create(SettingAccessibility *ad);
-void setting_accessibility_universal_switch_use_naviframe_title_as_counter(SettingAccessibility *ad);
-void setting_accessibility_universal_switch_remove_switch_callback_attach(SettingAccessibility *ad, universal_switch_removed_cb cb);
-
-
-#endif /* SETTINGACCESSIBILITYUNIVERSALSWITCHREMOVESWITCH_H */
-
+++ /dev/null
-#ifndef SETTINGACCESSIBILITYUNIVERSALSWITCHSETTINGSSETVALUE_H
-#define SETTINGACCESSIBILITYUNIVERSALSWITCHSETTINGSSETVALUE_H
-
-#include "setting-accessibility.h"
-
-typedef enum {VT_NUMERIC, VT_NUMERIC_SWITCH, VT_RADIOS, VT_SWITCHES, VT_LIST_SWITCH} set_value_type_t;
-
-void setting_accessibility_universal_switch_settings_set_value_page_create(SettingAccessibility *ad, set_value_type_t type, const char *title);
-void setting_accessibility_universal_switch_settings_set_value_description_set(SettingAccessibility *ad, const char *description);
-void setting_accessibility_universal_switch_settings_set_value_range_set(SettingAccessibility *ad, double min, double max, double step);
-void setting_accessibility_universal_switch_settings_set_value_value_set(SettingAccessibility *ad, double value, const char *units);
-void setting_accessibility_universal_switch_settings_set_value_switch_set(SettingAccessibility *ad, bool state);
-void setting_accessibility_universal_switch_settings_set_value_radio_item_add(SettingAccessibility *ad, const char *caption, int id, bool selected);
-void setting_accessibility_universal_switch_settings_set_value_switch_item_add(SettingAccessibility *ad, const char *caption, const char *sub_desc, int id, bool state, setting_call_back_func gl_sel);
-void setting_accessibility_universal_switch_settings_set_value_remove_switch_item_add(SettingAccessibility *ad, const char *caption, const char *subtext, int id, bool state);
-Setting_GenGroupItem_Data* setting_accessibility_universal_switch_settings_set_value_radio_list_item_add(SettingAccessibility *ad, const char *main_text, const char *sub_text, int option_id);
-void setting_accessibility_universal_switch_settings_set_value_add_value_change_cb(SettingAccessibility *ad, change_value_cb cb);
-void setting_accessibility_universal_switch_settings_set_value_add_switch_change_cb(SettingAccessibility *ad, change_switch_cb cb);
-void setting_accessibility_universal_switch_settings_set_value_add_radio_item_change_cb(SettingAccessibility *ad, change_radio_item_cb cb);
-void setting_accessibility_universal_switch_settings_set_value_add_switch_item_change_cb(SettingAccessibility *ad, change_switch_item_cb cb);
-void setting_accessibility_universal_switch_settings_set_value_add_list_item_options_request_cb(SettingAccessibility *ad, request_list_item_options_cb cb);
-void setting_accessibility_universal_switch_settings_create_update_accesories_switch_page(SettingAccessibility *ad);
-void setting_accessibility_universal_switch_settings_synchronize_page_with_vconf(keynode_t *node, void *user_data);
-
-#endif /* SETTINGACCESSIBILITYUNIVERSALSWITCHSETTINGSSETVALUE_H */
-
+++ /dev/null
-#ifndef SETTINGACCESSIBILITYUNIVERSALSWITCHSETTINGS_H
-#define SETTINGACCESSIBILITYUNIVERSALSWITCHSETTINGS_H
-
-#include "setting-accessibility.h"
-
-#define VCONF_MEMORY_TYPE "db/"
-#define VCONF_PROJECT_NAME "setting/accessibility/universal-switch/"
-#define VCONF_PROJECT_PREFIX VCONF_MEMORY_TYPE VCONF_PROJECT_NAME
-
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_COUNT VCONF_PROJECT_PREFIX "COUNT"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCAN_ENABLED VCONF_PROJECT_PREFIX "AUTO_SCAN_ENABLED"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCAN_INT VCONF_PROJECT_PREFIX "AUTO_SCAN_INTERVAL"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_NUM_OF_SCANS VCONF_PROJECT_PREFIX "LOOP_LIMIT_TO_INACTION"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_METHOD VCONF_PROJECT_PREFIX "SCAN_METHOD"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIR_VERTICAL VCONF_PROJECT_PREFIX "SCAN_DIRECTION_VERTICAL"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIR_HORIZONTAL VCONF_PROJECT_PREFIX "SCAN_DIRECTION_HORIZONTAL"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_PT_SPEED VCONF_PROJECT_PREFIX "SCAN_PT_SPEED"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_PAUSE_ON_FIRST_STATE VCONF_PROJECT_PREFIX "PAUSE_ON_FIRST_ELEMENT_ENABLED"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_PAUSE_ON_FIRST_VALUE VCONF_PROJECT_PREFIX "PAUSE_ON_FIRST_ELEMENT_TIME"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_TAP_DURATION_STATE VCONF_PROJECT_PREFIX "TAP_DURATION_ENABLED"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_TAP_DURATION_VALUE VCONF_PROJECT_PREFIX "TAP_DURATION_VALUE"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SGL_IACTION_INT_STATE VCONF_PROJECT_PREFIX "SGL_INACTION_INT_ENABLED"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SGL_IACTION_INT_VALUE VCONF_PROJECT_PREFIX "SGL_INACTION_INT_VALUE"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_TAP_STATE VCONF_PROJECT_PREFIX "AUTO_TAP_ENABLED"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_TAP_VALUE VCONF_PROJECT_PREFIX "AUTO_TAP_WAITING_TIME"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_MOVE_INT_STATE VCONF_PROJECT_PREFIX "AUTO_MOVE_INT_ENABLED"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_MOVE_INT_VALUE VCONF_PROJECT_PREFIX "AUTO_MOVE_INT_VALUE"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_TAP_KBD_STATE VCONF_PROJECT_PREFIX "AUTO_TAP_KBD_ENABLED"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_CURSOR_COLOR VCONF_PROJECT_PREFIX "FEEDBACK_CURSOR_COLOR"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_STATE VCONF_PROJECT_PREFIX "FEEDBACK_SOUND_ENABLED"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_VOLUME VCONF_PROJECT_PREFIX "FEEDBACK_SOUND_VOLUME"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_STATE VCONF_PROJECT_PREFIX "FEEDBACK_VOICE_ENABLED"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_SPEECH_RATE VCONF_PROJECT_PREFIX "FEEDBACK_VOICE_SPEECH_RATE"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_SPEECH_VOLUME VCONF_PROJECT_PREFIX "FEEDBACK_VOICE_SPEECH_VOLUME"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCROLL_ENABLED VCONF_PROJECT_PREFIX "AUTO_SCROLL_ENABLED"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GRANULARITY_UNIT VCONF_PROJECT_PREFIX "GRANULARITY_UNIT"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_ACTIONS VCONF_PROJECT_PREFIX "SHOW_ACTIONS_MENU_ITEM"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_SETTINGS VCONF_PROJECT_PREFIX "SHOW_SETTINGS_MENU_ITEM"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_HOMESCREEN VCONF_PROJECT_PREFIX "SHOW_HOME_SCREEN_MENU_ITEM"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_KEYS VCONF_PROJECT_PREFIX "SHOW_BUTTONS_AND_KEYS_MENU_ITEM"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_CONTEXTUAL_MENU VCONF_PROJECT_PREFIX "SHOW_CONTEXTUAL_MENU"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_GESTURES VCONF_PROJECT_PREFIX "SHOW_GESTURES_MENU_ITEM"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_RECENT_APPS VCONF_PROJECT_PREFIX "SHOW_RECENT_APPS_MENU_ITEM"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_BACK VCONF_PROJECT_PREFIX "SHOW_BACK_MENU_ITEM"
-
-void setting_accessibility_universal_switch_settings_page_create(SettingAccessibility *data);
-
-#endif /* SETTINGACCESSIBILITYUNIVERSALSWITCHSETTINGS_H */
-
+++ /dev/null
-#ifndef SETTINGACCESSIBILITYUNIVERSALSWITCHSWITCHES_H
-#define SETTINGACCESSIBILITYUNIVERSALSWITCHSWITCHES_H
-
-#include "setting-accessibility.h"
-
-void setting_accessibility_universal_switch_switches_page_create(SettingAccessibility *ad);
-void setting_accessibility_universal_switch_switches_callback_attach(SettingAccessibility *ad, back_cb callback);
-void setting_accessibility_universal_switch_add_switch_cb(SettingAccessibility *ad, const char *switch_id, switch_action_t switch_action, const char *switch_name);
-
-#endif /* SETTINGACCESSIBILITYUNIVERSALSWITCHSWITCHES_H */
-
+++ /dev/null
-#ifndef SETTINGACCESSIBILITYUNIVERSALSWITCHUPDATESWITCH_H
-#define SETTINGACCESSIBILITYUNIVERSALSWITCHUPDATESWITCH_H
-
-#include "setting-accessibility.h"
-
-void setting_accessibility_universal_switch_update_switch_page_create(SettingAccessibility *ad, UniversalSwitchConfigurationItem *config_item);
-void setting_accessibility_universal_switch_update_switch_callback_attach(SettingAccessibility *ad, universal_switch_updated_cb cb);
-
-#endif /* SETTINGACCESSIBILITYUNIVERSALSWITCHUPDATESWITCH_H */
-
+++ /dev/null
-#ifndef SETTINGACCESSIBILITYUNIVERSALSWITCH_H
-#define SETTINGACCESSIBILITYUNIVERSALSWITCH_H
-
-#include "setting-accessibility.h"
-
-void setting_accessibility_universal_switch_page_create(SettingAccessibility *data);
-
-#endif /* SETTINGACCESSIBILITYUNIVERSALSWITCH_H */
-
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Contact: Tomasz Olszak <t.olszak@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-#ifndef __SETTING_ACCESSIBILITY_H__
-#define __SETTING_ACCESSIBILITY_H__
-
-#include <app_event.h>
-#include <Elementary.h>
-#include <tts.h>
-#include <setting-common-draw-widget.h>
-#include <setting-common-view.h>
-
-#include "setting-common-init.h"
-#include "setting-accessibility-universal-switch-dbus.h"
-
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_CONFIGURATION_SERVICE "db/setting/accessibility/universal-switch/configuration-service"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE "db/setting/accessibility/universal-switch/interaction-service"
-
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_STATE "db/setting/accessibility/accessibility-launcher"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_LAUNCH "db/setting/accessibility/accessibility-launcher/launch"
-
-#define DEVOPTION_STR_ACCESSIBILITY_VISION "IDS_ST_HEADER_VISION"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SPEECH \
- "IDS_ST_BODY_SPEECH"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_ON "IDS_ST_BODY_ON"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_OFF "IDS_ST_BODY_OFF"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS "IDS_ST_OPT_SETTINGS"
-
-#define DEVOPTION_STR_ACCESSIBILITY_MAGNIFIER "IDS_ST_BODY_MAGNIFIER"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREENREADER \
- "IDS_ST_MBODY_SCREEN_READER_HTTS"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SPEECH_RATE "IDS_ST_BODY_SPEECH_RATE"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_PITCH_CHANGE_INFO "IDS_ACCS_SBODY_SET_THE_VOICE_FEEDBACK_TO_VARY_IN_PITCH_WHILE_USING_THE_KEYBOARD_TO_ENTER_TEXT"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_KEYBOARD_FEEDBACK "IDS_ACCS_OPT_KEYBOARD_FEEDBACK_TTS"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_KEYBOARD_FEEDBACK_INFO "IDS_ACCS_OPT_ALWAYS_READ_OUT_KEYBOARD_INPUT_TTS"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SPEAK_WHILE_SCREEN_OFF "Speak while screen off"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SPEAK_WHILE_SCREEN_OFF_INFO "IDS_ACCS_SBODY_READ_OUT_NOTIFICATIONS_WHILE_THE_SCREEN_IS_OFF"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_HINTS "IDS_ACCS_MBODY_READ_OUT_USAGE_HINTS_ABB"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_VIBRATION_FEEDBACK "IDS_ACCS_MBODY_VIBRATION_FEEDBACK"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SOUND_FEEDBACK "IDS_ACCS_MBODY_SOUND_FEEDBACK"
-/*english only translation */
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_DESCRIPTION \
- "IDS_ACCS_BODY_WHILE_SCREEN_READER_IS_ENABLED_YOUR_PHONE_WILL_PROVIDE_VOICE_FEEDBACK_FOR_EXAMPLE_SCREEN_READER_WILL_MSG"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_OTHER_FEEDBACK \
- "IDS_ACCS_OPT_OTHER_FEEDBACK_TTS"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_STATUS_BAR_INFORMATION \
- "IDS_ACCS_TMBODY_STATUS_BAR_INFORMATION"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_STATUS_BAR_INFORMATION_DESCRIPTION \
- "IDS_ACCS_SBODY_SELECT_WHICH_INFORMATION_FROM_INDICATORS_SHOWN_ON_THE_STATUS_BAR_WILL_BE_READ_OUT_WHEN_YOU_TRIPLE_TAP_THE_SCREEN_WITH_TWO_FINGERS_MSG"
-
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SPEECH_RATE_POPUP_DESCRIPTION "IDS_SCR_POP_DRAG_THE_SLIDER_TO_SET_THE_SPEECH_RATE"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SPEECH_RATE_POPUP_CANCEL "IDS_ST_BUTTON_CANCEL_ABB"
-#define DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SPEECH_RATE_POPUP_DONE "IDS_ST_SK3_DONE"
-
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH "Universal switch"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_HINT "Control your device with your customized switches."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ON "On"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_OFF "Off"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_COMMENT "Use customizable switches to interact with the device and select items shown on the screen. \
- You can set your personal interaction method by connecting external accessories, tapping the screen or using the front camera to detect the rotation of your head, \
- the opening of your mouth and the blinking of your eyes."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS "Settings"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_POPUP_ADD "Add switch"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_CANCEL "Cancel"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SAVE "Save"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_NAME "Name"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ACTION "Action"
-
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SWITCHES "Switches"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SWITCHES_ADD_SWITCH "Add switch"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SWITCHES_DELETE "DELETE"
-
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING "Scanning"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_AUTO_SCAN "Auto scan"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_AUTO_SCAN_INT "Auto scan interval"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_NUM_OF_SCANS "Number of auto scan loops"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_METHOD "Scan method"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_METHOD_POINT "Point"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_METHOD_ROW "Row"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_DIR "Scan direction"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_DIR_TB "Top to bottom"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_DIR_BT "Bottom to top"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_PT_SPEED "Point scan speed"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS "Additional settings"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_PAUSE_ON_FIRST "Pause on first item"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_TAP_DURATION "Tap duration"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_SGL_IACTION_INT "Single interaction interval"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_AUTO_TAP "Auto tap"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_AUTO_MOVE_INT "Auto move interval"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_AUTO_TAP_KBD "Auto tap keyboard"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_AUTO_TAP_KBD_SUB "Do not show a menu of additional actions when the keyboard is tapped while using Row scan."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK "Feedback"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL "Cursor color"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL_RED "Red"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL_ORANGE "Orange"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL_YELLOW "Yellow"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL_GREEN "Green"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL_BLUE "Blue"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL_GRAY "Gray"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_SOUND "Sound"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_SOUND_VOLUME "Volume"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_VOICE "Voice"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_VOICE_SPEECH_RATE "Speech rate"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_VOICE_SPEECH_VOLUME "Speech volume"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_OPTIONS "Options"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE "Manage menu options"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_SUB "Select which menu options to show in Universal switch."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_GESTURES "Gestures"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_ACTIONS "Actions"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_SETTINGS "Settings"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_RECENT_APPS "Recent apps"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_HOME_SCREEN "Home screen"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_BACK "Back"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_BUTTONS_AND_KEYS "Buttons and keys"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_CONTEXTUAL_MENU "Contextual menu"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_CONTEXTUAL_MENU_DESC "Place contextual menu on the first row depending on the activity"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS "seconds"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_ON "On"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF "Off"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_UNDEFINED "Undefined"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SWITCHES "Switches"
-
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_AUTO_SCAN_INT "Select the length of the time to wait before the next item is highlighted."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_NUM_OF_SCANS "Select the number of times the screen is scanned automatically for interactive items when there is no interaction."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_SCAN_SPEED "Select the movement speed of the vertical and horizontal screen scanning lines."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_PAUSE_ON_FIRST "Select how much more time you want the 1st item to stay highlighted for while Auto scan is turned on. \
- This will be added to the Auto scan interval time (%.1f seconds). The 1st item will stay highlighted for %.1f seconds in total."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_TAP_DURATION "Select how long you need to hold an interaction for it to be recognized as a tap.<br>\
- This duration must be less than the Auto tap time."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_SGL_IACTION_INT "Select the minimum length of time that must pass between interactions for them to be recognized as separate."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_AUTO_TAP "Select how long to wait before a selected item is tapped automatically. \
- Use the Select item switch again during this time to show menu options instead."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_AUTO_MOVE_INT "Select how long a switch must be held before the highlight skips to the next or previous item. \
- This function cannot be used while Auto scan is turned on."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_FEEDBACK_SOUND "Select the volume of the sound feedback."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_FEEDBACK_VOICE "Select the volume and speed of voice feedback."
-
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SELECT_ACTION "Select switch action"
-
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH "Add switch"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_DELETE_SWITCHES "Delete switches"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_DELETE_ALL_SWITCHES_DESC "All switches will be removed. Universal Switch will be disabled."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_DELETE_SWITCHES_DESC "switches will be removed."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_OK "Ok"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_UNABLE_TO_ADD "Unable to add accessory"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ALREADY_ADDED "This accessory has already been added. Try adding another accessory."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_NAME "Switch name"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_SCREEN "Screen"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_SCREEN_HINT "Tap anywhere on the screen."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_ACCESSORIES "Accessories"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_ACCESSORIES_HINT "Connect accessories before adding switches."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA "Camera"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_HINT "Set your device to detect the movement of your head, eyes and moth."
-
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_SCREEN_TITLE "Screen"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_ACCESSORIES_TITLE "Accessories"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_ACCESSORIES_DESC "Connect an accessory and press any of its buttons."
-
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_TITLE "Camera"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_COMMENT "Control your device with gestures and motions via the camera. \
- Note that these camera switches cannot be used while using the camera hardware in any app."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_GROUP_HEAD "Head"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_GROUP_HEAD_LEFT "Turn head left"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_GROUP_HEAD_RIGHT "Turn head right"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_GROUP_HEAD_UP "Move head up"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_GROUP_HEAD_DOWN "Move head down"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_GROUP_HEAD_BLINK "Blink"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_GROUP_HEAD_BLINK_SUB "Close your eyes for at least 2.0 seconds to allow the device to recognise this switch."
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_GROUP_HEAD_MOUTH "Open mouth"
-
-#define DEVOPTION_STR_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER "Accessibility launcher"
-#define DEVOPTION_STR_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_HINT "Add shortcuts to specific settings and functions."
-#define DEVOPTION_STR_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_COMMENT "Open your accessibility settings by pressing the home key three times in quick succession."
-#define DEVOPTION_STR_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_ON "On"
-#define DEVOPTION_STR_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_OFF "Off"
-
-#define DEVOPTION_STR_ACCESSIBILITY_SELECT_ITEMS "Select items"
-#define DEVOPTION_STR_ACCESSIBILITY_DELETE "Delete"
-#define DEVOPTION_STR_ACCESSIBILITY_ALL_CAPS "ALL"
-#define DEVOPTION_STR_ACCESSIBILITY_DELETE_CAPS "DELETE"
-#define DEVOPTION_STR_ACCESSIBILITY_SETTINGS_CAPS "SETTINGS"
-#define DEVOPTION_STR_ACCESSIBILITY_INDICATOR_TIME "IDS_ST_HEADER_TIME"
-#define DEVOPTION_STR_ACCESSIBILITY_INDICATOR_BATTERY "IDS_ST_BODY_BATTERY"
-#define DEVOPTION_STR_ACCESSIBILITY_INDICATOR_BLUETOOTH "IDS_ST_BODY_BLUETOOTH"
-#define DEVOPTION_STR_ACCESSIBILITY_INDICATOR_DATE "IDS_ST_BODY_DATE"
-#define DEVOPTION_STR_ACCESSIBILITY_INDICATOR_SIGNAL_STRENGTH \
- "IDS_ST_BODY_SIGNAL_STRENGTH"
-#define DEVOPTION_STR_ACCESSIBILITY_INDICATOR_MISSED_EVENTS \
- "IDS_ST_BODY_MISSED_EVENTS"
-
-#define SETTING_ACCESSIBILITY_EDJEDIR _TZ_SYS_RO_APP"/org.tizen.setting-accessibility/res/edje"
-
-#define MANAGE_OPTIONS_COUNT 8
-
-#define ACCESSIBILITY_UNIVERSAL_SWITCH_SCREEN_SWITCH_PROVIDER "ScreenSwitchProvider"
-#define ACCESSIBILITY_UNIVERSAL_SWITCH_ACCESSORIES_SWITCH_PROVIDER "AccessoriesSwitchProvider"
-#define ACCESSIBILITY_UNIVERSAL_SWITCH_CAMERA_SWITCH_PROVIDER "CameraSwitchProvider"
-#define ACCESSIBILITY_UNIVERSAL_SWITCH_SCREEN "Screen"
-#define ACCESSIBILITY_UNIVERSAL_SWITCH_SCREEN_SWITCH_ID "ScreenSwitchProvider_touch"
-
-#define ACCESSIBILITY_UNIVERSAL_SWITCH_PLUS_ICON SETTING_ICON_PATH "/plus.png"
-
-
-typedef enum {SM_POINT = 1, SM_ROW} scan_method_t;
-typedef enum {SD_TOP_BOTTOM = 1, SD_BOTTOM_TOP} scan_dir_t;
-typedef enum {MANAGE_GESTURES, MANAGE_ACTIONS, MANAGE_SETTINGS, MANAGE_RECENT_APPS,
- MANAGE_HOME_SCREEN, MANAGE_BACK, MANAGE_BUTTONS_AND_KEYS, MANAGE_CONTEXTUAL_MENU} manage_options_type_t;
-
-typedef const char * switch_action_t;
-
-typedef struct _SettingAccessibility SettingAccessibility;
-
-typedef void (*universal_switch_added_cb)(SettingAccessibility *ad, const char *switch_id, switch_action_t switch_action, const char *switch_name);
-typedef void (*universal_switch_removed_cb)(SettingAccessibility *ad, const char *switch_id, switch_action_t switch_action, const char *switch_name);
-typedef void (*universal_switch_updated_cb)(SettingAccessibility *ad, const char *switch_id, switch_action_t switch_action, const char *switch_name);
-typedef void (*change_value_cb)(SettingAccessibility *ad, double value);
-typedef void (*change_switch_cb)(SettingAccessibility *ad, bool state);
-typedef void (*change_radio_item_cb)(SettingAccessibility *ad, int item_id);
-typedef void (*change_switch_item_cb)(SettingAccessibility *ad, int item_id, bool state);
-typedef void (*request_list_item_options_cb)(SettingAccessibility *ad, int option_id, const char **title);
-typedef void (*switch_action_cb)(SettingAccessibility *ad, switch_action_t action, void *user_data);
-typedef void (*back_cb)(SettingAccessibility *ad);
-
-typedef struct _SetValueLayout {
- Evas_Object *layout;
- Evas_Object *scroller;
- Evas_Object *box;
- Evas_Object *check;
- Evas_Object *radio_group;
- Evas_Object *genlist;
- Eina_List *options_data;
- double min_val;
- double max_val;
- double step;
- const char *units;
- change_value_cb value_change_cb;
- change_switch_cb switch_change_cb;
- change_radio_item_cb radio_item_change_cb;
- change_switch_item_cb switch_item_change_cb;
- request_list_item_options_cb list_item_options_request_cb;
-} SetValueLayout;
-
-struct _SettingAccessibility {
- MainData md;
- Elm_Genlist_Item_Class itc_1text;
- Elm_Genlist_Item_Class itc_multiline_sub;
- Evas_Object *popup;
- Evas_Object *entry;
- Evas_Object *all_checkbox;
- Evas_Object *remove_switches_page_button;
- Evas_Object *remove_switches_popup_button;
- Evas_Object *update_accessories_action_genlist;
- Evas_Object *universal_switch_settings_btn;
-
- Elm_Object_Item *save_object_item;
- Elm_Object_Item *universal_switch_main_item;
- Elm_Object_Item *universal_switch_settings_item;
- Elm_Object_Item *naviframe_it;
- SetValueLayout set_value_layout;
-
- Setting_GenGroupItem_Data *speech_rate_item;
- Setting_GenGroupItem_Data *keyboard_feedback_item;
- Setting_GenGroupItem_Data *hints_item;
- Setting_GenGroupItem_Data *vibration_feedback_item;
- Setting_GenGroupItem_Data *sound_feedback_item;
- Setting_GenGroupItem_Data *status_bar_information_item;
- Setting_GenGroupItem_Data *multiline_status_bar_information_description;
- Setting_GenGroupItem_Data *screenreader_checkbox;
- Setting_GenGroupItem_Data *multiline_screen_reader_comment;
- Setting_GenGroupItem_Data *screen_reader_settings;
- Setting_GenGroupItem_Data *screen_reader_item;
- Setting_GenGroupItem_Data *universal_switch_item;
- Setting_GenGroupItem_Data *universal_switch_off_checkbox;
- Setting_GenGroupItem_Data *universal_switch_comment;
- Setting_GenGroupItem_Data *universal_switch_add_switch_screen;
- Setting_GenGroupItem_Data *universal_switch_add_switch_accessories;
- Setting_GenGroupItem_Data *universal_switch_add_switch_camera;
- Setting_GenGroupItem_Data *universal_switch_camera_comment;
- Setting_GenGroupItem_Data *universal_switch_settings_switches;
- Setting_GenGroupItem_Data *universal_switch_auto_scan_int;
- Setting_GenGroupItem_Data *universal_switch_scans_num;
- Setting_GenGroupItem_Data *universal_switch_scan_method;
- Setting_GenGroupItem_Data *universal_switch_scan_dir;
- Setting_GenGroupItem_Data *universal_switch_scan_speed;
- Setting_GenGroupItem_Data *universal_switch_pause_on_first;
- Setting_GenGroupItem_Data *universal_switch_tap_duration;
- Setting_GenGroupItem_Data *universal_switch_sgl_iaction_int;
- Setting_GenGroupItem_Data *universal_switch_auto_tap;
- Setting_GenGroupItem_Data *universal_switch_auto_move_int;
- Setting_GenGroupItem_Data *universal_switch_feedback_cursor_cl;
- Setting_GenGroupItem_Data *universal_switch_feedback_sound;
- Setting_GenGroupItem_Data *universal_switch_feedback_sound_volume;
- Setting_GenGroupItem_Data *universal_switch_feedback_voice;
- Setting_GenGroupItem_Data *universal_switch_feedback_voice_speech_rate;
- Setting_GenGroupItem_Data *universal_switch_feedback_voice_speech_volume;
-
- Elm_Genlist *universal_switch_switches;
- back_cb universal_switch_switches_back;
-
- tts_h tts;
-
- UniversalSwitchDbusConfig config;
- UniversalSwitchConfigurationItem config_item_to_update;
- char * switch_id;
- bool auto_scan;
- double auto_scan_interval;
- int auto_scan_num;
- scan_method_t scan_method;
- scan_dir_t scan_dir;
- int scan_pt_speed;
- bool pause_on_first_state;
- double pause_on_first_value;
- bool tap_duration_state;
- double tap_duration_value;
- bool sgl_iaction_int_state;
- double sgl_iaction_int_value;
- bool auto_tap_state;
- double auto_tap_value;
- bool auto_move_int_state;
- double auto_move_int_value;
- bool auto_tap_kbd_state;
- int cursor_color;
- bool feedback_sound_state;
- int feedback_sound_volume;
- bool feedback_voice_state;
- int feedback_voice_speech_rate;
- int feedback_voice_speech_volume;
- bool manage_options_state[MANAGE_OPTIONS_COUNT];
- universal_switch_added_cb screen_switch_added_cb;
- universal_switch_added_cb camera_switch_added_cb;
- universal_switch_added_cb accessories_switch_added_cb;
- universal_switch_removed_cb switch_removed_cb;
- universal_switch_updated_cb switch_updated_cb;
- bool empty_flag;
- int switches_to_remove_counter;
- bool launched_by_app_control;
-};
-
-extern setting_view setting_view_accessibility_main;
-
-#endif /*__SETTING_ACCESSIBILITY_H__ */
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Michal Pawluk <m.pawluk@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "setting-accessibility-accessibility-launcher.h"
-
-#define ITEMS_COUNT 3
-#define NAME_MAX_LENGTH 64
-
-typedef struct {
- char name[NAME_MAX_LENGTH];
- Setting_GenGroupItem_Data *item;
-} __Item_Wrapper;
-
-static Eina_Bool __naviframe_pop_cb(void *data, Elm_Object_Item *it)
-{
- SETTING_TRACE_BEGIN;
- retv_if(data == NULL, EINA_TRUE);
- __Item_Wrapper *items = data;
- free(items);
- SETTING_TRACE_END;
- return EINA_TRUE;
-}
-
-static void __back_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = data;
- elm_naviframe_item_pop(ad->md.naviframe);
- SETTING_TRACE_END;
-}
-
-static void __update_vconf(__Item_Wrapper *items)
-{
- int value = 0;
- int i;
- for (i = 0; i < ITEMS_COUNT; i++)
- if (items[i].item->chk_status)
- value = value | (1 << i);
- vconf_set_int(VCONFKEY_SETAPPL_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_LAUNCH, value);
-}
-
-static void __accessibility_launcher_item_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Input parameter is NULL");
- Setting_GenGroupItem_Data *list_item = data;
- list_item->chk_status = !list_item->chk_status;
- __update_vconf(list_item->userdata);
- SETTING_TRACE_END;
-}
-
-static void __accessibility_launcher_item_selected(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(event_info == NULL, "Invalid argument: event_info is NULL");
- Elm_Object_Item *item = event_info;
- elm_genlist_item_selected_set(item, EINA_FALSE);
- Setting_GenGroupItem_Data *list_item = elm_object_item_data_get(item);
- setting_update_gl_item_chk_status(list_item, list_item->chk_status ? 0 : 1);
- __update_vconf(list_item->userdata);
- SETTING_TRACE_END;
-}
-
-static void __accessibility_launcher_state_update_name(Setting_GenGroupItem_Data *item)
-{
- SETTING_TRACE_BEGIN;
- char *item_label = item->chk_status ?
- _(DEVOPTION_STR_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_ON) : _(DEVOPTION_STR_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_OFF);
-
- if (item_label && strlen(item_label) > 0) {
- free(item->keyStr);
- item->keyStr = strdup(item_label);
- }
-
- elm_genlist_item_update(item->item);
- SETTING_TRACE_END;
-}
-
-static void __updete_main_switch(Setting_GenGroupItem_Data *list_item)
-{
- SETTING_TRACE_BEGIN;
- retm_if(list_item == NULL, "Data parameter is NULL");
- __accessibility_launcher_state_update_name(list_item);
- vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_STATE, list_item->chk_status);
- __Item_Wrapper *items = list_item->userdata;
- int i;
- for (i = 0; i < ITEMS_COUNT; i++)
- elm_object_item_disabled_set(items[i].item->item, list_item->chk_status ? EINA_FALSE : EINA_TRUE);
-
- SETTING_TRACE_END;
-}
-
-static void __accessibility_launcher_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item = data;
- list_item->chk_status = !list_item->chk_status;
- __updete_main_switch(list_item);
- SETTING_TRACE_END;
-}
-
-static void __accessibility_launcher_off_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Invalid argument: data is NULL");
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- elm_genlist_item_selected_set(item, EINA_FALSE);
- Setting_GenGroupItem_Data *list_item = elm_object_item_data_get(item);
- setting_update_gl_item_chk_status(list_item, list_item->chk_status ? 0 : 1);
- __updete_main_switch(list_item);
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_accessibility_launcher_page_create(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
-
- __Item_Wrapper *items = calloc(sizeof(__Item_Wrapper), ITEMS_COUNT);
- retm_if(items == NULL, "calloc failed");
- strncpy(items[0].name, _(KeyStr_Accessibility), NAME_MAX_LENGTH);
- strncpy(items[1].name, _(DEVOPTION_STR_ACCESSIBILITY_SCREENREADER), NAME_MAX_LENGTH);
- strncpy(items[2].name, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH), NAME_MAX_LENGTH);
-
- int ret;
- int state = 0;
- Setting_GenGroupItem_Data *item = NULL;
- Evas_Object *genlist = elm_genlist_add(ad->md.naviframe);
- if (genlist == NULL) {
- SETTING_TRACE_ERROR("Cannot set genlist object as content of layout");
- free(items);
- return;
- }
-
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
- elm_object_style_set(genlist, "dialogue");
- elm_genlist_clear(genlist);
-
- ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_STATE, &state);
- if (ret != VCONF_OK) {
- SETTING_TRACE("FAIL: vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_STATE)");
- }
-
- item = setting_create_Gendial_field_def(
- genlist, &itc_1text_1icon,
- __accessibility_launcher_off_mouse_up_Gendial_list_cb,
- items, SWALLOW_Type_1ICON_1RADIO, NULL,
- NULL, state, state ? _(DEVOPTION_STR_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_ON) : _(DEVOPTION_STR_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_OFF),
- NULL, __accessibility_launcher_checkbox_cb);
-
- if (item)
- item->userdata = items;
-
- item = setting_create_Gendial_field_def(
- genlist, &ad->itc_multiline_sub,
- NULL, ad, SWALLOW_Type_INVALID, NULL,
- NULL, 0,
- NULL,
- _(DEVOPTION_STR_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_COMMENT),
- NULL);
-
- if (item) {
- elm_genlist_item_select_mode_set(item->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- }
-
- int vconf_state;
- ret = vconf_get_int(VCONFKEY_SETAPPL_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_LAUNCH, &vconf_state);
- if (ret != VCONF_OK) {
- SETTING_TRACE("FAIL: vconf_get_int(VCONFKEY_SETAPPL_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_LAUNCH)");
- }
- int i;
- for (i = 0; i < ITEMS_COUNT; i++) {
- Setting_GenGroupItem_Data *item = setting_create_Gendial_field_def(
- genlist, &itc_1text_1icon,
- __accessibility_launcher_item_selected,
- ad, SWALLOW_Type_1ICON_1RADIO, NULL,
- NULL, vconf_state & (1 << i), items[i].name,
- NULL, __accessibility_launcher_item_checkbox_cb);
-
- if (item) {
- item->userdata = items;
- item->chk_id = i;
- items[i].item = item;
- }
-
- elm_object_item_disabled_set(item->item, state ? EINA_FALSE : EINA_TRUE);
- }
-
- ad->md.naviframe_it = elm_naviframe_item_push(ad->md.naviframe, _(DEVOPTION_STR_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER), NULL, NULL, genlist, NULL);
- elm_naviframe_item_pop_cb_set(ad->md.naviframe_it, __naviframe_pop_cb, items);
- elm_object_item_domain_text_translatable_set(ad->md.naviframe_it, SETTING_PACKAGE, EINA_TRUE);
-
- Evas_Object *back_btn = setting_create_button(ad->md.naviframe, NULL, NAVI_BACK_ARROW_BUTTON_STYLE, __back_cb, ad);
- elm_layout_content_set(ad->md.naviframe, "prev_btn", back_btn);
- SETTING_TRACE_END;
-}
\ No newline at end of file
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Contact: Tomasz Olszak <t.olszak@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "setting-accessibility-main.h"
-#include "setting-accessibility-screen-reader.h"
-#include "setting-accessibility-universal-switch.h"
-#include "setting-accessibility-accessibility-launcher.h"
-
-static int setting_accessibility_main_create(void *cb);
-static int setting_accessibility_main_destroy(void *cb);
-static int setting_accessibility_main_update(void *cb);
-static int setting_accessibility_main_cleanup(void *cb);
-
-setting_view setting_view_accessibility_main = {
- .create = setting_accessibility_main_create,
- .destroy = setting_accessibility_main_destroy,
- .update = setting_accessibility_main_update,
- .cleanup = setting_accessibility_main_cleanup, };
-
-static void setting_accessibility_screen_reader_key_change_vconf_cb(
- keynode_t *key, void *user_data)
-{
- SETTING_TRACE_BEGIN;
- Setting_GenGroupItem_Data *screen_reader_item = user_data;
- if (screen_reader_item->sub_desc)
- free(screen_reader_item->sub_desc);
- screen_reader_item->sub_desc = strdup(vconf_keynode_get_bool(key) ?
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_ON) :
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_OFF));
-
- elm_genlist_item_update(screen_reader_item->item);
-
- SETTING_TRACE_END;
-}
-
-/**
- * @brief Do process when cancelling application
- *
- * @param data application context
- * @param UNUSED
- */
-static Eina_Bool _cancel_cb(void *data, Elm_Object_Item *it)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- retv_if(!ad, EINA_FALSE);
-
- vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS,
- setting_accessibility_screen_reader_key_change_vconf_cb);
- ui_app_exit();
- return EINA_TRUE;
-}
-
-static void setting_accessibility_vision_screen_reader_mouse_up_Gendial_list_cb(
- void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set(item, EINA_FALSE);
- setting_accessibility_screen_reader_page_create(ad);
- SETTING_TRACE_END;
-}
-
-static void setting_accessibility_universal_switch_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set(item, EINA_FALSE);
- setting_accessibility_universal_switch_page_create(ad);
- SETTING_TRACE_END;
-}
-
-static void setting_accessibility_accessibility_launcher_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set(item, EINA_FALSE);
- setting_accessibility_accessibility_launcher_page_create(ad);
- SETTING_TRACE_END;
-}
-
-/**
- * @brief create main view genlist items
- *
- * @param data application data
- *
- * @return FALSE for call it once and then destory the timer, TRUE for always
- * call it when the timer is reached.
- */
-int setting_accessibility_main_generate_genlist(void *data)
-{
- SETTING_TRACE_BEGIN;
- /* error check */
- retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- SettingAccessibility *ad = (SettingAccessibility *)data;
- Evas_Object *scroller = ad->md.genlist;
- (void)setting_create_Gendial_field_titleItem(scroller,
- &(itc_group_item),
- _(DEVOPTION_STR_ACCESSIBILITY_VISION), NULL);
-
- int screen_reader = 0;
- vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &screen_reader);
-
- ad->screen_reader_item = setting_create_Gendial_field_def(
- scroller, &itc_2text,
- setting_accessibility_vision_screen_reader_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_INVALID, NULL,
- NULL, 1, _(DEVOPTION_STR_ACCESSIBILITY_SCREENREADER),
- screen_reader ? _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_ON) :
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_OFF),
- NULL);
- if (ad->screen_reader_item) {
- ad->screen_reader_item->userdata = ad;
- __BACK_POINTER_SET(ad->screen_reader_item);
- }
-
- ad->universal_switch_item = setting_create_Gendial_field_def(
- scroller, &ad->itc_multiline_sub,
- setting_accessibility_universal_switch_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_INVALID, NULL,
- NULL, 1, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH),
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_HINT),
- NULL);
- if (ad->universal_switch_item) {
- ad->universal_switch_item->userdata = ad;
- __BACK_POINTER_SET(ad->universal_switch_item);
- }
-
- Setting_GenGroupItem_Data *item = setting_create_Gendial_field_def(
- scroller, &ad->itc_multiline_sub,
- setting_accessibility_accessibility_launcher_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_INVALID, NULL,
- NULL, 1, _(DEVOPTION_STR_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER),
- _(DEVOPTION_STR_ACCESSIBILITY_ACCESSIBILITY_LAUNCHER_HINT),
- NULL);
- if (item) {
- item->userdata = ad;
- __BACK_POINTER_SET(item);
- }
-
- int vconf_ret = vconf_notify_key_changed(
- VCONFKEY_SETAPPL_ACCESSIBILITY_TTS,
- setting_accessibility_screen_reader_key_change_vconf_cb,
- ad->screen_reader_item);
- if (vconf_ret != 0) {
- SETTING_TRACE("FAIL: vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS)");
- return SETTING_RETURN_FAIL;
- }
-
- SETTING_TRACE_END;
- return SETTING_RETURN_SUCCESS;
-}
-
-static int setting_accessibility_main_create(void *cb)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = (SettingAccessibility *)cb;
- retv_if(ad == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- view_init(&ad->md, _("IDS_ST_BODY_ACCESSIBILITY"));
- elm_object_style_set(ad->md.genlist, "dialogue");
-
- setting_add_back_button(&ad->md, _cancel_cb, ad);
-
- setting_accessibility_main_generate_genlist((void *)ad);
-
- setting_view_accessibility_main.is_create = 1;
- SETTING_TRACE_END;
- return SETTING_RETURN_SUCCESS;
-}
-
-static int setting_accessibility_main_destroy(void *cb)
-{
- SETTING_TRACE_BEGIN;
- /* error check */
- retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- setting_view_accessibility_main.is_create = 0;
-
- SETTING_TRACE_END;
- return SETTING_RETURN_SUCCESS;
-}
-
-static int setting_accessibility_main_update(void *cb)
-{
- SETTING_TRACE_BEGIN;
- /* error check */
- retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- SETTING_TRACE_END;
- return SETTING_RETURN_SUCCESS;
-}
-
-static int setting_accessibility_main_cleanup(void *cb)
-{
- SETTING_TRACE_BEGIN;
- /* error check */
- retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- SETTING_TRACE_END;
- return SETTING_RETURN_SUCCESS;
-}
-
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Contact: Tomasz Olszak <t.olszak@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <vconf.h>
-#include <vconf-internal-keys.h>
-#include <efl_extension.h>
-#include <tts_setting.h>
-
-#include "setting-accessibility-screen-reader-settings.h"
-
-#define POPUP_CONTENT_BASE_SIZE 120
-
-typedef struct {
- char *label;
- char *vconf_key;
- int *status;
-} vconf_check_data_s;
-
-vconf_check_data_s vconf_check_data[] = {
- {
- .label = DEVOPTION_STR_ACCESSIBILITY_INDICATOR_TIME,
- .vconf_key = VCONFKEY_SETAPPL_ACCESSIBILITY_TTS_INDICATOR_INFORMATION_TIME,
- .status = NULL
- },
- {
- .label = DEVOPTION_STR_ACCESSIBILITY_INDICATOR_DATE,
- .vconf_key = VCONFKEY_SETAPPL_ACCESSIBILITY_TTS_INDICATOR_INFORMATION_DATE,
- .status = NULL
- },
- {
- .label = DEVOPTION_STR_ACCESSIBILITY_INDICATOR_BATTERY,
- .vconf_key = VCONFKEY_SETAPPL_ACCESSIBILITY_TTS_INDICATOR_INFORMATION_BATTERY,
- .status = NULL
- },
- {
- .label = DEVOPTION_STR_ACCESSIBILITY_INDICATOR_SIGNAL_STRENGTH,
- .vconf_key = VCONFKEY_SETAPPL_ACCESSIBILITY_TTS_INDICATOR_INFORMATION_SIGNAL_STRENGHT,
- .status = NULL
- },
- {
- .label = DEVOPTION_STR_ACCESSIBILITY_INDICATOR_BLUETOOTH,
- .vconf_key = VCONFKEY_SETAPPL_ACCESSIBILITY_TTS_INDICATOR_INFORMATION_BLUETOOTH,
- .status = NULL
- },
- {
- .label = DEVOPTION_STR_ACCESSIBILITY_INDICATOR_MISSED_EVENTS,
- .vconf_key = VCONFKEY_SETAPPL_ACCESSIBILITY_TTS_INDICATOR_INFORMATION_MISSED_EVENTS,
- .status = NULL
- }
-};
-static Eina_List *items = NULL;
-
-static Setting_GenGroupItem_Data *speech_rate_list_item = NULL;
-
-static Eina_Bool __page_hide(void *data, Elm_Object_Item *it)
-{
- SETTING_TRACE_BEGIN;
- /* error check */
- retv_if(data == NULL, EINA_TRUE);
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- if (0 != tts_setting_unset_speed_changed_cb())
- SETTING_TRACE("Fail to unset speed changed cb");
-
- if (0 != tts_setting_unset_voice_changed_cb())
- SETTING_TRACE("Fail to unset voice changed cb");
-
- if (0 != tts_setting_finalize()) {
- LOGE("Fail to setting finalize");
- return -1;
- }
- elm_naviframe_item_pop(ad->md.naviframe);
- SETTING_TRACE_END;
- return EINA_TRUE;
-}
-
-static Eina_Bool _vconf_key_value_get(char *key)
-{
- retvm_if(!key, EINA_FALSE, "Key is NULL");
- int value = 0;
- int ret = vconf_get_bool(key, &value);
- if (ret != 0) {
- LOGE("Failed to get vconf bool value %s. Error: %d", key, ret);
- return EINA_FALSE;
- }
- return (value != 0);
-}
-
-static void _vconf_key_value_set(char *key, int value)
-{
- retm_if(!key, "key == NULL");
-
- int ret = vconf_set_bool(key, value);
-
- if (ret != 0) {
- LOGE("Failed to set vconf key %s. Error: %d", key, ret);
- return;
- }
-}
-
-static void _vconf_key_foreach_check_set(void)
-{
- int i;
- int size = sizeof(vconf_check_data) / sizeof(vconf_check_data[0]);
- int status = 0;
- char *key = NULL;
-
- for (i = 0; i < size; ++i) {
- key = vconf_check_data[i].vconf_key;
- status = *(vconf_check_data[i].status);
- _vconf_key_value_set(key, status);
- }
-}
-
-static void _cancel_button_clicked_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Evas_Object *popup = (Evas_Object *)data;
- retm_if(!popup, "popup == NULL");
- evas_object_del(popup);
- SETTING_TRACE_END;
-}
-
-static void _done_button_clicked_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Evas_Object *popup = (Evas_Object *)data;
- retm_if(!popup, "popup == NULL");
- evas_object_del(popup);
-
- _vconf_key_foreach_check_set();
- SETTING_TRACE_END;
-}
-
-static void _check_state_changed_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- if (!data) {
- LOGD("data == NULL");
- return;
- }
-
- Setting_GenGroupItem_Data *item_data =
- (Setting_GenGroupItem_Data *)data;
- item_data->chk_status = elm_check_state_get(obj);
- LOGE("Check changed: %s; status: %d, %p", item_data->keyStr,
- item_data->chk_status, &item_data->chk_status);
-
- SETTING_TRACE_END;
-}
-
-static void _speech_rate_popup_done_button_clicked_cb(void *data,
- Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Evas_Object *slider;
- Evas_Object *layout;
- int val;
- Evas_Object *popup = (Evas_Object *)data;
- retm_if(!popup, "popup == NULL");
- layout = elm_object_content_get(popup);
- slider = elm_object_part_content_get(layout, "slider");
-
- val = (int)elm_slider_value_get(slider);
- if (0 != tts_setting_set_speed(val))
- SETTING_TRACE("Setting speed to tts engine failed");
-
- evas_object_del(popup);
- SETTING_TRACE_END;
-}
-
-static void _list_item_clicked_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
-
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- retm_if(!item, "item == NULL");
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
-
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)
- elm_object_item_data_get(item);
- retm_if(!list_item, "list_item == NULL");
-
- LOGI("ITEM SELECTED: %s", list_item->keyStr);
- setting_update_gl_item_chk_status(list_item, !list_item->chk_status);
-
- SETTING_TRACE_END;
-}
-
-static void _on_popup_del(void *data, Evas *e, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- char buf[256];
- int speed_val = -1;
- int s_speed_normal = -1;
- int s_speed_max = -1;
- int s_speed_min = -1;
- if (speech_rate_list_item) {
- if (0 != tts_setting_get_speed(&speed_val))
- SETTING_TRACE("Failed to get speed");
-
- if (0 != tts_setting_get_speed_range(&s_speed_min, &s_speed_normal, &s_speed_max))
- SETTING_TRACE("Fail to get speed range");
- double s_speed_percent = (((double)speed_val - (double)s_speed_min)/((double)s_speed_max - (double)s_speed_min)) * 100;
- snprintf(buf, sizeof(buf), "%.0f%%", s_speed_percent);
- SETTING_TRACE("Updating speed to %s", buf);
- G_FREE(speech_rate_list_item->sub_desc);
- speech_rate_list_item->sub_desc = (char *)g_strdup(buf);
- elm_genlist_item_update(speech_rate_list_item->item);
- }
- SETTING_TRACE_END;
-}
-
-static void _speech_rate_popup_create(void *data, void *item)
-{
- SettingAccessibility *ad = (SettingAccessibility *)data;
- Evas_Object *popup;
- Evas_Object *layout;
- Evas_Object *slider;
- Evas_Object *btn1, *btn2;
- int val = -1;
-
- popup = elm_popup_add(ad->md.window);
- elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
- /* eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK,
- * eext_popup_back_cb, NULL); */
- elm_object_part_text_set(popup, "title,text",
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SPEECH_RATE));
- evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
-
- /* layout */
- layout = elm_layout_add(popup);
- elm_layout_file_set(layout, SETTINGS_EDJ,
- "popup_text_slider_view_layout");
- elm_object_part_text_set(layout, "elm.text.description",
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SPEECH_RATE_POPUP_DESCRIPTION));
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
- elm_object_content_set(popup, layout);
-
- /* slider */
- slider = elm_slider_add(layout);
- elm_slider_indicator_show_set(slider, EINA_TRUE);
- evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, EVAS_HINT_FILL);
-
- elm_slider_indicator_format_set(slider, "%1.0f");
- elm_slider_min_max_set(slider, 1, 15);
- if (0 != tts_setting_get_speed(&val))
- SETTING_TRACE("Fail to get speed");
-
- elm_slider_step_set(slider, 2);
- elm_slider_value_set(slider, val);
- elm_object_part_content_set(layout, "slider", slider);
-
- /* ok button */
- btn1 = elm_button_add(popup);
- elm_object_style_set(btn1, "bottom");
- elm_object_text_set(btn1,
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SPEECH_RATE_POPUP_CANCEL));
- elm_object_part_content_set(popup, "button1", btn1);
- evas_object_smart_callback_add(btn1, "clicked",
- _cancel_button_clicked_cb, popup);
- eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK,
- _cancel_button_clicked_cb, popup);
-
- btn2 = elm_button_add(popup);
- elm_object_style_set(btn2, "bottom");
- elm_object_text_set(btn2,
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SPEECH_RATE_POPUP_DONE));
- elm_object_part_content_set(popup, "button2", btn2);
- evas_object_smart_callback_add(btn2, "clicked",
- _speech_rate_popup_done_button_clicked_cb, popup);
-
- evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _on_popup_del,
- item);
-
- evas_object_show(popup);
-
-}
-
-static void __tts_setting_speed_changed_cb(int speed, void *user_data)
-{
- SETTING_TRACE_BEGIN;
- SETTING_TRACE("=== Speed changed to (%d)", speed);
- Setting_GenGroupItem_Data *speech_rate_item =
- (Setting_GenGroupItem_Data *)user_data;
- char buf[256];
-
- snprintf(buf, sizeof(buf), "%d", speed);
- elm_object_item_part_text_set(speech_rate_item->item, "elm.text.2",
- buf);
- SETTING_TRACE_END;
-}
-
-static void _speech_rate_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
- _speech_rate_popup_create(
- ad, item);
-
- SETTING_TRACE_END;
-}
-
-static void _keyboard_feedback_vconf_update(int state)
-{
- vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_KEYBOARD_FEEDBACK, state ? 1 : 0);
-}
-
-static void _keyboard_feedback_check_update(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *)data;
-
- /* for genlist update status */
- list_item->chk_status = elm_check_state_get(obj);
-
- SETTING_TRACE_DEBUG("check_status: %i", list_item->chk_status);
- _keyboard_feedback_vconf_update(
- list_item->chk_status);
- SETTING_TRACE_END;
-}
-
-static void _keyboard_feedback_mouse_up_Gendial_list_cb(
- void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)
- elm_object_item_data_get(item);
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
- setting_update_gl_item_chk_status(list_item,
- list_item->chk_status ? 0 : 1);
- _keyboard_feedback_vconf_update(list_item->chk_status ? 1 : 0);
-}
-
-static void _hints_vconf_update(int state)
-{
- vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_DESCRIPTION,
- state ? 1 : 0);
-}
-
-static void _hints_check_update(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *)data;
-
- /* for genlist update status */
- list_item->chk_status = elm_check_state_get(obj);
-
- SETTING_TRACE_DEBUG("check_status: %i", list_item->chk_status);
- _hints_vconf_update(
- list_item->chk_status);
- SETTING_TRACE_END;
-}
-
-static void _hints_mouse_up_Gendial_list_cb(
- void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)
- elm_object_item_data_get(item);
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
- setting_update_gl_item_chk_status(list_item,
- list_item->chk_status ? 0 : 1);
- _hints_vconf_update(list_item->chk_status ? 1 : 0);
-}
-
-static inline void _sound_feedback_vconf_update(int state)
-{
- vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_SOUND_FEEDBACK,
- state ? 1 : 0);
-}
-
-static void _sound_feedback_check_update(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *)data;
-
- /* for genlist update status */
- list_item->chk_status = elm_check_state_get(obj);
-
- SETTING_TRACE_DEBUG("check_status: %i", list_item->chk_status);
- _sound_feedback_vconf_update(
- list_item->chk_status);
- SETTING_TRACE_END;
-}
-
-
-static void _sound_feedback_mouse_up_Gendial_list_cb(void *data,
- Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)
- elm_object_item_data_get(item);
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
- setting_update_gl_item_chk_status(list_item,
- list_item->chk_status ? 0 : 1);
- _sound_feedback_vconf_update(list_item->chk_status ? 1 : 0);
-}
-
-static void _vibration_feedback_vconf_update(int state)
-{
- vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_HAPTIC,
- state ? 1 : 0);
-}
-
-static void _vibration_feedback_check_update(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *)data;
-
- /* for genlist update status */
- list_item->chk_status = elm_check_state_get(obj);
-
- SETTING_TRACE_DEBUG("check_status: %i", list_item->chk_status);
- _vibration_feedback_vconf_update(
- list_item->chk_status);
- SETTING_TRACE_END;
-}
-
-
-static void _vibration_feedback_mouse_up_Gendial_list_cb(
- void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)
- elm_object_item_data_get(item);
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
- setting_update_gl_item_chk_status(list_item,
- list_item->chk_status ? 0 : 1);
- _vibration_feedback_vconf_update(list_item->chk_status ? 1 : 0);
-}
-
-static void _status_bar_info_mouse_up_Gendial_list_cb(
- void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Invalid argument: data is NULL");
- retm_if(event_info == NULL, "Invalid argument: event_info is NULL");
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- Evas_Object *popup;
- Evas_Object *box;
- Evas_Object *genlist;
- Setting_GenGroupItem_Data *screenreader_checkbox = NULL;
- int i;
- int size = sizeof(vconf_check_data) / sizeof(vconf_check_data[0]);
- int status;
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
-
- popup = elm_popup_add(ad->md.window);
- elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
- /* eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK,
- * eext_popup_back_cb, NULL); */
- elm_object_part_text_set(popup, "title,text",
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_STATUS_BAR_INFORMATION));
- evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
-
- /* box */
- box = elm_box_add(popup);
- evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
-
- /* genlist */
- genlist = elm_genlist_add(box);
- evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL,
- EVAS_HINT_FILL);
-
- for (i = 0; i < size; ++i) {
- status = _vconf_key_value_get(vconf_check_data[i].vconf_key);
-
- screenreader_checkbox = setting_create_Gendial_field_def(
- genlist, &itc_1text_1icon,
- _list_item_clicked_cb, ad,
- SWALLOW_Type_1ICON_1RADIO, NULL,
- NULL, status, _(vconf_check_data[i].label),
- NULL, _check_state_changed_cb);
-
- vconf_check_data[i].status = &screenreader_checkbox->chk_status;
- items = eina_list_append(items, screenreader_checkbox);
- }
-
- elm_scroller_movement_block_set(genlist,
- ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL
- | ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL);
- elm_scroller_policy_set(genlist, ELM_SCROLLER_POLICY_OFF,
- ELM_SCROLLER_POLICY_OFF);
-
- evas_object_show(genlist);
- elm_box_pack_end(box, genlist);
- evas_object_size_hint_min_set(box, -1,
- ELM_SCALE_SIZE(POPUP_CONTENT_BASE_SIZE) * size);
- evas_object_size_hint_max_set(box, -1,
- ELM_SCALE_SIZE(POPUP_CONTENT_BASE_SIZE) * size);
- elm_object_content_set(popup, box);
-
- const char *btnCancelText = _("IDS_MSG_ACBUTTON_CANCEL_ABB");
- const char *btnDoneText = _("IDS_MSG_ACBUTTON_DONE_ABB");
-
- Evas_Object *btnCancel = setting_create_button(popup, btnCancelText,
- NULL, _cancel_button_clicked_cb, popup);
- elm_object_style_set(btnCancel, "popup");
- elm_object_part_content_set(popup, _("button1"), btnCancel);
- evas_object_data_set(popup, _("button1"), btnCancelText);
-
- Evas_Object *btnDone = setting_create_button(popup, btnDoneText, NULL,
- _done_button_clicked_cb, popup);
- elm_object_style_set(btnDone, "popup");
-
- elm_object_part_content_set(popup, _("button2"), btnDone);
- evas_object_data_set(popup, _("button2"), btnDoneText);
-
- eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK,
- _cancel_button_clicked_cb, popup);
-
- evas_object_show(popup);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_screen_reader_settings_page_create(
- SettingAccessibility *data)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- char buf[256];
- int s_speed = -1;
- int s_speed_normal = -1;
- int s_speed_max = -1;
- int s_speed_min = -1;
- int vconf_val = 0;
- int vconf_ret;
-
- Evas_Object *genlist = elm_genlist_add(ad->md.naviframe);
- retm_if(genlist == NULL,
- "Cannot set genlist object as content of layout");
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
- elm_object_style_set(genlist, "dialogue");
- elm_genlist_clear(genlist);
-
- SETTING_TRACE("Creating items");
-
- if (0 != tts_setting_initialize())
- SETTING_TRACE("Fail to setting initialize");
-
- SETTING_TRACE("tts initialized");
- if (0 != tts_setting_get_speed(&s_speed))
- SETTING_TRACE("Fail to get speed");
-
- if (0 != tts_setting_get_speed_range(&s_speed_min, &s_speed_normal, &s_speed_max))
- SETTING_TRACE("Fail to get speed range");
- double s_speed_percent = (((double)s_speed - (double)s_speed_min)/((double)s_speed_max - (double)s_speed_min)) * 100;
- snprintf(buf, sizeof(buf), "%.0f%%", s_speed_percent);
- SETTING_TRACE("TTS rate is %.0f", s_speed_percent);
-
- /* Item 1 : Speech Rate */
- ad->speech_rate_item = setting_create_Gendial_field_def(
- genlist, &itc_2text,
- _speech_rate_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_INVALID, NULL,
- NULL, 1,
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SPEECH_RATE),
- buf,
- NULL);
- tts_setting_set_speed_changed_cb(__tts_setting_speed_changed_cb,
- ad->speech_rate_item);
- if (ad->speech_rate_item) {
- ad->speech_rate_item->userdata = ad;
- __BACK_POINTER_SET(ad->speech_rate_item);
- speech_rate_list_item = ad->speech_rate_item;
- SETTING_TRACE("Speech rate Item added");
- }
-
- /* Item 2 : Keyboard feedback */
- vconf_ret = vconf_get_bool(
- VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_KEYBOARD_FEEDBACK,
- &vconf_val);
- if (vconf_ret != 0) {
- LOGE("Failed to get vconf bool value VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_KEYBOARD_FEEDBACK. Error: %d",
- vconf_ret);
- }
-
- ad->keyboard_feedback_item = setting_create_Gendial_field_def(
- genlist, &itc_multiline_2text,
- _keyboard_feedback_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_1ICON_1RADIO, NULL,
- NULL, vconf_val ? 1 : 0,
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_KEYBOARD_FEEDBACK),
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_KEYBOARD_FEEDBACK_INFO),
- _keyboard_feedback_check_update);
-
- if (ad->keyboard_feedback_item) {
- ad->keyboard_feedback_item->userdata = ad;
- __BACK_POINTER_SET(ad->keyboard_feedback_item);
- SETTING_TRACE("Keyboard feedback Item added");
- }
-
- /* Item 3 : Hints */
- vconf_ret = vconf_get_bool(
- VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_DESCRIPTION,
- &vconf_val);
- if (vconf_ret != 0) {
- LOGE("Failed to get vconf bool value VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_DESCRIPTION. Error: %d",
- vconf_ret);
- }
-
- ad->hints_item = setting_create_Gendial_field_def(
- genlist, &itc_1text_1icon,
- _hints_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_1ICON_1RADIO, NULL,
- NULL, vconf_val ? 1 : 0,
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_HINTS),
- NULL,
- _hints_check_update);
-
- if (ad->hints_item) {
- ad->hints_item->userdata = ad;
- __BACK_POINTER_SET(ad->hints_item);
- SETTING_TRACE("Hints Item added");
- }
-
- /* Item 4 : Vibration Feedback */
- vconf_ret = vconf_get_bool(
- VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_HAPTIC,
- &vconf_val);
- if (vconf_ret != 0) {
- LOGE("Failed to get vconf bool value VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_HAPTIC. Error: %d",
- vconf_ret);
- }
-
- ad->vibration_feedback_item = setting_create_Gendial_field_def(
- genlist, &itc_1text_1icon,
- _vibration_feedback_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_1ICON_1RADIO, NULL,
- NULL, vconf_val ? 1 : 0,
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_VIBRATION_FEEDBACK),
- NULL,
- _vibration_feedback_check_update);
-
- if (ad->vibration_feedback_item) {
- ad->vibration_feedback_item->userdata = ad;
- __BACK_POINTER_SET(ad->vibration_feedback_item);
- SETTING_TRACE("Vibration feedback Item added");
- }
-
- /* Item 5 : Sound Feedback */
- vconf_ret = vconf_get_bool(
- VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_SOUND_FEEDBACK,
- &vconf_val);
- if (vconf_ret != 0) {
- LOGE("Failed to get vconf bool value VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_READER_SOUND_FEEDBACK. Error: %d",
- vconf_ret);
- }
-
- ad->sound_feedback_item = setting_create_Gendial_field_def(
- genlist, &itc_1text_1icon,
- _sound_feedback_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_1ICON_1RADIO, NULL,
- NULL, vconf_val ? 1 : 0,
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_SOUND_FEEDBACK),
- NULL,
- _sound_feedback_check_update);
-
- if (ad->sound_feedback_item) {
- ad->sound_feedback_item->userdata = ad;
- __BACK_POINTER_SET(ad->sound_feedback_item);
- SETTING_TRACE("Sound feedback Item added");
- }
-
- ad->status_bar_information_item = setting_create_Gendial_field_def(
- genlist, &itc_1text,
- _status_bar_info_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_INVALID, NULL,
- NULL, 1,
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_STATUS_BAR_INFORMATION),
- NULL,
- NULL);
-
- if (ad->status_bar_information_item) {
- ad->status_bar_information_item->userdata = ad;
- __BACK_POINTER_SET(ad->status_bar_information_item);
- }
-
- ad->multiline_status_bar_information_description = setting_create_Gendial_field_def(
- genlist, &ad->itc_multiline_sub,
- NULL, ad, SWALLOW_Type_INVALID, NULL,
- NULL, 0,
- NULL,
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_STATUS_BAR_INFORMATION_DESCRIPTION),
- NULL);
-
- if (ad->multiline_status_bar_information_description) {
- ad->multiline_status_bar_information_description->userdata = ad;
- __BACK_POINTER_SET(ad->multiline_status_bar_information_description);
-
- elm_genlist_item_select_mode_set(
- ad->multiline_status_bar_information_description->item,
- ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- }
-
- Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->md.naviframe,
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS),
- NULL, NULL, genlist, NULL);
- elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE,
- EINA_TRUE);
-
- elm_naviframe_item_pop_cb_set(navi_it,
- __page_hide,
- ad);
-
- SETTING_TRACE_END;
-}
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Contact: Tomasz Olszak <t.olszak@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "setting-accessibility-screen-reader.h"
-#include "setting-accessibility-screen-reader-settings.h"
-
-static void screen_reader_key_change_vconf_cb(keynode_t *node, void *user_data)
-{
- SETTING_TRACE_BEGIN;
- Setting_GenGroupItem_Data *screenReaderItem = user_data;
- /*SETTING_TRACE_DEBUG("check_status: %i, node->value.i: %i",
- * screenReaderItem->chk_status, node->value.i); */
- /* I don't know why following code does not update check box to
- * checked/unchecked */
- /* setting_update_gl_item_chk_status(screenReaderItem,
- * node->value.b ? 1 : 0); */
- elm_genlist_item_update(screenReaderItem->item);
- SETTING_TRACE_END;
-}
-
-static Eina_Bool __setting_accessibility_screen_reader_page_hide(void *data,
- Elm_Object_Item *it)
-{
- SETTING_TRACE_BEGIN;
- /* error check */
- retv_if(data == NULL, EINA_TRUE);
- SettingAccessibility *ad = (SettingAccessibility *)data;
- vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS,
- screen_reader_key_change_vconf_cb);
- elm_naviframe_item_pop(ad->md.naviframe);
- SETTING_TRACE_END;
- return EINA_TRUE;
-}
-
-static void setting_accessibility_main_chk_screenreader_vconf_update(int state, void* data)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
- int ret, utterance_id;
- char buf[255] = "\n";
- vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, state);
- if (!state) {
- snprintf(buf, sizeof(buf), "%s %s", _(DEVOPTION_STR_ACCESSIBILITY_SCREENREADER), _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_OFF));
- ret = tts_add_text(ad->tts, buf, NULL, TTS_VOICE_TYPE_AUTO, TTS_SPEED_AUTO, &utterance_id);
- SETTING_TRACE_DEBUG("tts_add_text %d", ret);
- ret = tts_play(ad->tts);
- SETTING_TRACE_DEBUG("tts_play %d", ret);
- }
-
- SETTING_TRACE_END;
-}
-
-static void setting_accessibility_main_chk_screenreader_cb(void *data,
- Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *)data;
-
- /* for genlist update status */
- list_item->chk_status = elm_check_state_get(obj);
-
- SETTING_TRACE_DEBUG("check_status: %i", list_item->chk_status);
- setting_accessibility_main_chk_screenreader_vconf_update(
- list_item->chk_status, list_item->userdata);
- SETTING_TRACE_END;
-}
-static void setting_accessibility_screenreader_settings_mouse_up_Gendial_list_cb(
- void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Invalid argument: data is NULL");
- retm_if(event_info == NULL, "Invalid argument: event_info is NULL");
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
-
- setting_accessibility_screen_reader_settings_page_create(ad);
-
- SETTING_TRACE_END;
-}
-
-static void setting_accessibility_screenreader_mouse_up_Gendial_list_cb(
- void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Invalid argument: data is NULL");
- retm_if(event_info == NULL, "Invalid argument: event_info is NULL");
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
-
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *)elm_object_item_data_get(
- item);
- setting_retm_if(data == NULL, "Data parameter is NULL");
- setting_update_gl_item_chk_status(list_item,
- list_item->chk_status ? 0 : 1);
- setting_accessibility_main_chk_screenreader_vconf_update(
- (list_item->chk_status ? 1 : 0), list_item->userdata);
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_screen_reader_page_create(
- SettingAccessibility *data)
-{
- SettingAccessibility *ad = (SettingAccessibility *)data;
- Evas_Object *genlist = elm_genlist_add(ad->md.naviframe);
- retm_if(genlist == NULL,
- "Cannot set genlist object as content of layout");
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
- elm_object_style_set(genlist, "dialogue");
- elm_genlist_clear(genlist);
-
- ad->screenreader_checkbox = setting_create_Gendial_field_def(
- genlist, &itc_1text_1icon,
- setting_accessibility_screenreader_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_1ICON_1RADIO, NULL,
- NULL, 1, _(DEVOPTION_STR_ACCESSIBILITY_SCREENREADER),
- NULL, setting_accessibility_main_chk_screenreader_cb);
- if (ad->screenreader_checkbox) {
- ad->screenreader_checkbox->userdata = ad;
- __BACK_POINTER_SET(ad->screenreader_checkbox);
- }
- int screen_reader = 0;
- vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &screen_reader);
-
- if (ad->screenreader_checkbox)
- ad->screenreader_checkbox->chk_status = screen_reader ? 1 : 0;
- /*---------------------------------------------------------------------------------------------- */
- int vconf_ret = vconf_notify_key_changed(
- VCONFKEY_SETAPPL_ACCESSIBILITY_TTS,
- screen_reader_key_change_vconf_cb,
- ad->screenreader_checkbox);
- if (vconf_ret != 0) {
- SETTING_TRACE("FAIL: vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS)");
- return;
- }
-
- ad->multiline_screen_reader_comment = setting_create_Gendial_field_def(
- genlist, &ad->itc_multiline_sub,
- NULL, ad, SWALLOW_Type_INVALID, NULL,
- NULL, 0,
- NULL,
- _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_DESCRIPTION),
- NULL);
- if (ad->multiline_screen_reader_comment) {
- ad->multiline_screen_reader_comment->userdata = ad;
- __BACK_POINTER_SET(ad->multiline_screen_reader_comment);
-
- elm_genlist_item_select_mode_set(ad->multiline_screen_reader_comment->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- }
-
- ad->screen_reader_settings = setting_create_Gendial_field_def(
- genlist, &itc_1text,
- setting_accessibility_screenreader_settings_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_INVALID, NULL,
- NULL, 0,
- DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS,
- NULL, NULL);
- if (ad->screen_reader_settings) {
- ad->screen_reader_settings->userdata = ad;
- __BACK_POINTER_SET(ad->screen_reader_settings);
- }
-
- Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->md.naviframe,
- _(DEVOPTION_STR_ACCESSIBILITY_SCREENREADER), NULL, NULL,
- genlist, NULL);
- elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE,
- EINA_TRUE);
-
- elm_naviframe_item_pop_cb_set(navi_it,
- __setting_accessibility_screen_reader_page_hide,
- ad);
-}
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Michal Pawluk <m.pawluk@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <efl_extension.h>
-
-#include "setting-accessibility-universal-switch-action.h"
-#include "setting-accessibility-universal-switch-settings-set-value.h"
-#include "setting-accessibility-universal-switch-dbus.h"
-
-static switch_action_cb _action_cb;
-static void *_action_user_data = NULL;
-
-static void __action_changed_cb(SettingAccessibility *ad, int item_id)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- if (item_id < 0 || item_id >= eina_array_count(ad->config.activity_types)) {
- SETTING_TRACE_END;
- return;
- }
-
- UniversalSwitchActivityType *activity;
- activity = eina_array_data_get(ad->config.activity_types, item_id);
- SETTING_TRACE_DEBUG("Selected activity type, id: %s, name: %s, description: %s", activity->id, activity->name, activity->description);
- if (_action_cb)
- _action_cb(ad, activity->id, _action_user_data);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_action_page_create(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_RADIOS, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SELECT_ACTION));
- setting_accessibility_universal_switch_settings_set_value_add_radio_item_change_cb(ad, __action_changed_cb);
-
- Eina_Array_Iterator iterator;
- UniversalSwitchActivityType *activity;
- int i;
- EINA_ARRAY_ITER_NEXT(ad->config.activity_types, i, activity, iterator) {
- setting_accessibility_universal_switch_settings_set_value_radio_item_add(ad, activity->name, i, false);
- }
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_action_callback_attach(SettingAccessibility *ad, switch_action_cb cb, void *user_data)
-{
- SETTING_TRACE_BEGIN;
-
- _action_cb = cb;
- _action_user_data = user_data;
-
- SETTING_TRACE_END;
-}
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Michal Pawluk <m.pawluk@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <bundle.h>
-#include "setting-accessibility-universal-switch-add-switch-accessories.h"
-#include "setting-accessibility-universal-switch-action.h"
-
-#define EDJ_ACCESSORY "edje/accessibility-smart-switch-accessory.edj"
-#define GRP_ACCESSORY "accessory"
-#define PRT_ACCESSORY_LABEL "accessory_label"
-
-#define EDJ_ACCESSORY_POPUP "edje/accessibility-smart-switch-accessory-popup.edj"
-#define GRP_ACCESSORY_POPUP "accessory_popup"
-#define PRT_ACCESSORY_POPUP_LABEL "accessory_popup_label"
-#define PRT_ACCESSORY_POPUP_ENTRY "accessory_popup_entry"
-
-
-static Evas_Object *__create_layout(Evas_Object *parent, const char *edj_file, const char *group);
-static Evas_Object *__create_entry(Evas_Object *parent, const char *part_name);
-static void __capture_switch_cb(void *user_data, const char *switch_id);
-
-static void __back_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_naviframe_item_pop(ad->md.naviframe);
-
- SETTING_TRACE_END;
-}
-
-static Eina_Bool __naviframe_pop_cb(void *data, Elm_Object_Item *it)
-{
- SETTING_TRACE_BEGIN;
- retv_if(data == NULL, EINA_TRUE);
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- setting_accessibility_universal_switch_dbus_config_cancelCaptureSwitch(&ad->config);
- free(ad->switch_id);
- ad->switch_id = NULL;
-
- SETTING_TRACE_END;
- return EINA_TRUE;
-}
-
-static Eina_Bool __renew_capture_switch_cb(void *data, Elm_Object_Item *it)
-{
- SETTING_TRACE_BEGIN;
- retv_if(data == NULL, EINA_TRUE);
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- setting_accessibility_universal_switch_dbus_config_captureSwitch(&ad->config, ACCESSIBILITY_UNIVERSAL_SWITCH_ACCESSORIES_SWITCH_PROVIDER, -1, __capture_switch_cb, ad);
-
- SETTING_TRACE_END;
- return EINA_TRUE;
-}
-
-static void __accessory_switch_action_cb(SettingAccessibility *ad, switch_action_t action, void *user_data)
-{
- SETTING_TRACE_BEGIN;
- retm_if(user_data == NULL, "User data parameter is NULL");
-
- if (ad->accessories_switch_added_cb) {
- char *switch_name = (char *)user_data;
- ad->accessories_switch_added_cb(ad, ad->switch_id, action, switch_name);
- free(switch_name);
- }
-
- SETTING_TRACE_END;
-}
-
-static void __popup_response_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
- int response_type = btn_type(obj);
-
- if (response_type == POPUP_RESPONSE_OK) {
- const char *switch_name = elm_entry_entry_get(ad->entry);
- if (strlen(switch_name) == 0) {
- SETTING_TRACE_END;
- return;
- }
-
- setting_accessibility_universal_switch_action_page_create(ad);
- elm_naviframe_item_pop_cb_set(elm_naviframe_top_item_get(ad->md.naviframe), __renew_capture_switch_cb, ad);
- setting_accessibility_universal_switch_action_callback_attach(ad, __accessory_switch_action_cb, (void *)strdup(switch_name));
- } else {
- __renew_capture_switch_cb(ad, NULL);
- }
-
- evas_object_del(ad->popup);
- ad->popup = NULL;
- ad->entry = NULL;
-
- SETTING_TRACE_END;
-}
-
-static void __ok_response_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- __renew_capture_switch_cb(ad, NULL);
-
- evas_object_del(ad->popup);
- ad->popup = NULL;
-
- SETTING_TRACE_END;
-}
-
-static void __switch_already_mapped_popup(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
-
- ad->popup = setting_create_popup(ad, ad->md.naviframe,
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_UNABLE_TO_ADD), NULL,
- __ok_response_cb, 0,
- true,
- true,
- 1, DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_OK);
-
- Evas_Object *layout = __create_layout(ad->popup, EDJ_ACCESSORY_POPUP, GRP_ACCESSORY_POPUP);
-
- elm_object_part_text_set(layout, PRT_ACCESSORY_POPUP_LABEL, DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ALREADY_ADDED);
- elm_object_content_set(ad->popup, layout);
-
- SETTING_TRACE_END;
-}
-
-static void __capture_switch_cb(void *user_data, const char *switch_id)
-{
- SETTING_TRACE_BEGIN;
- retm_if(user_data == NULL, "Input argument is NULL");
- retm_if(switch_id == NULL, "switch_id is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)user_data;
-
- Eina_Array_Iterator iterator;
- UniversalSwitchConfigurationItem *config_item;
- int i;
- EINA_ARRAY_ITER_NEXT(ad->config.configuration_items, i, config_item, iterator) {
- if (strlen(switch_id) == strlen(config_item->switch_id) && strncmp(switch_id, config_item->switch_id, strlen(switch_id)) == 0) {
- __switch_already_mapped_popup(ad);
- SETTING_TRACE_END;
- return;
- }
- }
-
- ad->switch_id = strdup(switch_id);
- ad->popup = setting_create_popup(ad, ad->md.naviframe,
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH), NULL,
- __popup_response_cb, 0,
- true,
- true,
- 2, DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_CANCEL, DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SAVE);
-
- Evas_Object *layout = __create_layout(ad->popup, EDJ_ACCESSORY_POPUP, GRP_ACCESSORY_POPUP);
-
- ad->entry = __create_entry(layout, PRT_ACCESSORY_POPUP_ENTRY);
- elm_object_part_text_set(ad->entry, "guide", _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_NAME));
-
- elm_object_content_set(ad->popup, layout);
-
- SETTING_TRACE_END;
-}
-
-static Evas_Object *__create_layout(Evas_Object *parent, const char *edj_file, const char *group)
-{
- SETTING_TRACE_BEGIN;
- Evas_Object *layout;
- char *res_path;
- char edj_path[PATH_MAX] = {0, };
- retvm_if(parent == NULL, NULL, "Input parameter is NULL");
-
- res_path = app_get_resource_path();
- if (res_path) {
- snprintf(edj_path, sizeof(edj_path), "%s%s", res_path, edj_file);
- free(res_path);
- }
-
- layout = elm_layout_add(parent);
- elm_layout_file_set(layout, edj_path, group);
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(layout);
- SETTING_TRACE_END;
-
- return layout;
-}
-
-static Evas_Object *__create_entry(Evas_Object *parent, const char *part_name)
-{
- SETTING_TRACE_BEGIN;
- Evas_Object *entry = elm_entry_add(parent);
- evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_part_content_set(parent, part_name, entry);
- evas_object_show(entry);
- SETTING_TRACE_END;
- return entry;
-}
-
-void setting_accessibility_universal_switch_add_switch_accessories_page_create(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
- Evas_Object *layout = __create_layout(ad->md.naviframe, EDJ_ACCESSORY, GRP_ACCESSORY);
-
- ad->switch_id = NULL;
- elm_layout_text_set(layout, PRT_ACCESSORY_LABEL, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_ACCESSORIES_DESC));
-
- Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->md.naviframe, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_ACCESSORIES_TITLE), NULL, NULL, layout, NULL);
- elm_naviframe_item_pop_cb_set(navi_it, __naviframe_pop_cb, ad);
- elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE, EINA_TRUE);
-
- Evas_Object *back_btn = setting_create_button(ad->md.naviframe, NULL, NAVI_BACK_ARROW_BUTTON_STYLE, __back_cb, ad);
- elm_layout_content_set(ad->md.naviframe, "prev_btn", back_btn);
-
- setting_accessibility_universal_switch_dbus_config_captureSwitch(&ad->config, ACCESSIBILITY_UNIVERSAL_SWITCH_ACCESSORIES_SWITCH_PROVIDER, -1, __capture_switch_cb, ad);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_add_switch_accessories_new_switch_callback_attach(SettingAccessibility *ad, universal_switch_added_cb cb)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- ad->accessories_switch_added_cb = cb;
-
- SETTING_TRACE_END;
-}
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Michal Pawluk <m.pawluk@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "setting-accessibility-universal-switch-add-switch-camera.h"
-#include "setting-accessibility-universal-switch-action.h"
-#include "setting-accessibility-universal-switch-add-switch.h"
-
-
-static void __back_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- elm_naviframe_item_pop(ad->md.naviframe);
-
- SETTING_TRACE_END;
-}
-
-static void __switch_action_cb(SettingAccessibility *ad, switch_action_t action, void *user_data)
-{
- SETTING_TRACE_BEGIN;
- retm_if(user_data == NULL, "User data parameter is NULL");
- UniversalSwitchSwitchType * camera_switch = (UniversalSwitchSwitchType *)user_data;
-
- if (ad->camera_switch_added_cb)
- ad->camera_switch_added_cb(ad, camera_switch->id, action, camera_switch->name);
-
- SETTING_TRACE_END;
-}
-
-static void __create_action_page(SettingAccessibility *ad, UniversalSwitchSwitchType * camera_switch)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Data argument is NULL");
-
- SETTING_TRACE_DEBUG("Camera switch, id: %s, name: %s", camera_switch->id, camera_switch->name);
-
- setting_accessibility_universal_switch_action_page_create(ad);
- setting_accessibility_universal_switch_action_callback_attach(ad, __switch_action_cb, camera_switch);
-
- SETTING_TRACE_END;
-}
-
-static void __add_camera_switch_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- elm_genlist_item_selected_set(item, EINA_FALSE);
- Setting_GenGroupItem_Data *settings_item = elm_object_item_data_get(item);
- SettingAccessibility *ad = (SettingAccessibility *)settings_item->userdata;
- retm_if(ad == NULL, "Input argument is NULL");
- UniversalSwitchSwitchType * camera_switch = (UniversalSwitchSwitchType *)data;
-
- __create_action_page(ad, camera_switch);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_add_switch_camera_page_create(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
- Evas_Object *genlist = elm_genlist_add(ad->md.naviframe);
- retm_if(genlist == NULL, "Cannot set genlist object as content of layout");
-
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
- elm_object_style_set(genlist, "dialogue");
- elm_genlist_clear(genlist);
-
- ad->universal_switch_camera_comment = setting_create_Gendial_field_def(
- genlist, &ad->itc_multiline_sub,
- NULL, ad, SWALLOW_Type_INVALID, NULL,
- NULL, 0,
- NULL,
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_COMMENT),
- NULL);
-
- elm_genlist_item_select_mode_set(ad->universal_switch_camera_comment->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- setting_create_Gendial_field_titleItem(genlist, &itc_group_item, DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_GROUP_HEAD, NULL);
-
- Eina_Array * switches = setting_accessibility_universal_switch_dbus_config_get_switches(&ad->config, ACCESSIBILITY_UNIVERSAL_SWITCH_CAMERA_SWITCH_PROVIDER);
- if (switches != NULL) {
- Eina_Array_Iterator iterator;
- UniversalSwitchSwitchType *camer_switch;
- int i;
- EINA_ARRAY_ITER_NEXT(switches, i, camer_switch, iterator)
- {
- Setting_GenGroupItem_Data *item;
- const char * description = camer_switch->description;
- if (strlen(description) == 0)
- description = NULL;
-
- item = setting_create_Gendial_field_def(genlist, &ad->itc_multiline_sub, __add_camera_switch_cb, camer_switch,
- SWALLOW_Type_INVALID, NULL, NULL, 0, camer_switch->name, description, NULL);
-
- if (item) {
- item->userdata = ad;
- setting_accessibility_universal_switch_disable_already_mapped_switch(ad->config.configuration_items, camer_switch->id, item->item);
- }
-
- }
- }
-
- Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->md.naviframe, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_TITLE), NULL, NULL, genlist, NULL);
- elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE, EINA_TRUE);
-
- Evas_Object *back_btn = setting_create_button(ad->md.naviframe, NULL, NAVI_BACK_ARROW_BUTTON_STYLE, __back_cb, ad);
- elm_layout_content_set(ad->md.naviframe, "prev_btn", back_btn);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_add_switch_camera_new_switch_callback_attach(SettingAccessibility *ad, universal_switch_added_cb cb)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- ad->camera_switch_added_cb = cb;
-
- SETTING_TRACE_END;
-}
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Michal Pawluk <m.pawluk@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "setting-accessibility-universal-switch-add-switch-screen.h"
-#include "setting-accessibility-universal-switch-action.h"
-
-static void __screen_switch_action_cb(SettingAccessibility *ad, switch_action_t action, void *user_data)
-{
- SETTING_TRACE_BEGIN;
-
- if (ad->screen_switch_added_cb) {
- Eina_Array * switches = setting_accessibility_universal_switch_dbus_config_get_switches(&ad->config, ACCESSIBILITY_UNIVERSAL_SWITCH_SCREEN_SWITCH_PROVIDER);
- retm_if(switches == NULL || eina_array_count(switches) < 1, "Screen switch not found");
- UniversalSwitchSwitchType * screen_switch = (UniversalSwitchSwitchType *)eina_array_data_get(switches, 0);
- ad->screen_switch_added_cb(ad, screen_switch->id, action, ACCESSIBILITY_UNIVERSAL_SWITCH_SCREEN);
- }
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_add_switch_screen_page_create(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- setting_accessibility_universal_switch_action_page_create(ad);
- setting_accessibility_universal_switch_action_callback_attach(ad, __screen_switch_action_cb, NULL);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_add_switch_screen_new_switch_callback_attach(SettingAccessibility *ad, universal_switch_added_cb cb)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- ad->screen_switch_added_cb = cb;
-
- SETTING_TRACE_END;
-}
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Michal Pawluk <m.pawluk@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "setting-accessibility-universal-switch-add-switch.h"
-#include "setting-accessibility-universal-switch-add-switch-screen.h"
-#include "setting-accessibility-universal-switch-add-switch-accessories.h"
-#include "setting-accessibility-universal-switch-add-switch-camera.h"
-
-static Eina_Bool __naviframe_pop_cb(void *data, Elm_Object_Item *it)
-{
- SETTING_TRACE_BEGIN;
- retv_if(data == NULL, EINA_TRUE);
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- ad->screen_switch_added_cb = NULL;
- ad->camera_switch_added_cb = NULL;
- ad->accessories_switch_added_cb = NULL;
-
- SETTING_TRACE_END;
- return EINA_TRUE;
-}
-
-static void __back_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- elm_naviframe_item_pop(ad->md.naviframe);
-
- SETTING_TRACE_END;
-}
-
-static void __add_switch_page_create(SettingAccessibility *ad, const char * providerId)
-{
- SETTING_TRACE_DEBUG("Create add switch page for %s", providerId);
-
- if (strncmp(providerId, ACCESSIBILITY_UNIVERSAL_SWITCH_SCREEN_SWITCH_PROVIDER, sizeof(ACCESSIBILITY_UNIVERSAL_SWITCH_SCREEN_SWITCH_PROVIDER)) == 0)
- setting_accessibility_universal_switch_add_switch_screen_page_create(ad);
- else if (strncmp(providerId, ACCESSIBILITY_UNIVERSAL_SWITCH_CAMERA_SWITCH_PROVIDER, sizeof(ACCESSIBILITY_UNIVERSAL_SWITCH_SCREEN_SWITCH_PROVIDER)) == 0)
- setting_accessibility_universal_switch_add_switch_camera_page_create(ad);
- else if (strncmp(providerId, ACCESSIBILITY_UNIVERSAL_SWITCH_ACCESSORIES_SWITCH_PROVIDER, sizeof(ACCESSIBILITY_UNIVERSAL_SWITCH_ACCESSORIES_SWITCH_PROVIDER)) == 0)
- setting_accessibility_universal_switch_add_switch_accessories_page_create(ad);
- else
- SETTING_TRACE_ERROR("Unknown provider: %s", providerId);
-}
-
-static void __add_switch_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- elm_genlist_item_selected_set(item, EINA_FALSE);
- Setting_GenGroupItem_Data *settings_item = elm_object_item_data_get(item);
- SettingAccessibility *ad = (SettingAccessibility *)settings_item->userdata;
- retm_if(ad == NULL, "Input argument is NULL");
- const char * providerId = (const char *)data;
-
- __add_switch_page_create(ad, providerId);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_disable_already_mapped_switch(Eina_Array *configuration_items, const char *switch_id, Elm_Object_Item *item)
-{
- SETTING_TRACE_BEGIN;
- retm_if(configuration_items == NULL, "Input parameter is NULL");
- retm_if(switch_id == NULL, "Input parameter is NULL");
- retm_if(item == NULL, "Input parameter is NULL");
-
- Eina_Array_Iterator already_mapped_iterator;
- UniversalSwitchConfigurationItem *config_item;
- int i;
- EINA_ARRAY_ITER_NEXT(configuration_items, i, config_item, already_mapped_iterator) {
- if (strcmp(switch_id, config_item->switch_id) == 0)
- elm_object_item_disabled_set(item, EINA_TRUE);
- }
- SETTING_TRACE_END;
-}
-
-static void __disable_screen_switch_provider_when_screen_switches_is_mapped(Eina_Array *configuration_items, UniversalSwitchSwitchProvider *switch_provider, Elm_Object_Item *item)
-{
- SETTING_TRACE_BEGIN;
- retm_if(configuration_items == NULL, "Input parameter is NULL");
- retm_if(switch_provider == NULL, "Input parameter is NULL");
- retm_if(item == NULL, "Input parameter is NULL");
-
- SETTING_TRACE_DEBUG("provider_id %s", switch_provider->info->id);
-
- if (strcmp(switch_provider->info->id, ACCESSIBILITY_UNIVERSAL_SWITCH_SCREEN_SWITCH_PROVIDER) == 0)
- setting_accessibility_universal_switch_disable_already_mapped_switch(configuration_items, ACCESSIBILITY_UNIVERSAL_SWITCH_SCREEN_SWITCH_ID, item);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_add_switch_page_create(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
- Evas_Object *genlist = elm_genlist_add(ad->md.naviframe);
- retm_if(genlist == NULL, "Cannot set genlist object as content of layout");
-
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
- elm_object_style_set(genlist, "dialogue");
- elm_genlist_clear(genlist);
-
- Eina_Array_Iterator iterator;
- UniversalSwitchSwitchProvider *switch_provider;
- int i;
- EINA_ARRAY_ITER_NEXT(ad->config.switch_providers, i, switch_provider, iterator) {
- Setting_GenGroupItem_Data *item;
-
- item = setting_create_Gendial_field_def(
- genlist, &ad->itc_multiline_sub,
- __add_switch_cb, switch_provider->info->id,
- SWALLOW_Type_INVALID, NULL, NULL, 0,
- switch_provider->info->name,
- switch_provider->info->description, NULL);
-
- if (item) {
- item->userdata = ad;
- __disable_screen_switch_provider_when_screen_switches_is_mapped(ad->config.configuration_items, switch_provider, item->item);
- }
- }
-
- Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->md.naviframe, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH), NULL, NULL, genlist, NULL);
- elm_naviframe_item_pop_cb_set(navi_it, __naviframe_pop_cb, ad);
- elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE, EINA_TRUE);
-
- Evas_Object *back_btn = setting_create_button(ad->md.naviframe, NULL, NAVI_BACK_ARROW_BUTTON_STYLE, __back_cb, ad);
- elm_layout_content_set(ad->md.naviframe, "prev_btn", back_btn);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_add_switch_new_switch_callback_attach(SettingAccessibility *ad, universal_switch_added_cb cb)
-{
- SETTING_TRACE_BEGIN;
-
- setting_accessibility_universal_switch_add_switch_screen_new_switch_callback_attach(ad, cb);
- setting_accessibility_universal_switch_add_switch_accessories_new_switch_callback_attach(ad, cb);
- setting_accessibility_universal_switch_add_switch_camera_new_switch_callback_attach(ad, cb);
-
- SETTING_TRACE_END;
-}
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Michal Pawluk <m.pawluk@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "setting-debug.h"
-#include "setting-accessibility-universal-switch-dbus.h"
-
-#define BUS "org.tizen.UniversalSwitch"
-#define PATH "/org/tizen/UniversalSwitch"
-#define IFACE "org.tizen.UniversalSwitch"
-#define ELDBUS_TIMEOUT 100.0
-#define EINA_ARRAY_STEPS 4
-
-
-static void __bus_name_acquired(void *data, const char *bus, const char *old_id, const char *new_id);
-
-static Eina_Bool __eldbus_init(UniversalSwitchDbusConfig *config)
-{
- UniversalSwitchEldbus *eldbus = &config->eldbus;
- eldbus->dobj = NULL;
- eldbus->proxy = NULL;
- eldbus->capture_switch_request = NULL;
-
- eldbus->is_init = eldbus_init();
- if (!eldbus->is_init) {
- SETTING_TRACE_ERROR("DBus initialization failed");
- return EINA_FALSE;
- }
-
- if (!(eldbus->conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SESSION))) {
- SETTING_TRACE_ERROR("Connection to session bus failed");
- return EINA_FALSE;
- }
-
- eldbus_name_owner_changed_callback_add(eldbus->conn, BUS, __bus_name_acquired, config, EINA_TRUE);
-
- return EINA_TRUE;
-}
-
-
-static void __eldbus_shutdown(UniversalSwitchDbusConfig *config)
-{
- UniversalSwitchEldbus *eldbus = &config->eldbus;
-
- if (!eldbus->is_init)
- return;
-
- if (eldbus->conn)
- eldbus_name_owner_changed_callback_del(eldbus->conn, BUS, __bus_name_acquired, config);
-
- if (eldbus->capture_switch_request)
- eldbus_pending_cancel(eldbus->capture_switch_request);
- eldbus->capture_switch_request = NULL;
-
- if (eldbus->proxy)
- eldbus_proxy_unref(eldbus->proxy);
- eldbus->proxy = NULL;
-
- if (eldbus->dobj)
- eldbus_object_unref(eldbus->dobj);
- eldbus->dobj = NULL;
-
- if (eldbus->conn)
- eldbus_connection_unref(eldbus->conn);
- eldbus->conn = NULL;
-
- eldbus_shutdown();
-}
-
-static void __eldbus_getInfoArray(Eina_Array *infoTypes, Eldbus_Message *reply)
-{
- Eldbus_Message_Iter *array;
- Eldbus_Message_Iter *struct_sss;
- if (!eldbus_message_arguments_get(reply, "a(sss)", &array)) {
- SETTING_TRACE_ERROR("Error on eldbus_message_arguments_get()");
- return;
- }
- while (eldbus_message_iter_get_and_next(array, 'r', &struct_sss)) {
- const char *id, *name, *description;
- if (!eldbus_message_iter_arguments_get(struct_sss, "sss", &id, &name, &description)) {
- SETTING_TRACE_ERROR("Error on eldbus_message_arguments_get()");
- return;
- }
- UniversalSwitchInfoType *info = calloc(1, sizeof(UniversalSwitchInfoType));
- if (!info) {
- SETTING_TRACE_ERROR("Out of memory");
- return;
- }
-
- info->id = strdup(id);
- info->name = strdup(name);
- info->description = strdup(description);
- eina_array_push(infoTypes, info);
- }
-}
-
-static Eina_Array * __eldbus_getAllSwitchesByProviderId(UniversalSwitchEldbus *eldbus, const char * provider_id)
-{
- Eldbus_Message *req = NULL;
- Eldbus_Message *reply = NULL;
- Eldbus_Message_Iter *iter = NULL;
- const char *errname = NULL;
- const char *errmsg = NULL;
- Eina_Array *switches = eina_array_new(EINA_ARRAY_STEPS);
-
- if (!(req = eldbus_proxy_method_call_new(eldbus->proxy, "getAllSwitchesByProviderId"))) {
- SETTING_TRACE_ERROR("Failed to create method call on " IFACE ".getAllSwitchesByProviderId");
- return switches;
- }
- iter = eldbus_message_iter_get(req);
- eldbus_message_iter_arguments_append(iter, "s", provider_id);
-
- reply = eldbus_proxy_send_and_block(eldbus->proxy, req, ELDBUS_TIMEOUT);
- if (!reply || eldbus_message_error_get(reply, &errname, &errmsg))
- SETTING_TRACE_ERROR("Unable to call method " IFACE ".getAllSwitchesByProviderId: %s %s", errname, errmsg);
- else
- __eldbus_getInfoArray(switches, reply);
-
- if (reply)
- eldbus_message_unref(reply);
-
- return switches;
-}
-
-static Eina_Array * __eldbus_getAllSwitchProviders(UniversalSwitchEldbus *eldbus)
-{
- Eldbus_Message *req = NULL;
- Eldbus_Message *reply = NULL;
- const char *errname = NULL;
- const char *errmsg = NULL;
- Eina_Array *switch_providers = eina_array_new(EINA_ARRAY_STEPS);
-
- if (!(req = eldbus_proxy_method_call_new(eldbus->proxy, "getAllSwitchProviders"))) {
- SETTING_TRACE_ERROR("Failed to create method call on " IFACE ".getAllSwitchProviders");
- return switch_providers;
- }
-
- reply = eldbus_proxy_send_and_block(eldbus->proxy, req, ELDBUS_TIMEOUT);
- if (!reply || eldbus_message_error_get(reply, &errname, &errmsg)) {
- SETTING_TRACE_ERROR("Unable to call method " IFACE ".getAllSwitchProviders: %s %s", errname, errmsg);
- } else {
- Eina_Array *switch_providers_info = eina_array_new(EINA_ARRAY_STEPS);
- if (switch_providers_info) {
- __eldbus_getInfoArray(switch_providers_info, reply);
-
- Eina_Array_Iterator iterator;
- UniversalSwitchSwitchProviderInfoType *provider_info;
- int i;
- EINA_ARRAY_ITER_NEXT(switch_providers_info, i, provider_info, iterator) {
- UniversalSwitchSwitchProvider *switch_provider = calloc(1, sizeof(UniversalSwitchSwitchProvider));
- if (!switch_provider) {
- SETTING_TRACE_ERROR("Out of memory");
- break;
- }
- switch_provider->info = provider_info;
- switch_provider->switches = __eldbus_getAllSwitchesByProviderId(eldbus, provider_info->id);
- eina_array_push(switch_providers, switch_provider);
- }
- eina_array_free(switch_providers_info);
- } else {
- SETTING_TRACE_ERROR("Out of memory");
- }
- }
-
- if (reply)
- eldbus_message_unref(reply);
-
- return switch_providers;
-}
-
-
-static Eina_Array * __eldbus_getBindableActivityTypes(UniversalSwitchEldbus *eldbus)
-{
- Eldbus_Message *req = NULL;
- Eldbus_Message *reply = NULL;
- const char *errname = NULL;
- const char *errmsg = NULL;
- Eina_Array *activity_types = eina_array_new(EINA_ARRAY_STEPS);
-
- if (!(req = eldbus_proxy_method_call_new(eldbus->proxy, "getBindableActivityTypes"))) {
- SETTING_TRACE_ERROR("Failed to create method call on " IFACE ".getBindableActivityTypes");
- return activity_types;
- }
-
- reply = eldbus_proxy_send_and_block(eldbus->proxy, req, ELDBUS_TIMEOUT);
- if (!reply || eldbus_message_error_get(reply, &errname, &errmsg)) {
- SETTING_TRACE_ERROR("Unable to call method " IFACE ".getBindableActivityTypes: %s %s", errname, errmsg);
- } else {
- __eldbus_getInfoArray(activity_types, reply);
- }
-
- if (reply)
- eldbus_message_unref(reply);
-
- return activity_types;
-}
-
-static void __eldbus_getAllSwitchConfigurationItemsArray(Eina_Array *infoTypes, Eldbus_Message *reply)
-{
- SETTING_TRACE_BEGIN;
- Eldbus_Message_Iter *array;
- Eldbus_Message_Iter *struct_sssi;
-
- if (!eldbus_message_arguments_get(reply, "a(sssi)", &array)) {
- SETTING_TRACE_ERROR("Error on eldbus_message_arguments_get()");
- return;
- }
- while (eldbus_message_iter_get_and_next(array, 'r', &struct_sssi)) {
- char *switchId;
- char *userName;
- char *activityType;
- int changeType;
-
- if (!eldbus_message_iter_arguments_get(struct_sssi, "sssi", &switchId, &userName, &activityType, &changeType)) {
- SETTING_TRACE_ERROR("Error on eldbus_message_arguments_get()\n");
- return;
- }
- char *pointer_to_end_of_switch_provider_str = strstr(switchId, "_");
- if (!pointer_to_end_of_switch_provider_str) {
- SETTING_TRACE_ERROR("Wrong switch ID format");
- return;
- }
- size_t provider_id_size = pointer_to_end_of_switch_provider_str - switchId;
- UniversalSwitchConfigurationItem *item = calloc(1, sizeof(UniversalSwitchConfigurationItem));
- if (!item) {
- SETTING_TRACE_ERROR("Out of memory");
- return;
- }
- item->provider_id = strndup(switchId, provider_id_size);
- item->switch_id = strdup(switchId);
- item->user_name = strdup(userName);
- item->activity_type = strdup(activityType);
- eina_array_push(infoTypes, item);
- }
- SETTING_TRACE_END;
-}
-
-static Eina_Array * __eldbus_getAllSwitchConfigurationItems(UniversalSwitchEldbus *eldbus)
-{
- Eldbus_Message *req = NULL;
- Eldbus_Message *reply = NULL;
- const char *errname = NULL;
- const char *errmsg = NULL;
- Eina_Array *configurationItems = eina_array_new(EINA_ARRAY_STEPS);
-
- if (!(req = eldbus_proxy_method_call_new(eldbus->proxy, "getAllSwitchConfigurationItems"))) {
- SETTING_TRACE_ERROR("Failed to create method call on " IFACE ".getAllSwitchConfigurationItems");
- return configurationItems;
- }
-
- reply = eldbus_proxy_send_and_block(eldbus->proxy, req, ELDBUS_TIMEOUT);
- if (!reply || eldbus_message_error_get(reply, &errname, &errmsg)) {
- SETTING_TRACE_ERROR("Unable to call method " IFACE ".getAllSwitchConfigurationItems: %s %s", errname, errmsg);
- } else {
- __eldbus_getAllSwitchConfigurationItemsArray(configurationItems, reply);
- }
-
- if (reply)
- eldbus_message_unref(reply);
-
- return configurationItems;
-}
-
-static void __relese_configuration_items(UniversalSwitchDbusConfig *config)
-{
- if (!config->configuration_items)
- return;
-
- while (eina_array_count(config->configuration_items)) {
- UniversalSwitchConfigurationItem *item = eina_array_pop(config->configuration_items);
- free(item->switch_id);
- free(item->user_name);
- free(item->activity_type);
- free(item->provider_id);
- free(item);
- }
- eina_array_free(config->configuration_items);
- config->configuration_items = NULL;
-}
-
-static void __relese_info_type(UniversalSwitchInfoType *info)
-{
- if (!info)
- return;
-
- free(info->id);
- free(info->name);
- free(info->description);
- free(info);
-}
-
-static void __relese_info_type_array(Eina_Array *infoArray)
-{
- if (!infoArray)
- return;
-
- while (eina_array_count(infoArray)) {
- UniversalSwitchInfoType *info = eina_array_pop(infoArray);
- __relese_info_type(info);
- }
- eina_array_free(infoArray);
-
-}
-
-static void __relese_activity_types(UniversalSwitchDbusConfig *config)
-{
- if (!config->activity_types)
- return;
-
- __relese_info_type_array(config->activity_types);
- config->activity_types = NULL;
-}
-
-static void __relese_switch_providers(UniversalSwitchDbusConfig *config)
-{
- if (!config->switch_providers)
- return;
-
- while (eina_array_count(config->switch_providers)) {
- UniversalSwitchSwitchProvider *switch_provider = eina_array_pop(config->switch_providers);
- __relese_info_type(switch_provider->info);
- __relese_info_type_array(switch_provider->switches);
- free(switch_provider);
- }
-
- __relese_info_type_array(config->switch_providers);
- config->switch_providers = NULL;
-}
-
-static void __update_configuration_items(UniversalSwitchDbusConfig *config)
-{
- __relese_configuration_items(config);
- config->configuration_items = __eldbus_getAllSwitchConfigurationItems(&config->eldbus);
-}
-
-static void __bus_name_acquired(void *data, const char *bus, const char *old_id, const char *new_id)
-{
- SETTING_TRACE_DEBUG("dbus name acquired, bus=%s, old_id=%s, new_id=%s", bus, old_id, new_id);
-
- if (!new_id || strlen(new_id) == 0)
- return;
-
- UniversalSwitchDbusConfig *config = data;
- UniversalSwitchEldbus *eldbus = &config->eldbus;
-
- if (!eldbus->dobj && !(eldbus->dobj = eldbus_object_get(eldbus->conn, BUS, PATH))) {
- SETTING_TRACE_ERROR("Failed to create eldbus object for " PATH);
- return;
- }
-
- if (!eldbus->proxy && !(eldbus->proxy = eldbus_proxy_get(eldbus->dobj, IFACE))) {
- SETTING_TRACE_ERROR("Failed to create proxy object for " IFACE);
- return;
- }
-
- config->activity_types = __eldbus_getBindableActivityTypes(&config->eldbus);
- config->switch_providers = __eldbus_getAllSwitchProviders(&config->eldbus);
- __update_configuration_items(config);
-
- if (eldbus->init_done_callback) {
- eldbus->init_done_callback(eldbus->init_done_callback_data);
- eldbus->init_done_callback = NULL;
- eldbus->init_done_callback_data = NULL;
- }
-}
-
-Eina_Bool setting_accessibility_universal_switch_dbus_config_init(UniversalSwitchDbusConfig *config, init_done_cb callback, void *callback_data)
-{
- SETTING_TRACE_BEGIN;
- config->activity_types = NULL;
- config->configuration_items = NULL;
- config->eldbus.init_done_callback = callback;
- config->eldbus.init_done_callback_data = callback_data;
- Eina_Bool v = __eldbus_init(config);
- SETTING_TRACE_END;
- return v;
-}
-
-int setting_accessibility_universal_switch_dbus_config_get_switch_count(UniversalSwitchDbusConfig *config)
-{
- return eina_array_count(config->configuration_items);
-}
-
-void setting_accessibility_universal_switch_dbus_config_addSwitchConfigurationItem(UniversalSwitchDbusConfig *config, const char *switch_id, const char *user_name, const char *activity_type)
-{
- SETTING_TRACE_DEBUG("Running " IFACE ".addSwitchConfigurationItem(%s, %s ,%s)", switch_id, user_name, activity_type);
- eldbus_proxy_call(config->eldbus.proxy, "addSwitchConfigurationItem", NULL, NULL, ELDBUS_TIMEOUT, "sss", switch_id, user_name, activity_type);
- __update_configuration_items(config);
-}
-void setting_accessibility_universal_switch_dbus_config_updateSwitchConfigurationItem(UniversalSwitchDbusConfig *config, const char *switch_id, const char *user_name, const char *activity_type)
-{
- SETTING_TRACE_DEBUG("Running " IFACE ".updateSwitchConfigurationItem(%s, %s ,%s)", switch_id, user_name, activity_type);
- eldbus_proxy_call(config->eldbus.proxy, "updateSwitchConfigurationItem", NULL, NULL, ELDBUS_TIMEOUT, "sss", switch_id, user_name, activity_type);
- __update_configuration_items(config);
-}
-
-
-void setting_accessibility_universal_switch_dbus_config_removeSwitchConfigurationItem(UniversalSwitchDbusConfig *config, const char *switch_id)
-{
- SETTING_TRACE_DEBUG("Running " IFACE ".removeSwitchConfigurationItem(%s)", switch_id);
- eldbus_proxy_call(config->eldbus.proxy, "removeSwitchConfigurationItem", NULL, NULL, ELDBUS_TIMEOUT, "s", switch_id);
- __update_configuration_items(config);
-}
-
-void setting_accessibility_universal_switch_dbus_config_shutdown(UniversalSwitchDbusConfig *config)
-{
- __relese_configuration_items(config);
- __relese_activity_types(config);
- __relese_switch_providers(config);
- __eldbus_shutdown(config);
-}
-
-const char * setting_accessibility_universal_switch_dbus_config_get_activity_name(UniversalSwitchDbusConfig *config, const char * activity_id)
-{
- Eina_Array_Iterator iterator;
- UniversalSwitchActivityType *activity;
- int i;
- EINA_ARRAY_ITER_NEXT(config->activity_types, i, activity, iterator) {
- if (strcmp(activity->id, activity_id) == 0)
- return activity->name;
- }
- return NULL;
-}
-Eina_Array * setting_accessibility_universal_switch_dbus_config_get_switches(UniversalSwitchDbusConfig *config, const char * provider_id)
-{
- Eina_Array_Iterator iterator;
- UniversalSwitchSwitchProvider *switch_provider;
- int i;
- EINA_ARRAY_ITER_NEXT(config->switch_providers, i, switch_provider, iterator) {
- if (strcmp(switch_provider->info->id, provider_id) == 0)
- return switch_provider->switches;
- }
- return NULL;
-}
-
-static void __eldbus_on_capture_switch(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
-{
- UniversalSwitchEldbus *eldbus = (UniversalSwitchEldbus *) data;
- const char *errname, *errmsg;
- const char *switch_id = NULL;
-
- if (eldbus_message_error_get(msg, &errname, &errmsg)) {
- SETTING_TRACE_DEBUG("Error: %s %s", errname, errmsg);
- } else {
- if (!eldbus_message_arguments_get(msg, "s", &switch_id))
- SETTING_TRACE_ERROR("Could not get switch_id");
- }
-
- SETTING_TRACE_DEBUG("DBus got captureSwitch %s", switch_id);
-
- if (eldbus->capture_switch_callback) {
- eldbus->capture_switch_callback(eldbus->capture_switch_data, switch_id);
- eldbus->capture_switch_callback = NULL;
- }
- eldbus->capture_switch_request = NULL;
-}
-
-void setting_accessibility_universal_switch_dbus_config_captureSwitch(UniversalSwitchDbusConfig *config, const char *provider_id, double timeout, capture_switch_cb callback, void *calback_data)
-{
- UniversalSwitchEldbus * eldbus = &config->eldbus;
- SETTING_TRACE_DEBUG("DBus call captureSwitch for %s", provider_id);
- eldbus->capture_switch_request = eldbus_proxy_call(eldbus->proxy, "captureSwitch", __eldbus_on_capture_switch, eldbus, timeout, "s", provider_id);
- if (eldbus->capture_switch_request) {
- eldbus->capture_switch_callback = callback;
- eldbus->capture_switch_data = calback_data;
- } else {
- SETTING_TRACE_ERROR("Dbus call to captureSwitch failed");
- }
-}
-
-void setting_accessibility_universal_switch_dbus_config_cancelCaptureSwitch(UniversalSwitchDbusConfig *config)
-{
- UniversalSwitchEldbus * eldbus = &config->eldbus;
-
- SETTING_TRACE_DEBUG("Running " IFACE ".cancelCaptureSwitch");
- eldbus_proxy_call(config->eldbus.proxy, "cancelCaptureSwitch", NULL, NULL, ELDBUS_TIMEOUT, "");
-
- SETTING_TRACE_DEBUG("DBus call captureSwitch canceled");
- eldbus->capture_switch_callback = NULL;
- if (eldbus->capture_switch_request) {
- eldbus_pending_cancel(eldbus->capture_switch_request);
- eldbus->capture_switch_request = NULL;
- }
-}
-
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Michal Pawluk <m.pawluk@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <app_preference.h>
-#include <efl_extension.h>
-
-#include "setting-accessibility-universal-switch-settings.h"
-#include "setting-accessibility-universal-switch-add-switch.h"
-#include "setting-accessibility-universal-switch-action.h"
-#include "setting-accessibility-universal-switch-settings-set-value.h"
-#include "setting-accessibility-universal-switch-dbus.h"
-
-#define SWITCH_COUNTER_MAX 99
-#define SWITCH_COUNTER_TITLE_LENGTH 4
-
-static void __remove_switch(SettingAccessibility *ad, int item_id)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
- retm_if(ad->switch_removed_cb == NULL, "Remove callback not set");
-
-
- if (item_id < 0 || item_id >= eina_array_count(ad->config.configuration_items)) {
- SETTING_TRACE_END;
- return;
- }
-
- UniversalSwitchConfigurationItem *config_item;
- config_item = eina_array_data_get(ad->config.configuration_items, item_id);
- SETTING_TRACE_DEBUG("Removing switch, switch_id: %s", config_item->switch_id);
-
- ad->switch_removed_cb(ad, config_item->switch_id, config_item->activity_type, config_item->user_name);
-
- SETTING_TRACE_END;
-}
-
-static void __remove_popup_cb(void *data, Evas_Object *obj, void *event_info)
-{
- evas_object_del(obj);
-}
-
-static void __cancel_button_clicked_remove_popup_cb(void *data, Evas_Object *obj, void *event_info)
-{
- Evas_Object *popup = data;
- evas_object_del(popup);
-}
-
-static void __remove_selected_switches_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SettingAccessibility *ad = data;
- bool disable_universal_switch = (ad->switches_to_remove_counter == elm_genlist_items_count(ad->set_value_layout.genlist));
-
- Elm_Object_Item *item = elm_genlist_last_item_get(ad->set_value_layout.genlist);
- while (item != NULL) {
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)elm_object_item_data_get(item);
- item = elm_genlist_item_prev_get(item);
- if (list_item->chk_status)
- __remove_switch(ad, list_item->chk_id);
- }
-
- evas_object_del(ad->popup);
- ad->popup = NULL;
- elm_naviframe_item_pop(ad->md.naviframe);
-
- if (disable_universal_switch && vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE, 0))
- LOGE("Failed to set vconf key %s.", VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE);
-}
-
-static void __confirm_removing_switches_create_popup(SettingAccessibility *ad)
-{
- ad->popup = elm_popup_add(ad->md.naviframe);
- retm_if(!ad->popup, "Popup creation failure");
- elm_popup_orient_set(ad->popup, ELM_POPUP_ORIENT_CENTER);
- evas_object_size_hint_weight_set(ad->popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- int vconf_val;
- int vconf_ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE, &vconf_val);
- retm_if(vconf_ret != 0,
- "Failed to get vconf bool value VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE. Error: %d", vconf_ret);
-
- elm_object_part_text_set(ad->popup, "title,text", _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_DELETE_SWITCHES));
-
- if (vconf_val && ad->switches_to_remove_counter == elm_genlist_items_count(ad->set_value_layout.genlist)) {
- elm_object_text_set(ad->popup, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_DELETE_ALL_SWITCHES_DESC));
- } else {
- char s[64];
- snprintf(s, 64, "%d %s", ad->switches_to_remove_counter, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_DELETE_SWITCHES_DESC));
- elm_object_text_set(ad->popup, s);
- }
-
- eext_object_event_callback_add(ad->popup, EEXT_CALLBACK_BACK, __remove_popup_cb, NULL);
- evas_object_smart_callback_add(ad->popup, "dismissed", __remove_popup_cb, NULL);
- evas_object_smart_callback_add(ad->popup, "block,clicked", __remove_popup_cb, NULL);
-
-
- Evas_Object *btn = elm_button_add(ad->popup);
- if (!btn) {
- SETTING_TRACE_ERROR("Button creation failed");
- evas_object_del(ad->popup);
- ad->popup = NULL;
- }
- elm_object_style_set(btn, "bottom");
- elm_object_text_set(btn, _(IDS_ST_BUTTON_CANCEL));
- elm_object_part_content_set(ad->popup, "button1", btn);
- evas_object_smart_callback_add(btn, "clicked", __cancel_button_clicked_remove_popup_cb, ad->popup);
-
-
- btn = elm_button_add(ad->popup);
- if (!btn) {
- SETTING_TRACE_ERROR("Button creation failed");
- evas_object_del(ad->popup);
- ad->popup = NULL;
- }
- elm_object_style_set(btn, "bottom");
- elm_object_text_set(btn, _(DEVOPTION_STR_ACCESSIBILITY_DELETE));
- elm_object_part_content_set(ad->popup, "button2", btn);
- evas_object_smart_callback_add(btn, "clicked", __remove_selected_switches_cb, ad);
-
- evas_object_show(ad->popup);
-}
-
-void setting_accessibility_universal_switch_use_naviframe_title_as_counter(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- elm_check_state_set(ad->all_checkbox, ad->switches_to_remove_counter == elm_genlist_items_count(ad->set_value_layout.genlist));
-
- char array[SWITCH_COUNTER_TITLE_LENGTH];
- char *title = array;
- if (ad->switches_to_remove_counter > SWITCH_COUNTER_MAX) {
- snprintf(title, SWITCH_COUNTER_TITLE_LENGTH, "%d+", SWITCH_COUNTER_MAX);
- } else if (ad->switches_to_remove_counter > 0) {
- snprintf(title, SWITCH_COUNTER_TITLE_LENGTH, "%d", ad->switches_to_remove_counter);
- } else {
- title = _(DEVOPTION_STR_ACCESSIBILITY_SELECT_ITEMS);
- }
- elm_object_disabled_set(ad->remove_switches_popup_button, ad->switches_to_remove_counter ? EINA_FALSE : EINA_TRUE);
- elm_layout_text_set(ad->md.naviframe, "default", title);
- SETTING_TRACE_END;
-}
-
-static void __all_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- retm_if(ad == NULL, "Input parameter is NULL");
- retm_if(ad->set_value_layout.genlist == NULL, "No genlist provided");
-
- int genlist_size = elm_genlist_items_count(ad->set_value_layout.genlist);
- bool all_selected = (ad->switches_to_remove_counter == genlist_size);
-
- Elm_Object_Item *item = elm_genlist_first_item_get(ad->set_value_layout.genlist);
- while (item != NULL) {
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)elm_object_item_data_get(item);
- setting_update_gl_item_chk_status(list_item, !all_selected);
- item = elm_genlist_item_next_get(item);
- }
-
- ad->switches_to_remove_counter = all_selected ? 0 : genlist_size;
- setting_accessibility_universal_switch_use_naviframe_title_as_counter(ad);
-
- SETTING_TRACE_END;
-}
-
-static void __delete_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = data;
- retm_if(ad == NULL, "Input parameter is NULL");
- retm_if(ad->set_value_layout.genlist == NULL, "No genlist provided");
-
- __confirm_removing_switches_create_popup(ad);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_remove_switch_page_create(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- ad->switches_to_remove_counter = 0;
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_SWITCHES, _(DEVOPTION_STR_ACCESSIBILITY_SELECT_ITEMS));
-
- ad->all_checkbox = elm_check_add(ad->md.naviframe);
- evas_object_smart_callback_add(ad->all_checkbox, "changed", __all_button_clicked_cb, ad);
- elm_layout_content_set(ad->md.naviframe, "prev_btn", ad->all_checkbox);
-
- ad->remove_switches_popup_button = setting_create_button(ad->md.naviframe, _(DEVOPTION_STR_ACCESSIBILITY_DELETE_CAPS), "naviframe/title_right", __delete_button_clicked_cb, ad);
- elm_layout_content_set(ad->md.naviframe, "title_right_btn", ad->remove_switches_popup_button);
- elm_object_disabled_set(ad->remove_switches_popup_button, EINA_TRUE);
-
- Eina_Array_Iterator iterator;
- UniversalSwitchConfigurationItem *config_item;
- int i;
- EINA_ARRAY_ITER_NEXT(ad->config.configuration_items, i, config_item, iterator) {
- const char *activity_name = setting_accessibility_universal_switch_dbus_config_get_activity_name(&ad->config, config_item->activity_type);
- setting_accessibility_universal_switch_settings_set_value_remove_switch_item_add(ad, config_item->user_name, activity_name, i, false);
- }
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_remove_switch_callback_attach(SettingAccessibility *ad, universal_switch_removed_cb cb)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- ad->switch_removed_cb = cb;
-
- SETTING_TRACE_END;
-}
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Michal Pawluk <m.pawluk@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <app_preference.h>
-#include <efl_extension.h>
-
-#include "setting-accessibility-universal-switch-settings-set-value.h"
-#include "setting-accessibility-universal-switch-remove-switch.h"
-#include "setting-accessibility-universal-switch-action.h"
-#include "setting-accessibility-universal-switch-settings.h"
-
-#define EDJ_SET_VALUE "edje/accessibility-settings-set-value.edj"
-#define GRP_SET_VALUE_NUMERIC "set-value-numeric"
-#define GRP_SET_VALUE_NUMERIC_SWITCH "set-value-numeric-switch"
-#define GRP_SET_VALUE_RADIOS "set-value-radios"
-#define GRP_SET_VALUE_SWITCHES "set-value-switches"
-#define GRP_SET_VALUE_LIST_SWITCH "set-value-list-switch"
-#define GRP_SET_VALUE_UPDATE_ACCESSORIES_SWITCH "set-value-update-accessories-switch"
-#define PRT_SET_VALUE_LIST "set-value-list"
-#define PRT_SET_VALUE_SWITCH_LABEL "set-value-switch-label"
-#define PRT_SET_VALUE_SWITCH "set-value-switch"
-#define PRT_SET_VALUE_VALUE "set-value-value"
-#define PRT_SET_VALUE_SELECTOR "set-value-selector"
-#define PRT_SET_VALUE_RANGE "set-value-range"
-#define PRT_SET_VALUE_DESC "set-value-desc"
-#define PRT_SET_VALUE_LIST "set-value-list"
-#define PRT_SET_VALUE_ENTRY "set-value-entry"
-
-typedef struct _options_item {
- SettingAccessibility *ad;
- int option_id;
-} options_item_t;
-
-static void __display_value(SettingAccessibility *ad, double value);
-static Evas_Object *__create_layout(Evas_Object *parent, const char *layout_grp);
-static Evas_Object *__create_scroller(Evas_Object *parent);
-static Evas_Object *__create_box(Evas_Object *parent);
-
-static void __back_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- elm_naviframe_item_pop(ad->md.naviframe);
-
- SETTING_TRACE_END;
-}
-
-static Eina_Bool __naviframe_pop_cb(void *data, Elm_Object_Item *it)
-{
- SETTING_TRACE_BEGIN;
- retv_if(data == NULL, EINA_TRUE);
- SettingAccessibility *ad = data;
-
- vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_STATE, setting_accessibility_universal_switch_settings_synchronize_page_with_vconf);
- vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_STATE, setting_accessibility_universal_switch_settings_synchronize_page_with_vconf);
-
- if (ad->set_value_layout.value_change_cb) {
- int page_num = 0;
- elm_scroller_current_page_get(ad->set_value_layout.scroller, NULL, &page_num);
- ad->set_value_layout.value_change_cb(ad, (double)page_num * ad->set_value_layout.step + ad->set_value_layout.min_val);
- }
-
- if (ad->set_value_layout.options_data) {
- options_item_t *opt_item = NULL;
- EINA_LIST_FREE(ad->set_value_layout.options_data, opt_item)
- free(opt_item);
-
- ad->set_value_layout.options_data = NULL;
- }
-
- SETTING_TRACE_END;
- return EINA_TRUE;
-}
-
-static void __check_state_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- bool state;
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- state = elm_check_state_get(obj);
-
- if (state)
- elm_object_part_text_set(ad->set_value_layout.layout, PRT_SET_VALUE_SWITCH_LABEL, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_ON));
- else
- elm_object_part_text_set(ad->set_value_layout.layout, PRT_SET_VALUE_SWITCH_LABEL, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
-
- if (ad->set_value_layout.genlist) {
- Elm_Object_Item *item = elm_genlist_first_item_get(ad->set_value_layout.genlist);
- do {
- elm_object_item_disabled_set(item, !state);
- item = elm_genlist_item_next_get(item);
- } while (item != NULL);
- }
-
- if (ad->set_value_layout.switch_change_cb)
- ad->set_value_layout.switch_change_cb(ad, state);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_settings_synchronize_page_with_vconf(keynode_t *node, void *user_data)
-{
- SETTING_TRACE_BEGIN;
- retm_if(user_data == NULL, "Data parameter is NULL");
- retm_if(node == NULL, "Data parameter is NULL");
- SettingAccessibility *ad = user_data;
- int ret = vconf_keynode_get_bool(node);
- retm_if(ret < 0, "FAIL: vconf_keynode_get_bool");
- if (elm_check_state_get(ad->set_value_layout.check) != ret) {
- elm_check_state_set(ad->set_value_layout.check, ret);
-
- __check_state_changed_cb(ad, ad->set_value_layout.check, NULL);
- }
- SETTING_TRACE_END;
-}
-
-static void __scroller_scroll_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- int page_num = 0;
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- elm_scroller_current_page_get(ad->set_value_layout.scroller, NULL, &page_num);
-
- __display_value(ad, (double)page_num * ad->set_value_layout.step + ad->set_value_layout.min_val);
-
- SETTING_TRACE_END;
-}
-
-static void __list_item_click_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(data == NULL, "Input parameter is NULL");
- options_item_t *opt_item = (options_item_t *)data;
- retm_if(opt_item->ad->set_value_layout.list_item_options_request_cb == NULL, "Function not provided");
-
- opt_item->ad->set_value_layout.list_item_options_request_cb(opt_item->ad, opt_item->option_id, NULL);
-
- SETTING_TRACE_END;
-}
-
-static void __display_value(SettingAccessibility *ad, double value)
-{
- SETTING_TRACE_BEGIN;
- char s[256] = {0,};
- retm_if(ad == NULL, "Input argument is NULL");
-
- if (ad->set_value_layout.step < 1.0)
- snprintf(s, sizeof(s), "%.1f %s", value, ad->set_value_layout.units);
- else
- snprintf(s, sizeof(s), "%d %s", (int)value, ad->set_value_layout.units);
-
- elm_object_part_text_set(ad->set_value_layout.layout, PRT_SET_VALUE_VALUE, s);
- SETTING_TRACE_END;
-}
-
-static Evas_Object *__create_layout(Evas_Object *parent, const char *layout_grp)
-{
- SETTING_TRACE_BEGIN;
- Evas_Object *layout;
- char *res_path;
- char edj_path[PATH_MAX] = {0, };
- retvm_if(parent == NULL || layout_grp == NULL, NULL, "Input parameter is NULL");
-
- res_path = app_get_resource_path();
- if (res_path) {
- snprintf(edj_path, sizeof(edj_path), "%s%s", res_path, EDJ_SET_VALUE);
- free(res_path);
- }
-
- layout = elm_layout_add(parent);
- elm_layout_file_set(layout, edj_path, layout_grp);
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(layout);
- SETTING_TRACE_END;
-
- return layout;
-}
-
-static Evas_Object *__create_scroller(Evas_Object *parent)
-{
- SETTING_TRACE_BEGIN;
- Evas_Object *scroller;
- retvm_if(parent == NULL, NULL, "Input parameter is NULL");
-
- scroller = elm_scroller_add(parent);
- elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
- elm_scroller_content_min_limit(scroller, EINA_FALSE, EINA_FALSE);
- elm_scroller_movement_block_set(scroller, ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL);
- elm_scroller_page_relative_set(scroller, 1.0, 0.2);
- elm_scroller_page_scroll_limit_set(scroller, 1, 1);
- elm_object_part_content_set(parent, PRT_SET_VALUE_SELECTOR, scroller);
- evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
- evas_object_show(scroller);
- SETTING_TRACE_END;
-
- return scroller;
-}
-
-static Evas_Object *__create_box(Evas_Object *parent)
-{
- SETTING_TRACE_BEGIN;
- Evas_Object *box;
- retvm_if(parent == NULL, NULL, "Input parameter is NULL");
-
- box = elm_box_add(parent);
- elm_box_horizontal_set(box, EINA_FALSE);
- elm_box_homogeneous_set(box, EINA_TRUE);
- evas_object_size_hint_align_set(box, 0.0, 0.0);
- evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_content_set(parent, box);
- evas_object_show(box);
- SETTING_TRACE_END;
-
- return box;
-}
-
-static Evas_Object *__create_label(Evas_Object *parent, const char *caption)
-{
- SETTING_TRACE_BEGIN;
- retvm_if(parent == NULL || caption == NULL, NULL, "Input parameter is NULL");
-
- Evas_Object *label = elm_label_add(parent);
- elm_object_text_set(label, caption);
- evas_object_show(label);
- SETTING_TRACE_END;
-
- return label;
-}
-
-static Evas_Object *__create_check(Evas_Object *parent, bool state)
-{
- SETTING_TRACE_BEGIN;
- retvm_if(parent == NULL, NULL, "Input parameter is NULL");
-
- Evas_Object *check = elm_check_add(parent);
- elm_check_state_set(check, (Eina_Bool)state);
- elm_object_style_set(check, "on&off");
- elm_object_part_content_set(parent, PRT_SET_VALUE_SWITCH, check);
- evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(check);
-
- SETTING_TRACE_END;
- return check;
-}
-
-static Evas_Object *__create_genlist(Evas_Object *parent, const char *title)
-{
- SETTING_TRACE_BEGIN;
- retvm_if(parent == NULL, NULL, "Input parameter is NULL");
-
- Evas_Object *genlist = elm_genlist_add(parent);
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
- elm_object_style_set(genlist, "dialogue");
-
- if (title)
- setting_create_Gendial_field_titleItem(genlist, &itc_group_item, title, NULL);
-
- elm_object_part_content_set(parent, PRT_SET_VALUE_LIST, genlist);
- evas_object_show(genlist);
-
- SETTING_TRACE_END;
- return genlist;
-}
-
-void setting_accessibility_universal_switch_settings_set_value_page_create(SettingAccessibility *ad, set_value_type_t type, const char *title)
-{
- SETTING_TRACE_BEGIN;
- const char *layout_grp = NULL;
- retm_if(ad == NULL, "Input parameter is NULL");
- retm_if(title == NULL, "Title parameter is NULL");
-
- switch (type) {
- case VT_NUMERIC: layout_grp = GRP_SET_VALUE_NUMERIC; break;
- case VT_NUMERIC_SWITCH: layout_grp = GRP_SET_VALUE_NUMERIC_SWITCH; break;
- case VT_RADIOS:
- case VT_SWITCHES: layout_grp = GRP_SET_VALUE_SWITCHES; break;
- case VT_LIST_SWITCH: layout_grp = GRP_SET_VALUE_LIST_SWITCH; break;
- default:
- layout_grp = GRP_SET_VALUE_NUMERIC;
- SETTING_TRACE_DEBUG("Unrecognized layout type!");
- }
-
- ad->set_value_layout.layout = __create_layout(ad->md.naviframe, layout_grp);
-
- switch (type) {
- case VT_NUMERIC:
- ad->set_value_layout.scroller = __create_scroller(ad->set_value_layout.layout);
- ad->set_value_layout.box = __create_box(ad->set_value_layout.scroller);
- evas_object_smart_callback_add(ad->set_value_layout.scroller, "scroll,page,changed", __scroller_scroll_cb, (void *)ad);
- break;
- case VT_NUMERIC_SWITCH:
- ad->set_value_layout.scroller = __create_scroller(ad->set_value_layout.layout);
- ad->set_value_layout.box = __create_box(ad->set_value_layout.scroller);
- ad->set_value_layout.check = __create_check(ad->set_value_layout.layout, EINA_FALSE);
- evas_object_smart_callback_add(ad->set_value_layout.scroller, "scroll,page,changed", __scroller_scroll_cb, (void *)ad);
- evas_object_smart_callback_add(ad->set_value_layout.check, "changed", __check_state_changed_cb, (void *)ad);
- break;
- case VT_RADIOS:
- ad->set_value_layout.radio_item_change_cb = NULL;
- ad->set_value_layout.genlist = __create_genlist(ad->set_value_layout.layout, NULL);
- break;
- case VT_SWITCHES:
- ad->set_value_layout.genlist = __create_genlist(ad->set_value_layout.layout, NULL);
- break;
- case VT_LIST_SWITCH:
- ad->set_value_layout.check = __create_check(ad->set_value_layout.layout, EINA_FALSE);
- ad->set_value_layout.genlist = __create_genlist(ad->set_value_layout.layout, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_OPTIONS));
- evas_object_smart_callback_add(ad->set_value_layout.check, "changed", __check_state_changed_cb, (void *)ad);
- break;
- default:
- LOGE("Wrong value type");
-}
-
- Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->md.naviframe, title, NULL, NULL, ad->set_value_layout.layout, NULL);
- elm_naviframe_item_pop_cb_set(navi_it, __naviframe_pop_cb, ad);
- elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE, EINA_TRUE);
-
- Evas_Object *back_btn = setting_create_button(ad->md.naviframe, NULL, NAVI_BACK_ARROW_BUTTON_STYLE, __back_cb, ad);
- elm_layout_content_set(ad->md.naviframe, "prev_btn", back_btn);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_settings_set_value_description_set(SettingAccessibility *ad, const char *description)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- elm_object_part_text_set(ad->set_value_layout.layout, PRT_SET_VALUE_DESC, description);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_settings_set_value_range_set(SettingAccessibility *ad, double min, double max, double step)
-{
- SETTING_TRACE_BEGIN;
- char s[256] = {0,};
- retm_if(ad == NULL, "Input parameter is NULL");
- retm_if(min >= max, "Invalid min/max arguments");
- retm_if(step <= 0.0, "Invalid step value");
-
- ad->set_value_layout.min_val = min;
- ad->set_value_layout.max_val = max;
- ad->set_value_layout.step = step;
-
- elm_box_pack_end(ad->set_value_layout.box, __create_label(ad->set_value_layout.box, ""));
- elm_box_pack_end(ad->set_value_layout.box, __create_label(ad->set_value_layout.box, ""));
-
- double value;
- for (value = min; value < max + step / 2; value += step) {
- if (step < 1.0)
- snprintf(s, sizeof(s), "<font=BreezeSans:style=normal font_size=50 color=#7f7f7f>%.1f</font/>", value);
- else
- snprintf(s, sizeof(s), "<font=BreezeSans:style=normal font_size=50 color=#7f7f7f>%d</font/>", (int)value);
-
- Evas_Object *label = __create_label(ad->set_value_layout.box, s);
- elm_box_pack_end(ad->set_value_layout.box, label);
- }
-
- elm_box_pack_end(ad->set_value_layout.box, __create_label(ad->set_value_layout.box, ""));
- elm_box_pack_end(ad->set_value_layout.box, __create_label(ad->set_value_layout.box, ""));
-
- if (step < 1.0)
- snprintf(s, sizeof(s), "Accepted range: %.1f to %.1f", min, max);
- else
- snprintf(s, sizeof(s), "Accepted range: %d to %d", (int)min, (int)max);
-
- elm_object_part_text_set(ad->set_value_layout.layout, PRT_SET_VALUE_RANGE, s);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_settings_set_value_value_set(SettingAccessibility *ad, double value, const char *units)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL || units == NULL, "Input parameter is NULL");
- retm_if(value < ad->set_value_layout.min_val, "Invalid value");
- retm_if(value > ad->set_value_layout.max_val, "Invalid value");
-
- ad->set_value_layout.units = units;
- elm_scroller_page_show(ad->set_value_layout.scroller, 0, (value - ad->set_value_layout.min_val) / ad->set_value_layout.step);
-
- __display_value(ad, value);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_settings_set_value_switch_set(SettingAccessibility *ad, bool state)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- elm_check_state_set(ad->set_value_layout.check, (Eina_Bool)state);
-
- if (state)
- elm_object_part_text_set(ad->set_value_layout.layout, PRT_SET_VALUE_SWITCH_LABEL, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_ON));
- else
- elm_object_part_text_set(ad->set_value_layout.layout, PRT_SET_VALUE_SWITCH_LABEL, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
-
- SETTING_TRACE_END;
-}
-
-static void __switch_item_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Input parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
-
- if (ad->set_value_layout.switch_item_change_cb) {
- bool state = elm_check_state_get(list_item->eo_check);
- ad->set_value_layout.switch_item_change_cb(ad, list_item->chk_id, state);
- }
-
- SETTING_TRACE_END;
-}
-
-static void __gendial_remove_item_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Input parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
- if (elm_check_state_get(list_item->eo_check))
- ad->switches_to_remove_counter++;
- else
- ad->switches_to_remove_counter--;
-
- setting_accessibility_universal_switch_use_naviframe_title_as_counter(ad);
-
- SETTING_TRACE_END;
-}
-
-static void __gendial_remove_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(event_info == NULL, "Invalid argument: event_info is NULL");
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
-
- elm_genlist_item_selected_set(item, 0);
-
- Setting_GenGroupItem_Data *list_item = elm_object_item_data_get(item);
- setting_update_gl_item_chk_status(list_item,
- list_item->chk_status ? 0 : 1);
-
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
-
- if (elm_check_state_get(list_item->eo_check))
- ad->switches_to_remove_counter++;
- else
- ad->switches_to_remove_counter--;
-
- setting_accessibility_universal_switch_use_naviframe_title_as_counter(ad);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_settings_set_value_switch_item_add(SettingAccessibility *ad, const char *caption, const char *sub_desc,
- int id, bool state, setting_call_back_func gl_sel)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- Setting_GenGroupItem_Data *item = setting_create_Gendial_field_def(ad->set_value_layout.genlist, &ad->itc_multiline_sub,
- gl_sel, NULL,
- SWALLOW_Type_1ICON_1RADIO, NULL, NULL, (int)state,
- caption, sub_desc,
- __switch_item_checkbox_cb);
-
- if (item) {
- item->userdata = (void *)ad;
- item->chk_id = id;
- }
- SETTING_TRACE_END;
-}
-
-static void __call_radio_item_change_cb_and_pop_nf(Setting_GenGroupItem_Data *list_item)
-{
- SETTING_TRACE_BEGIN;
- retm_if(list_item == NULL, "Input parameter is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
- retm_if(ad == NULL, "Application data is NULL");
- if (ad->set_value_layout.radio_item_change_cb)
- ad->set_value_layout.radio_item_change_cb(ad, list_item->chk_id);
-
- if (ad->md.naviframe_it) {
- elm_naviframe_item_pop_cb_set(elm_naviframe_top_item_get(ad->md.naviframe), NULL, NULL);
- elm_naviframe_item_pop_to(ad->md.naviframe_it);
- } else {
- elm_naviframe_item_pop(ad->md.naviframe);
- }
- SETTING_TRACE_END;
-}
-
-
-static void __gendial_radio_change_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Input parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
- __call_radio_item_change_cb_and_pop_nf(list_item);
- SETTING_TRACE_END;
-}
-
-static void __gendial_radio_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(event_info == NULL, "Invalid argument: event_info is NULL");
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
-
- elm_genlist_item_selected_set(item, 0);
-
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *)elm_object_item_data_get(item);
- if (list_item->chk_status)
- setting_update_gl_item_chk_status(list_item, 0);
-
- __call_radio_item_change_cb_and_pop_nf(list_item);
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_settings_set_value_radio_item_add(SettingAccessibility *ad, const char *caption, int id, bool selected)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- Setting_GenGroupItem_Data *item = setting_create_Gendial_field_def(ad->set_value_layout.genlist, &itc_1text_1icon_3,
- __gendial_radio_item_selected_cb, NULL,
- SWALLOW_Type_1RADIO_1TEXT, NULL, NULL, selected ? 0 : -1,
- caption, NULL,
- __gendial_radio_change_cb);
-
- if (item) {
- item->userdata = ad;
- item->chk_id = id;
- }
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_settings_set_value_remove_switch_item_add(SettingAccessibility *ad, const char *caption,
- const char *subtext, int id, bool state)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- Setting_GenGroupItem_Data *item = setting_create_Gendial_field_def(ad->set_value_layout.genlist, &itc_1text_1icon_3,
- __gendial_remove_item_selected_cb, NULL,
- SWALLOW_Type_1CHECK, NULL, NULL, (int)state,
- caption, subtext,
- __gendial_remove_item_checkbox_cb);
-
- if (item) {
- item->userdata = (void *)ad;
- item->chk_id = id;
- }
-
- SETTING_TRACE_END;
-}
-
-Setting_GenGroupItem_Data* setting_accessibility_universal_switch_settings_set_value_radio_list_item_add(SettingAccessibility *ad, const char *main_text, const char *sub_text, int option_id)
-{
- SETTING_TRACE_BEGIN;
- retvm_if(ad == NULL, NULL, "Input parameter is NULL");
-
- options_item_t *opt_item = (options_item_t *)calloc(1, sizeof(options_item_t));
- retvm_if(opt_item == NULL, NULL, "calloc failed");
-
- opt_item->ad = ad;
- opt_item->option_id = option_id;
-
- ad->set_value_layout.options_data = eina_list_append(ad->set_value_layout.options_data, opt_item);
-
- Setting_GenGroupItem_Data *item = setting_create_Gendial_field_def(ad->set_value_layout.genlist, &itc_2text,
- __list_item_click_cb, opt_item,
- SWALLOW_Type_INVALID, NULL, NULL, 0,
- main_text, sub_text,
- NULL);
- if (item)
- elm_object_item_disabled_set(item->item, !elm_check_state_get(ad->set_value_layout.check));
-
- SETTING_TRACE_END;
- return item;
-}
-
-void setting_accessibility_universal_switch_settings_set_value_add_value_change_cb(SettingAccessibility *ad, change_value_cb cb)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- ad->set_value_layout.value_change_cb = cb;
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_settings_set_value_add_switch_change_cb(SettingAccessibility *ad, change_switch_cb cb)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- ad->set_value_layout.switch_change_cb = cb;
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_settings_set_value_add_radio_item_change_cb(SettingAccessibility *ad, change_radio_item_cb cb)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- ad->set_value_layout.radio_item_change_cb = cb;
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_settings_set_value_add_switch_item_change_cb(SettingAccessibility *ad, change_switch_item_cb cb)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- ad->set_value_layout.switch_item_change_cb = cb;
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_settings_set_value_add_list_item_options_request_cb(SettingAccessibility *ad, request_list_item_options_cb cb)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- ad->set_value_layout.list_item_options_request_cb = cb;
-
- SETTING_TRACE_END;
-}
-
-static void __update_accessories_switch_save_changes(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- if (ad->switch_updated_cb) {
- ad->switch_updated_cb(ad, ad->config_item_to_update.switch_id, ad->config_item_to_update.activity_type, elm_entry_entry_get(ad->entry));
- }
- SETTING_TRACE_END;
-}
-
-static void __close_update_accessories_switch_page(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = data;
- retm_if(ad == NULL, "Data argument is NULL");
-
- if (event_info == ad->save_object_item)
- __update_accessories_switch_save_changes(ad);
-
- if (ad->config_item_to_update.switch_id) {
- free(ad->config_item_to_update.switch_id);
- ad->config_item_to_update.switch_id = NULL;
- }
-
- if (ad->config_item_to_update.activity_type) {
- free(ad->config_item_to_update.activity_type);
- ad->config_item_to_update.activity_type = NULL;
- }
-
- if (ad->config_item_to_update.user_name) {
- free(ad->config_item_to_update.user_name);
- ad->config_item_to_update.user_name = NULL;
- }
-
- elm_naviframe_item_pop(ad->md.naviframe);
- SETTING_TRACE_END;
-}
-
-static void __add_action_gendial_field(SettingAccessibility *ad);
-
-static void __update_action_gendial_field(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input argument is NULL");
-
- elm_genlist_clear(ad->update_accessories_action_genlist);
- __add_action_gendial_field(ad);
- SETTING_TRACE_END;
-}
-
-static void __update_accessible_switch_choose_action(SettingAccessibility *ad, switch_action_t action, void *user_data)
-{
- SETTING_TRACE_BEGIN;
- free(ad->config_item_to_update.activity_type);
- ad->config_item_to_update.activity_type = strdup(action);
- __update_action_gendial_field(ad);
- elm_naviframe_item_pop(ad->md.naviframe);
- SETTING_TRACE_END;
-}
-
-static void __update_accessible_switch_action(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- elm_genlist_item_selected_set(event_info, 0);
- SettingAccessibility *ad = data;
- retm_if(ad == NULL, "Data argument is NULL");
-
- setting_accessibility_universal_switch_action_page_create(ad);
- setting_accessibility_universal_switch_action_callback_attach(ad, __update_accessible_switch_choose_action, ad);
- SETTING_TRACE_END;
-}
-
-static void __add_action_gendial_field(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- setting_create_Gendial_field_def(ad->update_accessories_action_genlist, &itc_1text,
- __update_accessible_switch_action, ad,
- SWALLOW_Type_INVALID, NULL, NULL, 0,
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ACTION),
- setting_accessibility_universal_switch_dbus_config_get_activity_name(&ad->config, ad->config_item_to_update.activity_type),
- NULL);
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_settings_create_update_accesories_switch_page(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- Evas_Object *tb;
- Elm_Object_Item *nf_it;
- tb = elm_toolbar_add(ad->md.naviframe);
- elm_toolbar_select_mode_set(tb, ELM_OBJECT_SELECT_MODE_NONE);
- evas_object_smart_callback_add(tb, "clicked", __close_update_accessories_switch_page, ad);
- evas_object_show(tb);
-
- elm_toolbar_shrink_mode_set(tb, ELM_TOOLBAR_SHRINK_EXPAND);
- elm_toolbar_transverse_expanded_set(tb, EINA_TRUE);
-
- elm_toolbar_item_append(tb, NULL, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_CANCEL), NULL, NULL);
- ad->save_object_item = elm_toolbar_item_append(tb, NULL, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SAVE), NULL, NULL);
-
- ad->set_value_layout.layout = __create_layout(ad->md.naviframe, GRP_SET_VALUE_UPDATE_ACCESSORIES_SWITCH);
- ad->entry = elm_entry_add(ad->set_value_layout.layout);
- elm_entry_entry_set(ad->entry, ad->config_item_to_update.user_name);
- elm_entry_cursor_end_set(ad->entry);
- evas_object_show(ad->entry);
- elm_object_part_content_set(ad->set_value_layout.layout, PRT_SET_VALUE_ENTRY, ad->entry);
-
- elm_object_part_text_set(ad->set_value_layout.layout, PRT_SET_VALUE_DESC, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_NAME));
-
- ad->update_accessories_action_genlist = __create_genlist(ad->set_value_layout.layout, NULL);
- __add_action_gendial_field(ad);
-
- nf_it = elm_naviframe_item_push(ad->md.naviframe, "", NULL, NULL, ad->set_value_layout.layout, "tabbar/notitle");
- elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
- elm_object_item_part_content_set(nf_it, "tabbar", tb);
- SETTING_TRACE_END;
-}
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Michal Pawluk <m.pawluk@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <app_preference.h>
-#include <efl_extension.h>
-
-#include "setting-accessibility-universal-switch-add-switch.h"
-#include "setting-accessibility-universal-switch-settings-set-value.h"
-#include "setting-accessibility-universal-switch-settings.h"
-#include "setting-accessibility-universal-switch-switches.h"
-
-#define CTXPOPUP_DATA_AD "__CTXPOPUP_DATA_AD"
-
-#define CURSOR_COLORS_COUNT 6
-#define MEDIA_LEVEL_COUNT 9
-
-#define RANGE_MIN_AUTO_SCAN_INTERVAL 0.5
-#define RANGE_MAX_AUTO_SCAN_INTERVAL 9.9
-#define RANGE_MIN_SCANS_NUM 1
-#define RANGE_MAX_SCANS_NUM 10
-#define RANGE_MIN_SCAN_SPEED 1
-#define RANGE_MAX_SCAN_SPEED 30
-#define RANGE_MIN_PAUSE_ON_FIRST 0.1
-#define RANGE_MAX_PAUSE_ON_FIRST 5.0
-#define RANGE_MIN_TAP_DURATION 0.5
-#define RANGE_MAX_TAP_DURATION 5.0
-#define RANGE_MIN_SGL_IACTION_INT 0.1
-#define RANGE_MAX_SGL_IACTION_INT 2.5
-#define RANGE_MIN_AUTO_TAP 0.5
-#define RANGE_MAX_AUTO_TAP 5.0
-#define RANGE_MIN_AUTO_MOVE_INT 0.1
-#define RANGE_MAX_AUTO_MOVE_INT 5.0
-
-#define STEP_AUTO_SCAN_INTERVAL 0.1
-#define STEP_SCANS_NUM 1
-#define STEP_SCAN_SPEED 1
-#define STEP_PAUSE_ON_FIRST 0.1
-#define STEP_TAP_DURATION 0.1
-#define STEP_SGL_IACTION_INT 0.1
-#define STEP_AUTO_TAP 0.1
-#define STEP_AUTO_MOVE_INT 0.1
-
-#define DEFAULT_AUTO_SCAN false
-#define DEFAULT_AUTO_SCAN_INTERVAL 2.0
-#define DEFAULT_AUTO_SCAN_NUMBER 5
-#define DEFAULT_SCAN_METHOD SM_POINT
-#define DEFAULT_SCAN_DIR SD_TOP_BOTTOM
-#define DEFAULT_SCAN_PT_SPEED 10
-#define DEFAULT_PAUSE_ON_FIRST_STATE false
-#define DEFAULT_PAUSE_ON_FIRST_VALUE 1.0
-#define DEFAULT_TAP_DURATION_STATE false
-#define DEFAULT_TAP_DURATION_VALUE 0.5
-#define DEFAULT_SGL_IACTION_INT_STATE false
-#define DEFAULT_SGL_IACTION_INT_VALUE 0.5
-#define DEFAULT_AUTO_TAP_STATE false
-#define DEFAULT_AUTO_TAP_VALUE 1.0
-#define DEFAULT_AUTO_MOVE_INT_STATE false
-#define DEFAULT_AUTO_MOVE_INT_VALUE 1.0
-#define DEFAULT_AUTO_TAP_KBD_STATE false
-#define DEFAULT_FEEDBACK_CURSOR_COLOR 0xffff0000
-#define DEFAULT_FEEDBACK_SOUND_STATE true;
-#define DEFAULT_FEEDBACK_SOUND_VOLUME 50
-#define DEFAULT_FEEDBACK_VOICE_STATE false;
-#define DEFAULT_FEEDBACK_VOICE_SPEECH_RATE 50
-#define DEFAULT_FEEDBACK_VOICE_SPEECH_VOLUME 50
-#define DEFAULT_MANAGE_OPTIONS_VALUE true
-
-typedef enum {VOICE_FEEDBACK_SPEECH_RATE, VOICE_FEEDBACK_VOLUME} voice_feedback_type_t;
-
-typedef struct _key_id_pair {
- const char *key;
- int id;
-} key_id_pair_t;
-
-static key_id_pair_t _cursor_color[CURSOR_COLORS_COUNT] = {
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL_RED, .id = 0xff0000ff, },
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL_ORANGE, .id = 0xff0080ff, },
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL_YELLOW, .id = 0xff00ffff, },
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL_GREEN, .id = 0xff00ff00, },
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL_BLUE, .id = 0xffff0000, },
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL_GRAY, .id = 0xff808080, },
-};
-
-static key_id_pair_t _media_level[MEDIA_LEVEL_COUNT] = {
- { .key = "100%", .id = 100, },
- { .key = "87%", .id = 87, },
- { .key = "75%", .id = 75, },
- { .key = "62%", .id = 62, },
- { .key = "50%", .id = 50, },
- { .key = "37%", .id = 37, },
- { .key = "25%", .id = 25, },
- { .key = "12%", .id = 12, },
- { .key = "0%", .id = 0, },
-};
-
-static key_id_pair_t _manage_options[MANAGE_OPTIONS_COUNT] = {
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_GESTURES, .id = MANAGE_GESTURES, },
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_ACTIONS, .id = MANAGE_ACTIONS, },
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_SETTINGS, .id = MANAGE_SETTINGS, },
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_RECENT_APPS, .id = MANAGE_RECENT_APPS, },
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_HOME_SCREEN, .id = MANAGE_HOME_SCREEN, },
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_BACK, .id = MANAGE_BACK, },
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_BUTTONS_AND_KEYS, .id = MANAGE_BUTTONS_AND_KEYS, },
- { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_CONTEXTUAL_MENU, .id = MANAGE_CONTEXTUAL_MENU, },
-};
-
-static const char *_manage_options_key_array[] = {
- VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_GESTURES,
- VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_ACTIONS,
- VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_SETTINGS,
- VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_RECENT_APPS,
- VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_HOMESCREEN,
- VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_BACK,
- VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_KEYS,
- VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_CONTEXTUAL_MENU
-};
-
-static void __update_switches_count(SettingAccessibility *ad);
-static bool __update_vconf_value(const char *key, bool *bvalue, int *ivalue, double *dvalue);
-static const char *__get_value_unit_text(int *ivalue, double *dvalue, const char *units, bool def_trigger, const char *def);
-static const char *__get_boolean_text(bool bvalue, const char *t_str, const char *f_str);
-static const char *__get_scan_method_text(scan_method_t method);
-static const char *__get_scan_direction_text(scan_dir_t direction);
-static Evas_Object *__create_ctxpopup(SettingAccessibility *ad);
-static void __set_ctxpopup_position(SettingAccessibility *ad, Evas_Object *ctxpopup);
-static void __auto_scan_checkbox_cb(void *data, Evas_Object *obj, void *event_info);
-static void __feedback_sound_checkbox_cb(void *data, Evas_Object *obj, void *event_info);
-static void __feedback_voice_checkbox_cb(void *data, Evas_Object *obj, void *event_info);
-
-static void __synchronize_checkbox_with_vconf(keynode_t *node, void *user_data, setting_call_back_func cb_func)
-{
- SETTING_TRACE_BEGIN;
- retm_if(user_data == NULL, "Data parameter is NULL");
- retm_if(node == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)user_data;
- int ret = vconf_keynode_get_bool(node);
- retm_if(ret < 0, "FAIL: vconf_keynode_get_bool");
- if (list_item->chk_status != ret) {
- setting_update_gl_item_chk_status(list_item, ret);
- cb_func(list_item, list_item->eo_check, NULL);
- }
- SETTING_TRACE_END;
-}
-
-static void __synchronize_auto_scan_with_vconf(keynode_t *node, void *user_data)
-{
- SETTING_TRACE_BEGIN;
- __synchronize_checkbox_with_vconf(node, user_data, __auto_scan_checkbox_cb);
- SETTING_TRACE_END;
-}
-
-static void __synchronize_sound_feedback_with_vconf(keynode_t *node, void *user_data)
-{
- SETTING_TRACE_BEGIN;
- __synchronize_checkbox_with_vconf(node, user_data, __feedback_sound_checkbox_cb);
- SETTING_TRACE_END;
-}
-
-static void __synchronize_voice_feedback_with_vconf(keynode_t *node, void *user_data)
-{
- SETTING_TRACE_BEGIN;
- __synchronize_checkbox_with_vconf(node, user_data, __feedback_voice_checkbox_cb);
- SETTING_TRACE_END;
-}
-
-static void __back_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- elm_naviframe_item_pop(ad->md.naviframe);
-
- SETTING_TRACE_END;
-}
-
-static Eina_Bool __naviframe_pop_cb(void *data, Elm_Object_Item *it)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = (SettingAccessibility *) data;
- retv_if(ad == NULL, EINA_TRUE);
- ad->universal_switch_settings_item = NULL;
- vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCAN_ENABLED, __synchronize_auto_scan_with_vconf);
- vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_STATE, __synchronize_sound_feedback_with_vconf);
- vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_STATE, __synchronize_voice_feedback_with_vconf);
-
- SETTING_TRACE_END;
- return EINA_TRUE;
-}
-
-static void __ctxpopup_del_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
-
- evas_object_data_del(obj, CTXPOPUP_DATA_AD);
- evas_object_hide(obj);
- evas_object_del(obj);
- SETTING_TRACE_END;
-}
-
-static void __switches_click_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- setting_accessibility_universal_switch_switches_page_create(ad);
- setting_accessibility_universal_switch_switches_callback_attach(ad, __update_switches_count);
-
- SETTING_TRACE_END;
-}
-
-static void __auto_scan_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
- retm_if(ad == NULL, "View data parameter is NULL");
-
- list_item->chk_status = elm_check_state_get(obj);
- ad->auto_scan = list_item->chk_status;
-
- elm_object_item_disabled_set(ad->universal_switch_auto_scan_int->item, (Eina_Bool)!ad->auto_scan);
- elm_object_item_disabled_set(ad->universal_switch_scans_num->item, (Eina_Bool)!ad->auto_scan);
- elm_object_item_disabled_set(ad->universal_switch_pause_on_first->item, (Eina_Bool)!ad->auto_scan);
- elm_object_item_disabled_set(ad->universal_switch_auto_move_int->item, (Eina_Bool)ad->auto_scan);
-
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCAN_ENABLED, (bool *)&list_item->chk_status, NULL, NULL);
-
- SETTING_TRACE_END;
-}
-
-static void __ctxpopup_scan_method_click_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- scan_method_t scan_method = (scan_method_t)data;
- SettingAccessibility *ad = (SettingAccessibility *)evas_object_data_get(obj, CTXPOPUP_DATA_AD);
- retm_if(ad == NULL, "ctxpopup data is NULL");
-
- if (__update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_METHOD, NULL, (int *)&scan_method, NULL)) {
- ad->scan_method = scan_method;
- free(ad->universal_switch_scan_method->sub_desc);
- ad->universal_switch_scan_method->sub_desc = strdup(__get_scan_method_text(scan_method));
- elm_genlist_item_update(ad->universal_switch_scan_method->item);
- }
-
- __ctxpopup_del_cb(NULL, obj, event_info);
-
- SETTING_TRACE_END;
-}
-
-static void __ctxpopup_scan_dir_click_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- scan_dir_t scan_dir = (scan_dir_t)data;
- SettingAccessibility *ad = (SettingAccessibility *)evas_object_data_get(obj, CTXPOPUP_DATA_AD);
- retm_if(ad == NULL, "ctxpopup data is NULL");
-
- if (__update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIR_VERTICAL, NULL, (int *)&scan_dir, NULL)) {
- if (!__update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIR_HORIZONTAL, NULL, (int *)&scan_dir, NULL))
- SETTING_TRACE_ERROR("Only one of vconf keys was successfully set. The scanner may malfunction");
- ad->scan_dir = scan_dir;
- free(ad->universal_switch_scan_dir->sub_desc);
- ad->universal_switch_scan_dir->sub_desc = strdup(__get_scan_direction_text(scan_dir));
- elm_genlist_item_update(ad->universal_switch_scan_dir->item);
- }
-
- __ctxpopup_del_cb(NULL, obj, event_info);
-
- SETTING_TRACE_END;
-}
-
-static void __auto_scan_interval_changed_cb(SettingAccessibility *ad, double value)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->auto_scan_interval = value;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCAN_INT, NULL, NULL, &value);
-
- str = __get_value_unit_text(NULL, &value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS), false, NULL);
- free(ad->universal_switch_auto_scan_int->sub_desc);
- ad->universal_switch_auto_scan_int->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_auto_scan_int->item);
-
- SETTING_TRACE_END;
-}
-
-static void __auto_scan_interval_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_NUMERIC, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_AUTO_SCAN_INT));
- setting_accessibility_universal_switch_settings_set_value_add_value_change_cb(ad, __auto_scan_interval_changed_cb);
- setting_accessibility_universal_switch_settings_set_value_description_set(ad, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_AUTO_SCAN_INT));
- setting_accessibility_universal_switch_settings_set_value_range_set(ad, RANGE_MIN_AUTO_SCAN_INTERVAL, RANGE_MAX_AUTO_SCAN_INTERVAL, STEP_AUTO_SCAN_INTERVAL);
- setting_accessibility_universal_switch_settings_set_value_value_set(ad, ad->auto_scan_interval, "seconds");
-
- SETTING_TRACE_END;
-}
-
-static void __scans_num_changed_cb(SettingAccessibility *ad, double value)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- int int_value = (int)value;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->auto_scan_num = (int)value;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_NUM_OF_SCANS, NULL, &int_value, NULL);
-
- str = __get_value_unit_text(&int_value, NULL, NULL, false, NULL);
- free(ad->universal_switch_scans_num->sub_desc);
- ad->universal_switch_scans_num->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_scans_num->item);
-
- SETTING_TRACE_END;
-}
-
-static void __scans_num_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_NUMERIC, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_NUM_OF_SCANS));
- setting_accessibility_universal_switch_settings_set_value_add_value_change_cb(ad, __scans_num_changed_cb);
- setting_accessibility_universal_switch_settings_set_value_description_set(ad, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_NUM_OF_SCANS));
- setting_accessibility_universal_switch_settings_set_value_range_set(ad, RANGE_MIN_SCANS_NUM, RANGE_MAX_SCANS_NUM, STEP_SCANS_NUM);
- setting_accessibility_universal_switch_settings_set_value_value_set(ad, ad->auto_scan_num, "times");
-
- SETTING_TRACE_END;
-}
-
-static void __scan_method_click_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Evas_Object *ctxpopup;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- ctxpopup = __create_ctxpopup(ad);
-
- elm_ctxpopup_item_append(ctxpopup, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_METHOD_POINT), NULL, __ctxpopup_scan_method_click_cb, (void *)SM_POINT);
- elm_ctxpopup_item_append(ctxpopup, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_METHOD_ROW), NULL, __ctxpopup_scan_method_click_cb, (void *)SM_ROW);
-
- __set_ctxpopup_position(ad, ctxpopup);
-
- evas_object_show(ctxpopup);
-
- SETTING_TRACE_END;
-}
-
-static void __scan_dir_click_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Evas_Object *ctxpopup;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- ctxpopup = __create_ctxpopup(ad);
-
- elm_ctxpopup_item_append(ctxpopup, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_DIR_TB), NULL, __ctxpopup_scan_dir_click_cb, (void *)SD_TOP_BOTTOM);
- elm_ctxpopup_item_append(ctxpopup, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_DIR_BT), NULL, __ctxpopup_scan_dir_click_cb, (void *)SD_BOTTOM_TOP);
-
- __set_ctxpopup_position(ad, ctxpopup);
-
- evas_object_show(ctxpopup);
-
- SETTING_TRACE_END;
-}
-
-static void __scan_speed_changed_cb(SettingAccessibility *ad, double value)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- int int_value = (int)value;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->scan_pt_speed = (int)value;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_PT_SPEED, NULL, &int_value, NULL);
-
- str = __get_value_unit_text(&int_value, NULL, NULL, false, NULL);
- free(ad->universal_switch_scan_speed->sub_desc);
- ad->universal_switch_scan_speed->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_scan_speed->item);
-
- SETTING_TRACE_END;
-}
-
-static void __scan_speed_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_NUMERIC, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_PT_SPEED));
- setting_accessibility_universal_switch_settings_set_value_add_value_change_cb(ad, __scan_speed_changed_cb);
- setting_accessibility_universal_switch_settings_set_value_description_set(ad, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_SCAN_SPEED));
- setting_accessibility_universal_switch_settings_set_value_range_set(ad, RANGE_MIN_SCAN_SPEED, RANGE_MAX_SCAN_SPEED, STEP_SCAN_SPEED);
- setting_accessibility_universal_switch_settings_set_value_value_set(ad, ad->scan_pt_speed, "");
-
- SETTING_TRACE_END;
-}
-
-static void __pause_on_first_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
- retm_if(ad == NULL, "View data parameter is NULL");
-
- list_item->chk_status = elm_check_state_get(obj);
- ad->pause_on_first_state = list_item->chk_status;
-
- const char *str = __get_value_unit_text(NULL, &ad->pause_on_first_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->pause_on_first_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
-
- free(ad->universal_switch_pause_on_first->sub_desc);
- ad->universal_switch_pause_on_first->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_pause_on_first->item);
-
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_PAUSE_ON_FIRST_STATE, (bool *)&list_item->chk_status, NULL, NULL);
-
- SETTING_TRACE_END;
-}
-
-static void __pause_on_first_value_changed_cb(SettingAccessibility *ad, double value)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->pause_on_first_value = value;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_PAUSE_ON_FIRST_VALUE, NULL, NULL, &value);
-
- str = __get_value_unit_text(NULL, &ad->pause_on_first_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->pause_on_first_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
-
- free(ad->universal_switch_pause_on_first->sub_desc);
- ad->universal_switch_pause_on_first->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_pause_on_first->item);
-
- SETTING_TRACE_END;
-}
-
-static void __pause_on_first_switch_changed_cb(SettingAccessibility *ad, bool state)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->pause_on_first_state = state;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_PAUSE_ON_FIRST_STATE, &state, NULL, NULL);
-
- str = __get_value_unit_text(NULL, &ad->pause_on_first_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->pause_on_first_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
-
- ad->universal_switch_pause_on_first->chk_status = state;
- elm_check_state_set(ad->universal_switch_pause_on_first->eo_check, state);
- free(ad->universal_switch_pause_on_first->sub_desc);
- ad->universal_switch_pause_on_first->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_pause_on_first->item);
-
- SETTING_TRACE_END;
-}
-
-static void __pause_on_first_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- char str[512] = {0,};
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- snprintf(str, sizeof(str), _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_PAUSE_ON_FIRST), ad->auto_scan_interval, ad->auto_scan_interval + ad->pause_on_first_value);
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_NUMERIC_SWITCH, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_PAUSE_ON_FIRST));
- setting_accessibility_universal_switch_settings_set_value_switch_set(ad, ad->pause_on_first_state);
- setting_accessibility_universal_switch_settings_set_value_add_value_change_cb(ad, __pause_on_first_value_changed_cb);
- setting_accessibility_universal_switch_settings_set_value_add_switch_change_cb(ad, __pause_on_first_switch_changed_cb);
- setting_accessibility_universal_switch_settings_set_value_description_set(ad, str);
- setting_accessibility_universal_switch_settings_set_value_range_set(ad, RANGE_MIN_PAUSE_ON_FIRST, RANGE_MAX_PAUSE_ON_FIRST, STEP_PAUSE_ON_FIRST);
- setting_accessibility_universal_switch_settings_set_value_value_set(ad, ad->pause_on_first_value, "seconds");
-
- SETTING_TRACE_END;
-}
-
-static void __tap_duration_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
- retm_if(ad == NULL, "View data parameter is NULL");
-
- list_item->chk_status = elm_check_state_get(obj);
- ad->tap_duration_state = list_item->chk_status;
-
- const char *str = __get_value_unit_text(NULL, &ad->tap_duration_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->tap_duration_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
- free(ad->universal_switch_tap_duration->sub_desc);
- ad->universal_switch_tap_duration->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_tap_duration->item);
-
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_TAP_DURATION_STATE, (bool *)&list_item->chk_status, NULL, NULL);
-
- SETTING_TRACE_END;
-}
-
-static void __tap_duration_value_changed_cb(SettingAccessibility *ad, double value)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->tap_duration_value = value;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_TAP_DURATION_VALUE, NULL, NULL, &value);
-
- str = __get_value_unit_text(NULL, &ad->tap_duration_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->tap_duration_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
-
- free(ad->universal_switch_tap_duration->sub_desc);
- ad->universal_switch_tap_duration->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_tap_duration->item);
-
- SETTING_TRACE_END;
-}
-
-static void __tap_duration_switch_changed_cb(SettingAccessibility *ad, bool state)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->tap_duration_state = state;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_TAP_DURATION_STATE, &state, NULL, NULL);
-
- str = __get_value_unit_text(NULL, &ad->tap_duration_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->tap_duration_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
-
- ad->universal_switch_tap_duration->chk_status = state;
- elm_check_state_set(ad->universal_switch_tap_duration->eo_check, state);
- free(ad->universal_switch_tap_duration->sub_desc);
- ad->universal_switch_tap_duration->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_tap_duration->item);
-
- SETTING_TRACE_END;
-}
-
-static void __tap_duration_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_NUMERIC_SWITCH, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_TAP_DURATION));
- setting_accessibility_universal_switch_settings_set_value_switch_set(ad, ad->tap_duration_state);
- setting_accessibility_universal_switch_settings_set_value_add_value_change_cb(ad, __tap_duration_value_changed_cb);
- setting_accessibility_universal_switch_settings_set_value_add_switch_change_cb(ad, __tap_duration_switch_changed_cb);
- setting_accessibility_universal_switch_settings_set_value_description_set(ad, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_TAP_DURATION));
- setting_accessibility_universal_switch_settings_set_value_range_set(ad, RANGE_MIN_TAP_DURATION, RANGE_MAX_TAP_DURATION, STEP_TAP_DURATION);
- setting_accessibility_universal_switch_settings_set_value_value_set(ad, ad->tap_duration_value, "seconds");
-
- SETTING_TRACE_END;
-}
-
-static void __sgl_iaction_int_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
- retm_if(ad == NULL, "View data parameter is NULL");
-
- list_item->chk_status = elm_check_state_get(obj);
- ad->sgl_iaction_int_state = list_item->chk_status;
-
- const char *str = __get_value_unit_text(NULL, &ad->sgl_iaction_int_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->sgl_iaction_int_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
- free(ad->universal_switch_sgl_iaction_int->sub_desc);
- ad->universal_switch_sgl_iaction_int->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_sgl_iaction_int->item);
-
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SGL_IACTION_INT_STATE, (bool *)&list_item->chk_status, NULL, NULL);
-
- SETTING_TRACE_END;
-}
-
-static void __sgl_iaction_int_value_changed_cb(SettingAccessibility *ad, double value)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->sgl_iaction_int_value = value;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SGL_IACTION_INT_VALUE, NULL, NULL, &value);
-
- str = __get_value_unit_text(NULL, &ad->sgl_iaction_int_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->sgl_iaction_int_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
-
- free(ad->universal_switch_sgl_iaction_int->sub_desc);
- ad->universal_switch_sgl_iaction_int->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_sgl_iaction_int->item);
-
- SETTING_TRACE_END;
-}
-
-static void __sgl_iaction_int_switch_changed_cb(SettingAccessibility *ad, bool state)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->sgl_iaction_int_state = state;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SGL_IACTION_INT_STATE, &state, NULL, NULL);
-
- str = __get_value_unit_text(NULL, &ad->sgl_iaction_int_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->sgl_iaction_int_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
-
- ad->universal_switch_sgl_iaction_int->chk_status = state;
- elm_check_state_set(ad->universal_switch_sgl_iaction_int->eo_check, state);
- free(ad->universal_switch_sgl_iaction_int->sub_desc);
- ad->universal_switch_sgl_iaction_int->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_sgl_iaction_int->item);
-
- SETTING_TRACE_END;
-}
-
-static void __sgl_iaction_int_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_NUMERIC_SWITCH, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_SGL_IACTION_INT));
- setting_accessibility_universal_switch_settings_set_value_switch_set(ad, ad->sgl_iaction_int_state);
- setting_accessibility_universal_switch_settings_set_value_add_value_change_cb(ad, __sgl_iaction_int_value_changed_cb);
- setting_accessibility_universal_switch_settings_set_value_add_switch_change_cb(ad, __sgl_iaction_int_switch_changed_cb);
- setting_accessibility_universal_switch_settings_set_value_description_set(ad, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_SGL_IACTION_INT));
- setting_accessibility_universal_switch_settings_set_value_range_set(ad, RANGE_MIN_SGL_IACTION_INT, RANGE_MAX_SGL_IACTION_INT, STEP_SGL_IACTION_INT);
- setting_accessibility_universal_switch_settings_set_value_value_set(ad, ad->sgl_iaction_int_value, "seconds");
-
- SETTING_TRACE_END;
-}
-
-static void __auto_tap_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
- retm_if(ad == NULL, "View data parameter is NULL");
-
- list_item->chk_status = elm_check_state_get(obj);
- ad->auto_tap_state = list_item->chk_status;
-
- const char *str = __get_value_unit_text(NULL, &ad->auto_tap_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->auto_tap_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
- free(ad->universal_switch_auto_tap->sub_desc);
- ad->universal_switch_auto_tap->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_auto_tap->item);
-
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_TAP_STATE, (bool *)&list_item->chk_status, NULL, NULL);
-
- SETTING_TRACE_END;
-}
-
-static void __auto_tap_value_changed_cb(SettingAccessibility *ad, double value)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->auto_tap_value = value;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_TAP_VALUE, NULL, NULL, &value);
-
- str = __get_value_unit_text(NULL, &ad->auto_tap_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->auto_tap_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
-
- free(ad->universal_switch_auto_tap->sub_desc);
- ad->universal_switch_auto_tap->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_auto_tap->item);
-
- SETTING_TRACE_END;
-}
-
-static void __auto_tap_switch_changed_cb(SettingAccessibility *ad, bool state)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->auto_tap_state = state;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_TAP_STATE, &state, NULL, NULL);
-
- str = __get_value_unit_text(NULL, &ad->auto_tap_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->auto_tap_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
-
- ad->universal_switch_auto_tap->chk_status = state;
- elm_check_state_set(ad->universal_switch_auto_tap->eo_check, state);
- free(ad->universal_switch_auto_tap->sub_desc);
- ad->universal_switch_auto_tap->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_auto_tap->item);
-
- SETTING_TRACE_END;
-}
-
-static void __auto_tap_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_NUMERIC_SWITCH, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_AUTO_TAP));
- setting_accessibility_universal_switch_settings_set_value_switch_set(ad, ad->auto_tap_state);
- setting_accessibility_universal_switch_settings_set_value_add_value_change_cb(ad, __auto_tap_value_changed_cb);
- setting_accessibility_universal_switch_settings_set_value_add_switch_change_cb(ad, __auto_tap_switch_changed_cb);
- setting_accessibility_universal_switch_settings_set_value_description_set(ad, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_AUTO_TAP));
- setting_accessibility_universal_switch_settings_set_value_range_set(ad, RANGE_MIN_AUTO_TAP, RANGE_MAX_AUTO_TAP, STEP_AUTO_TAP);
- setting_accessibility_universal_switch_settings_set_value_value_set(ad, ad->auto_tap_value, "seconds");
-
- SETTING_TRACE_END;
-}
-
-static void __auto_move_interval_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
- retm_if(ad == NULL, "View data parameter is NULL");
-
- list_item->chk_status = elm_check_state_get(obj);
- ad->auto_move_int_state = list_item->chk_status;
-
- const char *str = __get_value_unit_text(NULL, &ad->auto_move_int_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->auto_move_int_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
- free(ad->universal_switch_auto_move_int->sub_desc);
- ad->universal_switch_auto_move_int->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_auto_move_int->item);
-
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_MOVE_INT_STATE, (bool *)&list_item->chk_status, NULL, NULL);
-
- SETTING_TRACE_END;
-}
-
-static void __auto_move_int_value_changed_cb(SettingAccessibility *ad, double value)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->auto_move_int_value = value;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_MOVE_INT_VALUE, NULL, NULL, &value);
-
- str = __get_value_unit_text(NULL, &ad->auto_move_int_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->auto_move_int_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
-
- free(ad->universal_switch_auto_move_int->sub_desc);
- ad->universal_switch_auto_move_int->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_auto_move_int->item);
-
- SETTING_TRACE_END;
-}
-
-static void __auto_move_int_switch_changed_cb(SettingAccessibility *ad, bool state)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->auto_move_int_state = state;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_MOVE_INT_STATE, &state, NULL, NULL);
-
- str = __get_value_unit_text(NULL, &ad->auto_move_int_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->auto_move_int_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
-
- ad->universal_switch_auto_move_int->chk_status = state;
- elm_check_state_set(ad->universal_switch_auto_move_int->eo_check, state);
- free(ad->universal_switch_auto_move_int->sub_desc);
- ad->universal_switch_auto_move_int->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_auto_move_int->item);
-
- SETTING_TRACE_END;
-}
-
-static void __auto_move_int_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_NUMERIC_SWITCH, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_AUTO_MOVE_INT));
- setting_accessibility_universal_switch_settings_set_value_switch_set(ad, ad->auto_move_int_state);
- setting_accessibility_universal_switch_settings_set_value_add_value_change_cb(ad, __auto_move_int_value_changed_cb);
- setting_accessibility_universal_switch_settings_set_value_add_switch_change_cb(ad, __auto_move_int_switch_changed_cb);
- setting_accessibility_universal_switch_settings_set_value_description_set(ad, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_AUTO_MOVE_INT));
- setting_accessibility_universal_switch_settings_set_value_range_set(ad, RANGE_MIN_AUTO_MOVE_INT, RANGE_MAX_AUTO_MOVE_INT, STEP_AUTO_MOVE_INT);
- setting_accessibility_universal_switch_settings_set_value_value_set(ad, ad->auto_move_int_value, "seconds");
-
- SETTING_TRACE_END;
-}
-
-static void __auto_tap_kbd_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
- retm_if(ad == NULL, "View data parameter is NULL");
-
- list_item->chk_status = elm_check_state_get(obj);
- ad->auto_tap_kbd_state = list_item->chk_status;
-
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_TAP_KBD_STATE, (bool *)&list_item->chk_status, NULL, NULL);
-
- SETTING_TRACE_END;
-}
-
-static void __cursor_color_list_item_changed_cb(SettingAccessibility *ad, int item_id)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Data argument is NULL");
- retm_if(item_id < 0 || item_id >= CURSOR_COLORS_COUNT, "Invalid cursor color id");
-
- ad->cursor_color = _cursor_color[item_id].id;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_CURSOR_COLOR, NULL, &ad->cursor_color, NULL);
-
- free(ad->universal_switch_feedback_cursor_cl->sub_desc);
- ad->universal_switch_feedback_cursor_cl->sub_desc = strdup(_cursor_color[item_id].key);
- elm_genlist_item_update(ad->universal_switch_feedback_cursor_cl->item);
-
- SETTING_TRACE_END;
-}
-
-static void __cursor_color_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- int i;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_RADIOS, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL));
- setting_accessibility_universal_switch_settings_set_value_add_radio_item_change_cb(ad, __cursor_color_list_item_changed_cb);
- elm_naviframe_item_pop_cb_set(elm_naviframe_top_item_get(ad->md.naviframe), NULL, NULL);
-
- for (i = 0; i < CURSOR_COLORS_COUNT; i++)
- setting_accessibility_universal_switch_settings_set_value_radio_item_add(ad, _cursor_color[i].key, i, _cursor_color[i].id == ad->cursor_color);
-
- SETTING_TRACE_END;
-}
-
-static void __feedback_sound_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
-
- list_item->chk_status = elm_check_state_get(obj);
-
- if (ad) {
- ad->feedback_sound_state = list_item->chk_status;
-
- const char *str = __get_boolean_text(ad->feedback_sound_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_ON),
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
- free(ad->universal_switch_feedback_sound->sub_desc);
- ad->universal_switch_feedback_sound->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_feedback_sound->item);
- }
-
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_STATE, (bool *)&list_item->chk_status, NULL, NULL);
-
- SETTING_TRACE_END;
-}
-
-static void __feedback_sound_switch_changed_cb(SettingAccessibility *ad, bool state)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->feedback_sound_state = state;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_STATE, &state, NULL, NULL);
-
- if (ad->feedback_sound_state)
- str = _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_ON);
- else
- str = _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF);
-
- ad->universal_switch_feedback_sound->chk_status = state;
- elm_check_state_set(ad->universal_switch_feedback_sound->eo_check, state);
- free(ad->universal_switch_feedback_sound->sub_desc);
- ad->universal_switch_feedback_sound->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_feedback_sound->item);
-
- SETTING_TRACE_END;
-}
-
-static void __feedback_sound_volume_changed_cb(SettingAccessibility *ad, int item_id)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Data argument is NULL");
- retm_if(item_id < 0 || item_id >= MEDIA_LEVEL_COUNT, "Invalid item_id");
-
- ad->feedback_sound_volume = _media_level[item_id].id;
- double media_level = _media_level[item_id].id / 100.0;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_VOLUME, NULL, NULL, &media_level);
-
- free(ad->universal_switch_feedback_sound_volume->sub_desc);
- ad->universal_switch_feedback_sound_volume->sub_desc = strdup(_media_level[item_id].key);
- elm_genlist_item_update(ad->universal_switch_feedback_sound_volume->item);
-
- SETTING_TRACE_END;
-}
-
-static void __feedback_sound_item_options_request_cb(SettingAccessibility *ad, int option_id, const char **title)
-{
- SETTING_TRACE_BEGIN;
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_RADIOS, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_SOUND_VOLUME));
- setting_accessibility_universal_switch_settings_set_value_add_radio_item_change_cb(ad, __feedback_sound_volume_changed_cb);
- elm_naviframe_item_pop_cb_set(elm_naviframe_top_item_get(ad->md.naviframe), NULL, NULL);
-
- int i;
- for (i = 0; i < MEDIA_LEVEL_COUNT; i++)
- setting_accessibility_universal_switch_settings_set_value_radio_item_add(ad, _media_level[i].key, i, _media_level[i].id == ad->feedback_sound_volume);
-
- SETTING_TRACE_END;
-}
-
-static void __feedback_sound_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- char str[128] = {0,};
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- snprintf(str, sizeof(str), "%d%%", ad->feedback_sound_volume);
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_LIST_SWITCH, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_SOUND));
- setting_accessibility_universal_switch_settings_set_value_switch_set(ad, ad->feedback_sound_state);
- setting_accessibility_universal_switch_settings_set_value_description_set(ad, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_FEEDBACK_SOUND));
- setting_accessibility_universal_switch_settings_set_value_add_switch_change_cb(ad, __feedback_sound_switch_changed_cb);
- ad->universal_switch_feedback_sound_volume = setting_accessibility_universal_switch_settings_set_value_radio_list_item_add(ad,
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_SOUND_VOLUME), str, 0);
- setting_accessibility_universal_switch_settings_set_value_add_list_item_options_request_cb(ad, __feedback_sound_item_options_request_cb);
- int vconf_ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_STATE, setting_accessibility_universal_switch_settings_synchronize_page_with_vconf, ad);
- if (vconf_ret)
- SETTING_TRACE_ERROR("FAIL: vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_STATE)");
-
- SETTING_TRACE_END;
-}
-
-static void __feedback_voice_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
-
- list_item->chk_status = elm_check_state_get(obj);
-
- if (ad) {
- ad->feedback_voice_state = list_item->chk_status;
-
- const char *str = __get_boolean_text(ad->feedback_voice_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_ON),
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
- free(ad->universal_switch_feedback_voice->sub_desc);
- ad->universal_switch_feedback_voice->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_feedback_voice->item);
- }
-
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_STATE, (bool *)&list_item->chk_status, NULL, NULL);
-
- SETTING_TRACE_END;
-}
-
-static void __feedback_voice_switch_changed_cb(SettingAccessibility *ad, bool state)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Data argument is NULL");
-
- ad->feedback_voice_state = state;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_STATE, &state, NULL, NULL);
-
- if (ad->feedback_voice_state)
- str = _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_ON);
- else
- str = _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF);
-
- ad->universal_switch_feedback_voice->chk_status = state;
- elm_check_state_set(ad->universal_switch_feedback_voice->eo_check, state);
- free(ad->universal_switch_feedback_voice->sub_desc);
- ad->universal_switch_feedback_voice->sub_desc = strdup(str);
- elm_genlist_item_update(ad->universal_switch_feedback_voice->item);
-
- SETTING_TRACE_END;
-}
-
-static void __feedback_voice_speech_rate_changed_cb(SettingAccessibility *ad, int item_id)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Data argument is NULL");
- retm_if(item_id < 0 || item_id >= MEDIA_LEVEL_COUNT, "Invalid item_id");
-
- ad->feedback_voice_speech_rate = _media_level[item_id].id;
- double media_level = _media_level[item_id].id / 100.0;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_SPEECH_RATE, NULL, NULL, &media_level);
-
- free(ad->universal_switch_feedback_voice_speech_rate->sub_desc);
- ad->universal_switch_feedback_voice_speech_rate->sub_desc = strdup(_media_level[item_id].key);
- elm_genlist_item_update(ad->universal_switch_feedback_voice_speech_rate->item);
-
- SETTING_TRACE_END;
-}
-
-static void __feedback_voice_speech_volume_changed_cb(SettingAccessibility *ad, int item_id)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Data argument is NULL");
- retm_if(item_id < 0 || item_id >= MEDIA_LEVEL_COUNT, "Invalid item_id");
-
- ad->feedback_voice_speech_volume = _media_level[item_id].id;
- double media_level = _media_level[item_id].id / 100.0;
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_SPEECH_VOLUME, NULL, NULL, &media_level);
-
- free(ad->universal_switch_feedback_voice_speech_volume->sub_desc);
- ad->universal_switch_feedback_voice_speech_volume->sub_desc = strdup(_media_level[item_id].key);
- elm_genlist_item_update(ad->universal_switch_feedback_voice_speech_volume->item);
-
- SETTING_TRACE_END;
-}
-
-static void __feedback_voice_item_options_request_cb(SettingAccessibility *ad, int option_id, const char **title /*remove last arg*/)
-{
- SETTING_TRACE_BEGIN;
-
- char *page_title = NULL;
- int sel_value = 0;
- change_radio_item_cb cb = NULL;
- if (option_id == VOICE_FEEDBACK_SPEECH_RATE) {
- page_title = _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_VOICE_SPEECH_RATE);
- sel_value = ad->feedback_voice_speech_rate;
- cb = __feedback_voice_speech_rate_changed_cb;
- } else if (option_id == VOICE_FEEDBACK_VOLUME) {
- page_title = _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_VOICE_SPEECH_VOLUME);
- sel_value = ad->feedback_voice_speech_volume;
- cb = __feedback_voice_speech_volume_changed_cb;
- } else {
- SETTING_TRACE_END;
- return;
- }
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_RADIOS, page_title);
- setting_accessibility_universal_switch_settings_set_value_add_radio_item_change_cb(ad, cb);
- elm_naviframe_item_pop_cb_set(elm_naviframe_top_item_get(ad->md.naviframe), NULL, NULL);
-
- int i;
- for (i = 0; i < MEDIA_LEVEL_COUNT; i++)
- setting_accessibility_universal_switch_settings_set_value_radio_item_add(ad, _media_level[i].key, i, _media_level[i].id == sel_value);
-
- SETTING_TRACE_END;
-}
-
-static void __feedback_voice_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- char str[128] = {0,};
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_LIST_SWITCH, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_VOICE));
- setting_accessibility_universal_switch_settings_set_value_switch_set(ad, ad->feedback_voice_state);
- setting_accessibility_universal_switch_settings_set_value_description_set(ad, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SET_VALUE_DESC_FEEDBACK_VOICE));
- setting_accessibility_universal_switch_settings_set_value_add_switch_change_cb(ad, __feedback_voice_switch_changed_cb);
- int vconf_ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_STATE, setting_accessibility_universal_switch_settings_synchronize_page_with_vconf, ad);
- if (vconf_ret)
- SETTING_TRACE_ERROR("FAIL: vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_STATE)");
-
- snprintf(str, sizeof(str), "%d%%", ad->feedback_voice_speech_rate);
- ad->universal_switch_feedback_voice_speech_rate = setting_accessibility_universal_switch_settings_set_value_radio_list_item_add(ad,
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_VOICE_SPEECH_RATE), str, VOICE_FEEDBACK_SPEECH_RATE);
-
- snprintf(str, sizeof(str), "%d%%", ad->feedback_voice_speech_volume);
- ad->universal_switch_feedback_voice_speech_volume = setting_accessibility_universal_switch_settings_set_value_radio_list_item_add(ad,
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_VOICE_SPEECH_VOLUME), str, VOICE_FEEDBACK_VOLUME);
-
- setting_accessibility_universal_switch_settings_set_value_add_list_item_options_request_cb(ad, __feedback_voice_item_options_request_cb);
-
- SETTING_TRACE_END;
-}
-
-static void __manage_options_checkbox_cb(SettingAccessibility *ad, int item_id, bool state)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
- retm_if(item_id < 0 || item_id >= MANAGE_OPTIONS_COUNT, "Invalid item ID.");
- ad->manage_options_state[item_id] = state;
- __update_vconf_value(_manage_options_key_array[item_id], &state, NULL, NULL);
- SETTING_TRACE_END;
-}
-
-static void __manage_options_item_selected(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(event_info == NULL, "Invalid argument: event_info is NULL");
-
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- elm_genlist_item_selected_set(item, EINA_FALSE);
-
- Setting_GenGroupItem_Data *list_item = elm_object_item_data_get(item);
- setting_retm_if(list_item == NULL, "Data parameter is NULL");
-
- SettingAccessibility *ad = list_item->userdata;
- list_item->chk_status = ad->manage_options_state[list_item->chk_id] ? 1 : 0;
- setting_update_gl_item_chk_status(list_item, list_item->chk_status ? 0 : 1);
-
- __manage_options_checkbox_cb(ad, list_item->chk_id, list_item->chk_status);
- SETTING_TRACE_END;
-}
-
-static void __manage_options_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- int i;
- SettingAccessibility *ad = (SettingAccessibility *)data;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(ad == NULL, "Data argument is NULL");
-
- setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_SWITCHES, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE));
-
- for (i = 0; i < MANAGE_OPTIONS_COUNT; i++)
- setting_accessibility_universal_switch_settings_set_value_switch_item_add(ad, _manage_options[i].key,
- (i == MANAGE_OPTIONS_COUNT - 1) ? DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_CONTEXTUAL_MENU_DESC : NULL,
- _manage_options[i].id, ad->manage_options_state[i], __manage_options_item_selected);
-
- setting_accessibility_universal_switch_settings_set_value_add_switch_item_change_cb(ad, __manage_options_checkbox_cb);
-
- SETTING_TRACE_END;
-}
-
-static void __update_switches_count(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input argument is NULL");
- int switch_count = setting_accessibility_universal_switch_dbus_config_get_switch_count(&ad->config);
-
- const char *str = __get_value_unit_text(&switch_count, NULL, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SWITCHES), false, NULL);
- free(ad->universal_switch_settings_switches->sub_desc);
- ad->universal_switch_settings_switches->sub_desc = strdup(str);
-
- elm_genlist_item_update(ad->universal_switch_settings_switches->item);
-
- SETTING_TRACE_END;
-}
-
-static bool __get_vconf_value(const char *key, bool *bvalue, int *ivalue, double *dvalue)
-{
- SETTING_TRACE_BEGIN;
- int ret = VCONF_ERROR;
- retvm_if(key == NULL, false, "Key input argument is NULL");
-
- if (bvalue) {
- int tmp = 0;
- ret = vconf_get_bool(key, &tmp);
- *bvalue = tmp ? true : false;
- warn_if(ret != VCONF_OK, "Failed to get Universal switch vconf value: %s.", key);
- } else if (ivalue) {
- ret = vconf_get_int(key, ivalue);
- warn_if(ret != VCONF_OK, "Failed to get Universal switch vconf value: %s.", key);
- } else if (dvalue) {
- ret = vconf_get_dbl(key, dvalue);
- warn_if(ret != VCONF_OK, "Failed to get Universal switch vconf value: %s.", key);
- } else {
- warn_if(ret != VCONF_OK, "One of the input arguments must not be NULL");
- }
-
- SETTING_TRACE_END;
- return (ret == VCONF_OK);
-}
-
-static bool __update_vconf_value(const char *key, bool *bvalue, int *ivalue, double *dvalue)
-{
- SETTING_TRACE_BEGIN;
- int ret = VCONF_ERROR;
- retvm_if(key == NULL, false, "Key input argument is NULL");
- SETTING_TRACE_DEBUG("KEY: %s, %d, %d, %f", key, bvalue ? *bvalue : 0, ivalue ? *ivalue : 0, dvalue ? *dvalue : 0);
-
- if (bvalue) {
- bool b;
- __get_vconf_value(key, &b, NULL, NULL);
- retvm_if(b == *bvalue, false, "Value already set");
- ret = vconf_set_bool(key, *bvalue);
- warn_if(ret != VCONF_OK, "Failed to update %s value.", key);
- } else if (ivalue) {
- int i;
- __get_vconf_value(key, NULL, &i, NULL);
- retvm_if(i == *ivalue, false, "Value already set");
- ret = vconf_set_int(key, *ivalue);
- warn_if(ret != VCONF_OK, "Failed to update %s value.", key);
- } else if (dvalue) {
- double d;
- __get_vconf_value(key, NULL, NULL, &d);
- retvm_if(d == *dvalue, false, "Value already set");
- ret = vconf_set_dbl(key, *dvalue);
- warn_if(ret != VCONF_OK, "Failed to update %s value.", key);
- } else {
- warn_if(ret != VCONF_OK, "One of the input arguments must not be NULL");
- }
-
- SETTING_TRACE_END;
- return (ret == VCONF_OK);
-}
-
-static int __get_and_convert_vconf_value(const char *key)
-{
- SETTING_TRACE_BEGIN;
- double value;
- __get_vconf_value(key, NULL, NULL, &value);
- SETTING_TRACE_END;
- return value * 100;
-}
-
-static void __get_vconf_settings(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input argument is NULL");
- int ii;
-
- /* Defaults setting */
- ad->auto_scan = DEFAULT_AUTO_SCAN;
- ad->auto_scan_interval = DEFAULT_AUTO_SCAN_INTERVAL;
- ad->auto_scan_num = DEFAULT_AUTO_SCAN_NUMBER;
- ad->scan_method = DEFAULT_SCAN_METHOD;
- ad->scan_dir = DEFAULT_SCAN_DIR;
- ad->scan_pt_speed = DEFAULT_SCAN_PT_SPEED;
- ad->pause_on_first_state = DEFAULT_PAUSE_ON_FIRST_STATE;
- ad->pause_on_first_value = DEFAULT_PAUSE_ON_FIRST_VALUE;
- ad->tap_duration_state = DEFAULT_TAP_DURATION_STATE;
- ad->tap_duration_value = DEFAULT_TAP_DURATION_VALUE;
- ad->sgl_iaction_int_state = DEFAULT_SGL_IACTION_INT_STATE;
- ad->sgl_iaction_int_value = DEFAULT_SGL_IACTION_INT_VALUE;
- ad->auto_tap_state = DEFAULT_AUTO_TAP_STATE;
- ad->auto_tap_value = DEFAULT_AUTO_TAP_VALUE;
- ad->auto_move_int_state = DEFAULT_AUTO_MOVE_INT_STATE;
- ad->auto_move_int_value = DEFAULT_AUTO_MOVE_INT_VALUE;
- ad->auto_tap_kbd_state = DEFAULT_AUTO_TAP_KBD_STATE;
- ad->cursor_color = DEFAULT_FEEDBACK_CURSOR_COLOR;
- ad->feedback_sound_state = DEFAULT_FEEDBACK_SOUND_STATE;
- ad->feedback_sound_volume = DEFAULT_FEEDBACK_SOUND_VOLUME;
- ad->feedback_voice_state = DEFAULT_FEEDBACK_VOICE_STATE;
- ad->feedback_voice_speech_rate = DEFAULT_FEEDBACK_VOICE_SPEECH_RATE;
- ad->feedback_voice_speech_volume = DEFAULT_FEEDBACK_VOICE_SPEECH_VOLUME;
- for (ii = 0; ii < MANAGE_OPTIONS_COUNT; ++ii)
- ad->manage_options_state[ii] = DEFAULT_MANAGE_OPTIONS_VALUE;
-
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCAN_ENABLED, &ad->auto_scan, NULL, NULL);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCAN_INT, NULL, NULL, &ad->auto_scan_interval);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_NUM_OF_SCANS, NULL, &ad->auto_scan_num, NULL);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_METHOD, NULL, (int *)&ad->scan_method, NULL);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIR_VERTICAL, NULL, (int *)&ad->scan_dir, NULL);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_PT_SPEED, NULL, &ad->scan_pt_speed, NULL);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_PAUSE_ON_FIRST_STATE, &ad->pause_on_first_state, NULL, NULL);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_PAUSE_ON_FIRST_VALUE, NULL, NULL, &ad->pause_on_first_value);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_TAP_DURATION_STATE, &ad->tap_duration_state, NULL, NULL);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_TAP_DURATION_VALUE, NULL, NULL, &ad->tap_duration_value);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SGL_IACTION_INT_STATE, &ad->sgl_iaction_int_state, NULL, NULL);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SGL_IACTION_INT_VALUE, NULL, NULL, &ad->sgl_iaction_int_value);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_TAP_STATE, &ad->auto_tap_state, NULL, NULL);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_TAP_VALUE, NULL, NULL, &ad->auto_tap_value);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_MOVE_INT_STATE, &ad->auto_move_int_state, NULL, NULL);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_MOVE_INT_VALUE, NULL, NULL, &ad->auto_move_int_value);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_TAP_KBD_STATE, &ad->auto_tap_kbd_state, NULL, NULL);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_CURSOR_COLOR, NULL, &ad->cursor_color, NULL);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_STATE, &ad->feedback_voice_state, NULL, NULL);
- __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_STATE, &ad->feedback_sound_state, NULL, NULL);
- ad->feedback_sound_volume = __get_and_convert_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_VOLUME);
- ad->feedback_voice_speech_rate = __get_and_convert_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_SPEECH_RATE);
- ad->feedback_voice_speech_volume = __get_and_convert_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_SPEECH_VOLUME);
- for (ii = 0; ii < MANAGE_OPTIONS_COUNT; ++ii)
- __get_vconf_value(_manage_options_key_array[ii], &ad->manage_options_state[ii], NULL, NULL);
- SETTING_TRACE_END;
-}
-
-static Setting_GenGroupItem_Data *__add_menu_item(SettingAccessibility *ad, Evas_Object *genlist, const char *main_text, const char *sub_text,
- setting_call_back_func item_cb, bool chk, bool chk_state, setting_call_back_func chk_cb)
-{
- SETTING_TRACE_BEGIN;
- retvm_if(ad == NULL, NULL, "Input argument is NULL");
- retvm_if(genlist == NULL, NULL, "Input genlist argument is NULL");
- int item_type = SWALLOW_Type_INVALID;
- Setting_GenGroupItem_Data *item;
-
- if (chk)
- item_type = SWALLOW_Type_1ICON_1RADIO;
-
- item = setting_create_Gendial_field_def(genlist, &ad->itc_multiline_sub,
- item_cb, ad,
- item_type, NULL, NULL, (int)chk_state,
- main_text, sub_text,
- chk_cb);
-
- if (item)
- item->userdata = ad;
-
- SETTING_TRACE_END;
-
- return item;
-}
-
-static const char *__get_value_unit_text(int *ivalue, double *dvalue, const char *units, bool def_trigger, const char *def)
-{
- SETTING_TRACE_BEGIN;
- int len;
- static char str[128] = {0,};
-
- memset(str, 0, sizeof(str));
-
- if (def_trigger) {
- snprintf(str, sizeof(str), "%s", def);
- } else {
- if (ivalue)
- snprintf(str, sizeof(str), "%d ", *ivalue);
- else if (dvalue)
- snprintf(str, sizeof(str), "%.1f ", *dvalue);
-
- if (units) {
- len = strlen(units);
- if (strlen(str) + len >= sizeof(str))
- len = sizeof(str) - strlen(str) - 1;
-
- strncat(str, units, len);
- }
- }
-
- SETTING_TRACE_END;
- return &str[0];
-}
-
-static const char *__get_boolean_text(bool bvalue, const char *t_str, const char *f_str)
-{
- if (bvalue)
- return t_str;
- else
- return f_str;
-}
-
-static const char *__get_scan_method_text(scan_method_t method)
-{
- switch (method) {
- case SM_POINT: return _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_METHOD_POINT);
- case SM_ROW: return _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_METHOD_ROW);
- default: return _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_UNDEFINED);
- }
-}
-
-static const char *__get_scan_direction_text(scan_dir_t direction)
-{
- switch (direction) {
- case SD_TOP_BOTTOM: return _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_DIR_TB);
- case SD_BOTTOM_TOP: return _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_DIR_BT);
- default: return _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_UNDEFINED);
- }
-}
-
-static Evas_Object *__create_ctxpopup(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- Evas_Object *ctxpopup = NULL;
- retvm_if(ad == NULL, NULL, "Input parameter is NULL");
-
- ctxpopup = elm_ctxpopup_add(ad->md.naviframe);
- elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE);
- evas_object_data_set(ctxpopup, CTXPOPUP_DATA_AD, (void *)ad);
- eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_BACK, __ctxpopup_del_cb, NULL);
- evas_object_smart_callback_add(ctxpopup, "dismissed", __ctxpopup_del_cb, NULL);
-
- SETTING_TRACE_END;
- return ctxpopup;
-}
-
-static void __set_ctxpopup_position(SettingAccessibility *ad, Evas_Object *ctxpopup)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
- int y = 0;
- int h = 0;
-
- evas_pointer_output_xy_get(evas_object_evas_get(ad->md.window), NULL, &y);
- evas_object_geometry_get(ctxpopup, NULL, NULL, NULL, &h);
- evas_object_move(ctxpopup, -1, y + h);
- SETTING_TRACE_END;
-}
-
-static void __create_switches_group(SettingAccessibility *ad, Evas_Object *genlist)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input argument is NULL");
-
- ad->universal_switch_settings_switches = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SWITCHES), NULL, __switches_click_cb, false, false, NULL);
- __update_switches_count(ad);
-
- SETTING_TRACE_END;
-}
-
-static void __auto_scan_menu_item_selected(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(event_info == NULL, "Invalid argument: event_info is NULL");
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
-
- Setting_GenGroupItem_Data *list_item = elm_object_item_data_get(item);
- setting_retm_if(list_item == NULL, "Data parameter is NULL");
- setting_update_gl_item_chk_status(list_item, list_item->chk_status ? 0 : 1);
-
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
- ad->auto_scan = list_item->chk_status;
- elm_object_item_disabled_set(ad->universal_switch_auto_scan_int->item, (Eina_Bool)!ad->auto_scan);
- elm_object_item_disabled_set(ad->universal_switch_scans_num->item, (Eina_Bool)!ad->auto_scan);
- elm_object_item_disabled_set(ad->universal_switch_pause_on_first->item, (Eina_Bool)!ad->auto_scan);
- elm_object_item_disabled_set(ad->universal_switch_auto_move_int->item, (Eina_Bool)ad->auto_scan);
-
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCAN_ENABLED, (bool *)&list_item->chk_status, NULL, NULL);
- SETTING_TRACE_END;
-}
-
-static void __create_scanning_group(SettingAccessibility *ad, Evas_Object *genlist)
-{
- SETTING_TRACE_BEGIN;
- const char *str = NULL;
- retm_if(ad == NULL, "Input argument is NULL");
-
- setting_create_Gendial_field_titleItem(genlist, &itc_group_item, DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING, NULL);
-
- Setting_GenGroupItem_Data *item = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_AUTO_SCAN), NULL, __auto_scan_menu_item_selected, true, ad->auto_scan, __auto_scan_checkbox_cb);
- int vconf_ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCAN_ENABLED, __synchronize_auto_scan_with_vconf, item);
- if (vconf_ret)
- SETTING_TRACE_ERROR("FAIL: vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCAN_ENABLED)");
-
- str = __get_value_unit_text(NULL, &ad->auto_scan_interval, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS), false, NULL);
- ad->universal_switch_auto_scan_int = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_AUTO_SCAN_INT), str, __auto_scan_interval_cb, false, false, NULL);
-
- if (ad->universal_switch_auto_scan_int)
- elm_object_item_disabled_set(ad->universal_switch_auto_scan_int->item, (Eina_Bool)!ad->auto_scan);
-
- str = __get_value_unit_text(&ad->auto_scan_num, NULL, NULL, false, NULL);
- ad->universal_switch_scans_num = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_NUM_OF_SCANS), str, __scans_num_cb, false, false, NULL);
-
- if (ad->universal_switch_scans_num)
- elm_object_item_disabled_set(ad->universal_switch_scans_num->item, (Eina_Bool)!ad->auto_scan);
-
- str = __get_scan_method_text(ad->scan_method);
- ad->universal_switch_scan_method = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_METHOD), str, __scan_method_click_cb, false, false, NULL);
-
- str = __get_scan_direction_text(ad->scan_dir);
- ad->universal_switch_scan_dir = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_SCAN_DIR), str, __scan_dir_click_cb, false, false, NULL);
-
- str = __get_value_unit_text(&ad->scan_pt_speed, NULL, NULL, false, NULL);
- ad->universal_switch_scan_speed = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SCANNING_PT_SPEED), str, __scan_speed_cb, false, false, NULL);
-
- SETTING_TRACE_END;
-}
-
-
-static void __auto_tap_kbd_menu_item_selected(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(event_info == NULL, "Invalid argument: event_info is NULL");
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
-
- Setting_GenGroupItem_Data *list_item = elm_object_item_data_get(item);
- setting_retm_if(list_item == NULL, "Data parameter is NULL");
- setting_update_gl_item_chk_status(list_item, list_item->chk_status ? 0 : 1);
-
- SettingAccessibility *ad = (SettingAccessibility *)list_item->userdata;
- ad->auto_tap_kbd_state = list_item->chk_status;
-
- __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_TAP_KBD_STATE, (bool *)&list_item->chk_status, NULL, NULL);
- SETTING_TRACE_END;
-}
-
-static void __create_additional_settings_group(SettingAccessibility *ad, Evas_Object *genlist)
-{
- const char *str = NULL;
-
- setting_create_Gendial_field_titleItem(genlist, &itc_group_item, DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS, NULL);
-
- str = __get_value_unit_text(NULL, &ad->pause_on_first_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->pause_on_first_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
- ad->universal_switch_pause_on_first = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_PAUSE_ON_FIRST),
- str, __pause_on_first_cb, true, ad->pause_on_first_state, __pause_on_first_checkbox_cb);
-
- if (ad->universal_switch_pause_on_first)
- elm_object_item_disabled_set(ad->universal_switch_pause_on_first->item, (Eina_Bool)!ad->auto_scan);
-
- str = __get_value_unit_text(NULL, &ad->tap_duration_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->tap_duration_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
- ad->universal_switch_tap_duration = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_TAP_DURATION),
- str, __tap_duration_cb, true, ad->tap_duration_state, __tap_duration_checkbox_cb);
-
- str = __get_value_unit_text(NULL, &ad->sgl_iaction_int_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->sgl_iaction_int_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
- ad->universal_switch_sgl_iaction_int = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_SGL_IACTION_INT),
- str, __sgl_iaction_int_cb, true, ad->sgl_iaction_int_state, __sgl_iaction_int_checkbox_cb);
-
- str = __get_value_unit_text(NULL, &ad->auto_tap_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->auto_tap_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
- ad->universal_switch_auto_tap = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_AUTO_TAP),
- str, __auto_tap_cb, true, ad->auto_tap_state, __auto_tap_checkbox_cb);
-
- str = __get_value_unit_text(NULL, &ad->auto_move_int_value, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS),
- !ad->auto_move_int_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
- ad->universal_switch_auto_move_int = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_AUTO_MOVE_INT),
- str, __auto_move_int_cb, true, ad->auto_move_int_state, __auto_move_interval_checkbox_cb);
-
- if (ad->universal_switch_auto_move_int)
- elm_object_item_disabled_set(ad->universal_switch_auto_move_int->item, (Eina_Bool)ad->auto_scan);
-
- __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_AUTO_TAP_KBD),
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_ADD_SETTINGS_AUTO_TAP_KBD_SUB), __auto_tap_kbd_menu_item_selected, true, ad->auto_tap_kbd_state, __auto_tap_kbd_checkbox_cb);
-}
-
-static void __create_feedback_group(SettingAccessibility *ad, Evas_Object *genlist)
-{
- int i;
- const char *str = "Undefined";
-
- setting_create_Gendial_field_titleItem(genlist, &itc_group_item, DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK, NULL);
-
- for (i = 0; i < CURSOR_COLORS_COUNT; i++)
- if (_cursor_color[i].id == ad->cursor_color) {
- str = _cursor_color[i].key;
- break;
- }
-
- ad->universal_switch_feedback_cursor_cl = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_CURSOR_CL),
- str, __cursor_color_cb, false, false, NULL);
-
- str = __get_boolean_text(ad->feedback_sound_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_ON),
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
- ad->universal_switch_feedback_sound = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_SOUND),
- str, __feedback_sound_cb, true, ad->feedback_sound_state, __feedback_sound_checkbox_cb);
- int vconf_ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_STATE, __synchronize_sound_feedback_with_vconf, ad->universal_switch_feedback_sound);
- if (vconf_ret)
- SETTING_TRACE_ERROR("FAIL: vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_STATE)");
-
- str = __get_boolean_text(ad->feedback_voice_state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_ON),
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF));
- ad->universal_switch_feedback_voice = __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_VOICE),
- str, __feedback_voice_cb, true, ad->feedback_voice_state, __feedback_voice_checkbox_cb);
- vconf_ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_STATE, __synchronize_voice_feedback_with_vconf, ad->universal_switch_feedback_voice);
- if (vconf_ret)
- SETTING_TRACE_ERROR("FAIL: vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_STATE)");
-}
-
-static void __create_manage_group(SettingAccessibility *ad, Evas_Object *genlist)
-{
- __add_menu_item(ad, genlist, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE),
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_SUB), __manage_options_cb, false, false, NULL);
-}
-
-void setting_accessibility_universal_switch_settings_page_create(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
- ad->launched_by_app_control = false;
- ad->md.naviframe_it = NULL;
- Evas_Object *genlist = elm_genlist_add(ad->md.naviframe);
- retm_if(genlist == NULL, "Cannot set genlist object as content of layout");
-
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
- elm_object_style_set(genlist, "dialogue");
-
- __get_vconf_settings(ad);
- __create_switches_group(ad, genlist);
- __create_scanning_group(ad, genlist);
- __create_additional_settings_group(ad, genlist);
- __create_feedback_group(ad, genlist);
- __create_manage_group(ad, genlist);
-
- Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->md.naviframe, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS), NULL, NULL, genlist, NULL);
- ad->universal_switch_settings_item = navi_it;
- elm_naviframe_item_pop_cb_set(navi_it, __naviframe_pop_cb, ad);
- elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE, EINA_TRUE);
-
- Evas_Object *back_btn = setting_create_button(ad->md.naviframe, NULL, NAVI_BACK_ARROW_BUTTON_STYLE, __back_cb, ad);
- elm_layout_content_set(ad->md.naviframe, "prev_btn", back_btn);
-
- SETTING_TRACE_END;
-}
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Michal Pawluk <m.pawluk@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <app_preference.h>
-#include <efl_extension.h>
-
-#include "setting-accessibility-universal-switch-settings.h"
-#include "setting-accessibility-universal-switch-add-switch.h"
-#include "setting-accessibility-universal-switch-remove-switch.h"
-#include "setting-accessibility-universal-switch-update-switch.h"
-
-
-static void __update_switches_list(SettingAccessibility *ad, Evas_Object *genlist);
-
-static void __back_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = data;
-
- elm_naviframe_item_pop(ad->md.naviframe);
-
- SETTING_TRACE_END;
-}
-
-static Eina_Bool __naviframe_pop_cb(void *data, Elm_Object_Item *it)
-{
- SETTING_TRACE_BEGIN;
- retv_if(data == NULL, EINA_TRUE);
- SettingAccessibility *ad = data;
-
- if (ad->universal_switch_switches_back)
- ad->universal_switch_switches_back(ad);
-
- ad->universal_switch_switches_back = NULL;
- ad->universal_switch_switches = NULL;
- ad->md.naviframe_it = NULL;
-
- SETTING_TRACE_END;
- return EINA_TRUE;
-}
-
-static Setting_GenGroupItem_Data *__add_mapped_switch_menu_item(SettingAccessibility *ad, Evas_Object *genlist, const char *main_text,
- const char *sub_text, setting_call_back_func item_cb, void *user_data)
-{
- SETTING_TRACE_BEGIN;
- retvm_if(ad == NULL, NULL, "Input argument is NULL");
- retvm_if(genlist == NULL, NULL, "Input genlist argument is NULL");
- Setting_GenGroupItem_Data *item;
-
- item = setting_create_Gendial_field_def(genlist, &itc_2text_1icon_3,
- item_cb, ad,
- SWALLOW_Type_INVALID, NULL, NULL, 0,
- main_text, sub_text,
- NULL);
-
- if (item)
- item->userdata = user_data;
-
- SETTING_TRACE_END;
-
- return item;
-}
-
-void setting_accessibility_universal_switch_add_switch_cb(SettingAccessibility *ad, const char *switch_id, switch_action_t switch_action, const char *switch_name)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- SETTING_TRACE_DEBUG("Add switch, id: %s, name: %s, action: %s.", switch_id, switch_name, switch_action);
- setting_accessibility_universal_switch_dbus_config_addSwitchConfigurationItem(&ad->config, switch_id, switch_name, switch_action);
- __update_switches_list(ad, ad->universal_switch_switches);
-
- SETTING_TRACE_END;
-}
-
-
-static void __switch_removed_cb(SettingAccessibility *ad, const char *switch_id, switch_action_t switch_action, const char *switch_name)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- SETTING_TRACE_DEBUG("Switch removed, name: %s, id: %s, action: %s.", switch_name, switch_id, switch_action);
- setting_accessibility_universal_switch_dbus_config_removeSwitchConfigurationItem(&ad->config, switch_id);
- __update_switches_list(ad, ad->universal_switch_switches);
-
- SETTING_TRACE_END;
-}
-
-static void __switch_updated_cb(SettingAccessibility *ad, const char *switch_id, switch_action_t switch_action, const char *switch_name)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- SETTING_TRACE_DEBUG("Switch updated, id: %s, name: %s, action: %s.", switch_id, switch_name, switch_action);
- setting_accessibility_universal_switch_dbus_config_updateSwitchConfigurationItem(&ad->config, switch_id, switch_name, switch_action);
- __update_switches_list(ad, ad->universal_switch_switches);
-
- SETTING_TRACE_END;
-}
-
-static void __switch_click_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- Elm_Object_Item *item = event_info;
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
- retm_if(data == NULL, "Data argument is NULL");
-
- Setting_GenGroupItem_Data *list_item = elm_object_item_data_get(item);
- UniversalSwitchConfigurationItem *config_item = list_item->userdata;
-
- SettingAccessibility *ad = data;
- setting_accessibility_universal_switch_update_switch_callback_attach(ad, __switch_updated_cb);
- setting_accessibility_universal_switch_update_switch_page_create(ad, config_item);
-
- SETTING_TRACE_END;
-}
-
-
-
-static void __add_switch_click_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = data;
-
- setting_accessibility_universal_switch_add_switch_new_switch_callback_attach(ad, setting_accessibility_universal_switch_add_switch_cb);
- setting_accessibility_universal_switch_add_switch_page_create(ad);
-
- SETTING_TRACE_END;
-}
-
-
-static void __create_remove_page_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = data;
-
- setting_accessibility_universal_switch_remove_switch_page_create(ad);
- setting_accessibility_universal_switch_remove_switch_callback_attach(ad, __switch_removed_cb);
-
- SETTING_TRACE_END;
-}
-
-static void __create_switches_group(SettingAccessibility *ad, Evas_Object *genlist)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input argument is NULL");
-
- Eina_Array_Iterator iterator;
- UniversalSwitchConfigurationItem *config_item;
- int i;
- EINA_ARRAY_ITER_NEXT(ad->config.configuration_items, i, config_item, iterator) {
- SETTING_TRACE_DEBUG("Switch: %d. switch_id: %s, provider_id: %s, user_name: %s, activity_type: %s.", i, config_item->switch_id, config_item->provider_id, config_item->user_name, config_item->activity_type);
- const char * activity_name = setting_accessibility_universal_switch_dbus_config_get_activity_name(&ad->config, config_item->activity_type);
- __add_mapped_switch_menu_item(ad, genlist, config_item->user_name, activity_name, __switch_click_cb, config_item);
- }
-
- SETTING_TRACE_END;
-}
-
-static void __create_add_switch_button_in_genlist(SettingAccessibility *ad, Evas_Object *genlist)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input argument is NULL");
-
- Setting_GenGroupItem_Data *item = setting_create_Gendial_field_def(genlist, &itc_1text_1icon_3,
- __add_switch_click_cb, ad,
- SWALLOW_Type_1ICON_1IMAGE, ACCESSIBILITY_UNIVERSAL_SWITCH_PLUS_ICON, NULL, 0,
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SWITCHES_ADD_SWITCH), NULL,
- false);
-
- if (item)
- item->userdata = ad;
-
- SETTING_TRACE_END;
-}
-
-static void __update_switches_list(SettingAccessibility *ad, Evas_Object *genlist)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input argument is NULL");
- retm_if(genlist == NULL, "Input argument is NULL");
-
- elm_genlist_clear(genlist);
- __create_switches_group(ad, genlist);
- __create_add_switch_button_in_genlist(ad, genlist);
- elm_object_disabled_set(ad->remove_switches_page_button, eina_array_count_get(ad->config.configuration_items) == 0);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_switches_page_create(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
- Evas_Object *genlist = elm_genlist_add(ad->md.naviframe);
- retm_if(genlist == NULL, "Cannot set genlist object as content of layout");
-
- ad->md.naviframe_it = elm_naviframe_item_push(ad->md.naviframe, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_SWITCHES), NULL, NULL, genlist, NULL);
- elm_naviframe_item_pop_cb_set(ad->md.naviframe_it, __naviframe_pop_cb, ad);
- elm_object_item_domain_text_translatable_set(ad->md.naviframe_it, SETTING_PACKAGE, EINA_TRUE);
-
- Evas_Object *back_btn = setting_create_button(ad->md.naviframe, NULL, NAVI_BACK_ARROW_BUTTON_STYLE, __back_cb, ad);
- elm_layout_content_set(ad->md.naviframe, "prev_btn", back_btn);
-
- ad->remove_switches_page_button = setting_create_button(ad->md.naviframe, _(DEVOPTION_STR_ACCESSIBILITY_DELETE_CAPS), "naviframe/title_right", __create_remove_page_cb, ad);
- elm_layout_content_set(ad->md.naviframe, "title_right_btn", ad->remove_switches_page_button);
-
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
- elm_object_style_set(genlist, "dialogue");
-
- __update_switches_list(ad, genlist);
- ad->universal_switch_switches = genlist;
-
- SETTING_TRACE_END;
-}
-void setting_accessibility_universal_switch_switches_callback_attach(SettingAccessibility *ad, back_cb callback)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- ad->universal_switch_switches_back = callback;
- SETTING_TRACE_END;
-}
-
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Pawel Kurowski <p.kurowski2@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "setting-accessibility-universal-switch-update-switch.h"
-#include "setting-accessibility-universal-switch-action.h"
-#include "setting-accessibility-universal-switch-settings-set-value.h"
-
-static void __update_switch_action_cb(SettingAccessibility *ad, switch_action_t action, void *user_data)
-{
- SETTING_TRACE_BEGIN;
-
- if (ad->switch_updated_cb) {
- UniversalSwitchConfigurationItem *config_item = user_data;
- ad->switch_updated_cb(ad, config_item->switch_id, action, config_item->user_name);
- }
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_update_switch_page_create(SettingAccessibility *ad, UniversalSwitchConfigurationItem *config_item)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- if (strlen(config_item->provider_id) == strlen(ACCESSIBILITY_UNIVERSAL_SWITCH_ACCESSORIES_SWITCH_PROVIDER)
- && !strncmp(config_item->provider_id, ACCESSIBILITY_UNIVERSAL_SWITCH_ACCESSORIES_SWITCH_PROVIDER, strlen(ACCESSIBILITY_UNIVERSAL_SWITCH_ACCESSORIES_SWITCH_PROVIDER)) != 0) {
-
- ad->config_item_to_update.activity_type = strdup(config_item->activity_type);
- ad->config_item_to_update.switch_id = strdup(config_item->switch_id);
- ad->config_item_to_update.user_name = strdup(config_item->user_name);
- setting_accessibility_universal_switch_settings_create_update_accesories_switch_page(ad);
- } else {
- setting_accessibility_universal_switch_action_page_create(ad);
- setting_accessibility_universal_switch_action_callback_attach(ad, __update_switch_action_cb, config_item);
- }
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_update_switch_callback_attach(SettingAccessibility *ad, universal_switch_updated_cb cb)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- ad->switch_updated_cb = cb;
-
- SETTING_TRACE_END;
-}
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
- *
- * Contact: Michal Pawluk <m.pawluk@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <app_preference.h>
-#include "setting-accessibility-universal-switch.h"
-#include "setting-accessibility-universal-switch-settings.h"
-#include "setting-accessibility-universal-switch-add-switch.h"
-#include "setting-accessibility-universal-switch-action.h"
-#include "setting-accessibility-universal-switch-switches.h"
-
-
-static void __universal_switch_vconf_key_update(int state, void* data);
-static bool __universal_switch_state_set(bool state);
-static void __universal_switch_state_display(SettingAccessibility *ad, bool state);
-static void __universal_switch_new_switch_add(SettingAccessibility *ad);
-
-static void __universal_switch_vconf_key_change_cb(keynode_t *node, void *user_data)
-{
- SETTING_TRACE_BEGIN;
- int state;
- SettingAccessibility *ad = (SettingAccessibility *)user_data;
-
- state = vconf_keynode_get_bool(node);
- if (state >= 0)
- __universal_switch_state_display(ad, state);
- else
- SETTING_TRACE_ERROR("vconf_keynode_get_bool(node) failed");
-
- SETTING_TRACE_END;
-}
-
-static void __universal_switch_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
-
- list_item->chk_status = elm_check_state_get(obj);
-
- SETTING_TRACE_DEBUG("check_status: %i", list_item->chk_status);
- __universal_switch_vconf_key_update(list_item->chk_status, list_item->userdata);
-
- SETTING_TRACE_END;
-}
-
-static void __universal_switch_off_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Invalid argument: data is NULL");
- retm_if(event_info == NULL, "Invalid argument: event_info is NULL");
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
-
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)elm_object_item_data_get(item);
- setting_retm_if(data == NULL, "Data parameter is NULL");
- setting_update_gl_item_chk_status(list_item, list_item->chk_status ? 0 : 1);
- __universal_switch_vconf_key_update(list_item->chk_status ? 1 : 0, list_item->userdata);
- SETTING_TRACE_END;
-}
-
-static void __universal_switch_started(void * data)
-{
- SETTING_TRACE_DEBUG("universal-switch started");
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- if (ad->universal_switch_off_checkbox)
- elm_object_item_disabled_set(ad->universal_switch_off_checkbox->item, EINA_FALSE);
-
- if (ad->universal_switch_settings_btn)
- elm_object_disabled_set(ad->universal_switch_settings_btn, EINA_FALSE);
-
- if (ad->launched_by_app_control)
- setting_accessibility_universal_switch_settings_page_create(ad);
-}
-
-static void __start_universal_switch(SettingAccessibility *ad)
-{
- SETTING_TRACE_DEBUG("Starting universal-switch");
- if (vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_CONFIGURATION_SERVICE, TRUE) != VCONF_OK) {
- LOGE("Failed to set vconf key %s", VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_CONFIGURATION_SERVICE);
- return;
- }
-
- setting_accessibility_universal_switch_dbus_config_init(&ad->config, __universal_switch_started, ad);
-}
-
-static void __stop_universal_switch(SettingAccessibility *ad)
-{
- setting_accessibility_universal_switch_dbus_config_shutdown(&ad->config);
-
- SETTING_TRACE_DEBUG("Stopping universal-switch");
- if (vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_CONFIGURATION_SERVICE, FALSE) != VCONF_OK) {
- LOGE("Failed to set vconf key %s", VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_CONFIGURATION_SERVICE);
- } else {
- SETTING_TRACE_DEBUG("universal-switch stopped");
- }
-
-}
-
-static Eina_Bool __naviframe_pop_cb(void *data, Elm_Object_Item *it)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE, __universal_switch_vconf_key_change_cb);
- __stop_universal_switch(ad);
-
- ad->universal_switch_off_checkbox = NULL;
- ad->universal_switch_settings_btn = NULL;
- ad->universal_switch_main_item = NULL;
-
- SETTING_TRACE_END;
- return EINA_TRUE;
-}
-
-static void __back_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data argument is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
-
- elm_naviframe_item_pop(ad->md.naviframe);
-
- SETTING_TRACE_END;
-}
-
-static void __universal_switch_popup_response_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
- int response_type = btn_type(obj);
-
- SETTING_TRACE_DEBUG("popup response_type: %i", response_type);
-
- switch (response_type) {
- case POPUP_RESPONSE_OK:
- __universal_switch_new_switch_add(ad);
- break;
- case POPUP_RESPONSE_CANCEL:
- elm_check_state_set(ad->universal_switch_off_checkbox->eo_check, EINA_FALSE);
- SETTING_TRACE_DEBUG("Adding new switch refused");
- break;
- default:
- SETTING_TRACE_DEBUG("Unknown popup response");
- break;
- }
-
- evas_object_del(ad->popup);
- ad->popup = NULL;
- SETTING_TRACE_END;
-}
-
-static void __universal_switch_new_switch_added_cb(SettingAccessibility *ad, const char *switch_id, switch_action_t switch_action, const char *switch_name)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
- setting_accessibility_universal_switch_add_switch_cb(ad, switch_id, switch_action, switch_name);
- int switch_count = setting_accessibility_universal_switch_dbus_config_get_switch_count(&ad->config);
-
- if (switch_count == 1)
- __universal_switch_state_set(true);
-
- SETTING_TRACE_DEBUG("New switch added. Id: %s, name: %s, action: %s. Switches count: %d", switch_id, switch_name, switch_action, switch_count);
- SETTING_TRACE_END;
-}
-
-static void __universal_switch_vconf_key_update(int state, void *data)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- SettingAccessibility *ad = (SettingAccessibility *)data;
- int switch_count = setting_accessibility_universal_switch_dbus_config_get_switch_count(&ad->config);
-
- if (state && switch_count == 0) {
- elm_check_state_set(ad->universal_switch_off_checkbox->eo_check, EINA_FALSE);
- ad->md.naviframe_it = elm_naviframe_top_item_get(ad->md.naviframe);
- ad->popup = setting_create_popup(data, ad->md.window,
- NULL, "To turn on Universal switch, tap ADD SWITCH and add at least one switch",
- __universal_switch_popup_response_cb, 0,
- true,
- true,
- 2, DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_POPUP_ADD, DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_CANCEL);
- } else {
- __universal_switch_state_set(state);
- }
-
- SETTING_TRACE_END;
-}
-
-static bool __universal_switch_state_set(bool state)
-{
- SETTING_TRACE_BEGIN;
- int ret = vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE, state);
- retvm_if(ret != VCONF_OK, false, "Failed to set Universal switch state.");
-
- SETTING_TRACE_END;
- return true;
-}
-
-static void __universal_switch_state_display(SettingAccessibility *ad, bool state)
-{
- SETTING_TRACE_BEGIN;
- char *item_label = _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ON);
- if (!state)
- item_label = _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_OFF);
-
- if (item_label && strlen(item_label) > 0) {
- free(ad->universal_switch_off_checkbox->keyStr);
- ad->universal_switch_off_checkbox->keyStr = strdup(item_label);
- }
-
- setting_update_gl_item_chk_status(ad->universal_switch_off_checkbox, (int) state);
-
- elm_genlist_item_update(ad->universal_switch_off_checkbox->item);
- SETTING_TRACE_END;
-}
-
-static void __universal_switch_new_switch_add(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- setting_accessibility_universal_switch_add_switch_new_switch_callback_attach(ad, __universal_switch_new_switch_added_cb);
- setting_accessibility_universal_switch_add_switch_page_create(ad);
-
- SETTING_TRACE_END;
-}
-
-static void __create_settings_page(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = data;
- retm_if(ad == NULL, "Input parameter is NULL");
-
- setting_accessibility_universal_switch_settings_page_create(ad);
-
- SETTING_TRACE_END;
-}
-
-void setting_accessibility_universal_switch_page_create(SettingAccessibility *ad)
-{
- SETTING_TRACE_BEGIN;
- int ret;
- int state = false;
- ad->md.naviframe_it = NULL;
- Evas_Object *genlist = elm_genlist_add(ad->md.naviframe);
- retm_if(genlist == NULL, "Cannot set genlist object as content of layout");
-
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
- elm_object_style_set(genlist, "dialogue");
- elm_genlist_clear(genlist);
-
- ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE, &state);
- if (ret == VCONF_OK) {
- ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE, __universal_switch_vconf_key_change_cb, ad);
- warn_if(ret != VCONF_OK, "FAIL: vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE)");
- } else {
- SETTING_TRACE("FAIL: vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE)");
- }
-
- if (ad->launched_by_app_control) {
- __start_universal_switch(ad);
- return;
- }
-
- ad->universal_switch_off_checkbox = setting_create_Gendial_field_def(
- genlist, &itc_1text_1icon,
- __universal_switch_off_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_1ICON_1RADIO, NULL,
- NULL, state, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_OFF),
- NULL, __universal_switch_checkbox_cb);
-
- if (ad->universal_switch_off_checkbox) {
- ad->universal_switch_off_checkbox->userdata = ad;
- ad->universal_switch_off_checkbox->chk_status = state;
- __BACK_POINTER_SET(ad->universal_switch_off_checkbox);
- elm_object_item_disabled_set(ad->universal_switch_off_checkbox->item, EINA_TRUE);
- }
-
- ad->universal_switch_comment = setting_create_Gendial_field_def(
- genlist, &ad->itc_multiline_sub,
- NULL, ad, SWALLOW_Type_INVALID, NULL,
- NULL, 0,
- NULL,
- _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_COMMENT),
- NULL);
-
- if (ad->universal_switch_comment) {
- ad->universal_switch_comment->userdata = ad;
- __BACK_POINTER_SET(ad->universal_switch_comment);
- elm_genlist_item_select_mode_set(ad->universal_switch_comment->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- }
-
- ad->md.naviframe_it = elm_naviframe_item_push(ad->md.naviframe, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH), NULL, NULL, genlist, NULL);
- elm_object_item_domain_text_translatable_set(ad->md.naviframe_it, SETTING_PACKAGE, EINA_TRUE);
- elm_naviframe_item_pop_cb_set(ad->md.naviframe_it, __naviframe_pop_cb, ad);
- ad->universal_switch_main_item = ad->md.naviframe_it;
-
- char *title_str;
- char *str1 = "<font_size=30>";
- char *str2 = _(DEVOPTION_STR_ACCESSIBILITY_SETTINGS_CAPS);
- char *str3 = "</font_size>";
- size_t title_size = strlen(str1) + strlen(str2) + strlen(str3) + 1;
- if ((title_str = malloc(title_size)) != NULL)
- snprintf(title_str, title_size, "%s%s%s", str1, str2, str3);
-
- ad->universal_switch_settings_btn = setting_create_button(ad->md.naviframe, title_str, "naviframe/title_right", __create_settings_page, ad);
- if (ad->universal_switch_settings_btn)
- elm_object_disabled_set(ad->universal_switch_settings_btn, EINA_TRUE);
- elm_layout_content_set(ad->md.naviframe, "title_right_btn", ad->universal_switch_settings_btn);
- free(title_str);
-
- Evas_Object *back_btn = setting_create_button(ad->md.naviframe, NULL, NAVI_BACK_ARROW_BUTTON_STYLE, __back_cb, ad);
- elm_layout_content_set(ad->md.naviframe, "prev_btn", back_btn);
-
- __start_universal_switch(ad);
-
- SETTING_TRACE_END;
-}
+++ /dev/null
-/*
- * accessibility
- *
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Contact: Tomasz Olszak <t.olszak@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <app.h>
-#include <appcore-common.h>
-
-#include "setting-cfg.h"
-#include "setting-debug.h"
-#include "setting-accessibility.h"
-#include "setting-accessibility-universal-switch.h"
-#include "setting-accessibility-universal-switch-settings.h"
-
-#define SETTING_ACCESSIBILITY_PACKAGE_NAME "org.tizen.setting-accessibility"
-
-static const char *get_tts_error(int r)
-{
- switch (r) {
- case TTS_ERROR_NONE: {
- return "no error";
- }
- case TTS_ERROR_INVALID_PARAMETER: {
- return "inv param";
- }
- case TTS_ERROR_OUT_OF_MEMORY: {
- return "out of memory";
- }
- case TTS_ERROR_OPERATION_FAILED: {
- return "oper failed";
- }
- case TTS_ERROR_INVALID_STATE: {
- return "inv state";
- }
- default: {
- return "uknown error";
- }
- }
-}
-
-void
-state_changed_cb(tts_h tts, tts_state_e previous, tts_state_e current, void* user_data)
-{
- SETTING_TRACE_DEBUG(" previous = %d current = %d", previous, current);
-}
-
-int
-create_tts_handle(SettingAccessibility *ad)
-{
- int ret;
- ret = tts_create(&(ad->tts));
- if (ret != 0) {
- SETTING_TRACE_DEBUG("tts_create %d", get_tts_error(ret));
- return -1;
- }
- ret = tts_set_mode(ad->tts, TTS_MODE_DEFAULT);
- if (ret != 0) {
- SETTING_TRACE_DEBUG("tts_set_mode %d", get_tts_error(ret));
- return -1;
- }
- ret = tts_prepare(ad->tts);
- if (ret != 0) {
- SETTING_TRACE_DEBUG("tts_prepare %d", get_tts_error(ret));
- return -1;
- }
- ret = tts_set_state_changed_cb(ad->tts, state_changed_cb, ad);
- if (ret != 0) {
- SETTING_TRACE_DEBUG("tts_set_state_changed_cb %d", get_tts_error(ret));
- return -1;
- }
- return 0;
-}
-
-void
-destroy_tts_handle(SettingAccessibility *ad)
-{
- int ret;
- ret = tts_destroy(ad->tts); /* tts is the TTS handle */
- if (ret != 0)
- SETTING_TRACE_DEBUG("Fail to tts destroy");
-}
-
-static char *_universal_switch_gendial_new_text_get(void *data, Evas_Object *obj, const char *part)
-{
- Setting_GenGroupItem_Data *item_data = data;
- if (!safeStrCmp(item_data->itc, "multiline")) {
- if (!safeStrCmp(part, "elm.text")) {
- if (item_data->keyStr) {
- return (char *)g_strdup(
- _(item_data->keyStr));
- }
- } else if (!safeStrCmp(part, "elm.text.multiline")) {
- if (item_data->sub_desc) {
- return (char *)g_strdup(
- _(item_data->sub_desc));
- }
- }
- } else {
- if (!safeStrCmp(part, "elm.text")) {
- if (item_data->keyStr) {
- return (char *)g_strdup(_(item_data->keyStr));
- }
- } else if (!safeStrCmp(part, "elm.text.sub")) {
- if (item_data->sub_desc) {
- return (char *)g_strdup(_(item_data->sub_desc));
- }
- }
- }
- return NULL;
-}
-
-static bool on_app_create(void *priv)
-{
- SETTING_TRACE_BEGIN;
- setting_retvm_if((NULL == priv), NULL, "NULL == priv");
- SettingAccessibility *ad = priv;
- ad->launched_by_app_control = false;
- ad->universal_switch_main_item = NULL;
- ad->universal_switch_settings_item = NULL;
- ad->itc_multiline_sub = itc_multiline_text;
- ad->itc_multiline_sub.func.text_get = _universal_switch_gendial_new_text_get;
- int ret;
-
- if (app_init(&ad->md, SETTING_ACCESSIBILITY_PACKAGE_NAME)
- != SETTING_RETURN_SUCCESS) {
- SETTING_TRACE_ERROR("Cannot initialize application");
- return false;
- }
-
- /* register view node table */
- setting_view_node_table_intialize();
- setting_view_node_table_register(&setting_view_accessibility_main,
- NULL);
-
- setting_view_node_set_cur_view(&setting_view_accessibility_main);
-
- /* creating a view. */
- ret = create_tts_handle(ad);
- if (ret == -1) destroy_tts_handle(ad);
- setting_view_create(&setting_view_accessibility_main, (void *)ad);
-
- evas_object_show(ad->md.window);
-
- return true;
-}
-
-static void on_app_pause(void *priv)
-{
- SETTING_TRACE_BEGIN;
- SETTING_TRACE_END;
-}
-
-static void on_app_resume(void *priv)
-{
- SETTING_TRACE_BEGIN;
- SETTING_TRACE_END;
-}
-
-static void on_app_terminate(void *priv)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = priv;
- destroy_tts_handle(ad);
- setting_view_destroy(&setting_view_accessibility_main, ad);
- SETTING_TRACE_END;
-}
-
-static void on_app_control(app_control_h service, void *priv)
-{
- SETTING_TRACE_BEGIN;
- SettingAccessibility *ad = priv;
- retm_if(!ad, "Data parameter is NULL");
- char *value = NULL;
- if (!app_control_get_extra_data(service, "SHOW_US_SETTINGS", &value) && value != NULL && !strcmp(value, "1")) {
- ad->launched_by_app_control = true;
- if (ad->universal_switch_settings_item) {
- elm_naviframe_item_pop_to(ad->universal_switch_settings_item);
- } else if (ad->universal_switch_main_item) {
- elm_naviframe_item_pop_to(ad->universal_switch_main_item);
- setting_accessibility_universal_switch_settings_page_create(ad);
- } else {
- setting_accessibility_universal_switch_page_create(ad);
- }
- }
- free(value);
- SETTING_TRACE_END;
-}
-
-static void _lang_changed(app_event_info_h event_info, void *data)
-{
- char *lang = NULL;
- if (app_event_get_language(event_info, &lang) == APP_ERROR_NONE) {
- SETTING_TRACE_DEBUG("Setting - language is changed : %s", lang);
- elm_language_set(lang);
- elm_config_all_flush();
- free(lang);
- } else {
- SETTING_TRACE_ERROR("Cannot get language from event_info");
- }
-}
-
-EXPORT_PUBLIC
-int main(int argc, char *argv[])
-{
- app_event_handler_h handlers[5] = {NULL, };
- ui_app_lifecycle_callback_s ops = {
- .create = on_app_create,
- .pause = on_app_pause,
- .resume = on_app_resume,
- .terminate = on_app_terminate,
- .app_control = on_app_control,
- };
- SettingAccessibility app_data;
-
- ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY],
- APP_EVENT_LOW_MEMORY, NULL, NULL);
- ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY],
- APP_EVENT_LOW_BATTERY, NULL, NULL);
- ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED],
- APP_EVENT_LANGUAGE_CHANGED, _lang_changed, NULL);
- ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED],
- APP_EVENT_REGION_FORMAT_CHANGED, NULL, NULL);
- ui_app_add_event_handler(
- &handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED],
- APP_EVENT_DEVICE_ORIENTATION_CHANGED, NULL, NULL);
-
- memset(&app_data, 0x0, sizeof(app_data));
- return ui_app_main(argc, argv, &ops, &app_data);
-}
},
{ KeyStr_Accessibility,
IMG_Accessibility,
- "org.tizen.setting-accessibility",
+ "org.tizen.accessibility-setting",
Cfg_Item_Pos_Level0,
Cfg_Item_AppLauncher_Node,
NULL
# install firewall script for FOTA(583.org.tizen.setting.patch.sh)
INSTALL(PROGRAMS ${CMAKE_SOURCE_DIR}/583.org.tizen.setting.patch.sh DESTINATION /etc/opt/upgrade/)
-