From bdf012f78b2ffd7356adcaa707b977889671c190 Mon Sep 17 00:00:00 2001 From: Rodney Dawes Date: Wed, 31 Oct 2018 21:56:05 -0400 Subject: Replace ual with url-dispatcher. We don't really hneed ubuntu-app-launch here directly, as the API provided by url-dispatcher gives us a way to query what app handles the calendar URL, as the indicator is a trusted process. This removes the extra dependency and simplifies building slightly. --- CMakeLists.txt | 13 +++++++------ src/notifications.cpp | 24 ++++++++++++------------ 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7e08544..0a6c404 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,16 +58,17 @@ pkg_check_modules (SERVICE_DEPS REQUIRED gstreamer-1.0>=1.2 libnotify>=0.7.6 properties-cpp>=0.0.1 - libaccounts-glib>=1.18) + libaccounts-glib>=1.18 + messaging-menu>=0.8.2) include_directories (SYSTEM ${SERVICE_DEPS_INCLUDE_DIRS}) -# lomiri-app-launch +# lomiri-url-dispatcher -pkg_check_modules(LOMIRIAPPLAUNCH lomiri-app-launch>=0) -include_directories(${LOMIRIAPPLAUNCH_INCLUDE_DIRS}) +pkg_check_modules(URLDISPATCHER lomiri-url-dispatcher>=0) +include_directories(${URLDISPATCHER_INCLUDE_DIRS}) -if(LOMIRIAPPLAUNCH_FOUND) - add_definitions( -DHAS_LOMIRIAPPLAUNCH ) +if(URLDISPATCHER_FOUND) + add_definitions( -DHAS_URLDISPATCHER ) endif() if(EXISTS "/usr/share/accountsservice/interfaces/com.ubuntu.touch.AccountsService.Sound.xml") diff --git a/src/notifications.cpp b/src/notifications.cpp index 49300d8..7098cfc 100644 --- a/src/notifications.cpp +++ b/src/notifications.cpp @@ -24,9 +24,8 @@ #include #include -#ifdef HAS_LOMIRIAPPLAUNCH -#include -#include +#ifdef HAS_URLDISPATCHER +#include #endif #include @@ -463,16 +462,17 @@ private: static std::string calendar_app_id() { - #ifdef HAS_LOMIRIAPPLAUNCH - auto registry = std::make_shared(); - auto app_id = lomiri::app_launch::AppID::discover(registry, "lomiri-calendar-app"); - - if (!app_id.empty()) + #ifdef HAS_URLDISPATCHER + auto urls = g_strsplit("calendar://", ",", 0); + auto appids = lomiri_url_dispatch_url_appid(const_cast(urls)); + g_strfreev(urls); + std::string result; + if (appids != nullptr) { // Due the use of old API by messaging_menu we need append a extra ".desktop" to the app_id. - return std::string(app_id) + ".desktop"; - else - return std::string(); - + result = std::string(appids[0]) + ".desktop"; + g_strfreev(appids); + } + return result; #else return std::string(); #endif -- cgit v1.2.3