[Cpp refactor] Add ActionPage class 09/190909/2
authorLukasz Wlazly <l.wlazly@partner.samsung.com>
Mon, 8 Oct 2018 12:54:31 +0000 (14:54 +0200)
committerLukasz Wlazly <l.wlazly@partner.samsung.com>
Wed, 10 Oct 2018 07:19:11 +0000 (09:19 +0200)
Change-Id: I8c35ee3dbf6f7f81e21a1490c8280ab5177bbfde

12 files changed:
src/AccessoriesSwitchesPage.cpp
src/ActionPage.cpp [new file with mode: 0644]
src/ActionPage.hpp [new file with mode: 0644]
src/CameraSwitchesPage.cpp
src/ScreenSwitchPage.cpp
src/SettingAccessibility.hpp
src/UpdateSwitchPage.cpp
src/setting-accessibility-universal-switch-action.cpp [deleted file]
src/setting-accessibility-universal-switch-action.h [deleted file]
src/setting-accessibility-universal-switch-settings-set-value.cpp
src/setting-accessibility-universal-switch.cpp
src/setting-accessibility.h

index 46746f3..bb2a86c 100644 (file)
@@ -1,7 +1,6 @@
 #include "AccessoriesSwitchesPage.hpp"
 
 #include "setting-accessibility.h"
-#include "setting-accessibility-universal-switch-action.h"
 
 #include <app.h>
 
@@ -138,9 +137,9 @@ void AccessoriesSwitchesPage::popupResponseCb(void *data, Evas_Object *obj, void
                        return;
                }
 
-               setting_accessibility_universal_switch_action_page_create(ad);
+               ad->actionPage_ = std::make_unique<ActionPage>(ad);
                elm_naviframe_item_pop_cb_set(elm_naviframe_top_item_get(ad->md.getNaviframe()), renewCaptureSwitchCb, ad);
-               setting_accessibility_universal_switch_action_callback_attach(ad, accessorySwitchActionCb, (void *)strdup(switch_name));
+               ActionPage::attachCallback(ad, accessorySwitchActionCb, (void *)strdup(switch_name));
        } else {
                renewCaptureSwitchCb(ad, NULL);
        }
diff --git a/src/ActionPage.cpp b/src/ActionPage.cpp
new file mode 100644 (file)
index 0000000..09e9d98
--- /dev/null
@@ -0,0 +1,41 @@
+#include "ActionPage.hpp"
+
+#include "setting-accessibility.h"
+#include "setting-accessibility-universal-switch-settings-set-value.h"
+
+#include <app.h>
+
+static switch_action_cb _action_cb;
+static void *_action_user_data = NULL;
+
+ActionPage::ActionPage(SettingAccessibility *ad)
+{
+       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, actionChangedCb);
+
+       for (auto i = 0u; i < ad->config.activity_types.size(); ++i)
+               setting_accessibility_universal_switch_settings_set_value_radio_item_add(ad, ad->config.activity_types[i]->name, i, false);
+}
+
+void ActionPage::actionChangedCb(SettingAccessibility *ad, int item_id)
+{
+       retm_if(ad == NULL, "Input parameter is NULL");
+
+       if (item_id < 0 || item_id >= ad->config.activity_types.size()) {
+               SETTING_TRACE_END;
+               return;
+       }
+
+       auto activity = 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);
+}
+
+void ActionPage::attachCallback(SettingAccessibility *ad, switch_action_cb cb, void *user_data)
+{
+       _action_cb = cb;
+       _action_user_data = user_data;
+}
diff --git a/src/ActionPage.hpp b/src/ActionPage.hpp
new file mode 100644 (file)
index 0000000..afb970a
--- /dev/null
@@ -0,0 +1,18 @@
+#ifndef ACTION_PAGE_HPP
+#define ACTION_PAGE_HPP
+
+#include "SettingAccessibility.hpp"
+
+class ActionPage
+{
+public:
+       using switch_action_cb = void (*)(SettingAccessibility *ad, const std::string& action, void *user_data); //TODO probably to remove
+       ActionPage(SettingAccessibility *ad);
+       static void attachCallback(SettingAccessibility *ad, switch_action_cb cb, void *user_data);
+
+private:
+       static void actionChangedCb(SettingAccessibility *ad, int item_id);
+
+};
+
+#endif
index 0536ac0..72b82d1 100644 (file)
@@ -1,6 +1,6 @@
 #include "CameraSwitchesPage.hpp"
 
-#include "setting-accessibility-universal-switch-action.h"
+#include "setting-accessibility.h"
 
 #include <app.h>
 
@@ -68,8 +68,8 @@ void CameraSwitchesPage::createActionPage(SettingAccessibility *ad, UniversalSwi
 
        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, switchActionCb, camera_switch);
+       ad->actionPage_ = std::make_unique<ActionPage>(ad);
+       ActionPage::attachCallback(ad, switchActionCb, camera_switch);
 }
 
 void CameraSwitchesPage::switchActionCb(SettingAccessibility *ad, const std::string& action, void *user_data)
index 5724240..a056d3f 100644 (file)
@@ -1,14 +1,13 @@
 #include "ScreenSwitchPage.hpp"
 
 #include "setting-accessibility.h"
