--- /dev/null
+#include "ManageMenuOptionsPageModel.hpp"
+
+#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_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"
+
+ManageMenuOptionsPageModel::ManageMenuOptionsPageModel()
+{
+ std::vector<std::string> vconfKeys{
+ {VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_ACTIONS},
+ {VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_SETTINGS},
+ {VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_HOMESCREEN},
+ {VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_KEYS},
+ {VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_CONTEXTUAL_MENU},
+ {VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_GESTURES},
+ {VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_RECENT_APPS},
+ {VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_BACK}};
+ manageMenuOptionStates_.resize(ManageMenuOptionsCount);
+ vconfHandles_.resize(ManageMenuOptionsCount);
+
+ for (auto i = 0u; i < ManageMenuOptionsCount; ++i) {
+ auto key = vconfKeys[i];
+ vconfHandles_[i] = Singleton<VConfInterface>::instance().registerAndGet<bool>(
+ key,
+ false,
+ [this, i](auto value) {
+ this->manageMenuOptionStates_[i] = value;
+ });
+
+ manageMenuOptionStates_[i].attach([this, key](auto newValue) {
+ Singleton<VConfInterface>::instance().set(key, newValue);
+ });
+ }
+}
\ No newline at end of file
--- /dev/null
+#ifndef MANAGE_MENU_OPTIONS_PAGE_MODEL_HPP
+#define MANAGE_MENU_OPTIONS_PAGE_MODEL_HPP
+
+#include "ObservableProperty.hpp"
+#include "VConf.hpp"
+
+class ManageMenuOptionsPageModel
+{
+ public:
+ static const int ManageMenuOptionsCount = 8;
+ ManageMenuOptionsPageModel();
+ std::vector<ObservableProperty<bool>> manageMenuOptionStates_;
+
+ private:
+ std::vector<VConfInterface::CallbackHandle> vconfHandles_;
+};
+
+#endif
\ No newline at end of file
--- /dev/null
+#include "ManageMenuOptionsPagePresenter.hpp"
+
+ManageMenuOptionsPagePresenter::ManageMenuOptionsPagePresenter()
+{
+ std::vector<std::pair<std::string, std::string>> titleAndDescription =
+ {
+ {"IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_GESTURES", ""},
+ {"IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_ACTIONS", ""},
+ {"IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_SETTINGS", ""},
+ {"IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_RECENT_APPS", ""},
+ {"IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_HOME_SCREEN", ""},
+ {"IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_BACK", ""},
+ {"IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_BUTTONS_AND_KEYS", ""},
+ {"IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_CONTEXTUAL_MENU", "IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_CONTEXTUAL_MENU_DESC"}};
+
+ setTitle("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE");
+ groups_.emplace_back("");
+
+ for (auto i = 0u; i < ManageMenuOptionsPageModel::ManageMenuOptionsCount; ++i) {
+ groups_.back().items_.push_back(std::make_unique<ListItem>(
+ titleAndDescription[i].first,
+ titleAndDescription[i].second,
+ [this, i](auto item) {
+ model_.manageMenuOptionStates_[i] = item->widgetState_.value();
+ },
+ ListItem::WidgetType::toggle,
+ std::function<void(ListItem * item)>{},
+ std::function<void(ListItem * item)>{},
+ model_.manageMenuOptionStates_[i].value()));
+ auto item = groups_.back().items_.back().get();
+ model_.manageMenuOptionStates_[i].attach([item](auto state) {
+ item->widgetState_ = state;
+ });
+ }
+}
\ No newline at end of file
--- /dev/null
+#ifndef MANAGE_MENU_OPTIONS_PAGE_PRESENTER_HPP
+#define MANAGE_MENU_OPTIONS_PAGE_PRESENTER_HPP
+
+#include "ListPresenter.hpp"
+#include "ManageMenuOptionsPageModel.hpp"
+
+#include <vector>
+
+class ManageMenuOptionsPagePresenter : public ListPresenter
+{
+ public:
+ ManageMenuOptionsPagePresenter();
+
+ private:
+ ManageMenuOptionsPageModel model_;
+};
+
+#endif
\ No newline at end of file
#include "UniversalSwitchSettingsPagePresenter.hpp"
+#include "ManageMenuOptionsPagePresenter.hpp"
+
UniversalSwitchSettingsPagePresenter::UniversalSwitchSettingsPagePresenter()
{
setTitle("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS");
std::string{"IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE"},
std::string{"IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_SUB"},
[this](auto item) {
- DEBUG("manage groups");
+ Singleton<AppContext>::instance().push(std::make_unique<ManageMenuOptionsPagePresenter>());
}));
}