MenuBuilder implementation 90/137790/12
authorPawel Kurowski <p.kurowski2@samsung.com>
Fri, 7 Jul 2017 18:26:51 +0000 (20:26 +0200)
committerPawel Kurowski <p.kurowski2@samsung.com>
Wed, 12 Jul 2017 15:33:58 +0000 (17:33 +0200)
MenuMap singleton provides find() function, that returns vector of items in each menu.
Universal switch now uses gettext () to display the correct language.

Change-Id: Ic33ca858a3845512c3350b77a2507f700d0a9746

14 files changed:
CMakeLists.txt
packaging/org.tizen.universal-switch.spec
res/icons/tizen.png [new file with mode: 0644]
res/po/CMakeLists.txt [new file with mode: 0644]
res/po/en_US.po [new file with mode: 0644]
src/CMakeLists.txt
src/MenuBuilder.cpp [new file with mode: 0644]
src/MenuBuilder.hpp [new file with mode: 0644]
src/ScanningProperties.cpp
src/universalswitch.cpp
tests/CMakeLists.txt
tests/MenuBuilderTests.cpp [new file with mode: 0644]
tests/VConfImplTests_init.sh [deleted file]
tests/VConf_init.sh [new file with mode: 0755]

index 7e5f989..cb8b2f8 100644 (file)
@@ -24,12 +24,24 @@ SET(COMMON_FLAGS "-fdiagnostics-color=always -fPIC")
 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS}")
 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAGS} -std=c++11")
 
+# install desktop file & icon
+SET(RES_DIR "${CMAKE_INSTALL_PREFIX}/res")
+SET(ICONS_DIR "${RES_DIR}/icons")
+SET(LOCALE_DIR "${RES_DIR}/locale")
+
+ADD_DEFINITIONS("-DICONS_DIR=\"${ICONS_DIR}\"")
+ADD_DEFINITIONS("-DLOCALE_DIR=\"${LOCALE_DIR}\"")
+ADD_DEFINITIONS("-DPROJECT_NAME=\"${PROJECT_NAME}\"")
+
+INSTALL(DIRECTORY res/icons/ DESTINATION ${ICONS_DIR} FILES_MATCHING PATTERN "*.png")
+
 ADD_DEFINITIONS("-DDEBUG_PRINTING_LEVEL=DEBUG_PRINTING_LEVEL_DEBUG")
 
 # Install Manifest File
 INSTALL(FILES org.tizen.universal-switch.xml DESTINATION ${TZ_SYS_RO_PACKAGES})
 
 ADD_SUBDIRECTORY(src)
+ADD_SUBDIRECTORY(res/po)
 if(TESTS)
  ADD_SUBDIRECTORY(tests)
-endif()
+endif()
\ No newline at end of file
index c1901dc..e17094c 100644 (file)
@@ -10,6 +10,7 @@ Source0:    %{name}-%{version}.tar.gz
 BuildRequires:  at-spi2-core
 BuildRequires:  at-spi2-core-devel
 BuildRequires:  cmake
+BuildRequires:  gettext-tools
 BuildRequires:  pkgconfig(capi-appfw-service-application)
 BuildRequires:  pkgconfig(capi-appfw-application)
 BuildRequires:  pkgconfig(ecore)
@@ -56,6 +57,7 @@ rm -rf %{buildroot}
 
 %files
 %manifest org.tizen.universal-switch.manifest
