Reduced number of arguments in Activities templates 69/153869/3
authorPawel Kurowski <p.kurowski2@samsung.com>
Mon, 2 Oct 2017 13:22:34 +0000 (15:22 +0200)
committerLukasz Oleksak <l.oleksak@samsung.com>
Mon, 2 Oct 2017 14:55:48 +0000 (14:55 +0000)
Change-Id: I799603c6395c04974e12866a0121f1cb12e5c65c

src/AppControlActivity.cpp
src/GestureActivity.cpp
src/HardwareKeyActivity.cpp
src/QuickpanelActivity.cpp

index aad1762..128149d 100644 (file)
                }                                                                                               \
        } while (false)
 
-namespace
-{
-       enum AppToLaunch {
-               HOME_SCREEN,
-               LOCK_SCREEN,
-               TASK_MGR
-       };
-
-       static constexpr const char *ACTIVITY_TYPE[] = {"START_HOME_SCREEN", "START_LOCK_SCREEN", "START_TASK_MGR"};
-       static constexpr const char *LAUNCH_TYPE[] = {"org.tizen.homescreen-efl", "org.tizen.lockscreen", "org.tizen.task-mgr"};
-}
-
-template <typename DerivedType, AppToLaunch appToLaunch, bool bindable>
+template <typename DerivedType, bool bindable>
 class AppControlActivity : public Activity, private RegisterActivity<DerivedType, bindable>
 {
 public:
-       constexpr static const char *activityType = ACTIVITY_TYPE[appToLaunch];
+       constexpr static const char *activityType = DerivedType::activityType;
        AppControlActivity()
                : Activity(activityType)
        {}
@@ -57,7 +45,7 @@ public:
                ret = app_control_set_operation(*app_control, APP_CONTROL_OPERATION_DEFAULT);
                RETURN_ON_ERROR(ret);
 
-               ret = app_control_set_app_id(*app_control, LAUNCH_TYPE[appToLaunch]);
+               ret = app_control_set_app_id(*app_control, DerivedType::appToLaunch);
                RETURN_ON_ERROR(ret);
 
                ret = app_control_send_launch_request(*app_control, NULL, NULL);
@@ -69,6 +57,23 @@ protected:
        Optional<app_control_h> app_control;
 };
 
-class StartHomeScreenActivity : public AppControlActivity<StartHomeScreenActivity, HOME_SCREEN, true> {};
-class StartLockScreenActivity : public AppControlActivity<StartLockScreenActivity, LOCK_SCREEN, false> {};
-class StartTaskManagerActivity : public AppControlActivity<StartTaskManagerActivity, TASK_MGR, true> {};
+class StartHomeScreenActivity : public AppControlActivity<StartHomeScreenActivity, true>
+{
+public:
+       static constexpr const char *activityType = "START_HOME_SCREEN";
+       static constexpr const char *appToLaunch = "org.tizen.homescreen-efl";
+};
+
+class StartLockScreenActivity : public AppControlActivity<StartLockScreenActivity, false>
+{
+public:
+       static constexpr const char *activityType = "START_LOCK_SCREEN";
+       static constexpr const char *appToLaunch = "org.tizen.lockscreen";
+};
+
+class StartTaskManagerActivity : public AppControlActivity<StartTaskManagerActivity, true>
+{
+public:
+       static constexpr const char *activityType = "START_TASK_MGR";
+       static constexpr const char *appToLaunch = "org.tizen.task-mgr";
+};
index a89df17..d36548d 100644 (file)
@@ -13,20 +13,13 @@ namespace
                ZOOM_IN,
                ZOOM_OUT,
        };
-
-       static constexpr char swipeRightName[] = "SWIPE_RIGHT";
-       static constexpr char swipeLeftName[] = "SWIPE_LEFT";
-       static constexpr char swipeUpName[] = "SWIPE_UP";
-       static constexpr char swipeDownName[] = "SWIPE_DOWN";
-       static constexpr char zoomInName[] = "ZOOM_IN";
-       static constexpr char zoomOutName[] = "ZOOM_OUT";
 }
 