-#include "setting-accessibility-universal-switch-action.h"
 
 ScreenSwitchPage::ScreenSwitchPage(SettingAccessibility *ad)
 {
        retm_if(ad == NULL, "Input parameter is NULL");
 
-       setting_accessibility_universal_switch_action_page_create(ad);
-       setting_accessibility_universal_switch_action_callback_attach(ad, actionCb, NULL);
+       ad->actionPage_ = std::make_unique<ActionPage>(ad);
+       ActionPage::attachCallback(ad, actionCb, NULL);
 }
 
 void ScreenSwitchPage::attachActionCallback(SettingAccessibility *ad, UniversalSwitchUpdateCb cb)
index b7a356a..37b4db4 100644 (file)
@@ -15,6 +15,7 @@
 #include "UpdateSwitchPage.hpp"
 #include "RemoveSwitchPage.hpp"
 #include "SwitchesPage.hpp"
+#include "ActionPage.hpp"
 
 #include <tts.h>
 
@@ -29,6 +30,9 @@ class AddSwitchPage;
 class UpdateSwitchPage;
 class RemoveSwitchPage;
 class SwitchesPage;
+class ActionPage;
+
+typedef void (*switch_action_cb)(SettingAccessibility *ad, const std::string& action, void *user_data);
 
 typedef void (*back_cb)(SettingAccessibility *ad);
 
@@ -107,6 +111,7 @@ struct SettingAccessibility {
        std::unique_ptr<UpdateSwitchPage> updateSwitchPage_;
        std::unique_ptr<RemoveSwitchPage> removeSwitchPage_;
        std::unique_ptr<SwitchesPage> switchesPage_;
+       std::unique_ptr<ActionPage> actionPage_;
 };
 
 #endif
index e6bd4ea..bb4b53a 100644 (file)
@@ -2,7 +2,6 @@
 
 #include "setting-accessibility.h"
 #include "setting-accessibility-universal-switch-settings-set-value.h"
-#include "setting-accessibility-universal-switch-action.h"
 
 UpdateSwitchPage::UpdateSwitchPage(SettingAccessibility *ad, UniversalSwitchConfigurationItem *config_item)
 {
@@ -16,8 +15,8 @@ UpdateSwitchPage::UpdateSwitchPage(SettingAccessibility *ad, UniversalSwitchConf
                ad->config_item_to_update.user_name = 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, onActionUpdate, config_item);
+               ad->actionPage_ = std::make_unique<ActionPage>(ad);
+               ActionPage::attachCallback(ad, onActionUpdate, config_item);
        }
 }
 
diff --git a/src/setting-accessibility-universal-switch-action.cpp b/src/setting-accessibility-universal-switch-action.cpp
deleted file mode 100644 (file)
index 94fbab4..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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"
-
-#include <app.h>
-
-static switch_action_cb _action_cb;
-static void *_action_user_data = NULL;
-
-static void __action_changed_cb(SettingAccessibility *ad, int item_id)
-{
-
-       retm_if(ad == NULL, "Input parameter is NULL");
-
-       if (item_id < 0 || item_id >= ad->config.activity_types.size()) {
-               SETTING_TRACE_END;
-               return;
-       }
-
-       auto activity = 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);
-
-
-}
-
-void setting_accessibility_universal_switch_action_page_create(SettingAccessibility *ad)
-{
-
-       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);
-
-       for (auto i = 0u; i < ad->config.activity_types.size(); ++i)
-               setting_accessibility_universal_switch_settings_set_value_radio_item_add(ad, ad->config.activity_types[i]->name, i, false);
-}
-
-void setting_accessibility_universal_switch_action_callback_attach(SettingAccessibility *ad, switch_action_cb cb, void *user_data)
-{
-
-
-       _action_cb = cb;
-       _action_user_data = user_data;
-
-
-}
diff --git a/src/setting-accessibility-universal-switch-action.h b/src/setting-accessibility-universal-switch-action.h
deleted file mode 100644 (file)
index 2d77191..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#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 */
-
index 5f11c6e..51fc7b4 100755 (executable)
@@ -23,7 +23,6 @@
 #include <efl_extension.h>
 
 #include "setting-accessibility-universal-switch-settings-set-value.h"
-#include "setting-accessibility-universal-switch-action.h"
 #include "setting-accessibility-universal-switch-settings.h"
 
 #include <app.h>
@@ -700,8 +699,8 @@ static void __update_accessible_switch_action(void *data, Evas_Object *obj, void
        SettingAccessibility *ad = (SettingAccessibility *)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);
+       ad->actionPage_ = std::make_unique<ActionPage>(ad);
+       ActionPage::attachCallback(ad, __update_accessible_switch_choose_action, NULL);
 
 }
 
index 12f1a6d..cf99e84 100644 (file)
@@ -22,7 +22,6 @@
 #include <app_preference.h>
 #include "setting-accessibility-universal-switch.h"
 #include "setting-accessibility-universal-switch-settings.h"
-#include "setting-accessibility-universal-switch-action.h"
 
 #include <vconf.h>
 #include <app.h>
index 2505045..5053c91 100755 (executable)
 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;
 
-struct SettingAccessibility;
-
-typedef void (*switch_action_cb)(SettingAccessibility *ad, const std::string& action, void *user_data);
-
 extern setting_view setting_view_accessibility_main;
 
 #endif /*__SETTING_ACCESSIBILITY_H__ */