+%{AppDir}/res/*
 
 %license LICENSE
 %{AppDir}/bin/universal-switch
@@ -65,12 +67,13 @@ rm -rf %{buildroot}
 %if %{with tests}
 %package tests
 Summary: Universal Switch Assistive Technology - tests
+Requires: %{name} = %{version}
 
 %description tests
 Universal Switch tests
 
 %post tests
-%{AppDir}/tests/VConfImplTests_init.sh
+%{AppDir}/tests/VConf_init.sh
 
 %files tests
 %{AppDir}/tests/*
diff --git a/res/icons/tizen.png b/res/icons/tizen.png
new file mode 100644 (file)
index 0000000..408188a
Binary files /dev/null and b/res/icons/tizen.png differ
diff --git a/res/po/CMakeLists.txt b/res/po/CMakeLists.txt
new file mode 100644 (file)
index 0000000..f6b8d8f
--- /dev/null
@@ -0,0 +1,21 @@
+SET(POFILES en_US.po)
+SET(MSGFMT "/usr/bin/msgfmt")
+
+MESSAGE(STATUS "po files ---")
+FOREACH(pofile ${POFILES})
+       SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+       MESSAGE(PO: "  ${pofile}")
+       GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+       GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+       SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+       ADD_CUSTOM_COMMAND(
+                       OUTPUT ${moFile}
+                       COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+                       DEPENDS ${absPofile}
+       )
+       INSTALL(FILES ${moFile}
+               DESTINATION ${LOCALE_DIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+       SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/res/po/en_US.po b/res/po/en_US.po
new file mode 100644 (file)
index 0000000..ca288c3
--- /dev/null
@@ -0,0 +1,332 @@
+msgid "IDS_TAP"
+msgstr "Tap"
+
+
+msgid "IDS_HOME_SCREEN"
+msgstr "Home screen"
+
+
+msgid "IDS_BACK"
+msgstr "Back"
+
+
+msgid "IDS_OPEN_NOTI_PANEL"
+msgstr "Open noti. panel"
+
+
+msgid "IDS_CLOSE_NOTI_PANEL"
+msgstr "Close noti. panel"
+
+
+msgid "IDS_RECENT_APPS"
+msgstr "Recent apps"
+
+
+msgid "IDS_ACCEPT"
+msgstr "Accept"
+
+
+msgid "IDS_REJECT"
+msgstr "Reject"
+
+
+msgid "IDS_END_CALL"
+msgstr "End call"
+
+
+msgid "IDS_LEFT_PAGE"
+msgstr "Left page"
+
+
+msgid "IDS_RIGHT_PAGE"
+msgstr "Right page"
+
+
+msgid "IDS_INCREASE"
+msgstr "Increase"
+
+
+msgid "IDS_DECREASE"
+msgstr "Decrease"
+
+
+msgid "IDS_SELECTION_MODE"
+msgstr "Selection mode"
+
+
+msgid "IDS_SELECT_ALL"
+msgstr "Select all"
+
+
+msgid "IDS_PREVIOUS_CHARACTER"
+msgstr "Previous character"
+
+
+msgid "IDS_PREVIOUS_WORD"
+msgstr "Previous word"
+
+
+msgid "IDS_PREVIOUS_LINE"
+msgstr "Previous line"
+
+
+msgid "IDS_PREVIOUS_PARAGRAPH"
+msgstr "Previous paragraph"
+
+
+msgid "IDS_NEXT_CHARACTER"
+msgstr "Next character"
+
+
+msgid "IDS_NEXT_WORD"
+msgstr "Next word"
+
+
+msgid "IDS_NEXT_LINE"
+msgstr "Next line"
+
+
+msgid "IDS_NEXT_PARAGRAPH"
+msgstr "Next paragraph"
+
+
+msgid "IDS_COPY"
+msgstr "Copy"
+
+
+msgid "IDS_PASTE"
+msgstr "Paste"
+
+
+msgid "IDS_CUT"
+msgstr "Cut"
+
+
+msgid "IDS_TOUCH_AND_HOLD"
+msgstr "Touch and hold"
+
+
+msgid "IDS_TOUCH_HOLD_THEN_DRAG"
+msgstr "Touch, hold then drag"
+
+
+msgid "IDS_SWIPE_UP"
+msgstr "Swipe up"
+
+
+msgid "IDS_SWIPE_DOWN"
+msgstr "Swipe down"
+
+
+msgid "IDS_SWIPE_LEFT"
+msgstr "Swipe left"
+
+
+msgid "IDS_SWIPE_RIGHT"
+msgstr "Swipe right"
+
+
+msgid "IDS_TURN_ON_AUTO_SCROLL"
+msgstr "Turn on auto scroll"
+
+
+msgid "IDS_TURN_OFF_AUTO_SCROLL"
+msgstr "Turn off auto scroll"
+
+
+msgid "IDS_SPEED_UP_AUTO_SCROLL"
+msgstr "Speed up auto scroll"
+
+
+msgid "IDS_SLOW_DOWN_AUTO_SCROLL"
+msgstr "Slow down auto scroll"
+
+
+msgid "IDS_SCROLL_UP"
+msgstr "Scroll up"
+
+
+msgid "IDS_SCROLL_DOWN"
+msgstr "Scroll down"
+
+
+msgid "IDS_SCROLL_TOP"
+msgstr "Scroll Top"
+
+
+msgid "IDS_DRAG"
+msgstr "Drag"
+
+
+msgid "IDS_DONE"
+msgstr "Done"
+
+
+msgid "IDS_CANCEL"
+msgstr "Cancel"
+
+
+msgid "IDS_ZOOM_IN"
+msgstr "Zoom in"
+
+
+msgid "IDS_ZOOM_OUT"
+msgstr "Zoom out"
+
+
+msgid "IDS_SOUND"
+msgstr "Sound"
+
+msgid "IDS_VIBRATION"
+msgstr "Vibration"
+
+msgid "IDS_MUTE"
+msgstr "Mute"
+
+
+msgid "IDS_LOCK"
+msgstr "Lock"
+
+
+msgid "IDS_CAPTURE_SCREENSHOT"
+msgstr "Capture screenshot"
+
+
+msgid "IDS_ROTATE_LEFT"
+msgstr "Rotate left"
+
+
+msgid "IDS_ROTATE_RIGHT"
+msgstr "Rotate right"
+
+
+msgid "IDS_ROTATE_TO_PORTRAIT"
+msgstr "Rotate to portrait"
+
+
+msgid "IDS_SPEED_UP_SCANING"
+msgstr "Speed up scaning"
+
+
+msgid "IDS_SLOW_DOWN_SCANING"
+msgstr "Slow down scaning"
+
+
+msgid "IDS_ROW_SCAN"
+msgstr "Row scan"
+
+
+msgid "IDS_POINT_SCAN"
+msgstr "Point scan"
+
+
+msgid "IDS_TOP_TO_BOTTOM"
+msgstr "Top to bottom"
+
+
+msgid "IDS_BOTTOM_TO_TOP"
+msgstr "Bottom to top"
+
+
+msgid "IDS_TURN_ON_SOUND"
+msgstr "Turn on sound"
+
+
+msgid "IDS_TURN_OFF_SOUND"
+msgstr "Turn off sound"
+
+
+msgid "IDS_TURN_ON_VOICE"
+msgstr "Turn on voice"
+
+
+msgid "IDS_TURN_OFF_VOICE"
+msgstr "Turn off voice"
+
+
+msgid "IDS_MORE_SETTINGS"
+msgstr "More settings"
+
+
+msgid "IDS_CHARACTER"
+msgstr "Character"
+
+
+msgid "IDS_WORD"
+msgstr "Word"
+
+
+msgid "IDS_LINE"
+msgstr "Line"
+
+
+msgid "IDS_PARAGRAPH"
+msgstr "Paragraph"
+
+
+msgid "IDS_RINGTONE_VOLUME_INC"
+msgstr "Ringtone volume +"
+
+
+msgid "IDS_RINGTONE_VOLUME_DEC"
+msgstr "Ringtone volume -"
+
+
+msgid "IDS_MEDIA_VOLUME_INC"
+msgstr "Media volume +"
+
+
+msgid "IDS_MEDIA_VOLUME_DEC"
+msgstr "Media volume -"
+
+
+msgid "IDS_TAP_HOME_BUTTON_X2"
+msgstr "Tap Home button x2"
+
+
+msgid "IDS_TAP_HOME_BUTTON_X3"
+msgstr "Tap Home button x3"
+
+
+msgid "IDS_VIEW_POWER_KEY_MENU"
+msgstr "View Power Key menu"
+
+
+msgid "IDS_NOTI_VOLUME_INC"
+msgstr "Noti. volume +"
+
+
+msgid "IDS_NOTI_VOLUME_DEC"
+msgstr "Noti. volume -"
+
+
+msgid "IDS_AUTO_SCROLL"
+msgstr "Auto scroll"
+
+
+msgid "IDS_SCREEN_ROTATION"
+msgstr "Screen rotation"
+
+
+msgid "IDS_GESTURES"
+msgstr "Gestures"
+
+
+msgid "IDS_ACTIONS"
+msgstr "Actions"
+
+
+msgid "IDS_SETTINGS"
+msgstr "Settings"
+
+
+msgid "IDS_BUTTONS_AND_KEYS"
+msgstr "Buttons and keys"
+
+
+msgid "IDS_EDIT_TEXT"
+msgstr "Edit text"
+
+
+msgid "IDS_GRANULARITY_SETTINGS"
+msgstr "Granularity settings"
\ No newline at end of file
index 37b0c9c..2fbdb0f 100644 (file)
@@ -21,6 +21,7 @@ SET(SRCS
        VConf.cpp
        ActivityChangeRequest.cpp
        AutoScanOnActivity.cpp
+       MenuBuilder.cpp
 )
 
 ADD_LIBRARY(universal-switch-obj OBJECT ${SRCS})
diff --git a/src/MenuBuilder.cpp b/src/MenuBuilder.cpp
new file mode 100644 (file)
index 0000000..f696d0a
--- /dev/null
@@ -0,0 +1,381 @@
+#include "MenuBuilder.hpp"
+#include "VConf.hpp"
+#include "UniversalSwitchLog.hpp"
+
+
+MenuItem::MenuItem(std::vector<std::string> names, std::string imgPath, std::string activityType, std::string key)
+       : names(std::move(names)), imgPath(std::move(imgPath)), activityType(std::move(activityType)), key(std::move(key)) {}
+
+std::string MenuItem::getName()
+{
+       return gettext(names[key.empty() ? 0 : getMessageIndex()].c_str());
+}
+
+std::string MenuItem::getIcon()
+{
+       return imgPath;
+}
+
+std::string MenuItem::getActivityType()
+{
+       return activityType;
+}
+
+std::string MenuItem::getKey()
+{
+       return key;
+}
+
+int MenuItem::getMessageIndex()  //works for Universal Switch keys, TODO check system keys
+{
+       auto val = VConfSingleton::instance().get(key.c_str(), 0) - 1;
+       if (val >= static_cast<int>(names.size()) || val < 0) {
+               ERROR("Wrong message index from vconf, using default value");
+               return 0;
+       }
+       return val;
+}
+
+
+MenuMap::MenuMap()
+{
+       std::string defaultImg = std::string(ICONS_DIR) + std::string("/tizen.png");
+       auto tap                                        =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_TAP"},
+                                                                               defaultImg
+                                                                       );
+       auto homeScreen                         =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_HOME_SCREEN"},
+                                                                               defaultImg
+                                                                       );
+       auto back                                       =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_BACK"},
+                                                                               defaultImg,
+                                                                               "SELECT");
+       auto openCloseNotifications     =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_OPEN_NOTI_PANEL", "IDS_CLOSE_NOTI_PANEL"},
+                                                                               defaultImg
+                                                                       );//TODO add settings key, when activity will be ready;
+       auto recentApps                         =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_RECENT_APPS"},
+                                                                               defaultImg
+                                                                       );
+       auto accept                                     =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_ACCEPT"},
+                                                                               defaultImg
+                                                                       );
+       auto reject                                     =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_REJECT"},
+                                                                               defaultImg
+                                                                       );
+       auto endCall                            =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_END_CALL"},
+                                                                               defaultImg
+                                                                       );
+       auto leftPage                           =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_LEFT_PAGE"},
+                                                                               defaultImg
+                                                                       );
+       auto rightPage                          =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_RIGHT_PAGE"},
+                                                                               defaultImg
+                                                                       );
+       auto increase                           =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_INCREASE"},
+                                                                               defaultImg
+                                                                       );
+       auto decrease                           =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_DECREASE"},
+                                                                               defaultImg
+                                                                       );
+       auto selectionMode                      =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SELECTION_MODE"},
+                                                                               defaultImg
+                                                                       );
+       auto selectAll                          =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SELECT_ALL"},
+                                                                               defaultImg
+                                                                       );
+       auto previous                           =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> { "IDS_PREVIOUS_CHARACTER", "IDS_PREVIOUS_WORD", "IDS_PREVIOUS_LINE", "IDS_PREVIOUS_PARAGRAPH"},
+                                                                               defaultImg,
+                                                                               "",/*TODO add activity*/
+                                                                               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GRANULARITY_UNIT");
+       auto next                                       =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> { "IDS_NEXT_CHARACTER", "IDS_NEXT_WORD", "IDS_NEXT_LINE", "IDS_NEXT_PARAGRAPH"},
+                                                                               defaultImg,
+                                                                               "",/*TODO add activity*/
+                                                                               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GRANULARITY_UNIT");
+       auto copy                                       =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_COPY"},
+                                                                               defaultImg
+                                                                       );
+       auto paste                                      =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_PASTE"},
+                                                                               defaultImg
+                                                                       );
+       auto cut                                        =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_CUT"},
+                                                                               defaultImg
+                                                                       );
+       auto touchHold                          =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_TOUCH_AND_HOLD"},
+                                                                               defaultImg
+                                                                       );
+       auto touchHoldThenDrag          =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_TOUCH_HOLD_THEN_DRAG"},
+                                                                               defaultImg
+                                                                       );
+       auto swipeUp                            =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SWIPE_UP"},
+                                                                               defaultImg
+                                                                       );
+       auto swipeDown                          =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SWIPE_DOWN"},
+                                                                               defaultImg
+                                                                       );
+       auto swipeLeft                          =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SWIPE_LEFT"},
+                                                                               defaultImg
+                                                                       );
+       auto swipeRight                         =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SWIPE_RIGHT"},
+                                                                               defaultImg
+                                                                       );
+       auto turnOnOffAutoScroll                =       std::make_shared<MenuItem>(
+                                                                                       std::vector<std::string> {"IDS_TURN_ON_AUTO_SCROLL", "IDS_TURN_OFF_AUTO_SCROLL"},
+                                                                                       defaultImg,
+                                                                                       "",/*TODO add activity*/
+                                                                                       "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCROLL");
+       auto speedUpAutoScroll          =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SPEED_UP_AUTO_SCROLL"},
+                                                                               defaultImg
+                                                                       );
+       auto slowDownAutoScroll         =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SLOW_DOWN_AUTO_SCROLL"},
+                                                                               defaultImg
+                                                                       );
+       auto scrollUp                           =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SCROLL_UP"},
+                                                                               defaultImg
+                                                                       );
+       auto scrollDown                         =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SCROLL_DOWN"},
+                                                                               defaultImg
+                                                                       );
+       auto scrollTop                          =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SCROLL_TOP"},
+                                                                               defaultImg
+                                                                       );
+       auto drag                                       =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_DRAG"},
+                                                                               defaultImg
+                                                                       );
+       auto done                                       =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_DONE"},
+                                                                               defaultImg
+                                                                       );
+       auto cancel                                     =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_CANCEL"},
+                                                                               defaultImg
+                                                                       );
+       auto zoomIn                                     =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_ZOOM_IN"},
+                                                                               defaultImg
+                                                                       );
+       auto zoomOut                            =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_ZOOM_OUT"},
+                                                                               defaultImg
+                                                                       );
+       auto soundVibrationMute         =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SOUND", "IDS_VIBRATION", "IDS_MUTE"},
+                                                                               defaultImg
+                                                                       );//TODO add settings key, when activity will be ready
+       auto lock                                       =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_LOCK"},
+                                                                               defaultImg
+                                                                       );
+       auto captureScreenshot          =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_CAPTURE_SCREENSHOT"},
+                                                                               defaultImg
+                                                                       );
+       auto rotateLeft                         =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_ROTATE_LEFT"},
+                                                                               defaultImg
+                                                                       );
+       auto rotateRight                        =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_ROTATE_RIGHT"},
+                                                                               defaultImg
+                                                                       );
+       auto rotateToPortrait           =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_ROTATE_TO_PORTRAIT"},
+                                                                               defaultImg
+                                                                       );
+       auto speedUpScaning                     =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SPEED_UP_SCANING"},
+                                                                               defaultImg
+                                                                       );
+       auto slowDownScaning            =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SLOW_DOWN_SCANING"},
+                                                                               defaultImg
+                                                                       );
+       auto pointRowScan                       =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_ROW_SCAN", "IDS_POINT_SCAN"},
+                                                                               defaultImg,
+                                                                               ""/*TODO add activity*/,
+                                                                               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_METHOD");
+       auto scanMethod                         =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_BOTTOM_TO_TOP", "IDS_TOP_TO_BOTTOM"},
+                                                                               defaultImg,
+                                                                               ""/*TODO add activity*/,
+                                                                               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIRECTION_VERTICAL");
+       auto turnOnOffSound                     =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_TURN_ON_SOUND", "IDS_TURN_OFF_SOUND"},
+                                                                               defaultImg,
+                                                                               ""/*TODO add activity*/,
+                                                                               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND");
+       auto turnOnOffVoice                     =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_TURN_ON_VOICE", "IDS_TURN_OFF_VOICE"},
+                                                                               defaultImg,
+                                                                               ""/*TODO add activity*/,
+                                                                               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE");
+       auto moreSettings                       =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_MORE_SETTINGS"},
+                                                                               defaultImg
+                                                                       );
+       auto character                          =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_CHARACTER"},
+                                                                               defaultImg
+                                                                       );
+       auto word                                       =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_WORD"},
+                                                                               defaultImg
+                                                                       );
+       auto line                                       =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_LINE"},
+                                                                               defaultImg
+                                                                       );
+       auto paragraph                          =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_PARAGRAPH"},
+                                                                               defaultImg
+                                                                       );
+       auto ringtoneVolIncrease        =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_RINGTONE_VOLUME_INC"},
+                                                                               defaultImg
+                                                                       );
+       auto ringtoneVolDecrease        =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_RINGTONE_VOLUME_DEC"},
+                                                                               defaultImg
+                                                                       );
+       auto mediaVolumeIncrease        =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_MEDIA_VOLUME_INC"},
+                                                                               defaultImg
+                                                                       );
+       auto mediaVolumeDecrease        =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_MEDIA_VOLUME_DEC"},
+                                                                               defaultImg
+                                                                       );
+       auto tapHomeButtonx2            =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_TAP_HOME_BUTTON_X2"},
+                                                                               defaultImg
+                                                                       );
+       auto tapHomeButtonx3            =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_TAP_HOME_BUTTON_X3"},
+                                                                               defaultImg
+                                                                       );
+       auto viewPowerKeyMenu           =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_VIEW_POWER_KEY_MENU"},
+                                                                               defaultImg
+                                                                       );
+       auto notiVolumeIncrease         =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_NOTI_VOLUME_INC"},
+                                                                               defaultImg
+                                                                       );
+       auto notiVolumeDecrease         =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_NOTI_VOLUME_DEC"},
+                                                                               defaultImg
+                                                                       );
+       auto autoScroll                         =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_AUTO_SCROLL"},
+                                                                               defaultImg
+                                                                       );
+       auto ScreenRotation                     =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SCREEN_ROTATION"},
+                                                                               defaultImg
+                                                                       );
+       auto gestures                           =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_GESTURES"},
+                                                                               defaultImg
+                                                                       );
+       auto actions                            =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_ACTIONS"},
+                                                                               defaultImg
+                                                                       );
+       auto settings                           =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_SETTINGS"},
+                                                                               defaultImg
+                                                                       );
+       auto buttonsAndKeys                     =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_BUTTONS_AND_KEYS"},
+                                                                               defaultImg
+                                                                       );
+       auto editText                           =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_EDIT_TEXT"},
+                                                                               defaultImg
+                                                                       );
+       auto granularitySettings        =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {"IDS_GRANULARITY_SETTINGS"},
+                                                                               defaultImg
+                                                                       );
+       auto emptyItem                          =       std::make_shared<MenuItem>(
+                                                                               std::vector<std::string> {""},
+                                                                               "");
+
+
+       addToMap("menu-main-normal",                    {tap, gestures, actions, settings, recentApps, homeScreen, back, buttonsAndKeys});
+       addToMap("menu-main-home-apps",                 {tap, leftPage, rightPage, emptyItem, gestures, actions, settings, recentApps, homeScreen, back, buttonsAndKeys});
+       addToMap("menu-main-slider",                    {increase, decrease, emptyItem, emptyItem, tap, gestures, actions, settings, recentApps, homeScreen, back, buttonsAndKeys});
+       addToMap("menu-main-editable-text",             {tap, editText, emptyItem, emptyItem, gestures, actions, settings, recentApps, homeScreen, back, buttonsAndKeys});
+       addToMap("menu-main-sip",                               {tap, touchHold});
+       addToMap("menu-main-incoming-call",             {tap, accept, reject, emptyItem, gestures, actions, settings, recentApps, homeScreen, back, buttonsAndKeys});
+       addToMap("menu-main-during-call",               {tap, endCall, emptyItem, emptyItem, gestures, actions, settings, recentApps, homeScreen, back, buttonsAndKeys});
+       addToMap("menu-gestures",                               {swipeUp, swipeDown, swipeLeft, swipeRight, autoScroll, touchHold, drag, touchHoldThenDrag});
+       addToMap("menu-actions",                                {zoomIn, zoomOut, ScreenRotation, soundVibrationMute, lock, openCloseNotifications, captureScreenshot});
+       addToMap("menu-rotate-screen",                  {rotateLeft, rotateToPortrait, rotateRight});
+       addToMap("menu-settings-auto-scan-off", {pointRowScan, scanMethod, turnOnOffSound, turnOnOffVoice, moreSettings});
+       addToMap("menu-settings-auto-scan-on",  {speedUpScaning, slowDownScaning, pointRowScan, scanMethod, turnOnOffSound, turnOnOffVoice, moreSettings});
+       addToMap("menu-buttons-keys",                   {ringtoneVolIncrease, ringtoneVolDecrease, mediaVolumeIncrease, mediaVolumeDecrease,
+                        tapHomeButtonx2, tapHomeButtonx3, viewPowerKeyMenu
+                                                                       });
+       addToMap("menu-buttons-keys-wifi",              {notiVolumeIncrease, notiVolumeDecrease, mediaVolumeIncrease, mediaVolumeDecrease,
+                        tapHomeButtonx2, tapHomeButtonx3, viewPowerKeyMenu
+                                                                               });
+       addToMap("menu-edit-text",                              {selectionMode, selectAll, previous, next, copy, paste, cut, granularitySettings});
+       addToMap("menu-auto-scroll-off",                {turnOnOffAutoScroll, scrollUp, scrollDown, scrollTop});
+       addToMap("menu-auto-scroll-on",                 {turnOnOffAutoScroll, speedUpAutoScroll, slowDownAutoScroll});
+       addToMap("menu-granularity",                    {character, word, line, paragraph});
+}
+
+std::vector<std::shared_ptr<MenuItem>> MenuMap::find(std::string searchKey)
+{
+       std::vector<std::shared_ptr<MenuItem>> returnVector;
+       auto keyRange = map.equal_range(searchKey);
+       for (auto ii = keyRange.first; ii != keyRange.second; ++ii)
+               returnVector.push_back(ii->second);
+
+       return returnVector;
+}
+
+void MenuMap::addToMap(std::string menu, std::vector<std::shared_ptr<MenuItem>> menuVector)
+{
+       while (!menuVector.empty()) {
+               map.insert(std::make_pair(menu, menuVector.back()));
+               menuVector.pop_back();
+       }
+}
+
+MenuMap &MenuMap::instance()
+{
+       static MenuMap instance;
+       return instance;
+}
\ No newline at end of file
diff --git a/src/MenuBuilder.hpp b/src/MenuBuilder.hpp
new file mode 100644 (file)
index 0000000..b073b82
--- /dev/null
@@ -0,0 +1,45 @@
+#ifndef MENU_BUILDER_HPP
+#define MENU_BUILDER_HPP
+
+#include "Singleton.hpp"
+
+#include <vector>
+#include <string>
+#include <map>
+#include <memory>
+
+
+class MenuItem
+{
+public:
+       MenuItem(std::vector<std::string> names, std::string imgPath, std::string activityType = "", std::string key = "");
+
+       std::string getName();
+       std::string getIcon();
+       std::string getActivityType();
+       std::string getKey();
+
+private:
+       std::vector<std::string> names;
+       std::string imgPath;
+       std::string activityType;
+       std::string key;
+
+       int getMessageIndex();
+};
+
+class MenuMap : public SingletonBase
+{
+public:
+       static MenuMap &instance();
+
+       std::vector<std::shared_ptr<MenuItem>> find(std::string searchKey);
+
+private:
+       std::multimap<std::string, std::shared_ptr<MenuItem>> map;
+
+       MenuMap();
+       void addToMap(std::string menu, std::vector<std::shared_ptr<MenuItem>> menuVector);
+};
+
+#endif
\ No newline at end of file
index 46b67b4..7755221 100644 (file)
@@ -139,8 +139,8 @@ void ScanningProperties::setLocalScanningMethod(ScanningMethod method)
 void ScanningProperties::registerCallbacks()
 {
        vconf_notify_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_METHOD", methodCb, this);
-       vconf_notify_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIR_VERTICAL", directionVerticalCb, this);
-       vconf_notify_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIR_HORIZONTAL", directionHorizontalCb, this);
+       vconf_notify_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIRECTION_VERTICAL", directionVerticalCb, this);
+       vconf_notify_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIRECTION_HORIZONTAL", directionHorizontalCb, this);
        vconf_notify_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_NUM_OF_SCANS", loopLimitToInactionCb, this);
        vconf_notify_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_PT_SPEED", speedCb, this);
        //TODO: add keys for RowScanner
@@ -149,8 +149,8 @@ void ScanningProperties::registerCallbacks()
 void ScanningProperties::unregisterCallbacks()
 {
        vconf_ignore_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_METHOD", methodCb);
-       vconf_ignore_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIR_VERTICAL", directionVerticalCb);
-       vconf_ignore_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIR_HORIZONTAL", directionHorizontalCb);
+       vconf_ignore_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIRECTION_VERTICAL", directionVerticalCb);
+       vconf_ignore_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIRECTION_HORIZONTAL", directionHorizontalCb);
        vconf_ignore_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_NUM_OF_SCANS", loopLimitToInactionCb);
        vconf_ignore_key_changed(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_PT_SPEED", speedCb);
        //TODO: add keys for RowScanner
@@ -160,9 +160,9 @@ void ScanningProperties::getScanningProperties()
 {
        updateData(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_METHOD", this, toScanningMethod, &ScanningProperties::setCachedScanningMethod);
 
-       updateData(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIR_VERTICAL", this, toScanningDirectionVertical, &ScanningProperties::setCachedScanningDirectionVertical);
+       updateData(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIRECTION_VERTICAL", this, toScanningDirectionVertical, &ScanningProperties::setCachedScanningDirectionVertical);
 
-       updateData(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIR_HORIZONTAL", this, toScanningDirectionHorizontal, &ScanningProperties::setCachedScanningDirectionHorizontal);
+       updateData(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIRECTION_HORIZONTAL", this, toScanningDirectionHorizontal, &ScanningProperties::setCachedScanningDirectionHorizontal);
 
        updateData(VCONF_PREFIX "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_NUM_OF_SCANS", this, toInt, &ScanningProperties::setCachedLoopLimitToInaction);
 
index 3d6e766..40589c6 100644 (file)
@@ -1,19 +1,30 @@
 #include "UniversalSwitchLog.hpp"
 #include "Window.hpp"
-
 #include "ScreenScannerManager.hpp"
 
 #include <tizen.h>
 #include <app.h>
 #include <Elementary.h>
+#include <vconf.h>
+
 
+static void _setting_time_lang_changed(app_event_info_h event_info, void *data)
+{
+       char *lang = NULL;
+       if (app_event_get_language(event_info, &lang) == APP_ERROR_NONE) {
+               DEBUG("Language is changed : %s", lang);
+               elm_language_set(lang);
+               elm_config_all_flush();
+               free(lang);
+       } else {
+               ERROR("Cannot get language from event_info");
+       }
+}
 
 bool app_create(void *data)
 {
        DEBUG("App create");
 
-       ScreenScannerManager::instance().startAutoscanning();
-
        return true;
 }
 
@@ -21,8 +32,6 @@ void app_terminate(void *data)
 {
        DEBUG("app termination procedure");
 
-       ScreenScannerManager::instance().stopAutoscanning();
-
        return;
 }
 
@@ -43,5 +52,8 @@ int main(int argc, char *argv[])
                .app_control = app_control
        };
 
+       app_event_handler_h handler;
+       ui_app_add_event_handler(&handler, APP_EVENT_LANGUAGE_CHANGED, _setting_time_lang_changed, nullptr);
+
        return ui_app_main(argc, argv, &event_callback, nullptr);
 }
index cad68bd..ddf882e 100644 (file)
@@ -23,9 +23,10 @@ FUNCTION(CREATE_TEST TEST_SRC_FILE)
 ENDFUNCTION()
 
 
-INSTALL(PROGRAMS VConfImplTests_init.sh DESTINATION ${TESTS_INSTALL_DIR})
+INSTALL(PROGRAMS VConf_init.sh DESTINATION ${TESTS_INSTALL_DIR})
 CREATE_TEST(VConfImplTests.cpp)
 
 CREATE_TEST(ConfigurationTests.cpp)
 CREATE_TEST(ActivityProcessingTests.cpp)
+CREATE_TEST(MenuBuilderTests.cpp)
 
diff --git a/tests/MenuBuilderTests.cpp b/tests/MenuBuilderTests.cpp
new file mode 100644 (file)
index 0000000..aedadea
--- /dev/null
@@ -0,0 +1,221 @@
+#include "VConf.hpp"
+#include "MenuBuilder.hpp"
+
+#include <gtest/gtest.h>
+
+class MenuBuilderTest : public ::testing::Test
+{
+public:
+       void setKeys(int val)
+       {
+               VConfSingleton::instance().set("__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCROLL", val);
+               VConfSingleton::instance().set("__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_METHOD", val);
+               VConfSingleton::instance().set("__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIRECTION_VERTICAL", val);
+               VConfSingleton::instance().set("__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND", val);
+               VConfSingleton::instance().set("__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE", val);
+               VConfSingleton::instance().set("__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GRANULARITY_UNIT", val);
+       }
+
+       void SetUp()
+       {
+               setKeys(1);
+       }
+
+       void TearDown()
+       {
+               setKeys(1);
+       }
+
+       void testMenuContent(std::string menuName, std::vector<std::string> expectedMenuItemsNames, std::vector<std::string> expectedMenuItemsKeys = {})
+       {
+               auto actualMenuItems = MenuMap::instance().find(menuName);
+               ASSERT_EQ(actualMenuItems.size(), expectedMenuItemsNames.size());
+               if (!expectedMenuItemsKeys.empty())
+                       ASSERT_EQ(actualMenuItems.size(), expectedMenuItemsKeys.size());
+
+               for (auto ii = 0u; ii < actualMenuItems.size(); ++ii) {
+                       EXPECT_EQ(actualMenuItems[ii]->getName(), expectedMenuItemsNames[actualMenuItems.size() - 1 - ii]);
+                       if (!expectedMenuItemsKeys.empty())
+                               EXPECT_EQ(actualMenuItems[ii]->getKey(), expectedMenuItemsKeys[actualMenuItems.size() - 1 - ii]);
+               }
+       }
+};
+
+TEST_F(MenuBuilderTest, checkContentOfMenuMainNormal)
+{
+       testMenuContent("menu-main-normal", {
+               "IDS_TAP", "IDS_GESTURES", "IDS_ACTIONS", "IDS_SETTINGS", "IDS_RECENT_APPS",
+               "IDS_HOME_SCREEN", "IDS_BACK", "IDS_BUTTONS_AND_KEYS"
+       });
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMenuMainHomeApps)
+{
+       testMenuContent("menu-main-home-apps", {
+               "IDS_TAP", "IDS_LEFT_PAGE", "IDS_RIGHT_PAGE", "", "IDS_GESTURES", "IDS_ACTIONS", "IDS_SETTINGS",
+               "IDS_RECENT_APPS", "IDS_HOME_SCREEN", "IDS_BACK", "IDS_BUTTONS_AND_KEYS"
+       });
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMenuMainSlider)
+{
+       testMenuContent("menu-main-slider", {
+               "IDS_INCREASE", "IDS_DECREASE", "", "", "IDS_TAP", "IDS_GESTURES", "IDS_ACTIONS",
+               "IDS_SETTINGS", "IDS_RECENT_APPS", "IDS_HOME_SCREEN", "IDS_BACK", "IDS_BUTTONS_AND_KEYS"
+       });
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMenuMainEditableText)
+{
+       testMenuContent("menu-main-editable-text", {
+               "IDS_TAP", "IDS_EDIT_TEXT", "", "", "IDS_GESTURES", "IDS_ACTIONS",
+               "IDS_SETTINGS", "IDS_RECENT_APPS", "IDS_HOME_SCREEN", "IDS_BACK", "IDS_BUTTONS_AND_KEYS"
+       });
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMainMenuSip)
+{
+       testMenuContent("menu-main-sip", {
+               "IDS_TAP", "IDS_TOUCH_AND_HOLD"
+       });
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMenuMainIncomingCall)
+{
+       testMenuContent("menu-main-incoming-call", {
+               "IDS_TAP", "IDS_ACCEPT", "IDS_REJECT", "", "IDS_GESTURES", "IDS_ACTIONS", "IDS_SETTINGS",
+               "IDS_RECENT_APPS", "IDS_HOME_SCREEN", "IDS_BACK", "IDS_BUTTONS_AND_KEYS"
+       });
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMenuMainDuringCall)
+{
+       testMenuContent("menu-main-during-call", {
+               "IDS_TAP", "IDS_END_CALL", "", "", "IDS_GESTURES", "IDS_ACTIONS", "IDS_SETTINGS",
+               "IDS_RECENT_APPS", "IDS_HOME_SCREEN", "IDS_BACK", "IDS_BUTTONS_AND_KEYS"
+       });
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMenuGestures)
+{
+       testMenuContent("menu-gestures", {
+               "IDS_SWIPE_UP", "IDS_SWIPE_DOWN", "IDS_SWIPE_LEFT", "IDS_SWIPE_RIGHT",
+               "IDS_AUTO_SCROLL", "IDS_TOUCH_AND_HOLD", "IDS_DRAG", "IDS_TOUCH_HOLD_THEN_DRAG"
+       });
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMenuActions)
+{
+       testMenuContent("menu-actions", {
+               "IDS_ZOOM_IN", "IDS_ZOOM_OUT", "IDS_SCREEN_ROTATION", "IDS_SOUND",
+               "IDS_LOCK", "IDS_OPEN_NOTI_PANEL", "IDS_CAPTURE_SCREENSHOT"
+       }/*TODO complete test when sound, and noti. panel activities will be ready*/);
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMenuRotateScreen)
+{
+       testMenuContent("menu-rotate-screen", {
+               "IDS_ROTATE_LEFT", "IDS_ROTATE_TO_PORTRAIT", "IDS_ROTATE_RIGHT"
+       });
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMenuSettings)
+{
+       testMenuContent("menu-settings-auto-scan-off", {
+               "IDS_ROW_SCAN", "IDS_BOTTOM_TO_TOP", "IDS_TURN_ON_SOUND", "IDS_TURN_ON_VOICE", "IDS_MORE_SETTINGS"
+       }, {
+               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_METHOD",
+               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIRECTION_VERTICAL",
+               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND",
+               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE",
+               ""
+       });
+       setKeys(2);
+       testMenuContent("menu-settings-auto-scan-on", {
+               "IDS_SPEED_UP_SCANING", "IDS_SLOW_DOWN_SCANING", "IDS_POINT_SCAN", "IDS_TOP_TO_BOTTOM",
+               "IDS_TURN_OFF_SOUND", "IDS_TURN_OFF_VOICE", "IDS_MORE_SETTINGS"
+       }, {
+               "", "",
+               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_METHOD",
+               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIRECTION_VERTICAL",
+               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND",
+               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE",
+               ""
+       });
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMenuButtonsKeys)
+{
+       testMenuContent("menu-buttons-keys", {
+               "IDS_RINGTONE_VOLUME_INC", "IDS_RINGTONE_VOLUME_DEC", "IDS_MEDIA_VOLUME_INC", "IDS_MEDIA_VOLUME_DEC",
+               "IDS_TAP_HOME_BUTTON_X2", "IDS_TAP_HOME_BUTTON_X3", "IDS_VIEW_POWER_KEY_MENU"
+       });
+       testMenuContent("menu-buttons-keys-wifi", {
+               "IDS_NOTI_VOLUME_INC", "IDS_NOTI_VOLUME_DEC", "IDS_MEDIA_VOLUME_INC", "IDS_MEDIA_VOLUME_DEC",
+               "IDS_TAP_HOME_BUTTON_X2", "IDS_TAP_HOME_BUTTON_X3", "IDS_VIEW_POWER_KEY_MENU"
+       });
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMenuEditText)
+{
+       testMenuContent("menu-edit-text", {
+               "IDS_SELECTION_MODE", "IDS_SELECT_ALL", "IDS_PREVIOUS_CHARACTER", "IDS_NEXT_CHARACTER",
+               "IDS_COPY", "IDS_PASTE", "IDS_CUT", "IDS_GRANULARITY_SETTINGS"
+       }, {
+               "", "",
+               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GRANULARITY_UNIT",
+               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GRANULARITY_UNIT",
+               "", "", "", ""
+       });
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMenuAutoScroll)
+{
+       testMenuContent("menu-auto-scroll-off", {
+               "IDS_TURN_ON_AUTO_SCROLL", "IDS_SCROLL_UP", "IDS_SCROLL_DOWN", "IDS_SCROLL_TOP"
+       }, {
+               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCROLL",
+               "", "", ""
+       });
+       setKeys(2);
+       testMenuContent("menu-auto-scroll-on", {
+               "IDS_TURN_OFF_AUTO_SCROLL", "IDS_SPEED_UP_AUTO_SCROLL", "IDS_SLOW_DOWN_AUTO_SCROLL"
+       }, {
+               "__KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCROLL",
+               "", ""
+       });
+}
+
+TEST_F(MenuBuilderTest, checkContentOfMenuGranularity)
+{
+       testMenuContent("menu-granularity", {
+               "IDS_CHARACTER", "IDS_WORD", "IDS_LINE", "IDS_PARAGRAPH"
+       });
+}
+
+TEST_F(MenuBuilderTest, checkAllGranularityOptions)
+{
+       auto actualMenuItems = MenuMap::instance().find("menu-edit-text");
+       auto next = actualMenuItems[4];
+       auto prev = actualMenuItems[5];
+       auto requiredStates = std::vector<std::string> {"CHARACTER", "WORD", "LINE", "PARAGRAPH"};
+       for (auto ii = 0u; ii <= requiredStates.size(); ++ii) {
+               setKeys(ii + 1);
+               EXPECT_EQ(prev->getName(), "IDS_PREVIOUS_" + requiredStates[ii % requiredStates.size()]);
+               EXPECT_EQ(next->getName(), "IDS_NEXT_" + requiredStates[ii % requiredStates.size()]);
+       }
+
+       setKeys(0xdeadbeef);
+       EXPECT_EQ(prev->getName(), "IDS_PREVIOUS_" + requiredStates[0]);
+       EXPECT_EQ(next->getName(), "IDS_NEXT_" + requiredStates[0]);
+}
+
+TEST_F(MenuBuilderTest, checkTranslations)
+{
+       auto menuItem = MenuMap::instance().find("menu-main-normal").back();
+       EXPECT_EQ(menuItem->getName(), "IDS_TAP");
+       bindtextdomain(PROJECT_NAME, LOCALE_DIR);
+       textdomain(PROJECT_NAME);
+       setlocale(LC_ALL, "en_US.UTF-8");
+       EXPECT_EQ(menuItem->getName(), "Tap");
+}
\ No newline at end of file
diff --git a/tests/VConfImplTests_init.sh b/tests/VConfImplTests_init.sh
deleted file mode 100755 (executable)
index eba396a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-
-vconftool set -f -t int    VconfImplTest/int/20      20
-vconftool set -f -t string VconfImplTest/string/foo  "foo"
-vconftool set -f -t bool   VconfImplTest/bool/true   1
-vconftool set -f -t double VconfImplTest/double/3.14 3.14
-
-
-
diff --git a/tests/VConf_init.sh b/tests/VConf_init.sh
new file mode 100755 (executable)
index 0000000..968d408
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+
+vconftool set -f -t int     VconfImplTest/int/20      20
+vconftool set -f -t string  VconfImplTest/string/foo  "foo"
+vconftool set -f -t bool    VconfImplTest/bool/true   1
+vconftool set -f -t double  VconfImplTest/double/3.14 3.14
+
+vconftool set -f -t int     __KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCROLL               1
+vconftool set -f -t int     __KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_METHOD               1
+vconftool set -f -t int     __KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SCAN_DIRECTION_VERTICAL   1
+vconftool set -f -t int     __KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND            1
+vconftool set -f -t int     __KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE            1
+vconftool set -f -t int     __KEY_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GRANULARITY_UNIT          1