RotateActivity 89/162989/6
authorPawel Kurowski <p.kurowski2@samsung.com>
Wed, 6 Dec 2017 18:54:41 +0000 (19:54 +0100)
committerPawel Kurowski <p.kurowski2@samsung.com>
Tue, 12 Dec 2017 11:35:27 +0000 (12:35 +0100)
Change-Id: I3605d0a2be96ef9a30b44e41236beba17d2499c6

src/MenuBuilder.cpp
src/RotateActivity.cpp [new file with mode: 0644]
src/VConfKeys.hpp

index 3f6dea06a47a3efc59c51440cf90a449e6e59f02..634cbed23b4b85898e4c32518af36ef415150485 100644 (file)
@@ -504,13 +504,16 @@ MenuBuilderImplementation::MenuBuilderImplementation()
                                                                                "SCREENSHOT");
        auto rotateLeft                         =       std::make_shared<MenuItemImplementation>(
                                                                                std::vector<std::string> {"IDS_ROTATE_LEFT"},
-                                                                               std::vector<std::string> {defaultImg});
+                                                                               std::vector<std::string> {defaultImg},
+                                                                               "ROTATE_LEFT");
        auto rotateRight                        =       std::make_shared<MenuItemImplementation>(
                                                                                std::vector<std::string> {"IDS_ROTATE_RIGHT"},
-                                                                               std::vector<std::string> {defaultImg});
+                                                                               std::vector<std::string> {defaultImg},
+                                                                               "ROTATE_RIGHT");
        auto rotateToPortrait           =       std::make_shared<MenuItemImplementation>(
                                                                                std::vector<std::string> {"IDS_ROTATE_TO_PORTRAIT"},
-                                                                               std::vector<std::string> {defaultImg});
+                                                                               std::vector<std::string> {defaultImg},
+                                                                               "ROTATE_TO_PORTRAIT");
        auto speedUpScaning                     =       std::make_shared<MenuItemImplementation>(
                                                                                std::vector<std::string> {"IDS_SPEED_UP_SCANING"},
                                                                                std::vector<std::string> {defaultImg},
diff --git a/src/RotateActivity.cpp b/src/RotateActivity.cpp
new file mode 100644 (file)
index 0000000..75967cc
--- /dev/null
@@ -0,0 +1,50 @@
+#include "Activity.hpp"
+#include "ActivityFactory.hpp"
+#include "UniversalSwitchLog.hpp"
+#include "UniversalSwitch.hpp"
+#include "DBus.hpp"
+#include "dbusLocators.hpp"
+#include "VConf.hpp"
+#include "VConfKeys.hpp"
+
+template <typename DerivedType>
+class RotateActivity : public Activity, private RegisterActivity<DerivedType>
+{
+public:
+       constexpr static const char *activityType = DerivedType::activityType;
+       RotateActivity() : Activity(activityType)
+       {}
+
+       void process() override
+       {
+               Singleton<VConfInterface>::instance().set(VCONF_KEY_AUTO_ROTATE, false);
+               auto dbus = DBus::DBusClient {dbusLocators::accessibilityEMod::BUS,
+                                                                         dbusLocators::accessibilityEMod::OBJ_PATH,
+                                                                         dbusLocators::accessibilityEMod::INTERFACE,
+                                                                         DBus::ConnectionType::SYSTEM};
+               auto rotation = DerivedType::ROTATION;
+               dbus.method<void(int)>("DispatchRotationEvent").call(rotation);
+               markAsCompleted();
+       }
+};
+
+class RotateToPortraitActivity : public RotateActivity<RotateToPortraitActivity>
+{
+public:
+       static constexpr const char *activityType = "ROTATE_TO_PORTRAIT";
+       static constexpr int ROTATION = 0;
+};
+
+class RotateRightActivity : public RotateActivity<RotateRightActivity>
+{
+public:
+       static constexpr const char *activityType = "ROTATE_RIGHT";
+       static constexpr int ROTATION = 90;
+};
+
+class RotateLeftActivity : public RotateActivity<RotateLeftActivity>
+{
+public:
+       static constexpr const char *activityType = "ROTATE_LEFT";
+       static constexpr int ROTATION = 270;
+};
\ No newline at end of file
index 3c5176c422c784ee2785633a704d8f546aaa0339..8f4eae02cc74289aee379cc4a6cb2084f0999362 100644 (file)
@@ -77,6 +77,7 @@
 
 #define VCONF_KEY_TEXT_EDITION_MODE                                    VCONF_PROJECT_PREFIX "TEXT_EDITION_MODE"
 
+#define VCONF_KEY_AUTO_ROTATE                                          "db/setting/auto_rotate_screen"
 
 #define VCONF_KEY_SOUND_ENABLED                                                "db/setting/sound/sound_on"
 #define VCONF_KEY_VIBRATION_ENABLED                                    "db/setting/sound/vibration_on"