-template <typename DerivedType, SwipeType swipeType, const char *tempActivityType>
+template <typename DerivedType>
 class GestureActivity : public UIActivity, private RegisterActivity<DerivedType>
 {
 public:
-       static constexpr const char *activityType = tempActivityType;
+       static constexpr const char *activityType = DerivedType::activityType;
 
        GestureActivity()
                : UIActivity(activityType)
@@ -36,14 +29,50 @@ public:
        {
                auto point = uiElement->getScanningCoordinates();
                DBus::DBusClient dbus {dbusLocators::accessibilityEMod::BUS, dbusLocators::accessibilityEMod::OBJ_PATH, dbusLocators::accessibilityEMod::INTERFACE, DBus::ConnectionType::SYSTEM};
+               SwipeType swipeType = DerivedType::swipeType;
                dbus.method<void(int, int, int)>("DispatchGestureEvent").call(swipeType, point.x, point.y);
                return true;
        }
 };
 
-class SwipeRightActivity : public GestureActivity<SwipeRightActivity, SWIPE_RIGHT, swipeRightName> {};
-class SwipeLeftActivity : public GestureActivity<SwipeLeftActivity, SWIPE_LEFT, swipeLeftName> {};
-class SwipeUpActivity : public GestureActivity<SwipeUpActivity, SWIPE_UP, swipeUpName> {};
-class SwipeDownActivity : public GestureActivity<SwipeDownActivity, SWIPE_DOWN, swipeDownName> {};
-class ZoomInActivity : public GestureActivity<ZoomInActivity, ZOOM_IN, zoomInName> {};
-class ZoomOutActivity : public GestureActivity<ZoomOutActivity, ZOOM_OUT, zoomOutName> {};
+class SwipeRightActivity : public GestureActivity<SwipeRightActivity>
+{
+public:
+       static constexpr const char *activityType = "SWIPE_RIGHT";
+       static constexpr const SwipeType swipeType = SWIPE_RIGHT;
+};
+
+class SwipeLeftActivity : public GestureActivity<SwipeLeftActivity>
+{
+public:
+       static constexpr const char *activityType = "SWIPE_LEFT";
+       static constexpr SwipeType swipeType = SWIPE_LEFT;
+};
+
+class SwipeUpActivity : public GestureActivity<SwipeUpActivity>
+{
+public:
+       static constexpr const char *activityType = "SWIPE_UP";
+       static constexpr SwipeType swipeType = SWIPE_UP;
+};
+
+class SwipeDownActivity : public GestureActivity<SwipeDownActivity>
+{
+public:
+       static constexpr const char *activityType = "SWIPE_DOWN";
+       static constexpr SwipeType swipeType = SWIPE_DOWN;
+};
+
+class ZoomInActivity : public GestureActivity<ZoomInActivity>
+{
+public:
+       static constexpr const char *activityType = "ZOOM_IN";
+       static constexpr SwipeType swipeType = ZOOM_IN;
+};
+
+class ZoomOutActivity : public GestureActivity<ZoomOutActivity>
+{
+public:
+       static constexpr const char *activityType = "ZOOM_OUT";
+       static constexpr SwipeType swipeType = ZOOM_OUT;
+};
\ No newline at end of file
index 46583ce..b057022 100644 (file)
@@ -2,23 +2,11 @@
 #include "ActivityFactory.hpp"
 #include "utils.hpp"
 
-namespace
-{
-       static constexpr char BACK_ACTIVITY[] = "BACK";
-       static constexpr char MORE_OPTIONS_ACTIVITY[] = "MORE_OPTIONS";
-       static constexpr char HOME_BUTTON_X2_ACTIVITY[] = "HOME_BUTTON_X2";
-       static constexpr char HOME_BUTTON_X3_ACTIVITY[] = "HOME_BUTTON_X3";
-
-       static constexpr char BACK_BUTTON_CODE[] = "XF86Back";
-       static constexpr char MORE_OPTIONS_BUTTON_CODE[] = "XF86Menu";
-       static constexpr char HOME_BUTTON_CODE[] = "XF86Home";
-}
-
-template <typename DerivedType, const char *activityName, const char *key, unsigned multiplicity, bool bindable>
+template <typename DerivedType, bool bindable>
 class HardwareKeyActivity : public Activity, private RegisterActivity<DerivedType, bindable>
 {
 public:
-       constexpr static const char *activityType = activityName;
+       constexpr static const char *activityType = DerivedType::activityType;
 
        HardwareKeyActivity()
                : Activity(activityType)
@@ -26,12 +14,39 @@ public:
 
        bool process() override
        {
-               utils::EventGenerator::generateKeyPress(key, multiplicity);
+               utils::EventGenerator::generateKeyPress(DerivedType::buttonCode, DerivedType::multiplicity);
                return true;
        }
 };
 
