PowerKeyMenuActivity 58/155258/3
authorPawel Kurowski <p.kurowski2@samsung.com>
Thu, 12 Oct 2017 13:01:03 +0000 (15:01 +0200)
committerPawel Kurowski <p.kurowski2@samsung.com>
Fri, 13 Oct 2017 15:13:12 +0000 (17:13 +0200)
Change-Id: I407978e21449b3d643e5e59665bacf446f877d53

CMakeLists.txt
packaging/org.tizen.universal-switch.spec
src/MenuBuilder.cpp
src/PowerKeyMenuActivity.cpp [new file with mode: 0644]

index ad95be3..98933ca 100644 (file)
@@ -29,6 +29,7 @@ pkg_check_modules(pkgs REQUIRED
     tzsh-quickpanel
     cairo
     storage
+    syspopup-caller
 )
 # TODO remove cairo dependency, when there will be available screenshot service.
 
index 96fa7dd..a37b31e 100644 (file)
@@ -31,6 +31,7 @@ BuildRequires:  pkgconfig(eldbus)
 BuildRequires:  pkgconfig(tzsh-quickpanel)
 BuildRequires:  pkgconfig(cairo)
 BuildRequires:  pkgconfig(storage)
+BuildRequires:  pkgconfig(syspopup-caller)
 #Required for tests
 BuildRequires:  net-config
 %if %{with docs}
index ef1a37e..dc3afda 100644 (file)
@@ -470,7 +470,8 @@ MenuBuilderImplementation::MenuBuilderImplementation()
                                                                                "HOME_BUTTON_X3");
        auto viewPowerKeyMenu           =       std::make_shared<MenuItemImplementation>(
                                                                                std::vector<std::string> {"IDS_VIEW_POWER_KEY_MENU"},
-                                                                               defaultImg);
+                                                                               defaultImg,
+                                                                               "POWER_KEY_MENU");
        auto notiVolumeIncrease         =       std::make_shared<MenuItemImplementation>(
                                                                                std::vector<std::string> {"IDS_NOTI_VOLUME_INC"},
                                                                                defaultImg,
diff --git a/src/PowerKeyMenuActivity.cpp b/src/PowerKeyMenuActivity.cpp
new file mode 100644 (file)
index 0000000..6c66d10
--- /dev/null
@@ -0,0 +1,42 @@
+#include "Activity.hpp"
+#include "ActivityFactory.hpp"
+#include "UniversalSwitchLog.hpp"
+
+#include <bundle_internal.h>
+#include <syspopup_caller.h>
+
+#include <memory>
+
+class PowerKeyMenuActivity : public Activity, private RegisterActivity<PowerKeyMenuActivity>
+{
+public:
+       constexpr static const char *activityType = "POWER_KEY_MENU";
+       PowerKeyMenuActivity()
+               : Activity(activityType) {}
+
+       bool process() override
+       {
+               auto bundleHandle = std::unique_ptr<bundle, int(*)(bundle *)>(bundle_create(), bundle_free);
+               if (!bundleHandle) {
+                       ERROR("bundle_create failure");
+                       return true;
+               }
+
+               auto ret = bundle_add(bundleHandle.get(), POPUP_CONTENT, POPUP_NAME_POWERKEY);
+               if (ret < 0) {
+                       ERROR("Failed to add bundle (%s,%s), error: %d", POPUP_CONTENT, POPUP_NAME_POWERKEY, ret);
+                       return true;
+               }
+
+               ret = syspopup_launch(const_cast<char *>(POPUP_POWERKEY), bundleHandle.get());
+               if (ret < 0)
+                       ERROR("Failed to launch popup, error: %d", ret);
+
+               return true;
+       }
+
+private:
+       static constexpr const char *POPUP_CONTENT = "_SYSPOPUP_CONTENT_";
+       static constexpr const char *POPUP_NAME_POWERKEY = "powerkey";
+       static constexpr const char *POPUP_POWERKEY = "powerkey-syspopup";
+};
\ No newline at end of file