Handling home key according to the profile 06/178306/3
authorYunjin Lee <yunjin-.lee@samsung.com>
Wed, 9 May 2018 08:01:04 +0000 (17:01 +0900)
committerYunjin Lee <yunjin-.lee@samsung.com>
Mon, 14 May 2018 05:13:54 +0000 (14:13 +0900)
In wearable, use power key instead of home key

Change-Id: I68c271bff56563969aa2db0157450270172590ae
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
src/notification-daemon/ui/Popupper.cpp

index ab7ed3f..2814a97 100644 (file)
@@ -51,6 +51,14 @@ namespace {
         std::unique_ptr<char, decltype(free)*> profileNamePtr(profileName, free);
         return std::string(profileName);
     }
+
+    std::string getHomeKey() {
+        std::string profileName = getProfileName();
+        if (profileName[0] == 'w' || profileName[0] == 'W')
+            return "XF86PowerOff";
+        else
+            return "XF86Home";
+    }
 }
 
 
@@ -103,7 +111,7 @@ Eina_Bool Popupper::hwKeyClickedCb(void *data, int type, void *event)
     Ecore_Event_Key *ev = static_cast<Ecore_Event_Key*>(event);
     Popupper* runner = static_cast<Popupper*>(data);
     ALOGD("HW button pressed. type <" << type << "> pressed key is <" << ev->key << ">");
-    if ((!strcmp("XF86Home", ev->key) || !strcmp("XF86Back", ev->key)) && runner->m_elementPtr) {
+    if ((!strcmp(getHomeKey().c_str(), ev->key) || !strcmp("XF86Back", ev->key)) && runner->m_elementPtr) {
         ALOGD("Respond as deny once.");
         runner->m_popupResponseHandler(NResponseType::None);
     }
@@ -137,7 +145,7 @@ void Popupper::initialize()
     elm_win_indicator_mode_set(m_win, ELM_WIN_INDICATOR_SHOW);
     evas_object_smart_callback_add(m_win, "unfocused", &Popupper::unfocusedCb, this);
 
-    elm_win_keygrab_set(m_win, "XF86Home", 0, 0, 0, ELM_WIN_KEYGRAB_SHARED);
+    elm_win_keygrab_set(m_win, getHomeKey().c_str(), 0, 0, 0, ELM_WIN_KEYGRAB_SHARED);
     elm_win_keygrab_set(m_win, "XF86Back", 0, 0, 0, ELM_WIN_KEYGRAB_TOPMOST);
     ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, &Popupper::hwKeyClickedCb, this);
 }
@@ -195,7 +203,7 @@ void Popupper::start()
 void Popupper::stop()
 {
     m_shouldRaise = false;
-    elm_win_keygrab_unset(m_win, "XF86Home", 0, 0);
+    elm_win_keygrab_unset(m_win, getHomeKey().c_str(), 0, 0);
     elm_win_keygrab_unset(m_win, "XF86Back", 0, 0);
     m_elementPtr.reset(nullptr);
     m_answerablePtr.reset(nullptr);