-class BackActivity : public HardwareKeyActivity<BackActivity, BACK_ACTIVITY, BACK_BUTTON_CODE, 1, true> {};
-class MoreOptionsActivity : public HardwareKeyActivity<MoreOptionsActivity, MORE_OPTIONS_ACTIVITY, MORE_OPTIONS_BUTTON_CODE, 1, true> {};
-class HomeButtonX2Activity : public HardwareKeyActivity<HomeButtonX2Activity, HOME_BUTTON_X2_ACTIVITY, HOME_BUTTON_CODE, 2, false> {};
-class HomeButtonX3Activity : public HardwareKeyActivity<HomeButtonX3Activity, HOME_BUTTON_X3_ACTIVITY, HOME_BUTTON_CODE, 3, false> {};
+class BackActivity : public HardwareKeyActivity<BackActivity, true>
+{
+public:
+       static constexpr const char *activityType = "BACK";
+       static constexpr const char *buttonCode = "XF86Back";
+       static constexpr unsigned multiplicity = 1;
+};
+
+class MoreOptionsActivity : public HardwareKeyActivity<MoreOptionsActivity, true>
+{
+public:
+       static constexpr const char *activityType = "MORE_OPTIONS";
+       static constexpr const char *buttonCode = "XF86Menu";
+       static constexpr unsigned multiplicity = 1;
+};
+
+class HomeButtonX2Activity : public HardwareKeyActivity<HomeButtonX2Activity, false>
+{
+public:
+       static constexpr const char *activityType = "HOME_BUTTON_X2";
+       static constexpr const char *buttonCode = "XF86Home";
+       static constexpr unsigned multiplicity = 2;
+};
+
+class HomeButtonX3Activity : public HardwareKeyActivity<HomeButtonX3Activity, false>
+{
+public:
+       static constexpr const char *activityType = "HOME_BUTTON_X3";
+       static constexpr const char *buttonCode = "XF86Home";
+       static constexpr unsigned multiplicity = 3;
+};
\ No newline at end of file
index 4dbce6c..57d9a66 100644 (file)
@@ -6,17 +6,11 @@
 
 #include <memory>
 
-namespace
-{
-       static constexpr char openQuickpanelActivityName[] = "OPEN_QUICKPANEL";
-       static constexpr char toggleQuickpanelActivityName[] = "TOGGLE_QUICKPANEL";
-}
-
-template <typename DerivedType, const char *tempActivityType, bool bindable>
+template <typename DerivedType, bool bindable>
 class QuickpanelActivity : public Activity, private RegisterActivity<DerivedType, bindable>
 {
 public:
-       constexpr static const char *activityType = tempActivityType;
+       constexpr static const char *activityType = DerivedType::activityType;
        QuickpanelActivity()
                : Activity(activityType)
        {}
@@ -28,18 +22,22 @@ public:
        }
 };
 
-class OpenQuickpanelActivity : public QuickpanelActivity<OpenQuickpanelActivity, openQuickpanelActivityName, true>
+class OpenQuickpanelActivity : public QuickpanelActivity<OpenQuickpanelActivity, true>
 {
 public:
+       static constexpr const char *activityType = "OPEN_QUICKPANEL";
+
        static void changeQuickpanelState()
        {
                Singleton<UniversalSwitch>::instance().getMainWindow()->getQuickpanel()->show();
        }
 };
 
-class ToggleQuickpanelActivity : public QuickpanelActivity<ToggleQuickpanelActivity, toggleQuickpanelActivityName, false>
+class ToggleQuickpanelActivity : public QuickpanelActivity<ToggleQuickpanelActivity, false>
 {
 public:
+       static constexpr const char *activityType = "TOGGLE_QUICKPANEL";
+
        static void changeQuickpanelState()
        {
                auto quickpanel = Singleton<UniversalSwitch>::instance().getMainWindow()->getQuickpanel();