Move daemon sources higher in source tree 92/135492/3
authorZofia Abramowska <z.abramowska@samsung.com>
Thu, 22 Jun 2017 12:05:06 +0000 (14:05 +0200)
committerZofia Abramowska <z.abramowska@samsung.com>
Mon, 26 Jun 2017 14:12:13 +0000 (16:12 +0200)
Askuser-notification is no longer a part of askuser agent.

Change-Id: Ib01f37ae9875f4ac034bac52aeeb115c36c7e50c

143 files changed:
CMakeLists.txt
src/agent/notification-daemon/CMakeLists.txt [deleted file]
src/agent/notification-daemon/Logic.cpp [deleted file]
src/agent/notification-daemon/Logic.h [deleted file]
src/agent/notification-daemon/ServerCallbacks.cpp [deleted file]
src/agent/notification-daemon/ServerCallbacks.h [deleted file]
src/agent/notification-daemon/event/Event.h [deleted file]
src/agent/notification-daemon/main.cpp [deleted file]
src/agent/notification-daemon/po/CMakeLists.txt [deleted file]
src/agent/notification-daemon/po/ar.po [deleted file]
src/agent/notification-daemon/po/az.po [deleted file]
src/agent/notification-daemon/po/bg.po [deleted file]
src/agent/notification-daemon/po/ca.po [deleted file]
src/agent/notification-daemon/po/cs.po [deleted file]
src/agent/notification-daemon/po/da.po [deleted file]
src/agent/notification-daemon/po/de.po [deleted file]
src/agent/notification-daemon/po/el_GR.po [deleted file]
src/agent/notification-daemon/po/en.po [deleted file]
src/agent/notification-daemon/po/en_PH.po [deleted file]
src/agent/notification-daemon/po/en_US.po [deleted file]
src/agent/notification-daemon/po/es_ES.po [deleted file]
src/agent/notification-daemon/po/es_US.po [deleted file]
src/agent/notification-daemon/po/et.po [deleted file]
src/agent/notification-daemon/po/eu.po [deleted file]
src/agent/notification-daemon/po/fi.po [deleted file]
src/agent/notification-daemon/po/fr.po [deleted file]
src/agent/notification-daemon/po/fr_CA.po [deleted file]
src/agent/notification-daemon/po/ga.po [deleted file]
src/agent/notification-daemon/po/gl.po [deleted file]
src/agent/notification-daemon/po/hi.po [deleted file]
src/agent/notification-daemon/po/hr.po [deleted file]
src/agent/notification-daemon/po/hu.po [deleted file]
src/agent/notification-daemon/po/hy.po [deleted file]
src/agent/notification-daemon/po/is.po [deleted file]
src/agent/notification-daemon/po/it_IT.po [deleted file]
src/agent/notification-daemon/po/ja_JP.po [deleted file]
src/agent/notification-daemon/po/ka.po [deleted file]
src/agent/notification-daemon/po/kk.po [deleted file]
src/agent/notification-daemon/po/ko_KR.po [deleted file]
src/agent/notification-daemon/po/lt.po [deleted file]
src/agent/notification-daemon/po/lv.po [deleted file]
src/agent/notification-daemon/po/mk.po [deleted file]
src/agent/notification-daemon/po/nb.po [deleted file]
src/agent/notification-daemon/po/nl.po [deleted file]
src/agent/notification-daemon/po/pl.po [deleted file]
src/agent/notification-daemon/po/pt_BR.po [deleted file]
src/agent/notification-daemon/po/pt_PT.po [deleted file]
src/agent/notification-daemon/po/ro.po [deleted file]
src/agent/notification-daemon/po/ru_RU.po [deleted file]
src/agent/notification-daemon/po/sk.po [deleted file]
src/agent/notification-daemon/po/sl.po [deleted file]
src/agent/notification-daemon/po/sr.po [deleted file]
src/agent/notification-daemon/po/sv.po [deleted file]
src/agent/notification-daemon/po/tr_TR.po [deleted file]
src/agent/notification-daemon/po/uk.po [deleted file]
src/agent/notification-daemon/po/uz.po [deleted file]
src/agent/notification-daemon/po/zh_CN.po [deleted file]
src/agent/notification-daemon/po/zh_HK.po [deleted file]
src/agent/notification-daemon/po/zh_TW.po [deleted file]
src/agent/notification-daemon/res/popup_custom.edc [deleted file]
src/agent/notification-daemon/res/tw_ic_popup_btn_check.png [deleted file]
src/agent/notification-daemon/res/tw_ic_popup_btn_delete.png [deleted file]
src/agent/notification-daemon/ui/Answerable.h [deleted file]
src/agent/notification-daemon/ui/Po.cpp [deleted file]
src/agent/notification-daemon/ui/Po.h [deleted file]
src/agent/notification-daemon/ui/Popup.h [deleted file]
src/agent/notification-daemon/ui/PopupCheck.h [deleted file]
src/agent/notification-daemon/ui/PopupCheckMobile.h [deleted file]
src/agent/notification-daemon/ui/PopupCheckWearable.h [deleted file]
src/agent/notification-daemon/ui/Popupper.cpp [deleted file]
src/agent/notification-daemon/ui/Popupper.h [deleted file]
src/agent/notification-daemon/ui/UIElement.h [deleted file]
src/notification-daemon/CMakeLists.txt [new file with mode: 0644]
src/notification-daemon/Logic.cpp [new file with mode: 0644]
src/notification-daemon/Logic.h [new file with mode: 0644]
src/notification-daemon/ServerCallbacks.cpp [new file with mode: 0644]
src/notification-daemon/ServerCallbacks.h [new file with mode: 0644]
src/notification-daemon/event/Event.h [new file with mode: 0644]
src/notification-daemon/main.cpp [new file with mode: 0644]
src/notification-daemon/po/CMakeLists.txt [new file with mode: 0644]
src/notification-daemon/po/ar.po [new file with mode: 0755]
src/notification-daemon/po/az.po [new file with mode: 0755]
src/notification-daemon/po/bg.po [new file with mode: 0755]
src/notification-daemon/po/ca.po [new file with mode: 0755]
src/notification-daemon/po/cs.po [new file with mode: 0755]
src/notification-daemon/po/da.po [new file with mode: 0755]
src/notification-daemon/po/de.po [new file with mode: 0755]
src/notification-daemon/po/el_GR.po [new file with mode: 0755]
src/notification-daemon/po/en.po [new file with mode: 0755]
src/notification-daemon/po/en_PH.po [new file with mode: 0755]
src/notification-daemon/po/en_US.po [new file with mode: 0755]
src/notification-daemon/po/es_ES.po [new file with mode: 0755]
src/notification-daemon/po/es_US.po [new file with mode: 0755]
src/notification-daemon/po/et.po [new file with mode: 0755]
src/notification-daemon/po/eu.po [new file with mode: 0755]
src/notification-daemon/po/fi.po [new file with mode: 0755]
src/notification-daemon/po/fr.po [new file with mode: 0755]
src/notification-daemon/po/fr_CA.po [new file with mode: 0755]
src/notification-daemon/po/ga.po [new file with mode: 0755]
src/notification-daemon/po/gl.po [new file with mode: 0755]
src/notification-daemon/po/hi.po [new file with mode: 0755]
src/notification-daemon/po/hr.po [new file with mode: 0755]
src/notification-daemon/po/hu.po [new file with mode: 0755]
src/notification-daemon/po/hy.po [new file with mode: 0755]
src/notification-daemon/po/is.po [new file with mode: 0755]
src/notification-daemon/po/it_IT.po [new file with mode: 0755]
src/notification-daemon/po/ja_JP.po [new file with mode: 0755]
src/notification-daemon/po/ka.po [new file with mode: 0755]
src/notification-daemon/po/kk.po [new file with mode: 0755]
src/notification-daemon/po/ko_KR.po [new file with mode: 0755]
src/notification-daemon/po/lt.po [new file with mode: 0755]
src/notification-daemon/po/lv.po [new file with mode: 0755]
src/notification-daemon/po/mk.po [new file with mode: 0755]
src/notification-daemon/po/nb.po [new file with mode: 0755]
src/notification-daemon/po/nl.po [new file with mode: 0755]
src/notification-daemon/po/pl.po [new file with mode: 0755]
src/notification-daemon/po/pt_BR.po [new file with mode: 0755]
src/notification-daemon/po/pt_PT.po [new file with mode: 0755]
src/notification-daemon/po/ro.po [new file with mode: 0755]
src/notification-daemon/po/ru_RU.po [new file with mode: 0755]
src/notification-daemon/po/sk.po [new file with mode: 0755]
src/notification-daemon/po/sl.po [new file with mode: 0755]
src/notification-daemon/po/sr.po [new file with mode: 0755]
src/notification-daemon/po/sv.po [new file with mode: 0755]
src/notification-daemon/po/tr_TR.po [new file with mode: 0755]
src/notification-daemon/po/uk.po [new file with mode: 0755]
src/notification-daemon/po/uz.po [new file with mode: 0755]
src/notification-daemon/po/zh_CN.po [new file with mode: 0755]
src/notification-daemon/po/zh_HK.po [new file with mode: 0755]
src/notification-daemon/po/zh_TW.po [new file with mode: 0755]
src/notification-daemon/res/popup_custom.edc [new file with mode: 0644]
src/notification-daemon/res/tw_ic_popup_btn_check.png [new file with mode: 0644]
src/notification-daemon/res/tw_ic_popup_btn_delete.png [new file with mode: 0644]
src/notification-daemon/ui/Answerable.h [new file with mode: 0644]
src/notification-daemon/ui/Po.cpp [new file with mode: 0644]
src/notification-daemon/ui/Po.h [new file with mode: 0644]
src/notification-daemon/ui/Popup.h [new file with mode: 0644]
src/notification-daemon/ui/PopupCheck.h [new file with mode: 0644]
src/notification-daemon/ui/PopupCheckMobile.h [new file with mode: 0644]
src/notification-daemon/ui/PopupCheckWearable.h [new file with mode: 0644]
src/notification-daemon/ui/Popupper.cpp [new file with mode: 0644]
src/notification-daemon/ui/Popupper.h [new file with mode: 0644]
src/notification-daemon/ui/UIElement.h [new file with mode: 0644]

index bd98706ed983d638e2d2d84aaec924bd8bc1b913..929727fbe833d42aa4b9a473344f49f0225e9df1 100644 (file)
@@ -96,7 +96,7 @@ IF (BUILD_ASKUSER_NOTIFICATION)
     SET(TARGET_ASKUSER_NOTIFICATION "askuser-notification")
     SET(TARGET_ASKUSER_NOTIFICATION_LIB "askuser-notification-ipc")
     SET(TARGET_ASKUSER_NOTIFICATION_TEST "askuser-notification-test")
-    ADD_SUBDIRECTORY(src/agent/notification-daemon)
+    ADD_SUBDIRECTORY(src/notification-daemon)
     ADD_SUBDIRECTORY(src/common/protocol)
 ENDIF (BUILD_ASKUSER_NOTIFICATION)
 
diff --git a/src/agent/notification-daemon/CMakeLists.txt b/src/agent/notification-daemon/CMakeLists.txt
deleted file mode 100644 (file)
index 8304067..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-SET(NOTIF_PATH ${PROJECT_SOURCE_DIR}/src/agent/notification-daemon/)
-
-PROJECT("askuser-notification")
-# Pass project name to sources
-ADD_DEFINITIONS("-DPROJECT_NAME=\"${PROJECT_NAME}\"")
-
-PKG_CHECK_MODULES(ASKUSER_NOTIFICATION_DEP
-    REQUIRED
-    elementary
-    libsystemd
-    notification
-    vconf
-    pkgmgr-info
-    glib-2.0
-    capi-ui-efl-util
-    capi-system-info
-    security-privilege-manager
-)
-
-INCLUDE_DIRECTORIES(SYSTEM
-    ${ASKUSER_NOTIFICATION_DEP_INCLUDE_DIRS}
-)
-INCLUDE_DIRECTORIES(
-    ${ASKUSER_PATH}
-    ${ASKUSER_PATH}/common
-    ${ASKUSER_PATH}/common/protocol
-    ${ASKUSER_PATH}/agent/notification-daemon
-)
-
-SET(ASKUSER_NOTIFICATION_SOURCES
-    ${NOTIF_PATH}/main.cpp
-    ${NOTIF_PATH}/Logic.cpp
-    ${NOTIF_PATH}/ServerCallbacks.cpp
-    ${NOTIF_PATH}/ui/Po.cpp
-    ${ASKUSER_PATH}/common/log/alog.cpp
-    ${ASKUSER_PATH}/common/policy/PrivilegeInfo.cpp
-    ${NOTIF_PATH}/ui/Popupper.cpp
-   )
-
-ADD_EXECUTABLE(${TARGET_ASKUSER_NOTIFICATION} ${ASKUSER_NOTIFICATION_SOURCES})
-
-SET_TARGET_PROPERTIES(${TARGET_ASKUSER_NOTIFICATION} PROPERTIES
-    COMPILE_FLAGS
-    -fpie
-)
-
-TARGET_LINK_LIBRARIES(${TARGET_ASKUSER_NOTIFICATION}
-    ${ASKUSER_NOTIFICATION_DEP_LIBRARIES}
-    ${TARGET_ASKUSER_COMMON}
-    ${TARGET_ASKUSER_NOTIFICATION_LIB}
-    -pie
-)
-
-ADD_CUSTOM_TARGET(popup_custom.edj
-    COMMAND edje_cc -no-save res/popup_custom.edc res/popup_custom.edj
-    DEPENDS res/popup_custom.edc
-    )
-ADD_DEPENDENCIES(${TARGET_ASKUSER_NOTIFICATION} popup_custom.edj)
-
-INSTALL(TARGETS ${TARGET_ASKUSER_NOTIFICATION} DESTINATION ${BIN_INSTALL_DIR})
-INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/ DESTINATION ${RES_DIR} FILES_MATCHING PATTERN "*.png")
-INSTALL(FILES res/popup_custom.edj DESTINATION ${RES_DIR})
-
-ADD_SUBDIRECTORY(po)
diff --git a/src/agent/notification-daemon/Logic.cpp b/src/agent/notification-daemon/Logic.cpp
deleted file mode 100644 (file)
index 7997bdb..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/Service.cpp
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Declaration of Popupper class
- */
-
-#include "Logic.h"
-
-#include <algorithm>
-#include <signal.h>
-#include <string>
-#include <sys/signalfd.h>
-#include <vconf.h>
-#include <Elementary.h>
-
-#include <exception/Exception.h>
-#include <exception/ErrnoException.h>
-#include "ServerCallbacks.h"
-
-namespace AskUser {
-
-namespace Notification {
-
-void Logic::addChannelFd(Protocol::ConnectionFd fd, const Protocol::Credentials &creds) {
-    // TODO check if doesn't already exist
-    // TODO translate to appId, pkgId and appIds from package
-    auto it = m_connToInfo.find(fd);
-    if (it != m_connToInfo.end()) {
-        ALOGE("Connection with fd : " << fd << " already exists. Closing connection");
-        m_clientChannel->process(fd, 0);
-        return;
-    }
-    (void)creds;
-    ConnectionInfo connInfo;
-    m_connToInfo.insert(it, std::make_pair(fd, connInfo));
-}
-
-void Logic::updateChannelFd(Protocol::ConnectionFd fd, Ecore_Fd_Handler_Flags flags) {
-    auto it = m_fdInfo.find(fd);
-    if (it != m_fdInfo.end()) {
-        m_fdInfo[fd].status = FdChange::CHANGE;
-        ecore_main_fd_handler_del(m_fdInfo[fd].handler);
-    }
-
-    auto handler = ecore_main_fd_handler_add(fd, flags, &Logic::clientChHandler, this, nullptr, nullptr);
-    if (handler == nullptr) {
-        ALOGE("Couldn't set fd handler");
-        return;
-    }
-    m_fdInfo[fd].handler = handler;
-    m_fdInfo[fd].status = FdChange::NONE;
-}
-
-void Logic::removeChannelFd(Protocol::ConnectionFd fd) {
-    m_connToInfo.erase(fd);
-    auto it = m_fdInfo.find(fd);
-    if (it == m_fdInfo.end()) {
-        return;
-    }
-    it->second.status = FdChange::DEL;
-    ecore_main_fd_handler_del(it->second.handler);
-}
-
-Eina_Bool Logic::clientChHandler(void *data, Ecore_Fd_Handler *handler) {
-    Logic *service = static_cast<Logic *>(data);
-    int fd = ecore_main_fd_handler_fd_get(handler);
-    if (fd == -1) {
-        ALOGE("Failed to fetch fd from handler");
-        return ECORE_CALLBACK_CANCEL;
-    }
-    int mask = 0;
-    if (ecore_main_fd_handler_active_get(handler, ECORE_FD_READ)) {
-        mask = AskUser::Protocol::READ;
-    } else if (ecore_main_fd_handler_active_get(handler, ECORE_FD_WRITE)) {
-        mask = AskUser::Protocol::WRITE;
-    }
-    return service->processChannel(fd, mask);
-}
-
-Eina_Bool Logic::processChannel(int fd, int mask) {
-    m_fdInfo[fd].status = FdChange::NONE;
-    updateChannel(fd, mask);
-
-    switch (m_fdInfo[fd].status) {
-    case FdChange::NONE:
-        return ECORE_CALLBACK_RENEW;
-    case FdChange::DEL: {
-        // Remove all pending events from this fd
-        auto queueIt = std::remove_if(m_pendingEvents.begin(), m_pendingEvents.end(), [fd](const FdEvent &fdEvent) {return fdEvent.fd == fd;});
-        m_pendingEvents.erase(queueIt, m_pendingEvents.end());
-
-        // Handle next event if removed active fd
-        if (fd == m_currentFd) {
-            finishCurrentEvent();
-            processEvents();
-        }
-        m_fdInfo.erase(fd);
-        return ECORE_CALLBACK_CANCEL;
-    }
-    case FdChange::CHANGE:
-        return ECORE_CALLBACK_CANCEL;
-    default:
-        ALOGE("Unexpected fd change value : " << static_cast<int>(m_fdInfo[fd].status));
-        return ECORE_CALLBACK_CANCEL;
-    }
-}
-
-void Logic::addEvent(IUIEvent *event) {
-    FdEvent fdEvent{m_currentFd, std::unique_ptr<IUIEvent>(event)};
-    m_pendingEvents.emplace_back(std::move(fdEvent));
-    processEvents();
-}
-
-void Logic::popup(Protocol::ConnectionFd fd, Protocol::RequestId id, std::string &&privilege) {
-    (void)fd;
-    (void)id;
-    (void)privilege;
-}
-
-bool Logic::isEventProcessed() {
-    return m_currentEventId != -1;
-}
-
-void Logic::finishCurrentEvent() {
-    m_popupper.popupClose(m_currentEventId);
-    m_currentEventId = -1;
-    m_currentFd = -1;
-}
-
-void Logic::processEvents() {
-    // Active event processing
-    if (isEventProcessed())
-        return;
-
-    // No pending events
-    if (m_pendingEvents.empty())
-        return;
-
-    FdEvent fdEvent = std::move(m_pendingEvents.front());
-    m_currentFd = fdEvent.fd;
-    m_currentEventId = fdEvent.event->getId();
-    m_pendingEvents.pop_front();
-
-    fdEvent.event->process();
-}
-
-void Logic::registerSignalFd() {
-    // TODO use ecore event EXIT?
-    sigset_t mask;
-    sigemptyset(&mask);
-    sigaddset(&mask, SIGTERM);
-
-    if (pthread_sigmask(SIG_BLOCK, &mask, NULL) < 0) {
-        throw ErrnoException("Couldn't set signal mask");
-    }
-
-    int signalFd = signalfd(-1, &mask, 0);
-    if (signalFd < 0) {
-        throw ErrnoException("Couldn't create signalfd");
-    }
-    auto handler = ecore_main_fd_handler_add(signalFd, ECORE_FD_READ, &Logic::signalHandler, this, nullptr, nullptr);
-    if (handler == nullptr) {
-        throw Exception("Couldn't set fd handler");
-    }
-}
-
-void Logic::stop() {
-    if (isEventProcessed())
-        finishCurrentEvent();
-    m_popupper.stop();
-}
-
-Eina_Bool Logic::signalHandler(void *data, Ecore_Fd_Handler *) {
-    Logic *logic = static_cast<Logic*>(data);
-    logic->stop();
-    return ECORE_CALLBACK_CANCEL;
-}
-
-void Logic::prepareChannel() {
-    m_clientChannel = AskUser::Protocol::createChannel(
-            std::unique_ptr<AskUser::Protocol::IServerCallbacks>(new AskUser::Protocol::ServerCallbacks(this, &m_popupper)));
-}
-
-void Logic::updateChannel(int fd, int mask) {
-    // TODO errors?
-    m_clientChannel->process(fd, mask);
-}
-
-void Logic::init() {
-    init_agent_log();
-    m_popupper.setLocale();
-    m_popupper.initialize();
-    m_popupper.registerPopupResponseHandler([&](int popupId, NResponseType response) { popupResponse(popupId, response);});
-
-    registerSignalFd();
-
-    prepareChannel();
-}
-
-void Logic::run() {
-    // TODO ensure we won't throw inside ecore loop
-    m_popupper.start();
-    m_popupper.shutdown();
-}
-
-void Logic::popupResponse(int popupId, NResponseType response) {
-    if (popupId != m_currentEventId) {
-        ALOGD("Got different popup id than is being processed");
-        return;
-    }
-    int clientResponse;
-    // TODO translate ui response to policy result
-    switch (response) {
-    case NResponseType::Deny:
-        clientResponse = ASKUSER_DENY_ONCE;
-        break;
-    case NResponseType::DenyAlways:
-        clientResponse = ASKUSER_DENY_FOREVER;
-        break;
-    case NResponseType::Allow:
-        clientResponse = ASKUSER_ALLOW_ONCE;
-        break;
-    case NResponseType::AllowAlways:
-        clientResponse = ASKUSER_ALLOW_FOREVER;
-        break;
-    case NResponseType::None:
-        clientResponse = ASKUSER_NONE;
-        break;
-    case NResponseType::Error:
-        clientResponse = -255;
-        break;
-    default:
-        clientResponse = -255; // error
-    }
-    // TODO create popup ids containing fd and request id
-    m_clientChannel->popupResponse(-1, popupId, clientResponse);
-    finishCurrentEvent();
-    processEvents();
-}
-
-} // namespace Notification
-
-} // namepsace AskUser
diff --git a/src/agent/notification-daemon/Logic.h b/src/agent/notification-daemon/Logic.h
deleted file mode 100644 (file)
index e1bec91..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/Service.h
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Declaration of Popupper class
- */
-
-#pragma once
-
-#include <map>
-#include <deque>
-#include <askuser-notification/ask-user-service.h>
-#include <event/Event.h>
-
-namespace AskUser {
-
-namespace Notification {
-
-class Logic {
-public:
-    class Exception : public std::exception {
-    public:
-        Exception(std::string &&s) : m_msg(std::move(s)) {}
-        const char *what() const throw () {
-            return m_msg.c_str();
-        }
-    private:
-        std::string m_msg;
-    };
-    Logic() : m_currentFd(-1), m_currentEventId(-1), m_isFdDeleted(false) {}
-    void init();
-    void run();
-    void stop();
-
-    void addChannelFd(Protocol::ConnectionFd fd, const Protocol::Credentials &creds);
-    void updateChannelFd(Protocol::ConnectionFd fd, Ecore_Fd_Handler_Flags flags);
-    void removeChannelFd(Protocol::ConnectionFd fd);
-
-    void addEvent(IUIEvent *event);
-    void popup(Protocol::ConnectionFd fd, Protocol::RequestId id, std::string &&privilege);
-
-    ~Logic() {}
-private:
-    //Initialization
-    void registerSignalFd();
-    void prepareChannel();
-    void updateChannel(int fd, int mask);
-
-    // Descriptor handlers
-    static Eina_Bool clientChHandler(void *data, Ecore_Fd_Handler *handler);
-    static Eina_Bool signalHandler(void *data, Ecore_Fd_Handler *handler);
-    //static Eina_Bool signalHandler(void *data, int type, void *event);
-
-    Eina_Bool processChannel(int fd, int mask);
-    void processEvents();
-    bool isEventProcessed();
-    void finishCurrentEvent();
-    void popupResponse(int popupId, NResponseType response);
-
-    AskUser::Protocol::ChannelPtr m_clientChannel;
-    Popupper m_popupper;
-
-    struct FdEvent {
-        int fd;
-        std::unique_ptr<IUIEvent> event;
-    };
-
-    // Workaround for no information about to which fd event belongs to
-    int m_currentFd;
-    int m_currentEventId;
-    int m_isFdDeleted;
-    std::deque<FdEvent> m_pendingEvents;
-
-    enum class FdChange {
-        NONE,
-        ADD,
-        CHANGE,
-        DEL
-    };
-    struct FdInfo {
-        Ecore_Fd_Handler* handler;
-        FdChange status;
-    };
-
-    std::map<int, FdInfo> m_fdInfo;
-
-    struct ConnectionInfo {
-        std::string appId;
-        std::string pkgId;
-        std::vector<std::string> apps;
-    };
-
-    std::map<Protocol::ConnectionFd, ConnectionInfo> m_connToInfo;
-};
-
-} // namespace Notification
-
-} // namespace AskUser
diff --git a/src/agent/notification-daemon/ServerCallbacks.cpp b/src/agent/notification-daemon/ServerCallbacks.cpp
deleted file mode 100644 (file)
index b8c7825..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/ServerCallbacks.cpp
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Implementation ServerCallbacks classes
- */
-#include <unistd.h>
-
-#include "ServerCallbacks.h"
-#include "event/Event.h"
-
-namespace {
-Ecore_Fd_Handler_Flags maskToFlags(int mask) {
-    int flags = ECORE_FD_ERROR;
-    if (mask & AskUser::Protocol::READ)
-        flags |= static_cast<int>(ECORE_FD_READ);
-    if (mask & AskUser::Protocol::WRITE)
-        flags |= static_cast<int>(ECORE_FD_WRITE);
-    return static_cast<Ecore_Fd_Handler_Flags>(flags);
-}
-}
-
-namespace AskUser {
-namespace Protocol {
-
-void ServerCallbacks::newConnection(ConnectionFd fd, const Credentials &creds) {
-    m_service->addChannelFd(fd, creds);
-}
-
-void ServerCallbacks::updateConnection(ConnectionFd fd, int mask) {
-    if (mask == 0)
-        m_service->removeChannelFd(fd);
-    else
-        m_service->updateChannelFd(fd, maskToFlags(mask));
-}
-
-void ServerCallbacks::popup(ConnectionFd fd, RequestId id, std::string &&privilege) {
-    m_service->popup(fd, id, std::move(privilege));
-}
-
-} /* namespace Notification */
-} /* namespace Askuser */
diff --git a/src/agent/notification-daemon/ServerCallbacks.h b/src/agent/notification-daemon/ServerCallbacks.h
deleted file mode 100644 (file)
index d2f9101..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/ServerCallbacks.h
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Declaration of ServerCallbacks classes
- */
-#pragma once
-
-#include <memory>
-
-#include <askuser-notification/ask-user-service.h>
-
-#include "Logic.h"
-#include "ui/Popupper.h"
-
-namespace AskUser {
-namespace Protocol {
-
-class ServerCallbacks : public IServerCallbacks {
-public:
-    ServerCallbacks(AskUser::Notification::Logic *logic, AskUser::Notification::Popupper *popupper)
-        : m_service(logic), m_popupper(popupper)
-    {}
-    virtual void newConnection(ConnectionFd fd, const Credentials &creds);
-    virtual void updateConnection(ConnectionFd fd, int mask);
-    virtual void popup(ConnectionFd fd, RequestId id, std::string &&privilege);
-
-    virtual ~ServerCallbacks() {}
-private:
-    AskUser::Notification::Logic *m_service;
-    AskUser::Notification::Popupper *m_popupper;
-};
-
-} /* namespace Notification */
-} /* namespace Askuser */
-
diff --git a/src/agent/notification-daemon/event/Event.h b/src/agent/notification-daemon/event/Event.h
deleted file mode 100644 (file)
index f00cba4..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/event/Event.h
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Declaration of main loop Event classes
- */
-
-#pragma once
-
-#include <string>
-#include <vector>
-
-#include <ui/Popupper.h>
-
-namespace AskUser {
-namespace Notification {
-
-class IUIEvent {
-public:
-    IUIEvent(Popupper *popupper) : m_popupper(popupper), m_eventId(-1) {}
-    virtual void process() = 0;
-    void setId(int id) { m_eventId = id; }
-    int getId() { return m_eventId; }
-    virtual ~IUIEvent() {}
-protected:
-    Popupper *m_popupper;
-    int m_eventId;
-};
-
-class EventPopupCheck : public IUIEvent {
-public:
-    EventPopupCheck(Popupper *popupper, int popupId, const std::string &appName,
-               const std::string &pkgName, const std::string &privilege)
-        : IUIEvent(popupper), m_popupId(popupId), m_appName(appName),
-          m_pkgName(pkgName), m_privilege(privilege)
-    {
-        setId(popupId);
-    }
-
-    virtual void process() {
-        m_popupper->popupCheck(m_popupId, m_appName, m_pkgName, m_privilege);
-    }
-private:
-    int m_popupId;
-    std::string m_appName;
-    std::string m_pkgName;
-    std::string m_privilege;
-};
-
-} //namespace AskUser
-} //namespace Notification
-
-
diff --git a/src/agent/notification-daemon/main.cpp b/src/agent/notification-daemon/main.cpp
deleted file mode 100644 (file)
index 948dfb8..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- *  Copyright (c) 2016 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/notification-daemon/main.cpp
- * @author      Oskar Świtalski <o.switalski@samsung.com>
- * @brief       Main askuser notification daemon file
- */
-
-#ifdef BUILD_WITH_SYSTEMD_DAEMON
-#include <systemd/sd-daemon.h>
-#endif
-
-#include <exception>
-#include <exception/Exception.h>
-#include <log/alog.h>
-
-#include "Logic.h"
-
-int main()
-{
-    using namespace AskUser::Notification;
-    try {
-        Logic logic;
-        logic.init();
-
-#ifdef BUILD_WITH_SYSTEMD_DAEMON
-        int ret = sd_notify(0, "READY=1");
-        if (ret == 0) {
-            ALOGW("Agent was not configured to notify its status");
-        } else if (ret < 0) {
-            ALOGE("sd_notify failed: [" << ret << "]");
-        }
-#endif
-
-        logic.run();
-    } catch (std::exception &e) {
-        ALOGE("Askuser-notification stopped because of: <" << e.what() << ">.");
-    } catch (...) {
-        ALOGE("Askuser-notification stopped because of unknown unhandled exception.");
-    }
-
-    return 0;
-}
diff --git a/src/agent/notification-daemon/po/CMakeLists.txt b/src/agent/notification-daemon/po/CMakeLists.txt
deleted file mode 100644 (file)
index e99ed32..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (c) 2015-2017 Samsung Electronics Co., Ltd All Rights Reserved
-#
-#    Licensed under the Apache License, Version 2.0 (the "License");
-#    you may not use this file except in compliance with the License.
-#    You may obtain a copy of the License at
-#
-#        http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS,
-#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#    See the License for the specific language governing permissions and
-#    limitations under the License.
-#
-# @file        CMakeLists.txt
-# @author      Adam Malinowski <a.malinowsk2@partner.samsung.com>
-#
-
-SET(POFILES
-    ar.po
-    az.po
-    bg.po
-    ca.po
-    cs.po
-    da.po
-    de.po
-    el_GR.po
-    en.po
-    en_PH.po
-    en_US.po
-    es_ES.po
-    es_US.po
-    et.po
-    eu.po
-    fi.po
-    fr.po
-    fr_CA.po
-    ga.po
-    gl.po
-    hi.po
-    hr.po
-    hu.po
-    hy.po
-    is.po
-    it_IT.po
-    ja_JP.po
-    ka.po
-    kk.po
-    ko_KR.po
-    lt.po
-    lv.po
-    mk.po
-    nb.po
-    nl.po
-    pl.po
-    pt_BR.po
-    pt_PT.po
-    ro.po
-    ru_RU.po
-    sk.po
-    sl.po
-    sr.po
-    sv.po
-    tr_TR.po
-    uk.po
-    uz.po
-    zh_CN.po
-    zh_HK.po
-    zh_TW.po
-)
-
-SET(PREFIX ${CMAKE_INSTALL_PREFIX})
-SET(SHAREDIR "${PREFIX}/share")
-SET(LOCALEDIR "${SHAREDIR}/locale")
-SET(MSGFMT "/usr/bin/msgfmt")
-
-FOREACH(pofile ${POFILES})
-    SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
-    MESSAGE("PO: ${pofile}")
-    GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
-    GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
-    SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
-    ADD_CUSTOM_COMMAND(
-        OUTPUT ${moFile}
-        COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
-        DEPENDS ${absPofile}
-    )
-    INSTALL(FILES ${moFile}
-        DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${TARGET_ASKUSER_NOTIFICATION}.mo)
-    SET(moFiles ${moFiles} ${moFile})
-ENDFOREACH(pofile)
-
-ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/src/agent/notification-daemon/po/ar.po b/src/agent/notification-daemon/po/ar.po
deleted file mode 100755 (executable)
index c8d348f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "عدم الإظهار مجدداً"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "غير مسموح لـ %1$s باستخدام %2$s. حدد ضبط الخصوصية في الضبط > الخصوصية والحماية."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "طلب الخصوصية"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "هل تريد السماح لـ %1$s بالوصول إلى %2$s؟"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "السماح"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "رفض"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "ثمة طلب من %s للحصول على إذن للوصول إلى العناصر التالية:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "اسمح بكل الأذونات ذات الصلة لاستخدام التطبيق."
-
diff --git a/src/agent/notification-daemon/po/az.po b/src/agent/notification-daemon/po/az.po
deleted file mode 100755 (executable)
index 50ab98d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Bir daha göstərmə"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s-yə %2$s-dən istifadə icazəsi verilməmişdir. Parametrlər > Məxfilik və təhlükəsilikdən Məxfilik parametrlərini seçin."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Məxfilik sorğusu"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "%1$s-a %2$s-ya çıxış icazəsi verilsin?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "İcazə ver"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Rədd et"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s aşağıdakı elementlərə çıxış icazəsi istəyir:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Proqramdan istifadə etmək üçün bütün müvafiq icazələri verin."
-
diff --git a/src/agent/notification-daemon/po/bg.po b/src/agent/notification-daemon/po/bg.po
deleted file mode 100755 (executable)
index 1ecac00..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Да не се показва повече"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s няма право да използва %2$s. Изберете „Настройки за поверителност“ в Настройки > Поверителност и защита."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Заявка за поверителна информация"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Разрешавате ли на %1$s достъп до %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Позволяв."
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Отказ"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s иска разрешение за достъп до следните елементи:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "За да използвате приложението, позволете всички свързани разрешения."
-
diff --git a/src/agent/notification-daemon/po/ca.po b/src/agent/notification-daemon/po/ca.po
deleted file mode 100755 (executable)
index dcff3ce..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "No tornar a mostrar"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s no té permís per utilitzar %2$s. Seleccioni Ajustaments de privadesa a Ajustaments > Privadesa i seguretat."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Sol·licitud de privadesa"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Vol permetre que %1$s accedeixi a %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permetre"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Denegar"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s està demanant permís per accedir als elements següents:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Per utilitzar l'aplicació, concedeixi tots els permisos corresponents."
-
diff --git a/src/agent/notification-daemon/po/cs.po b/src/agent/notification-daemon/po/cs.po
deleted file mode 100755 (executable)
index 472184a..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Znovu nezobrazovat"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s nesmí používat %2$s. Vyberte Nastavení soukromí v Nastavení > Ochrana osobních údajů a zabezpečení."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Požadavek na ochranu osobních údajů"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Povolit %1$s přístup k %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Povolit"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Odmítnout"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s vyžaduje přístup k následujícím položkám:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Chcete-li použít aplikaci, povolte všechna příslušná oprávnění."
-
diff --git a/src/agent/notification-daemon/po/da.po b/src/agent/notification-daemon/po/da.po
deleted file mode 100755 (executable)
index efdcc0f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Vis ikke igen"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s må ikke bruge %2$s. Vælg Fortrolighedsindstillinger under Indstillinger > Fortrolighed og sikkerhed."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Fortrolighedsanmodning"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Vil du give %1$s adgang til %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Tillad"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Afvis"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s anmoder om tilladelse til at få adgang til følgende elementer:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Hvis du vil bruge appen, skal du aktivere alle relevante tilladelser."
-
diff --git a/src/agent/notification-daemon/po/de.po b/src/agent/notification-daemon/po/de.po
deleted file mode 100755 (executable)
index 54ee639..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Nicht erneut anzeigen"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s darf %2$s nicht nutzen. Wählen Sie unter „Einstellungen > Gerätesicherheit“ die Option „Datenschutz“ aus."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Datenschutzanfrage"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "%1$s Zugriff auf %2$s erlauben?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Zulassen"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Ablehnen"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s benötigt eine Berechtigung, um auf die folgenden Elemente zuzugreifen:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Erteilen Sie alle relevanten Genehmigungen, um die App zu verwenden."
-
diff --git a/src/agent/notification-daemon/po/el_GR.po b/src/agent/notification-daemon/po/el_GR.po
deleted file mode 100755 (executable)
index 9244ff4..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Να μην εμφανιστεί ξανά"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "Η εφαρμογή %1$s δεν επιτρέπεται να χρησιμοποιήσει τη λειτουργία %2$s. Μεταβείτε στις Ρυθμίσεις > Απόρρητο και ασφάλεια και επιλέξτε «Ρυθμίσεις απόρρητου»."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Αίτηση απορρήτου"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Να επιτραπεί στην εφαρμογή %1$s η πρόσβαση σε %2$s;"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Να επιτρέπ."
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Απόρριψη"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "Η εφαρμογή %s ζητάει πρόσβαση στα παρακάτω στοιχεία:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Για να χρησιμοποιήσετε την εφαρμογή, παραχωρήστε όλα τα σχετικά δικαιώματα."
-
diff --git a/src/agent/notification-daemon/po/en.po b/src/agent/notification-daemon/po/en.po
deleted file mode 100755 (executable)
index c757995..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Don't show again"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s not allowed to use %2$s. Select Privacy settings in Settings > Privacy and security."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Privacy request"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Allow %1$s to access your %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Allow"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Deny"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s is requesting permission to access the following items:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "To use app, allow all relevant permissions."
-
diff --git a/src/agent/notification-daemon/po/en_PH.po b/src/agent/notification-daemon/po/en_PH.po
deleted file mode 100755 (executable)
index c757995..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Don't show again"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s not allowed to use %2$s. Select Privacy settings in Settings > Privacy and security."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Privacy request"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Allow %1$s to access your %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Allow"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Deny"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s is requesting permission to access the following items:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "To use app, allow all relevant permissions."
-
diff --git a/src/agent/notification-daemon/po/en_US.po b/src/agent/notification-daemon/po/en_US.po
deleted file mode 100755 (executable)
index c757995..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Don't show again"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s not allowed to use %2$s. Select Privacy settings in Settings > Privacy and security."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Privacy request"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Allow %1$s to access your %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Allow"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Deny"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s is requesting permission to access the following items:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "To use app, allow all relevant permissions."
-
diff --git a/src/agent/notification-daemon/po/es_ES.po b/src/agent/notification-daemon/po/es_ES.po
deleted file mode 100755 (executable)
index 164c4ba..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "No volver a mostrar"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s no está autorizado para utilizar %2$s. Seleccione Ajustes de privacidad en Ajustes > Privacidad y seguridad."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Solicitud de privacidad"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "¿Quiere permitir a %1$s acceder a su(s) %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permitir"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Rechazar"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s está solicitando permiso para acceder a los siguientes elementos:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Para usar la aplicación, conceda todos los permisos correspondientes."
-
diff --git a/src/agent/notification-daemon/po/es_US.po b/src/agent/notification-daemon/po/es_US.po
deleted file mode 100755 (executable)
index 7a330de..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "No mostrar de nuevo"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s no tiene permiso para usar %2$s. Seleccione Ajustes de privacidad en Ajustes > Privacidad y seguridad."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Solicitud de privacidad"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "¿Desea permitir que %1$s acceda a su(s) %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permitir"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Rechazar"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s está solicitando permiso para acceder a los siguientes elementos:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Para usar la aplicación, otorgue todos los permisos necesarios."
-
diff --git a/src/agent/notification-daemon/po/et.po b/src/agent/notification-daemon/po/et.po
deleted file mode 100755 (executable)
index 20e6661..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Ära näita enam"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "Üksusel %1$s pole lubatud rakendust %2$s kasutada. Valige privaatsuse seaded menüüs Seaded > Privaatsus ja turvalisus."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Privaatsustaotlus"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Kas anda rakendusele %1$s luba juurdepääsuks üksusele %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Luba"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Keela"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s taotleb luba järgmistele üksustele juurdepääsemiseks:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Kinnitage rakenduse kasutamiseks kõik vajalikud õigused."
-
diff --git a/src/agent/notification-daemon/po/eu.po b/src/agent/notification-daemon/po/eu.po
deleted file mode 100755 (executable)
index 34bf445..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Ez erakutsi berriz"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s aplikazioak ez du %2$s erabiltzeko baimenik. Ezarpenak > Pribatutasuna eta segurtasuna atalean, hautatu Pribatutasun ezarpenak."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Pribatutasun eskaera"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "%1$s aplikazioari hona sartzen utzi: %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Baimendu"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Ukatu"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "Hauetan sartzeko baimena eskatzen ari zaizu %s:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Aplikazioa erabiltzeko, eman beharrezko baimenak."
-
diff --git a/src/agent/notification-daemon/po/fi.po b/src/agent/notification-daemon/po/fi.po
deleted file mode 100755 (executable)
index ce0ea09..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Älä näytä uudelleen"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s ei salli resurssien %2$s käyttöä. Valitse Asetukset > Yksityisyys ja tietoturva ja sitten Tietosuoja-asetukset."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Tietosuojapyyntö"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Saako %1$s käyttää kohdetta %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Salli"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Estä"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s pyytää lupaa seuraavien kohteiden käyttöön:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Jos haluat käyttää sovellusta, myönnä kaikki tarvittavat käyttöoikeudet."
-
diff --git a/src/agent/notification-daemon/po/fr.po b/src/agent/notification-daemon/po/fr.po
deleted file mode 100755 (executable)
index a97e6e9..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Ne plus afficher"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "L'application %1$s n'est pas autorisée à utiliser %2$s. Sélectionnez Paramètres de confidentialité dans Paramètres > Confidentialité et sécurité."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Demande de confidentialité"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Autoriser %1$s à accéder à votre/vos %2$s ?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Autoriser"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Refuser"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s demande l'autorisation d'accéder aux éléments suivants :"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Pour utiliser l'application, accordez toutes les autorisations appropriées."
-
diff --git a/src/agent/notification-daemon/po/fr_CA.po b/src/agent/notification-daemon/po/fr_CA.po
deleted file mode 100755 (executable)
index a97e6e9..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Ne plus afficher"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "L'application %1$s n'est pas autorisée à utiliser %2$s. Sélectionnez Paramètres de confidentialité dans Paramètres > Confidentialité et sécurité."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Demande de confidentialité"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Autoriser %1$s à accéder à votre/vos %2$s ?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Autoriser"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Refuser"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s demande l'autorisation d'accéder aux éléments suivants :"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Pour utiliser l'application, accordez toutes les autorisations appropriées."
-
diff --git a/src/agent/notification-daemon/po/ga.po b/src/agent/notification-daemon/po/ga.po
deleted file mode 100755 (executable)
index 06c91db..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Ná taispeáin arís"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "Ní cheadaítear do %1$s %2$s a úsáid. Roghnaigh Socruithe príobháide i Socruithe > Príobháid agus slándáil."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Iarratas príobháide"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Ceadaigh do %1$s do %2$s a rochtain?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Ceadaigh"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Diúltaigh"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "Tá %s ag iarraidh ceada leis na míreanna seo a leanas a rochtain:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Leis an bhfeidhmchlár a úsáid, ceadaigh na ceadanna ábhartha uile."
-
diff --git a/src/agent/notification-daemon/po/gl.po b/src/agent/notification-daemon/po/gl.po
deleted file mode 100755 (executable)
index 501ce8a..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Non mostrar de novo"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s non pode utilizar %2$s. Selecciona Axustes de privacidade en Axustes > Privacidade e seguridade."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Solicitude de privacidade"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Queres permitir a %1$s acceder ao teu %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permitir"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Denegar"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s está solicitando permiso para acceder aos seguintes elementos:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Para usar a aplicación, concede todos os permisos correspondentes."
-
diff --git a/src/agent/notification-daemon/po/hi.po b/src/agent/notification-daemon/po/hi.po
deleted file mode 100755 (executable)
index c8b850b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "फिर से न दिखाएँ"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s को %2$s का उपयोग करने की अनुमति नहीं है। सेटिंग्स > गोपनीयता और सुरक्षा में गोपनीयता सेटिंग्स चुनें।"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "गोपनीयता अनुरोध"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "%1$s को आपका %2$s एक्सेस करने की अनुमति दें?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "अनुमति दें"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "अस्वीकारें"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s निम्न मदें एक्सेस करने की अनुमति का अनुरोध कर रहा है:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "एप का उपयोग करने के लिए, सभी संबंधित अनुमतियों की अनुमति दें।"
-
diff --git a/src/agent/notification-daemon/po/hr.po b/src/agent/notification-daemon/po/hr.po
deleted file mode 100755 (executable)
index 7879a97..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Ne prikazuj više"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "Aplikaciji %1$s nije dopuštena uporaba %2$s. Odaberite Postavke privatnosti u izborniku Postavke > Privatnost i sigurnost."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Zahtjev za pristup privatnim podacima"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Dopustiti aplikaciji %1$s pristup stavci %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Dopusti"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Odbij"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s traži dopuštenje za pristup sljedećim stavkama:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Da biste upotrebljavali aplikaciju, odobrite sva odgovarajuća dopuštenja."
-
diff --git a/src/agent/notification-daemon/po/hu.po b/src/agent/notification-daemon/po/hu.po
deleted file mode 100755 (executable)
index 45b2d66..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Ne jelenjen meg újra"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "A(z) %1$s nem rendelkezik engedéllyel a(z) %2$s használatához. Lépjen be a Beállítások > Adatvédelem és biztonság menüpontba, és válassza az Adatvédelmi beállítások lehetőséget."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Adatvédelmi kérés"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Hozzáférést ad a(z) %1$s számára a következőhöz: %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Enged"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Tilt"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "A(z) %s hozzá szeretne férni a következő elemekhez:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Az alkalmazás használatához adja meg az összes megfelelő engedélyt."
-
diff --git a/src/agent/notification-daemon/po/hy.po b/src/agent/notification-daemon/po/hy.po
deleted file mode 100755 (executable)
index ad7f2a1..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Այլևս ցույց չտալ"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s-ին չի թույլատրվում օգտագործել %2$s: Ընտրեք Գաղտնիության դրվածքներ՝ գնալով Դրվածքներ > Գաղտնիություն և անվտանգություն:"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Գաղտնիության պահանջ"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Թույլ տա՞լ, որ %1$s-ը մուտք գործի %2$s:"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Թույլ տալ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Մերժել"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s-ը հարցնում է հետևյալ տարրերը մուտք գործելու թույլտվություն՝"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Ծրագիրն օգտագործելու համար տվեք բոլոր համապատասխան թույլտվությունները:"
-
diff --git a/src/agent/notification-daemon/po/is.po b/src/agent/notification-daemon/po/is.po
deleted file mode 100755 (executable)
index 436c969..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Ekki sýna aftur"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s hefur ekki leyfi til að nota %2$s. Veldu „Persónuverndarstillingar“ í „Stillingar > Persónuvernd og öryggi“."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Persónuverndarbeiðni"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Viltu veita %1$s aðgang að „%2$s“?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Leyfa"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Hafna"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s biður um leyfi til að fá aðgang að eftirfarandi hlutum:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Til að nota forritið skaltu gefa allar viðeigandi heimildir."
-
diff --git a/src/agent/notification-daemon/po/it_IT.po b/src/agent/notification-daemon/po/it_IT.po
deleted file mode 100755 (executable)
index fc29286..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Non mostrare più"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "L'applicazione %1$s non è autorizzata a utilizzare %2$s. Selezionate le impostazioni sulla privacy in Impostazioni > Privacy e protezione."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Richiesta sulla privacy"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Consentire a %1$s di accedere a %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Consenti"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Nega"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s sta chiedendo l'autorizzazione per accedere a questi elementi:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Per utilizzare l'applicazione, concedete tutte le autorizzazioni pertinenti."
-
diff --git a/src/agent/notification-daemon/po/ja_JP.po b/src/agent/notification-daemon/po/ja_JP.po
deleted file mode 100755 (executable)
index 05e67a1..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "今後表示しない"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$sは、%2$sを使用できません。[設定] > [プライバシーとセキュリティ]で[プライバシー設定]を選択してください。"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "プライバシーの要求"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "%2$sへのアクセスを%1$sに許可しますか?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "許可"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "拒否"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%sが以下のアイテムにアクセスする権限を要求しています。"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "アプリを使用するには、関連する全ての権限を許可してください。"
-
diff --git a/src/agent/notification-daemon/po/ka.po b/src/agent/notification-daemon/po/ka.po
deleted file mode 100755 (executable)
index 441545e..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "აღარ მაჩვენო"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s-ს არ აქვს უფლება, გამოიყენოს %2$s. გახსენით „პარამეტრები“ > „კონფიდენციალურობა და უსაფრთხოება“ და აირჩიეთ „პირადი პარამეტრები“."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "კონფიდენციალურობის მოთხოვნა"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "ჰქონდეს %1$s-ს უფლება, რომ გახსნას თქვენი %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ნებართვა"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "უარყოფა"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s ითხოვს წვდომის ნებართვას შემდეგზე:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "აპლიკაცია რომ გამოიყენოთ, მიეცით სათანადო ნებართვები."
-
diff --git a/src/agent/notification-daemon/po/kk.po b/src/agent/notification-daemon/po/kk.po
deleted file mode 100755 (executable)
index 94d3932..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Қайта көрсетпеу"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s үшін %2$s пайдалануға рұқсат берілмеген. Параметрлер > Құпиялылық және қауіпсіздік тармағында Құпиялылық параметрлерін таңдаңыз."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Құпиялылық сұрауы"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "%1$s %2$s қолданбасына қатынасуға рұқсат ету керек пе?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Рұқсат ету"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Бас тарту"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s келесі элементтерге қатынасу рұқсатын сұрауда:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Қолданбаны пайдалану үшін, барлық тиісті рұқсаттарды беріңіз."
-
diff --git a/src/agent/notification-daemon/po/ko_KR.po b/src/agent/notification-daemon/po/ko_KR.po
deleted file mode 100755 (executable)
index a567a7e..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "다시 보지 않기"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s 앱은 %2$s 항목을 사용할 수 없습니다. [설정 > 개인정보 보호]에서 [개인정보 설정]을 선택하세요."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "개인정보 요청"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "%1$s 앱에서 %2$s에 접근합니다."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "허용"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "허용 안 함"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s 앱에서 다음 항목에 접근을 요청합니다."
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "앱을 사용하려면 모든 관련 권한을 허용하세요."
-
diff --git a/src/agent/notification-daemon/po/lt.po b/src/agent/notification-daemon/po/lt.po
deleted file mode 100755 (executable)
index 2780a3e..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Neberodyti"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s neleido naudoti %2$s. Pasirinkite privatumo nustatymus eidami į Nustatymai > Privatumas ir sauga."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Privatumo užklausa"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Leisti %1$s pasiekti jūsų %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Leisti"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Atmesti"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s prašo leidimo pasiekti šiuos elementus:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Jei norite naudoti programą, suteikite visus reikiamus leidimus."
-
diff --git a/src/agent/notification-daemon/po/lv.po b/src/agent/notification-daemon/po/lv.po
deleted file mode 100755 (executable)
index 0588893..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Vairs nerādīt"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "Programmai %1$s nav atļauts lietot %2$s. Izvēlnē Iestatījumi izvēlieties Konfidencialitātes iestatījumi > Konfidencialitāte un drošība."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Konfidencialitātes pieprasījums"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Vai atļaut %1$s piekļūt jūsu %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Atļaut"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Noraidīt"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s pieprasa atļauju piekļūt šādiem objektiem:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Lai izmantotu programmu, piešķiriet visas nepieciešamās atļaujas."
-
diff --git a/src/agent/notification-daemon/po/mk.po b/src/agent/notification-daemon/po/mk.po
deleted file mode 100755 (executable)
index 9e6308d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Не прикажувај повторно"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s не смее да користи %2$s. Изберете Поставувања за приватност во Поставувања > Приватност и безбедност."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Барање за приватност"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Да се дозволи %1$s да пристапи до %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Дозволи"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Отфрли"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s бара дозвола да пристапи до следниве записи:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "За да ја користите апликацијата, овозможете ги сите релевантни дозволи."
-
diff --git a/src/agent/notification-daemon/po/nb.po b/src/agent/notification-daemon/po/nb.po
deleted file mode 100755 (executable)
index cb4a803..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Ikke vis igjen"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s er ikke tillatt å bruke %2$s. Velg Personverninnstillinger i Innstillinger > Personvern og sikkerhet."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Personvernforespørsel"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Vil du gi %1$s tilgang til %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Tillat"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Avslå"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s ber om tillatelse til å få tilgang til følgende elementer:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "For å bruke appen må du gi alle de relevante tillatelsene."
-
diff --git a/src/agent/notification-daemon/po/nl.po b/src/agent/notification-daemon/po/nl.po
deleted file mode 100755 (executable)
index 0af69b9..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Niet opnieuw weergeven"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s mag %2$s niet gebruiken. Selecteer Privacy-instellingen in Instellingen > Privacy en beveiliging."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Verzoek om privacy"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Mag %1$s uw %2$s openen?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Toestaan"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Weigeren"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s vraagt toestemming om de volgende items te openen:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Als u de app wilt gebruiken, staat u alle relevante machtigingen toe."
-
diff --git a/src/agent/notification-daemon/po/pl.po b/src/agent/notification-daemon/po/pl.po
deleted file mode 100755 (executable)
index 1808014..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Nie pokazuj ponownie"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "Aplikacja %1$s nie ma uprawnień do używania zasobów %2$s. Przejdź do opcji Ustawienia prywatności w menu Ustawienia > Prywatność i bezpieczeństwo."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Żądanie związane z prywatnością"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Zezwolić %1$s na dostęp do %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Zezwól"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Odmów"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "Urządzenie %s żąda uprawnienia dostępu następujących elementów:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "W celu używania aplikacji zezwól na wszystkie odpowiednie uprawnienia."
-
diff --git a/src/agent/notification-daemon/po/pt_BR.po b/src/agent/notification-daemon/po/pt_BR.po
deleted file mode 100755 (executable)
index 920ff53..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Não exibir novamente"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s não permitiu usar %2$s. Selecione Configurações de privacidade em Configurações > Privacidade e segurança."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Solicitação de privacidade"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Permitir que %1$s acesse %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permitir"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Negar"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s está solicitando permissão para acessar os seguintes itens:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Para usar o aplicativo, conceda todas as permissões relevantes."
-
diff --git a/src/agent/notification-daemon/po/pt_PT.po b/src/agent/notification-daemon/po/pt_PT.po
deleted file mode 100755 (executable)
index b20f665..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Não voltar a mostrar"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s não está autorizado a utilizar %2$s. Seleccione Definições de privacidade em Definições > Privacidade e segurança."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Pedido de privacidade"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Permitir que %1$s aceda a %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permitir"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Recusar"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s está a pedir permissão para aceder aos seguintes itens:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Para utilizar a aplicação, autorize todas as permissões relevantes."
-
diff --git a/src/agent/notification-daemon/po/ro.po b/src/agent/notification-daemon/po/ro.po
deleted file mode 100755 (executable)
index cc6d8e3..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Nu se mai afișează"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s nu are permisiunea să utilizeze %2$s. Selectați Setări confidențialitate din meniul Setări > Confidențialitate și securitate."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Solicitare confidențialitate"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Permiteți ca %1$s să acceseze %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permitere"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Refuz"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s solicită permisiunea de a accesa următoarele elemente:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Pentru a utiliza aplicația, acordați toate permisiunile corespunzătoare."
-
diff --git a/src/agent/notification-daemon/po/ru_RU.po b/src/agent/notification-daemon/po/ru_RU.po
deleted file mode 100755 (executable)
index ed35743..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Больше не показывать"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "Пользователю %1$s не разрешено использовать %2$s. Задайте параметры конфиденциальности в меню “Настройки” > “Конфиденциальность и безопасность”."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Запрос на предоставление конфиденциальных данных"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Разрешить %1$s получать доступ к %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Разрешить"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Запретить"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s запрашивает разрешение на доступ к следующим элементам:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Для использования приложения предоставьте все необходимые разрешения."
-
diff --git a/src/agent/notification-daemon/po/sk.po b/src/agent/notification-daemon/po/sk.po
deleted file mode 100755 (executable)
index 05bee16..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Už nezobrazovať"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s nemá povolené používať %2$s. Vyberte položku Nastavenia súkromia v menu Nastavenia > Ochrana osobných údajov a zabezpečenie."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Žiadosť o ochranu osobných údajov"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Povoliť aplikácii %1$s prístup k: %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Povoliť"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Zamietnuť"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s žiada o povolenie na prístup k nasledujúcim položkám:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Ak chcete používať túto aplikáciu, udeľte všetky príslušné povolenia."
-
diff --git a/src/agent/notification-daemon/po/sl.po b/src/agent/notification-daemon/po/sl.po
deleted file mode 100755 (executable)
index 418a00f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Ne pokaži znova"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s ne sme uporabljati %2$s. V meniju nastavitve > Zasebnost in varnost izberite Nastavitve zasebnosti."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Zahteva za zasebnost"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Dovolite aplikaciji %1$s, da dostopa do podatkov %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Dovoli"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Zavrni"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "Aplikacija %s zahteva dovoljenje za dostop do naslednjih elementov:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Če želite uporabljati aplikacijo, omogočite vsa ustrezna dovoljenja."
-
diff --git a/src/agent/notification-daemon/po/sr.po b/src/agent/notification-daemon/po/sr.po
deleted file mode 100755 (executable)
index 92b3422..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Ne prikazuj ponovo"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s ne sme da koristi %2$s. Izaberite opciju Podešavanja privatnosti u okviru Podešavanja > Privatnost i bezbednost."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Zahtev za privatnim informacijama"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Dozvoliti da %1$s pristupi funkciji %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Dozvoli"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Odbij"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "Aplikacija %s traži dozvolu da pristupi sledećim stavkama:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Da biste koristili aplikaciju, dozvolite sve odgovarajuće dozvole."
-
diff --git a/src/agent/notification-daemon/po/sv.po b/src/agent/notification-daemon/po/sv.po
deleted file mode 100755 (executable)
index 2f55495..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Visa inte igen"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s har inte tillåtelse att använda %2$s. Öppna Sekretessinställningar i Inställningar > Sekretess och säkerhet."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Sekretessbegäran"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Tillåt att %1$s får tillgång till %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Tillåt"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Neka"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s begär att få komma åt dessa objekt:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Tillåt alla relevanta behörigheter om du vill använda programmet."
-
diff --git a/src/agent/notification-daemon/po/tr_TR.po b/src/agent/notification-daemon/po/tr_TR.po
deleted file mode 100755 (executable)
index 6962853..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Tekrar gösterme"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s için %2$s öğesini kullanma izni yok. Ayarlar > Gizlilik ve güvenlik bölümünde Gizlilik ayarlarını seçin."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Gizlilik isteği"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "%1$s öğesinin %2$s erişimine izin verilsin mi?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "İzin ver"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Reddet"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s, aşağıdaki öğelere erişim izni istiyor:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Uygulamayı kullanmak için ilgili izinlerin tümünü verin."
-
diff --git a/src/agent/notification-daemon/po/uk.po b/src/agent/notification-daemon/po/uk.po
deleted file mode 100755 (executable)
index b2daf0c..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Більше не показувати"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "Користувач %1$s не має дозволу на використання %2$s. Змініть параметри у розділі «Налаштування» > «Конфіденційність та безпека»."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Запит на надання конфіденційних даних"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "Дозволити %1$s отримувати доступ до %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Дозволити"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Заборонити"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "Програма %s запитує дозвіл на отримання доступу до наступних об’єктів:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Для використання програми надайте всі відповідні дозволи."
-
diff --git a/src/agent/notification-daemon/po/uz.po b/src/agent/notification-daemon/po/uz.po
deleted file mode 100755 (executable)
index eecff99..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "Qayta ko‘rsatilmasin"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s’ga %2$s’dan foydalanish uchun ruxsat berilmagan. Parametrlar > Maxfiylik va xavfsizlik menyusida Maxfiylik parametrlarini tanlang."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Maxfiylik so‘rovi"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "%1$s’ga %2$s’ga kirish uchun ruxsat berilsinmi?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Ruxsat ber"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Rad etish"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s quyidagi elementlarga kirish uchun ruxsat so‘ramoqda:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "Ilovadan foydalanish uchun barcha tegishli ruxsatlarga ijozat bering."
-
diff --git a/src/agent/notification-daemon/po/zh_CN.po b/src/agent/notification-daemon/po/zh_CN.po
deleted file mode 100755 (executable)
index 79bb1bc..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "不再显示"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s 不允许使用 %2$s。请进入【设置】>【隐私和安全】并选择【隐私设置】。"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "隐私请求"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "是否允许 %1$s 访问您的 %2$s?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "允许"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "拒绝"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s正在请求访问以下内容的许可:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "若要使用应用程序,请允许全部相关权限。"
-
diff --git a/src/agent/notification-daemon/po/zh_HK.po b/src/agent/notification-daemon/po/zh_HK.po
deleted file mode 100755 (executable)
index 0c07b87..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "不再顯示"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "%1$s 不允許使用 %2$s。請在 [設定] > [隱私與安全] 中選擇 [隱私設定]。"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "私隱請求"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "允許 %1$s 存取您的 %2$s 嗎?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "允許"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "拒絕"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s 正在請求存取以下項目的權限:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "若要使用應用程式,請允許相關權限。"
-
diff --git a/src/agent/notification-daemon/po/zh_TW.po b/src/agent/notification-daemon/po/zh_TW.po
deleted file mode 100755 (executable)
index 11af87f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
-msgstr "不要再顯示"
-
-msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
-msgstr "不允許 %1$s 使用 %2$s。請前往 [設定] > [隱私與安全性],然後選擇 [隱私設定]。"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "隱私權要求"
-
-msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
-msgstr "允許 %1$s 存取您的 %2$s 嗎?"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "允許"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "拒絕"
-
-msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
-msgstr "%s 正在要求存取下列項目的權限:"
-
-msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
-msgstr "若要使用應用程式,請允許相關權限。"
-
diff --git a/src/agent/notification-daemon/res/popup_custom.edc b/src/agent/notification-daemon/res/popup_custom.edc
deleted file mode 100644 (file)
index 3773e82..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-
-collections {
-    base_scale: 1.3;
-//Height = 480 - (2 + 83 + 68)
-group { name: "popup_checkview_internal";
-   parts {
-      part { name: "label";
-         scale: 1;
-         type: SWALLOW;
-         description { state: "default" 0.0;
-            fixed: 1 0;
-            rel2 {
-               relative: 1.0 0.0;
-               to_y: "end_field";
-            }
-         }
-      }
-      part { name: "bottom_pad";
-         type: SPACER;
-         scale: 1;
-         description { state: "default" 0.0;
-            align: 0.0 1.0;
-            min: 0 4;
-            fixed: 0 1;
-            rel1.relative: 0.0 1.0;
-         }
-      }
-      part { name: "pad_b";
-         type: SPACER;
-         scale: 1;
-         description { state: "default" 0.0;
-            align: 0.0 1.0;
-            min: 0 90;
-            fixed: 0 1;
-            rel1 {
-               relative: 0.0 0.0;
-               to: "bottom_pad";
-            }
-            rel2 {
-               relative: 1.0 0.0;
-               to: "bottom_pad";
-            }
-         }
-      }
-      part { name: "left_pad";
-         type: SPACER;
-         scale: 1;
-         description { state: "default" 0.0;
-            fixed: 1 0;
-            min: 16 0;
-            rel1 {
-               relative: 0.0 0.0;
-            }
-            rel2 {
-               relative: 0.0 1.0;
-            }
-         }
-      }
-      part { name: "right_pad";
-         type: SPACER;
-         scale: 1;
-         description { state: "default" 0.0;
-            fixed: 1 0;
-            min: 16 0;
-            rel1 {
-               relative: 1.0 0.0;
-            }
-            rel2 {
-               relative: 1.0 1.0;
-            }
-         }
-      }
-      part { name: "end_field";
-         type: SPACER;
-         scale: 1;
-         description { state: "default" 0.0;
-            align: 0.0 1.0;
-            min: 0 90;
-            max: 244 -1;
-            fixed: 0 1;
-            rel1 {
-               relative: 1.0 1.0;
-               to_x: "left_pad";
-               to_y: "pad_b";
-            }
-            rel2 {
-               relative: 0.0 1.0;
-               to_x: "right_pad";
-               to_y: "pad_b";
-            }
-         }
-      }
-      part { name: "elm.swallow.end";
-         type: SWALLOW;
-         scale: 1;
-         description { state: "default" 0.0;
-            rel1.to: "end_field";
-            rel2.to: "end_field";
-            rel1 {
-               relative: 0.0 0.0;
-            }
-            rel2 {
-               relative: 1.0 1.0;
-            }
-         }
-      }
-   }
-}
-group { "popup_checkview_layout_mobile";
-   parts {
-      spacer { "spacer_t";
-         scale: 1;
-         desc { "default";
-            align: 0.5 0.5;
-            fixed: 0 1;
-            rel1.relative: 0.00 0.00;
-            rel2.relative: 1.00 0.04;
-         }
-      }
-      spacer { "spacer_b";
-         scale: 1;
-         desc { "default";
-            align: 0.5 0.5;
-            fixed: 0 1;
-            rel1.relative: 0.00 0.94;
-            rel2.relative: 1.00 1.00;
-         }
-      }
-      spacer { "spacer_l";
-         scale: 1;
-         desc { "default";
-            align: 0.5 0.5;
-            fixed: 1 0;
-            rel1.to_y: "spacer_t";
-            rel2.to_y: "spacer_b";
-            rel1.relative: 0.91 1.00;
-            rel2.relative: 1.00 0.00;
-         }
-      }
-      spacer { "spacer_r";
-         scale: 1;
-         desc { "default";
-            align: 0.5 0.5;
-            fixed: 1 0;
-            rel1.to_y: "spacer_t";
-            rel2.to_y: "spacer_b";
-            rel1.relative: 0.00 1.00;
-            rel2.relative: 0.09 0.00;
-         }
-      }
-      swallow { "elm.swallow.content";
-         scale: 1;
-         desc { "default";
-            visible: 1;
-            align: 0.5 0.5;
-            rel1.to_x: "spacer_rr";
-            rel1.to_y: "spacer_t";
-            rel2.to_x: "spacer_ll";
-            rel1.relative: 1.00 1.00;
-            rel2.relative: 0.00 0.64;
-         }
-      }
-      swallow { "elm.swallow.end";
-         scale: 1;
-         desc { "default";
-            visible: 1;
-            align: 0.5 0.5;
-            fixed: 0 1;
-            rel1.to_x: "spacer_r";
-            rel1.to_y: "elm.swallow.content";
-            rel2.to_x: "spacer_l";
-            rel2.to_y: "spacer_b";
-            rel1.relative: 1.00 1.00;
-            rel2.relative: 0.00 0.00;
-         }
-      }
-      spacer { "spacer_rr";
-         scale: 1;
-         desc { "default";
-            align: 0.5 0.5;
-            fixed: 1 0;
-            rel1.to_y: "spacer_t";
-            rel2.to_y: "spacer_b";
-            rel1.relative: 0.00 1.00;
-            rel2.relative: 0.05 0.00;
-         }
-      }
-      spacer { "spacer_ll";
-         scale: 1;
-         desc { "default";
-            align: 0.5 0.5;
-            fixed: 1 0;
-            rel1.to_y: "spacer_t";
-            rel2.to_y: "spacer_b";
-            rel1.relative: 0.95 1.00;
-            rel2.relative: 1.00 0.00;
-         }
-      }
-   }
-}
-
-group { "popup_layout_mobile";
-   parts {
-      spacer { "spacer_t";
-         scale: 1;
-         desc { "default";
-            align: 0.5 0.5;
-            fixed: 0 1;
-            rel1.relative: 0.00 0.00;
-            rel2.relative: 1.00 0.04;
-         }
-      }
-      spacer { "spacer_b";
-         scale: 1;
-         desc { "default";
-            align: 0.5 0.5;
-            fixed: 0 1;
-            rel1.relative: 0.00 0.94;
-            rel2.relative: 1.00 1.00;
-         }
-      }
-      spacer { "spacer_l";
-         scale: 1;
-         desc { "default";
-            align: 0.5 0.5;
-            fixed: 1 0;
-            rel1.to_y: "spacer_t";
-            rel2.to_y: "spacer_b";
-            rel1.relative: 0.91 1.00;
-            rel2.relative: 1.00 0.00;
-         }
-      }
-      spacer { "spacer_r";
-         scale: 1;
-         desc { "default";
-            align: 0.5 0.5;
-            fixed: 1 0;
-            rel1.to_y: "spacer_t";
-            rel2.to_y: "spacer_b";
-            rel1.relative: 0.00 1.00;
-            rel2.relative: 0.09 0.00;
-         }
-      }
-      swallow { "elm.swallow.content";
-         scale: 1;
-         desc { "default";
-            visible: 1;
-            align: 0.5 0.5;
-            rel1.to_x: "spacer_rr";
-            rel1.to_y: "spacer_t";
-            rel2.to_x: "spacer_ll";
-            rel2.to_y: "spacer_b";
-            rel1.relative: 1.00 1.00;
-            rel2.relative: 0.00 0.64;
-         }
-      }
-      spacer { "spacer_rr";
-         scale: 1;
-         desc { "default";
-            align: 0.5 0.5;
-            fixed: 1 0;
-            rel1.to_y: "spacer_t";
-            rel2.to_y: "spacer_b";
-            rel1.relative: 0.00 1.00;
-            rel2.relative: 0.05 0.00;
-         }
-      }
-      spacer { "spacer_ll";
-         scale: 1;
-         desc { "default";
-            align: 0.5 0.5;
-            fixed: 1 0;
-            rel1.to_y: "spacer_t";
-            rel2.to_y: "spacer_b";
-            rel1.relative: 0.95 1.00;
-            rel2.relative: 1.00 0.00;
-         }
-      }
-   }
-}
-}
diff --git a/src/agent/notification-daemon/res/tw_ic_popup_btn_check.png b/src/agent/notification-daemon/res/tw_ic_popup_btn_check.png
deleted file mode 100644 (file)
index f20f62e..0000000
Binary files a/src/agent/notification-daemon/res/tw_ic_popup_btn_check.png and /dev/null differ
diff --git a/src/agent/notification-daemon/res/tw_ic_popup_btn_delete.png b/src/agent/notification-daemon/res/tw_ic_popup_btn_delete.png
deleted file mode 100644 (file)
index 5f346cb..0000000
Binary files a/src/agent/notification-daemon/res/tw_ic_popup_btn_delete.png and /dev/null differ
diff --git a/src/agent/notification-daemon/ui/Answerable.h b/src/agent/notification-daemon/ui/Answerable.h
deleted file mode 100644 (file)
index 3a18ed2..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/ui/Answerable.h
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Implementation Answerable button pressed events classes
- */
-#pragma once
-
-#include "PopupCheck.h"
-#include "Popup.h"
-
-#include <types/NotificationResponse.h>
-
-namespace AskUser {
-namespace Notification {
-
-class IAnswerable {
-public:
-    enum class Button {
-        ALLOW,
-        DENY
-    };
-    typedef std::function<void(int, NResponseType)> AnswerHandler;
-
-    IAnswerable(AnswerHandler handler) : m_handler(handler) {}
-    virtual void process(enum Button) const = 0;
-    virtual ~IAnswerable() {}
-protected:
-    AnswerHandler m_handler;
-};
-
-class AnswerablePopupCheck : public IAnswerable {
-public:
-    AnswerablePopupCheck(PopupCheck *popup, AnswerHandler handler)
-        : IAnswerable(handler), m_popup(popup) {}
-    virtual void process(enum Button button) const {
-        NResponseType answer;
-        switch (button) {
-        case IAnswerable::Button::ALLOW:
-            if (m_popup->getCheckboxState())
-                answer = NResponseType::AllowAlways;
-            else
-                answer = NResponseType::Allow;
-            break;
-        case IAnswerable::Button::DENY:
-            if (m_popup->getCheckboxState())
-                answer = NResponseType::DenyAlways;
-            else
-                answer = NResponseType::Deny;
-            break;
-        default:
-            answer = NResponseType::Error;
-        }
-        m_handler(m_popup->getId(), answer);
-    }
-private:
-    PopupCheck *m_popup;
-};
-
-} // namespace AskUser
-} // namespace Notification
diff --git a/src/agent/notification-daemon/ui/Po.cpp b/src/agent/notification-daemon/ui/Po.cpp
deleted file mode 100644 (file)
index b984fd5..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/ui/Po.cpp
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Declaration of Po message generation class
- */
-
-#include <cstdio>
-#include <cstdlib>
-#include <libintl.h>
-#include <map>
-#include <memory>
-#include <string>
-#include <unistd.h>
-#include <vconf.h>
-#include <Elementary.h>
-
-#include "Po.h"
-
-#include <exception/ErrnoException.h>
-#include <policy/PkgInfo.h>
-#include <policy/PrivilegeInfo.h>
-
-namespace AskUser {
-
-namespace {
-enum class MsgType {
-    MSG_POPUP_TITLE,
-
-    MSG_POPUP_TEXT,
-    MSG_POPUP_LAUNCH_TEXT,
-
-    MSG_POPUP_CHECKBOX,
-    MSG_POPUP_ALLOW_BTN,
-    MSG_POPUP_DENY_BTN,
-
-    MSG_TOAST_DENY_TEXT,
-    MSG_TOAST_FAIL_TEXT,
-};
-
-std::map<MsgType, const char*> MSG_PO = {
-        {MsgType::MSG_POPUP_TITLE, "IDS_IDLE_HEADER_PRIVACY_REQUEST"},
-        {MsgType::MSG_POPUP_TEXT, "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"},
-        {MsgType::MSG_POPUP_LAUNCH_TEXT, "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"},
-        {MsgType::MSG_POPUP_CHECKBOX, "IDS_ST_OPT_DONT_SHOW_AGAIN"},
-        {MsgType::MSG_POPUP_ALLOW_BTN,"IDS_IDLE_BUTTON_ALLOW_ABB7"},
-        {MsgType::MSG_POPUP_DENY_BTN, "IDS_IDLE_BUTTON_DENY"},
-        {MsgType::MSG_TOAST_DENY_TEXT, "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"},
-        {MsgType::MSG_TOAST_FAIL_TEXT, "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"}
-};
-
-void setLocale() {
-    char *lang = vconf_get_str(VCONFKEY_LANGSET);
-    if (lang)
-    {
-        elm_language_set(lang);
-        free(lang);
-    } else {
-        ALOGE("Couldn't fetch language from vconf failed.");
-    }
-}
-
-template <typename ...Args>
-std::string makeFromFormat(const char *format, Args... args) {
-    char *buf;
-    int ret = asprintf(&buf, format, args...);
-    if (ret == -1) {
-        throw ErrnoException("asprintf failed");
-    }
-    std::unique_ptr<char, decltype(std::free) *> bufPtr(buf, std::free);
-    return std::string(buf);
-}
-
-const char *getFormat(enum MsgType type) {
-    setLocale();
-    return dgettext(PROJECT_NAME, MSG_PO[type]);
-}
-
-std::string getPkgLabel(const std::string &pkgName) {
-    PkgInfo pkgInfo(pkgName, geteuid());
-    return pkgInfo.pkgLabel();
-}
-
-} // namespace anonymous
-
-namespace Notification {
-namespace Po {
-std::string createPopupCheckMsg(const std::string &, const std::string &pkgName, const std::string &priv) {
-    return makeFromFormat(getFormat(MsgType::MSG_POPUP_TEXT), getPkgLabel(pkgName).c_str(),
-                          PrivilegeInfo::getPrivacyDisplayName(priv).c_str());
-}
-
-std::string getPopupTitleMsg() {
-    return makeFromFormat("%s", getFormat(MsgType::MSG_POPUP_TITLE));
-}
-std::string getAllowButtonMsg() {
-    return makeFromFormat("%s", getFormat(MsgType::MSG_POPUP_ALLOW_BTN));
-}
-std::string getDenyButtonMsg() {
-    return makeFromFormat("%s", getFormat(MsgType::MSG_POPUP_DENY_BTN));
-}
-std::string getCheckBoxMsg() {
-    return makeFromFormat("%s", getFormat(MsgType::MSG_POPUP_CHECKBOX));
-}
-
-} //namespace Po
-} //namepace Notification
-} //namespace AskUser
diff --git a/src/agent/notification-daemon/ui/Po.h b/src/agent/notification-daemon/ui/Po.h
deleted file mode 100644 (file)
index 0f7fab4..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/ui/Po.h
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Declaration of Po message generation class
- */
-
-#include <string>
-#include <vector>
-
-namespace AskUser {
-namespace Notification {
-namespace Po {
-
-std::string createPopupCheckMsg(const std::string &appName, const std::string &pkgName, const std::string &priv);
-std::string createPrivilegeDescr(const std::string &priv);
-
-std::string getPopupTitleMsg();
-std::string getAllowButtonMsg();
-std::string getDenyButtonMsg();
-std::string getCheckBoxMsg();
-
-} // namespace Po
-} // namespace Notification
-} // namespace AskUser
diff --git a/src/agent/notification-daemon/ui/Popup.h b/src/agent/notification-daemon/ui/Popup.h
deleted file mode 100644 (file)
index 72baada..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/ui/Popup.h
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Declaration of Popup class
- */
-
-#pragma once
-
-#include <string>
-
-#include <log/alog.h>
-#include <exception/Exception.h>
-#include <Elementary.h>
-
-#include "UIElement.h"
-
-namespace AskUser {
-namespace Notification {
-
-class Popup : public UIElement {
-public:
-    Popup(Evas_Object *parent, const std::string &msg)
-    : UIElement(parent), m_msg(msg)
-    {
-        m_popup = elm_popup_add(m_parent);
-        if (m_popup == nullptr) {
-            ALOGE("Failed to add popup");
-            throw Exception("Enlightenment failed");
-        }
-    }
-
-    Popup(const Popup &other) = delete;
-    Popup& operator=(const Popup &other) = delete;
-
-    Evas_Object *getAllowButton() const { return m_allowButton; }
-    Evas_Object *getDenyButton() const { return m_denyButton; }
-
-    virtual ~Popup() {
-        evas_object_del(m_popup);
-    }
-protected:
-    Evas_Object *m_popup = nullptr;
-    Evas_Object *m_allowButton = nullptr;
-    Evas_Object *m_denyButton = nullptr;
-
-    std::string m_msg;
-};
-
-} /* namespace Notification */
-} /* namespace Askuser */
-
diff --git a/src/agent/notification-daemon/ui/PopupCheck.h b/src/agent/notification-daemon/ui/PopupCheck.h
deleted file mode 100644 (file)
index 936fd5e..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/ui/PopupCheck.h
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Declaration of PopupCheck class
- */
-
-#pragma once
-
-#include <string>
-
-#include <Elementary.h>
-
-#include "Popup.h"
-
-namespace AskUser {
-namespace Notification {
-
-class PopupCheck : public Popup {
-public:
-    PopupCheck(Evas_Object *parent, const std::string &msg)
-        : Popup(parent, msg)
-    {}
-
-    Evas_Object *getCheckBox() const { return m_checkBox; }
-    bool getCheckboxState() const {
-        if (m_checkBox == nullptr)
-            return false;
-        return elm_check_state_get(m_checkBox);
-    }
-
-    virtual ~PopupCheck() {}
-
-protected:
-    Evas_Object *m_checkBox = nullptr;
-};
-
-} /* namespace Notification */
-} /* namespace Askuser */
-
diff --git a/src/agent/notification-daemon/ui/PopupCheckMobile.h b/src/agent/notification-daemon/ui/PopupCheckMobile.h
deleted file mode 100644 (file)
index 5ba7380..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/ui/PopupCheckMobile.h
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Declaration of PopupCheckMobile class
- */
-
-#pragma once
-
-#include <Elementary.h>
-
-#include <exception/Exception.h>
-#include "Po.h"
-#include "PopupCheck.h"
-
-namespace AskUser {
-namespace Notification {
-
-class PopupCheckMobile : public PopupCheck {
-public:
-    PopupCheckMobile(Evas_Object *parent, int popupId, const std::string &msg)
-        : PopupCheck(parent, msg)
-    {
-        setId(popupId);
-    }
-    virtual void create() {
-        // popup
-        elm_popup_align_set(m_popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
-        elm_object_part_text_set(m_popup, "title,text", Po::getPopupTitleMsg().c_str());
-        evas_object_size_hint_weight_set(m_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
-        // layout
-        m_layout = elm_layout_add(m_popup);
-        if (m_layout == nullptr) {
-            ALOGE("EFL : Failed to add layout");
-            throw Exception("Enlightenment failed");
-        }
-        elm_layout_file_set(m_layout, RES_DIR"/popup_custom.edj", "popup_checkview_layout_mobile");
-        evas_object_size_hint_weight_set(m_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
-        // content
-        m_content = elm_label_add(m_layout);
-        if (!m_content) {
-            ALOGE("EFL : Failed to add content");
-            throw Exception("Enlightenment failed");
-        }
-        elm_object_text_set(m_content, m_msg.c_str());
-        elm_object_style_set(m_content, "popup/default");
-        elm_label_line_wrap_set(m_content, ELM_WRAP_MIXED);
-        evas_object_size_hint_weight_set(m_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-        evas_object_size_hint_align_set(m_content, EVAS_HINT_FILL, EVAS_HINT_FILL);
-        elm_object_part_content_set(m_layout, "elm.swallow.content", m_content);
-
-        // checkbox
-        m_checkBox = elm_check_add(m_layout);
-        if (!m_checkBox) {
-            ALOGE("EFL : Failed to add checkbox");
-            throw Exception("Enlightenment failed");
-        }
-        elm_object_part_content_set(m_layout, "elm.swallow.end", m_checkBox);
-        elm_object_text_set(m_checkBox, Po::getCheckBoxMsg().c_str());
-        elm_check_state_set(m_checkBox, EINA_FALSE);
-        evas_object_show(m_checkBox);
-
-        // buttons
-        m_denyButton = elm_button_add(m_popup);
-        if (!m_denyButton) {
-            ALOGE("EFL : Failed to add deny button");
-            throw Exception("Enlightenment failed");
-        }
-        elm_object_part_content_set(m_popup, "button1", m_denyButton);
-        elm_object_text_set(m_denyButton, Po::getDenyButtonMsg().c_str());
-
-        m_allowButton = elm_button_add(m_popup);
-        if (!m_allowButton) {
-            ALOGE("EFL : Failed to add allow button");
-            throw Exception("Enlightenment failed");
-        }
-        elm_object_part_content_set(m_popup, "button2", m_allowButton);
-        elm_object_text_set(m_allowButton, Po::getAllowButtonMsg().c_str());
-        elm_object_content_set(m_popup, m_layout);
-        evas_object_show(m_popup);
-    }
-    virtual ~PopupCheckMobile() {
-
-    }
-private:
-    Evas_Object *m_content = nullptr;
-    Evas_Object *m_layout = nullptr;
-    Evas_Object *m_layoutInner = nullptr;
-};
-
-} /* namespace Notification */
-} /* namespace Askuser */
-
diff --git a/src/agent/notification-daemon/ui/PopupCheckWearable.h b/src/agent/notification-daemon/ui/PopupCheckWearable.h
deleted file mode 100644 (file)
index 74fe9ef..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/ui/PopupCheckWearable.h
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Declaration of PopupCheckWearable class
- */
-
-#pragma once
-
-#include <Elementary.h>
-
-#include <exception/Exception.h>
-#include "Po.h"
-#include "PopupCheck.h"
-
-namespace AskUser {
-namespace Notification {
-
-class PopupCheckWearable : public PopupCheck {
-public:
-    PopupCheckWearable(Evas_Object *parent, int popupId, const std::string msg)
-        : PopupCheck(parent, msg)
-    {
-        setId(popupId);
-    }
-    ~PopupCheckWearable() {}
-
-    virtual void create() {
-        elm_object_style_set(m_popup, "circle");
-
-        m_layout = elm_layout_add(m_popup);
-        if (m_layout == nullptr) {
-            ALOGE("EFL : Failed to add layout");
-            throw Exception("Enlightenment failed");
-        }
-        elm_layout_theme_set(m_layout, "layout", "popup", "content/circle/buttons2");
-        elm_object_part_text_set(m_layout, "elm.text.title", Po::getPopupTitleMsg().c_str());
-        elm_object_content_set(m_popup, m_layout);
-
-        m_layoutInner = elm_layout_add(m_layout);
-        if (m_layoutInner == nullptr) {
-            ALOGE("EFL : Failed to add layout");
-            throw Exception("Enlightenment failed");
-        }
-        elm_layout_file_set(m_layoutInner, RES_DIR"/popup_custom.edj", "popup_checkview_internal");
-        evas_object_size_hint_weight_set(m_layoutInner, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-        elm_object_part_content_set(m_layout, "elm.swallow.content", m_layoutInner);
-
-        m_content = elm_label_add(m_layoutInner);
-        if (m_content == nullptr) {
-            ALOGE("EFL : Failed to add content");
-            throw Exception("Enlightenment failed");
-        }
-        elm_object_text_set(m_content, m_msg.c_str());
-        elm_object_style_set(m_content, "popup/default");
-        elm_label_line_wrap_set(m_content, ELM_WRAP_MIXED);
-        evas_object_size_hint_weight_set(m_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-        evas_object_size_hint_align_set(m_content, EVAS_HINT_FILL, EVAS_HINT_FILL);
-        elm_object_part_content_set(m_layoutInner, "label", m_content);
-
-        m_checkBox = elm_check_add(m_popup);
-        if (m_checkBox == nullptr) {
-            ALOGE("EFL : Failed to add checkbox");
-            throw Exception("Enlightenment failed");
-        }
-        elm_object_style_set(m_checkBox, "popup");
-        elm_object_text_set(m_checkBox, Po::getCheckBoxMsg().c_str());
-        elm_check_state_set(m_checkBox, EINA_FALSE);
-        evas_object_size_hint_align_set(m_checkBox, EVAS_HINT_FILL, 0.0);
-        elm_object_part_content_set(m_layoutInner, "elm.swallow.end", m_checkBox);
-        evas_object_show(m_checkBox);
-
-        m_allowButton = elm_button_add(m_popup);
-        if (m_allowButton == nullptr) {
-            ALOGE("EFL : Failed to add allow button");
-            throw Exception("Enlightenment failed");
-        }
-        elm_object_style_set(m_allowButton, "popup/circle/right");
-        elm_object_part_content_set(m_popup, "button2", m_allowButton);
-
-        Evas_Object *icon;
-        icon = elm_image_add(m_allowButton);
-        if (icon == nullptr) {
-            ALOGE("EFL : Failed to add allow button icon");
-            throw Exception("Enlightenment failed");
-        }
-        elm_image_file_set(icon, RES_DIR"/tw_ic_popup_btn_check.png", NULL);
-        evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-        elm_object_part_content_set(m_allowButton, "elm.swallow.content", icon);
-        evas_object_show(icon);
-
-        m_denyButton = elm_button_add(m_popup);
-        if (m_denyButton == nullptr) {
-            ALOGE("EFL : Failed to add deny button");
-            throw Exception("Enlightenment failed");
-        }
-        elm_object_style_set(m_denyButton, "popup/circle/left");
-        elm_object_part_content_set(m_popup, "button1", m_denyButton);
-
-        icon = elm_image_add(m_denyButton);
-        if (icon == nullptr) {
-            ALOGE("EFL : Failed to add deny button icon");
-            throw Exception("Enlightenment failed");
-        }
-        elm_image_file_set(icon, RES_DIR"/tw_ic_popup_btn_delete.png", NULL);
-        elm_object_part_content_set(m_denyButton, "elm.swallow.content", icon);
-        evas_object_show(icon);
-
-        evas_object_show(m_popup);
-    }
-private:
-    Evas_Object *m_content = nullptr;
-    Evas_Object *m_layout = nullptr;
-    Evas_Object *m_layoutInner = nullptr;
-};
-
-} /* namespace Notification */
-} /* namespace Askuser */
-
diff --git a/src/agent/notification-daemon/ui/Popupper.cpp b/src/agent/notification-daemon/ui/Popupper.cpp
deleted file mode 100644 (file)
index ee31ec6..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/Popupper.cpp
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Definition of Popupper class
- */
-
-#include "Popupper.h"
-
-#include "Answerable.h"
-#include "Po.h"
-#include "PopupCheckMobile.h"
-#include "PopupCheckWearable.h"
-
-#include <exception/ErrnoException.h>
-#include <exception/Exception.h>
-#include <log/alog.h>
-#include <libintl.h>
-#include <vconf.h>
-#include <efl_util.h>
-#include <system_info.h>
-
-#include <unistd.h>
-
-namespace AskUser {
-
-namespace Notification {
-
-namespace {
-    std::string getProfileName() {
-        char *profileName = nullptr;
-        system_info_get_platform_string("http://tizen.org/feature/profile", &profileName);
-        if (!profileName) {
-            ALOGE("profileName is NULL");
-            throw Exception("get profileName failed");
-        }
-        std::unique_ptr<char, decltype(free)*> profileNamePtr(profileName, free);
-        return std::string(profileName);
-    }
-}
-
-
-void Popupper::registerPopupResponseHandler(PopupHandler handler) {
-    m_popupResponseHandler = handler;
-}
-
-void Popupper::unfocusedCb(void *data, Evas_Object *, void *)
-{
-    ALOGD("Unfocused");
-    Popupper *popupper = static_cast<Popupper*>(data);
-
-    if (popupper->m_shouldRaise) {
-        evas_object_show(popupper->m_win);
-    }
-}
-
-void Popupper::popupClose(int popupId)
-{
-    ALOGD("Window close");
-    m_shouldRaise = false;
-
-    if (!m_elementPtr || popupId == -1 || popupId != m_elementPtr->getId())
-        ALOGD("Closing non-existing popup");
-
-    m_elementPtr.reset(nullptr);
-    m_answerablePtr.reset(nullptr);
-    evas_object_hide(m_win);
-}
-
-
-void Popupper::allowPressedCb(void *data, Evas_Object *, void *)
-{
-    IAnswerable *answerable = static_cast<IAnswerable *>(data);
-    answerable->process(IAnswerable::Button::ALLOW);
-}
-
-void Popupper::denyPressedCb(void *data, Evas_Object *, void *)
-{
-    IAnswerable *answerable = static_cast<IAnswerable *>(data);
-    answerable->process(IAnswerable::Button::DENY);
-}
-
-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) {
-        ALOGD("Respond as deny once.");
-        runner->m_popupResponseHandler(runner->m_elementPtr->getId(), NResponseType::None);
-    }
-    return EINA_TRUE;
-}
-
-Popupper::~Popupper()
-{}
-
-void Popupper::initialize()
-{
-    elm_init(0, NULL);
-    m_win = elm_win_add(NULL, Po::getPopupTitleMsg().c_str(), ELM_WIN_NOTIFICATION);
-    if (!m_win) {
-        ALOGE("EFL : Failed to add window");
-        throw Exception("Elementary failed");
-    }
-    efl_util_set_notification_window_level(m_win, EFL_UTIL_NOTIFICATION_LEVEL_TOP);
-
-    if (elm_win_wm_rotation_supported_get(m_win)) {
-        int rots[4] = { 0, 90, 180, 270 };
-        elm_win_wm_rotation_available_rotations_set(m_win, (const int *)(&rots), 4);
-    }
-
-    elm_win_autodel_set(m_win, EINA_TRUE);
-    elm_win_override_set(m_win, EINA_TRUE);
-    elm_win_alpha_set(m_win, EINA_TRUE);
-
-    // callbacks
-    elm_win_indicator_opacity_set(m_win, ELM_WIN_INDICATOR_OPAQUE);
-    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, "XF86Back", 0, 0, 0, ELM_WIN_KEYGRAB_TOPMOST);
-    ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, &Popupper::hwKeyClickedCb, this);
-}
-
-void Popupper::setLocale()
-{
-    char *lang = vconf_get_str(VCONFKEY_LANGSET);
-    if (lang)
-    {
-        elm_language_set(lang);
-        free(lang);
-    } else {
-        ALOGE("Couldn't fetch language from vconf failed.");
-    }
-}
-
-void Popupper::show() {
-    evas_object_show(m_win);
-}
-
-void Popupper::popupCheck(int popupId, const std::string &appId, const std::string &pkgId, const std::string &priv) {
-    std::string profileName = getProfileName();
-    PopupCheck *popup;
-    try {
-        if (profileName[0] != 'w' && profileName[0] != 'W') {
-            // Not wearable
-            popup = new PopupCheckMobile(m_win, popupId, Po::createPopupCheckMsg(appId, pkgId, priv));
-        } else {
-            // Wearable
-            popup = new PopupCheckWearable(m_win, popupId, Po::createPopupCheckMsg(appId, pkgId, priv));
-        }
-        popup->create();
-    } catch (const std::exception &e) {
-        ALOGE("Failed to create popup check : " << e.what());
-        m_popupResponseHandler(popupId, NResponseType::Error);
-        return;
-    }
-
-    m_answerablePtr.reset(new AnswerablePopupCheck(popup, m_popupResponseHandler));
-    evas_object_smart_callback_add(popup->getAllowButton(), "clicked", &Popupper::allowPressedCb,
-                                   m_answerablePtr.get());
-    evas_object_smart_callback_add(popup->getDenyButton(), "clicked", &Popupper::denyPressedCb,
-                                   m_answerablePtr.get());
-
-    m_elementPtr.reset(popup);
-    show();
-
-}
-
-void Popupper::start()
-{
-    elm_run();
-}
-
-void Popupper::stop()
-{
-    m_shouldRaise = false;
-    elm_win_keygrab_unset(m_win, "XF86Home", 0, 0);
-    elm_win_keygrab_unset(m_win, "XF86Back", 0, 0);
-    m_elementPtr.reset(nullptr);
-    m_answerablePtr.reset(nullptr);
-    evas_object_del(m_win);
-    m_win = nullptr;
-    elm_exit();
-}
-
-void Popupper::shutdown() {
-    elm_shutdown();
-}
-
-} /* namespace Notification */
-
-} /* namespace AskUser */
diff --git a/src/agent/notification-daemon/ui/Popupper.h b/src/agent/notification-daemon/ui/Popupper.h
deleted file mode 100644 (file)
index 478f682..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/Popupper.h
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Declaration of Popupper class
- */
-
-#pragma once
-
-#include <Elementary.h>
-#include <functional>
-#include <map>
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "Answerable.h"
-#include "Popup.h"
-#include <types/NotificationResponse.h>
-#include <log/alog.h>
-
-namespace AskUser {
-
-namespace Notification {
-
-class Popupper {
-public:
-    typedef std::function<void(int, NResponseType)> PopupHandler;
-
-    Popupper() = default;
-    void initialize();
-    void setLocale();
-    void registerPopupResponseHandler(PopupHandler handler);
-    void start();
-
-    void popupCheck(int popupId, const std::string &appId, const std::string &pkgId, const std::string &priv);
-
-    void popupClose(int popupId);
-    void stop();
-    void shutdown();
-
-    ~Popupper();
-private:
-    static void unfocusedCb(void *data, Evas_Object *, void *);
-    static void allowPressedCb(void *data, Evas_Object *, void *);
-    static void denyPressedCb(void *data, Evas_Object *, void *);
-    static Eina_Bool hwKeyClickedCb(void *data, int type, void *event);
-
-    void show();
-
-    PopupHandler m_popupResponseHandler;
-
-    Evas_Object *m_win = nullptr;
-    std::unique_ptr<UIElement> m_elementPtr;
-    std::unique_ptr<IAnswerable> m_answerablePtr;
-
-    bool m_shouldRaise = false;
-};
-
-} /* namespace Notification */
-
-} /* namespace AskUser */
diff --git a/src/agent/notification-daemon/ui/UIElement.h b/src/agent/notification-daemon/ui/UIElement.h
deleted file mode 100644 (file)
index 998b8e6..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *  Copyright (c) 2017 Samsung Electronics Co.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/**
- * @file        src/agent/notification-daemon/UIElement.h
- * @author      Zofia Abramowska <z.abramowska@samsung.com>
- * @brief       Declaration of UIElement class
- */
-
-#pragma once
-
-#include <Elementary.h>
-
-namespace AskUser {
-namespace Notification {
-
-class UIElement {
-public:
-    explicit UIElement(Evas_Object *parent) : m_parent(parent), m_elementId(-1) {}
-    void setId(int id) { m_elementId = id;}
-    int getId() { return m_elementId; }
-    virtual void create() = 0;
-    virtual ~UIElement() {}
-protected:
-    Evas_Object *m_parent;
-    int m_elementId;
-};
-
-} /* namespace Notification */
-} /* namespace Askuser */
-
diff --git a/src/notification-daemon/CMakeLists.txt b/src/notification-daemon/CMakeLists.txt
new file mode 100644 (file)
index 0000000..5986288
--- /dev/null
@@ -0,0 +1,64 @@
+SET(NOTIF_PATH ${PROJECT_SOURCE_DIR}/src/notification-daemon/)
+
+PROJECT("askuser-notification")
+# Pass project name to sources
+ADD_DEFINITIONS("-DPROJECT_NAME=\"${PROJECT_NAME}\"")
+
+PKG_CHECK_MODULES(ASKUSER_NOTIFICATION_DEP
+    REQUIRED
+    elementary
+    libsystemd
+    notification
+    vconf
+    pkgmgr-info
+    glib-2.0
+    capi-ui-efl-util
+    capi-system-info
+    security-privilege-manager
+)
+
+INCLUDE_DIRECTORIES(SYSTEM
+    ${ASKUSER_NOTIFICATION_DEP_INCLUDE_DIRS}
+)
+INCLUDE_DIRECTORIES(
+    ${ASKUSER_PATH}
+    ${ASKUSER_PATH}/common
+    ${ASKUSER_PATH}/common/protocol
+    ${NOTIF_PATH}
+)
+
+SET(ASKUSER_NOTIFICATION_SOURCES
+    ${NOTIF_PATH}/main.cpp
+    ${NOTIF_PATH}/Logic.cpp
+    ${NOTIF_PATH}/ServerCallbacks.cpp
+    ${NOTIF_PATH}/ui/Po.cpp
+    ${ASKUSER_PATH}/common/log/alog.cpp
+    ${ASKUSER_PATH}/common/policy/PrivilegeInfo.cpp
+    ${NOTIF_PATH}/ui/Popupper.cpp
+   )
+
+ADD_EXECUTABLE(${TARGET_ASKUSER_NOTIFICATION} ${ASKUSER_NOTIFICATION_SOURCES})
+
+SET_TARGET_PROPERTIES(${TARGET_ASKUSER_NOTIFICATION} PROPERTIES
+    COMPILE_FLAGS
+    -fpie
+)
+
+TARGET_LINK_LIBRARIES(${TARGET_ASKUSER_NOTIFICATION}
+    ${ASKUSER_NOTIFICATION_DEP_LIBRARIES}
+    ${TARGET_ASKUSER_COMMON}
+    ${TARGET_ASKUSER_NOTIFICATION_LIB}
+    -pie
+)
+
+ADD_CUSTOM_TARGET(popup_custom.edj
+    COMMAND edje_cc -no-save res/popup_custom.edc res/popup_custom.edj
+    DEPENDS res/popup_custom.edc
+    )
+ADD_DEPENDENCIES(${TARGET_ASKUSER_NOTIFICATION} popup_custom.edj)
+
+INSTALL(TARGETS ${TARGET_ASKUSER_NOTIFICATION} DESTINATION ${BIN_INSTALL_DIR})
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/ DESTINATION ${RES_DIR} FILES_MATCHING PATTERN "*.png")
+INSTALL(FILES res/popup_custom.edj DESTINATION ${RES_DIR})
+
+ADD_SUBDIRECTORY(po)
diff --git a/src/notification-daemon/Logic.cpp b/src/notification-daemon/Logic.cpp
new file mode 100644 (file)
index 0000000..7997bdb
--- /dev/null
@@ -0,0 +1,258 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/Service.cpp
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Declaration of Popupper class
+ */
+
+#include "Logic.h"
+
+#include <algorithm>
+#include <signal.h>
+#include <string>
+#include <sys/signalfd.h>
+#include <vconf.h>
+#include <Elementary.h>
+
+#include <exception/Exception.h>
+#include <exception/ErrnoException.h>
+#include "ServerCallbacks.h"
+
+namespace AskUser {
+
+namespace Notification {
+
+void Logic::addChannelFd(Protocol::ConnectionFd fd, const Protocol::Credentials &creds) {
+    // TODO check if doesn't already exist
+    // TODO translate to appId, pkgId and appIds from package
+    auto it = m_connToInfo.find(fd);
+    if (it != m_connToInfo.end()) {
+        ALOGE("Connection with fd : " << fd << " already exists. Closing connection");
+        m_clientChannel->process(fd, 0);
+        return;
+    }
+    (void)creds;
+    ConnectionInfo connInfo;
+    m_connToInfo.insert(it, std::make_pair(fd, connInfo));
+}
+
+void Logic::updateChannelFd(Protocol::ConnectionFd fd, Ecore_Fd_Handler_Flags flags) {
+    auto it = m_fdInfo.find(fd);
+    if (it != m_fdInfo.end()) {
+        m_fdInfo[fd].status = FdChange::CHANGE;
+        ecore_main_fd_handler_del(m_fdInfo[fd].handler);
+    }
+
+    auto handler = ecore_main_fd_handler_add(fd, flags, &Logic::clientChHandler, this, nullptr, nullptr);
+    if (handler == nullptr) {
+        ALOGE("Couldn't set fd handler");
+        return;
+    }
+    m_fdInfo[fd].handler = handler;
+    m_fdInfo[fd].status = FdChange::NONE;
+}
+
+void Logic::removeChannelFd(Protocol::ConnectionFd fd) {
+    m_connToInfo.erase(fd);
+    auto it = m_fdInfo.find(fd);
+    if (it == m_fdInfo.end()) {
+        return;
+    }
+    it->second.status = FdChange::DEL;
+    ecore_main_fd_handler_del(it->second.handler);
+}
+
+Eina_Bool Logic::clientChHandler(void *data, Ecore_Fd_Handler *handler) {
+    Logic *service = static_cast<Logic *>(data);
+    int fd = ecore_main_fd_handler_fd_get(handler);
+    if (fd == -1) {
+        ALOGE("Failed to fetch fd from handler");
+        return ECORE_CALLBACK_CANCEL;
+    }
+    int mask = 0;
+    if (ecore_main_fd_handler_active_get(handler, ECORE_FD_READ)) {
+        mask = AskUser::Protocol::READ;
+    } else if (ecore_main_fd_handler_active_get(handler, ECORE_FD_WRITE)) {
+        mask = AskUser::Protocol::WRITE;
+    }
+    return service->processChannel(fd, mask);
+}
+
+Eina_Bool Logic::processChannel(int fd, int mask) {
+    m_fdInfo[fd].status = FdChange::NONE;
+    updateChannel(fd, mask);
+
+    switch (m_fdInfo[fd].status) {
+    case FdChange::NONE:
+        return ECORE_CALLBACK_RENEW;
+    case FdChange::DEL: {
+        // Remove all pending events from this fd
+        auto queueIt = std::remove_if(m_pendingEvents.begin(), m_pendingEvents.end(), [fd](const FdEvent &fdEvent) {return fdEvent.fd == fd;});
+        m_pendingEvents.erase(queueIt, m_pendingEvents.end());
+
+        // Handle next event if removed active fd
+        if (fd == m_currentFd) {
+            finishCurrentEvent();
+            processEvents();
+        }
+        m_fdInfo.erase(fd);
+        return ECORE_CALLBACK_CANCEL;
+    }
+    case FdChange::CHANGE:
+        return ECORE_CALLBACK_CANCEL;
+    default:
+        ALOGE("Unexpected fd change value : " << static_cast<int>(m_fdInfo[fd].status));
+        return ECORE_CALLBACK_CANCEL;
+    }
+}
+
+void Logic::addEvent(IUIEvent *event) {
+    FdEvent fdEvent{m_currentFd, std::unique_ptr<IUIEvent>(event)};
+    m_pendingEvents.emplace_back(std::move(fdEvent));
+    processEvents();
+}
+
+void Logic::popup(Protocol::ConnectionFd fd, Protocol::RequestId id, std::string &&privilege) {
+    (void)fd;
+    (void)id;
+    (void)privilege;
+}
+
+bool Logic::isEventProcessed() {
+    return m_currentEventId != -1;
+}
+
+void Logic::finishCurrentEvent() {
+    m_popupper.popupClose(m_currentEventId);
+    m_currentEventId = -1;
+    m_currentFd = -1;
+}
+
+void Logic::processEvents() {
+    // Active event processing
+    if (isEventProcessed())
+        return;
+
+    // No pending events
+    if (m_pendingEvents.empty())
+        return;
+
+    FdEvent fdEvent = std::move(m_pendingEvents.front());
+    m_currentFd = fdEvent.fd;
+    m_currentEventId = fdEvent.event->getId();
+    m_pendingEvents.pop_front();
+
+    fdEvent.event->process();
+}
+
+void Logic::registerSignalFd() {
+    // TODO use ecore event EXIT?
+    sigset_t mask;
+    sigemptyset(&mask);
+    sigaddset(&mask, SIGTERM);
+
+    if (pthread_sigmask(SIG_BLOCK, &mask, NULL) < 0) {
+        throw ErrnoException("Couldn't set signal mask");
+    }
+
+    int signalFd = signalfd(-1, &mask, 0);
+    if (signalFd < 0) {
+        throw ErrnoException("Couldn't create signalfd");
+    }
+    auto handler = ecore_main_fd_handler_add(signalFd, ECORE_FD_READ, &Logic::signalHandler, this, nullptr, nullptr);
+    if (handler == nullptr) {
+        throw Exception("Couldn't set fd handler");
+    }
+}
+
+void Logic::stop() {
+    if (isEventProcessed())
+        finishCurrentEvent();
+    m_popupper.stop();
+}
+
+Eina_Bool Logic::signalHandler(void *data, Ecore_Fd_Handler *) {
+    Logic *logic = static_cast<Logic*>(data);
+    logic->stop();
+    return ECORE_CALLBACK_CANCEL;
+}
+
+void Logic::prepareChannel() {
+    m_clientChannel = AskUser::Protocol::createChannel(
+            std::unique_ptr<AskUser::Protocol::IServerCallbacks>(new AskUser::Protocol::ServerCallbacks(this, &m_popupper)));
+}
+
+void Logic::updateChannel(int fd, int mask) {
+    // TODO errors?
+    m_clientChannel->process(fd, mask);
+}
+
+void Logic::init() {
+    init_agent_log();
+    m_popupper.setLocale();
+    m_popupper.initialize();
+    m_popupper.registerPopupResponseHandler([&](int popupId, NResponseType response) { popupResponse(popupId, response);});
+
+    registerSignalFd();
+
+    prepareChannel();
+}
+
+void Logic::run() {
+    // TODO ensure we won't throw inside ecore loop
+    m_popupper.start();
+    m_popupper.shutdown();
+}
+
+void Logic::popupResponse(int popupId, NResponseType response) {
+    if (popupId != m_currentEventId) {
+        ALOGD("Got different popup id than is being processed");
+        return;
+    }
+    int clientResponse;
+    // TODO translate ui response to policy result
+    switch (response) {
+    case NResponseType::Deny:
+        clientResponse = ASKUSER_DENY_ONCE;
+        break;
+    case NResponseType::DenyAlways:
+        clientResponse = ASKUSER_DENY_FOREVER;
+        break;
+    case NResponseType::Allow:
+        clientResponse = ASKUSER_ALLOW_ONCE;
+        break;
+    case NResponseType::AllowAlways:
+        clientResponse = ASKUSER_ALLOW_FOREVER;
+        break;
+    case NResponseType::None:
+        clientResponse = ASKUSER_NONE;
+        break;
+    case NResponseType::Error:
+        clientResponse = -255;
+        break;
+    default:
+        clientResponse = -255; // error
+    }
+    // TODO create popup ids containing fd and request id
+    m_clientChannel->popupResponse(-1, popupId, clientResponse);
+    finishCurrentEvent();
+    processEvents();
+}
+
+} // namespace Notification
+
+} // namepsace AskUser
diff --git a/src/notification-daemon/Logic.h b/src/notification-daemon/Logic.h
new file mode 100644 (file)
index 0000000..e1bec91
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/Service.h
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Declaration of Popupper class
+ */
+
+#pragma once
+
+#include <map>
+#include <deque>
+#include <askuser-notification/ask-user-service.h>
+#include <event/Event.h>
+
+namespace AskUser {
+
+namespace Notification {
+
+class Logic {
+public:
+    class Exception : public std::exception {
+    public:
+        Exception(std::string &&s) : m_msg(std::move(s)) {}
+        const char *what() const throw () {
+            return m_msg.c_str();
+        }
+    private:
+        std::string m_msg;
+    };
+    Logic() : m_currentFd(-1), m_currentEventId(-1), m_isFdDeleted(false) {}
+    void init();
+    void run();
+    void stop();
+
+    void addChannelFd(Protocol::ConnectionFd fd, const Protocol::Credentials &creds);
+    void updateChannelFd(Protocol::ConnectionFd fd, Ecore_Fd_Handler_Flags flags);
+    void removeChannelFd(Protocol::ConnectionFd fd);
+
+    void addEvent(IUIEvent *event);
+    void popup(Protocol::ConnectionFd fd, Protocol::RequestId id, std::string &&privilege);
+
+    ~Logic() {}
+private:
+    //Initialization
+    void registerSignalFd();
+    void prepareChannel();
+    void updateChannel(int fd, int mask);
+
+    // Descriptor handlers
+    static Eina_Bool clientChHandler(void *data, Ecore_Fd_Handler *handler);
+    static Eina_Bool signalHandler(void *data, Ecore_Fd_Handler *handler);
+    //static Eina_Bool signalHandler(void *data, int type, void *event);
+
+    Eina_Bool processChannel(int fd, int mask);
+    void processEvents();
+    bool isEventProcessed();
+    void finishCurrentEvent();
+    void popupResponse(int popupId, NResponseType response);
+
+    AskUser::Protocol::ChannelPtr m_clientChannel;
+    Popupper m_popupper;
+
+    struct FdEvent {
+        int fd;
+        std::unique_ptr<IUIEvent> event;
+    };
+
+    // Workaround for no information about to which fd event belongs to
+    int m_currentFd;
+    int m_currentEventId;
+    int m_isFdDeleted;
+    std::deque<FdEvent> m_pendingEvents;
+
+    enum class FdChange {
+        NONE,
+        ADD,
+        CHANGE,
+        DEL
+    };
+    struct FdInfo {
+        Ecore_Fd_Handler* handler;
+        FdChange status;
+    };
+
+    std::map<int, FdInfo> m_fdInfo;
+
+    struct ConnectionInfo {
+        std::string appId;
+        std::string pkgId;
+        std::vector<std::string> apps;
+    };
+
+    std::map<Protocol::ConnectionFd, ConnectionInfo> m_connToInfo;
+};
+
+} // namespace Notification
+
+} // namespace AskUser
diff --git a/src/notification-daemon/ServerCallbacks.cpp b/src/notification-daemon/ServerCallbacks.cpp
new file mode 100644 (file)
index 0000000..b8c7825
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/ServerCallbacks.cpp
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Implementation ServerCallbacks classes
+ */
+#include <unistd.h>
+
+#include "ServerCallbacks.h"
+#include "event/Event.h"
+
+namespace {
+Ecore_Fd_Handler_Flags maskToFlags(int mask) {
+    int flags = ECORE_FD_ERROR;
+    if (mask & AskUser::Protocol::READ)
+        flags |= static_cast<int>(ECORE_FD_READ);
+    if (mask & AskUser::Protocol::WRITE)
+        flags |= static_cast<int>(ECORE_FD_WRITE);
+    return static_cast<Ecore_Fd_Handler_Flags>(flags);
+}
+}
+
+namespace AskUser {
+namespace Protocol {
+
+void ServerCallbacks::newConnection(ConnectionFd fd, const Credentials &creds) {
+    m_service->addChannelFd(fd, creds);
+}
+
+void ServerCallbacks::updateConnection(ConnectionFd fd, int mask) {
+    if (mask == 0)
+        m_service->removeChannelFd(fd);
+    else
+        m_service->updateChannelFd(fd, maskToFlags(mask));
+}
+
+void ServerCallbacks::popup(ConnectionFd fd, RequestId id, std::string &&privilege) {
+    m_service->popup(fd, id, std::move(privilege));
+}
+
+} /* namespace Notification */
+} /* namespace Askuser */
diff --git a/src/notification-daemon/ServerCallbacks.h b/src/notification-daemon/ServerCallbacks.h
new file mode 100644 (file)
index 0000000..d2f9101
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/ServerCallbacks.h
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Declaration of ServerCallbacks classes
+ */
+#pragma once
+
+#include <memory>
+
+#include <askuser-notification/ask-user-service.h>
+
+#include "Logic.h"
+#include "ui/Popupper.h"
+
+namespace AskUser {
+namespace Protocol {
+
+class ServerCallbacks : public IServerCallbacks {
+public:
+    ServerCallbacks(AskUser::Notification::Logic *logic, AskUser::Notification::Popupper *popupper)
+        : m_service(logic), m_popupper(popupper)
+    {}
+    virtual void newConnection(ConnectionFd fd, const Credentials &creds);
+    virtual void updateConnection(ConnectionFd fd, int mask);
+    virtual void popup(ConnectionFd fd, RequestId id, std::string &&privilege);
+
+    virtual ~ServerCallbacks() {}
+private:
+    AskUser::Notification::Logic *m_service;
+    AskUser::Notification::Popupper *m_popupper;
+};
+
+} /* namespace Notification */
+} /* namespace Askuser */
+
diff --git a/src/notification-daemon/event/Event.h b/src/notification-daemon/event/Event.h
new file mode 100644 (file)
index 0000000..f00cba4
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/event/Event.h
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Declaration of main loop Event classes
+ */
+
+#pragma once
+
+#include <string>
+#include <vector>
+
+#include <ui/Popupper.h>
+
+namespace AskUser {
+namespace Notification {
+
+class IUIEvent {
+public:
+    IUIEvent(Popupper *popupper) : m_popupper(popupper), m_eventId(-1) {}
+    virtual void process() = 0;
+    void setId(int id) { m_eventId = id; }
+    int getId() { return m_eventId; }
+    virtual ~IUIEvent() {}
+protected:
+    Popupper *m_popupper;
+    int m_eventId;
+};
+
+class EventPopupCheck : public IUIEvent {
+public:
+    EventPopupCheck(Popupper *popupper, int popupId, const std::string &appName,
+               const std::string &pkgName, const std::string &privilege)
+        : IUIEvent(popupper), m_popupId(popupId), m_appName(appName),
+          m_pkgName(pkgName), m_privilege(privilege)
+    {
+        setId(popupId);
+    }
+
+    virtual void process() {
+        m_popupper->popupCheck(m_popupId, m_appName, m_pkgName, m_privilege);
+    }
+private:
+    int m_popupId;
+    std::string m_appName;
+    std::string m_pkgName;
+    std::string m_privilege;
+};
+
+} //namespace AskUser
+} //namespace Notification
+
+
diff --git a/src/notification-daemon/main.cpp b/src/notification-daemon/main.cpp
new file mode 100644 (file)
index 0000000..948dfb8
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ *  Copyright (c) 2016 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/notification-daemon/main.cpp
+ * @author      Oskar Świtalski <o.switalski@samsung.com>
+ * @brief       Main askuser notification daemon file
+ */
+
+#ifdef BUILD_WITH_SYSTEMD_DAEMON
+#include <systemd/sd-daemon.h>
+#endif
+
+#include <exception>
+#include <exception/Exception.h>
+#include <log/alog.h>
+
+#include "Logic.h"
+
+int main()
+{
+    using namespace AskUser::Notification;
+    try {
+        Logic logic;
+        logic.init();
+
+#ifdef BUILD_WITH_SYSTEMD_DAEMON
+        int ret = sd_notify(0, "READY=1");
+        if (ret == 0) {
+            ALOGW("Agent was not configured to notify its status");
+        } else if (ret < 0) {
+            ALOGE("sd_notify failed: [" << ret << "]");
+        }
+#endif
+
+        logic.run();
+    } catch (std::exception &e) {
+        ALOGE("Askuser-notification stopped because of: <" << e.what() << ">.");
+    } catch (...) {
+        ALOGE("Askuser-notification stopped because of unknown unhandled exception.");
+    }
+
+    return 0;
+}
diff --git a/src/notification-daemon/po/CMakeLists.txt b/src/notification-daemon/po/CMakeLists.txt
new file mode 100644 (file)
index 0000000..e99ed32
--- /dev/null
@@ -0,0 +1,93 @@
+# Copyright (c) 2015-2017 Samsung Electronics Co., Ltd All Rights Reserved
+#
+#    Licensed under the Apache License, Version 2.0 (the "License");
+#    you may not use this file except in compliance with the License.
+#    You may obtain a copy of the License at
+#
+#        http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+#
+# @file        CMakeLists.txt
+# @author      Adam Malinowski <a.malinowsk2@partner.samsung.com>
+#
+
+SET(POFILES
+    ar.po
+    az.po
+    bg.po
+    ca.po
+    cs.po
+    da.po
+    de.po
+    el_GR.po
+    en.po
+    en_PH.po
+    en_US.po
+    es_ES.po
+    es_US.po
+    et.po
+    eu.po
+    fi.po
+    fr.po
+    fr_CA.po
+    ga.po
+    gl.po
+    hi.po
+    hr.po
+    hu.po
+    hy.po
+    is.po
+    it_IT.po
+    ja_JP.po
+    ka.po
+    kk.po
+    ko_KR.po
+    lt.po
+    lv.po
+    mk.po
+    nb.po
+    nl.po
+    pl.po
+    pt_BR.po
+    pt_PT.po
+    ro.po
+    ru_RU.po
+    sk.po
+    sl.po
+    sr.po
+    sv.po
+    tr_TR.po
+    uk.po
+    uz.po
+    zh_CN.po
+    zh_HK.po
+    zh_TW.po
+)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(SHAREDIR "${PREFIX}/share")
+SET(LOCALEDIR "${SHAREDIR}/locale")
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+    SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+    MESSAGE("PO: ${pofile}")
+    GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+    GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+    SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+    ADD_CUSTOM_COMMAND(
+        OUTPUT ${moFile}
+        COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+        DEPENDS ${absPofile}
+    )
+    INSTALL(FILES ${moFile}
+        DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${TARGET_ASKUSER_NOTIFICATION}.mo)
+    SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/src/notification-daemon/po/ar.po b/src/notification-daemon/po/ar.po
new file mode 100755 (executable)
index 0000000..c8d348f
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "عدم الإظهار مجدداً"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "غير مسموح لـ %1$s باستخدام %2$s. حدد ضبط الخصوصية في الضبط > الخصوصية والحماية."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "طلب الخصوصية"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "هل تريد السماح لـ %1$s بالوصول إلى %2$s؟"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "السماح"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "رفض"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "ثمة طلب من %s للحصول على إذن للوصول إلى العناصر التالية:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "اسمح بكل الأذونات ذات الصلة لاستخدام التطبيق."
+
diff --git a/src/notification-daemon/po/az.po b/src/notification-daemon/po/az.po
new file mode 100755 (executable)
index 0000000..50ab98d
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Bir daha göstərmə"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s-yə %2$s-dən istifadə icazəsi verilməmişdir. Parametrlər > Məxfilik və təhlükəsilikdən Məxfilik parametrlərini seçin."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Məxfilik sorğusu"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "%1$s-a %2$s-ya çıxış icazəsi verilsin?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "İcazə ver"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Rədd et"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s aşağıdakı elementlərə çıxış icazəsi istəyir:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Proqramdan istifadə etmək üçün bütün müvafiq icazələri verin."
+
diff --git a/src/notification-daemon/po/bg.po b/src/notification-daemon/po/bg.po
new file mode 100755 (executable)
index 0000000..1ecac00
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Да не се показва повече"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s няма право да използва %2$s. Изберете „Настройки за поверителност“ в Настройки > Поверителност и защита."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Заявка за поверителна информация"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Разрешавате ли на %1$s достъп до %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Позволяв."
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Отказ"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s иска разрешение за достъп до следните елементи:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "За да използвате приложението, позволете всички свързани разрешения."
+
diff --git a/src/notification-daemon/po/ca.po b/src/notification-daemon/po/ca.po
new file mode 100755 (executable)
index 0000000..dcff3ce
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "No tornar a mostrar"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s no té permís per utilitzar %2$s. Seleccioni Ajustaments de privadesa a Ajustaments > Privadesa i seguretat."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Sol·licitud de privadesa"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Vol permetre que %1$s accedeixi a %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Permetre"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Denegar"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s està demanant permís per accedir als elements següents:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Per utilitzar l'aplicació, concedeixi tots els permisos corresponents."
+
diff --git a/src/notification-daemon/po/cs.po b/src/notification-daemon/po/cs.po
new file mode 100755 (executable)
index 0000000..472184a
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Znovu nezobrazovat"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s nesmí používat %2$s. Vyberte Nastavení soukromí v Nastavení > Ochrana osobních údajů a zabezpečení."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Požadavek na ochranu osobních údajů"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Povolit %1$s přístup k %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Povolit"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Odmítnout"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s vyžaduje přístup k následujícím položkám:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Chcete-li použít aplikaci, povolte všechna příslušná oprávnění."
+
diff --git a/src/notification-daemon/po/da.po b/src/notification-daemon/po/da.po
new file mode 100755 (executable)
index 0000000..efdcc0f
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Vis ikke igen"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s må ikke bruge %2$s. Vælg Fortrolighedsindstillinger under Indstillinger > Fortrolighed og sikkerhed."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Fortrolighedsanmodning"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Vil du give %1$s adgang til %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Tillad"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Afvis"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s anmoder om tilladelse til at få adgang til følgende elementer:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Hvis du vil bruge appen, skal du aktivere alle relevante tilladelser."
+
diff --git a/src/notification-daemon/po/de.po b/src/notification-daemon/po/de.po
new file mode 100755 (executable)
index 0000000..54ee639
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Nicht erneut anzeigen"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s darf %2$s nicht nutzen. Wählen Sie unter „Einstellungen > Gerätesicherheit“ die Option „Datenschutz“ aus."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Datenschutzanfrage"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "%1$s Zugriff auf %2$s erlauben?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Zulassen"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Ablehnen"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s benötigt eine Berechtigung, um auf die folgenden Elemente zuzugreifen:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Erteilen Sie alle relevanten Genehmigungen, um die App zu verwenden."
+
diff --git a/src/notification-daemon/po/el_GR.po b/src/notification-daemon/po/el_GR.po
new file mode 100755 (executable)
index 0000000..9244ff4
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Να μην εμφανιστεί ξανά"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "Η εφαρμογή %1$s δεν επιτρέπεται να χρησιμοποιήσει τη λειτουργία %2$s. Μεταβείτε στις Ρυθμίσεις > Απόρρητο και ασφάλεια και επιλέξτε «Ρυθμίσεις απόρρητου»."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Αίτηση απορρήτου"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Να επιτραπεί στην εφαρμογή %1$s η πρόσβαση σε %2$s;"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Να επιτρέπ."
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Απόρριψη"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "Η εφαρμογή %s ζητάει πρόσβαση στα παρακάτω στοιχεία:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Για να χρησιμοποιήσετε την εφαρμογή, παραχωρήστε όλα τα σχετικά δικαιώματα."
+
diff --git a/src/notification-daemon/po/en.po b/src/notification-daemon/po/en.po
new file mode 100755 (executable)
index 0000000..c757995
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Don't show again"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s not allowed to use %2$s. Select Privacy settings in Settings > Privacy and security."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Privacy request"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Allow %1$s to access your %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Allow"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Deny"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s is requesting permission to access the following items:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "To use app, allow all relevant permissions."
+
diff --git a/src/notification-daemon/po/en_PH.po b/src/notification-daemon/po/en_PH.po
new file mode 100755 (executable)
index 0000000..c757995
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Don't show again"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s not allowed to use %2$s. Select Privacy settings in Settings > Privacy and security."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Privacy request"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Allow %1$s to access your %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Allow"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Deny"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s is requesting permission to access the following items:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "To use app, allow all relevant permissions."
+
diff --git a/src/notification-daemon/po/en_US.po b/src/notification-daemon/po/en_US.po
new file mode 100755 (executable)
index 0000000..c757995
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Don't show again"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s not allowed to use %2$s. Select Privacy settings in Settings > Privacy and security."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Privacy request"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Allow %1$s to access your %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Allow"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Deny"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s is requesting permission to access the following items:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "To use app, allow all relevant permissions."
+
diff --git a/src/notification-daemon/po/es_ES.po b/src/notification-daemon/po/es_ES.po
new file mode 100755 (executable)
index 0000000..164c4ba
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "No volver a mostrar"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s no está autorizado para utilizar %2$s. Seleccione Ajustes de privacidad en Ajustes > Privacidad y seguridad."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Solicitud de privacidad"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "¿Quiere permitir a %1$s acceder a su(s) %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Permitir"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Rechazar"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s está solicitando permiso para acceder a los siguientes elementos:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Para usar la aplicación, conceda todos los permisos correspondientes."
+
diff --git a/src/notification-daemon/po/es_US.po b/src/notification-daemon/po/es_US.po
new file mode 100755 (executable)
index 0000000..7a330de
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "No mostrar de nuevo"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s no tiene permiso para usar %2$s. Seleccione Ajustes de privacidad en Ajustes > Privacidad y seguridad."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Solicitud de privacidad"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "¿Desea permitir que %1$s acceda a su(s) %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Permitir"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Rechazar"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s está solicitando permiso para acceder a los siguientes elementos:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Para usar la aplicación, otorgue todos los permisos necesarios."
+
diff --git a/src/notification-daemon/po/et.po b/src/notification-daemon/po/et.po
new file mode 100755 (executable)
index 0000000..20e6661
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Ära näita enam"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "Üksusel %1$s pole lubatud rakendust %2$s kasutada. Valige privaatsuse seaded menüüs Seaded > Privaatsus ja turvalisus."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Privaatsustaotlus"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Kas anda rakendusele %1$s luba juurdepääsuks üksusele %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Luba"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Keela"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s taotleb luba järgmistele üksustele juurdepääsemiseks:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Kinnitage rakenduse kasutamiseks kõik vajalikud õigused."
+
diff --git a/src/notification-daemon/po/eu.po b/src/notification-daemon/po/eu.po
new file mode 100755 (executable)
index 0000000..34bf445
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Ez erakutsi berriz"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s aplikazioak ez du %2$s erabiltzeko baimenik. Ezarpenak > Pribatutasuna eta segurtasuna atalean, hautatu Pribatutasun ezarpenak."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Pribatutasun eskaera"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "%1$s aplikazioari hona sartzen utzi: %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Baimendu"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Ukatu"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "Hauetan sartzeko baimena eskatzen ari zaizu %s:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Aplikazioa erabiltzeko, eman beharrezko baimenak."
+
diff --git a/src/notification-daemon/po/fi.po b/src/notification-daemon/po/fi.po
new file mode 100755 (executable)
index 0000000..ce0ea09
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Älä näytä uudelleen"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s ei salli resurssien %2$s käyttöä. Valitse Asetukset > Yksityisyys ja tietoturva ja sitten Tietosuoja-asetukset."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Tietosuojapyyntö"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Saako %1$s käyttää kohdetta %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Salli"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Estä"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s pyytää lupaa seuraavien kohteiden käyttöön:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Jos haluat käyttää sovellusta, myönnä kaikki tarvittavat käyttöoikeudet."
+
diff --git a/src/notification-daemon/po/fr.po b/src/notification-daemon/po/fr.po
new file mode 100755 (executable)
index 0000000..a97e6e9
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Ne plus afficher"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "L'application %1$s n'est pas autorisée à utiliser %2$s. Sélectionnez Paramètres de confidentialité dans Paramètres > Confidentialité et sécurité."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Demande de confidentialité"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Autoriser %1$s à accéder à votre/vos %2$s ?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Autoriser"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Refuser"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s demande l'autorisation d'accéder aux éléments suivants :"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Pour utiliser l'application, accordez toutes les autorisations appropriées."
+
diff --git a/src/notification-daemon/po/fr_CA.po b/src/notification-daemon/po/fr_CA.po
new file mode 100755 (executable)
index 0000000..a97e6e9
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Ne plus afficher"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "L'application %1$s n'est pas autorisée à utiliser %2$s. Sélectionnez Paramètres de confidentialité dans Paramètres > Confidentialité et sécurité."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Demande de confidentialité"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Autoriser %1$s à accéder à votre/vos %2$s ?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Autoriser"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Refuser"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s demande l'autorisation d'accéder aux éléments suivants :"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Pour utiliser l'application, accordez toutes les autorisations appropriées."
+
diff --git a/src/notification-daemon/po/ga.po b/src/notification-daemon/po/ga.po
new file mode 100755 (executable)
index 0000000..06c91db
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Ná taispeáin arís"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "Ní cheadaítear do %1$s %2$s a úsáid. Roghnaigh Socruithe príobháide i Socruithe > Príobháid agus slándáil."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Iarratas príobháide"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Ceadaigh do %1$s do %2$s a rochtain?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Ceadaigh"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Diúltaigh"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "Tá %s ag iarraidh ceada leis na míreanna seo a leanas a rochtain:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Leis an bhfeidhmchlár a úsáid, ceadaigh na ceadanna ábhartha uile."
+
diff --git a/src/notification-daemon/po/gl.po b/src/notification-daemon/po/gl.po
new file mode 100755 (executable)
index 0000000..501ce8a
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Non mostrar de novo"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s non pode utilizar %2$s. Selecciona Axustes de privacidade en Axustes > Privacidade e seguridade."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Solicitude de privacidade"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Queres permitir a %1$s acceder ao teu %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Permitir"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Denegar"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s está solicitando permiso para acceder aos seguintes elementos:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Para usar a aplicación, concede todos os permisos correspondentes."
+
diff --git a/src/notification-daemon/po/hi.po b/src/notification-daemon/po/hi.po
new file mode 100755 (executable)
index 0000000..c8b850b
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "फिर से न दिखाएँ"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s को %2$s का उपयोग करने की अनुमति नहीं है। सेटिंग्स > गोपनीयता और सुरक्षा में गोपनीयता सेटिंग्स चुनें।"
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "गोपनीयता अनुरोध"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "%1$s को आपका %2$s एक्सेस करने की अनुमति दें?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "अनुमति दें"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "अस्वीकारें"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s निम्न मदें एक्सेस करने की अनुमति का अनुरोध कर रहा है:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "एप का उपयोग करने के लिए, सभी संबंधित अनुमतियों की अनुमति दें।"
+
diff --git a/src/notification-daemon/po/hr.po b/src/notification-daemon/po/hr.po
new file mode 100755 (executable)
index 0000000..7879a97
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Ne prikazuj više"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "Aplikaciji %1$s nije dopuštena uporaba %2$s. Odaberite Postavke privatnosti u izborniku Postavke > Privatnost i sigurnost."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Zahtjev za pristup privatnim podacima"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Dopustiti aplikaciji %1$s pristup stavci %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Dopusti"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Odbij"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s traži dopuštenje za pristup sljedećim stavkama:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Da biste upotrebljavali aplikaciju, odobrite sva odgovarajuća dopuštenja."
+
diff --git a/src/notification-daemon/po/hu.po b/src/notification-daemon/po/hu.po
new file mode 100755 (executable)
index 0000000..45b2d66
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Ne jelenjen meg újra"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "A(z) %1$s nem rendelkezik engedéllyel a(z) %2$s használatához. Lépjen be a Beállítások > Adatvédelem és biztonság menüpontba, és válassza az Adatvédelmi beállítások lehetőséget."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Adatvédelmi kérés"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Hozzáférést ad a(z) %1$s számára a következőhöz: %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Enged"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Tilt"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "A(z) %s hozzá szeretne férni a következő elemekhez:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Az alkalmazás használatához adja meg az összes megfelelő engedélyt."
+
diff --git a/src/notification-daemon/po/hy.po b/src/notification-daemon/po/hy.po
new file mode 100755 (executable)
index 0000000..ad7f2a1
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Այլևս ցույց չտալ"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s-ին չի թույլատրվում օգտագործել %2$s: Ընտրեք Գաղտնիության դրվածքներ՝ գնալով Դրվածքներ > Գաղտնիություն և անվտանգություն:"
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Գաղտնիության պահանջ"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Թույլ տա՞լ, որ %1$s-ը մուտք գործի %2$s:"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Թույլ տալ"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Մերժել"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s-ը հարցնում է հետևյալ տարրերը մուտք գործելու թույլտվություն՝"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Ծրագիրն օգտագործելու համար տվեք բոլոր համապատասխան թույլտվությունները:"
+
diff --git a/src/notification-daemon/po/is.po b/src/notification-daemon/po/is.po
new file mode 100755 (executable)
index 0000000..436c969
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Ekki sýna aftur"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s hefur ekki leyfi til að nota %2$s. Veldu „Persónuverndarstillingar“ í „Stillingar > Persónuvernd og öryggi“."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Persónuverndarbeiðni"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Viltu veita %1$s aðgang að „%2$s“?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Leyfa"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Hafna"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s biður um leyfi til að fá aðgang að eftirfarandi hlutum:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Til að nota forritið skaltu gefa allar viðeigandi heimildir."
+
diff --git a/src/notification-daemon/po/it_IT.po b/src/notification-daemon/po/it_IT.po
new file mode 100755 (executable)
index 0000000..fc29286
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Non mostrare più"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "L'applicazione %1$s non è autorizzata a utilizzare %2$s. Selezionate le impostazioni sulla privacy in Impostazioni > Privacy e protezione."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Richiesta sulla privacy"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Consentire a %1$s di accedere a %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Consenti"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Nega"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s sta chiedendo l'autorizzazione per accedere a questi elementi:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Per utilizzare l'applicazione, concedete tutte le autorizzazioni pertinenti."
+
diff --git a/src/notification-daemon/po/ja_JP.po b/src/notification-daemon/po/ja_JP.po
new file mode 100755 (executable)
index 0000000..05e67a1
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "今後表示しない"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$sは、%2$sを使用できません。[設定] > [プライバシーとセキュリティ]で[プライバシー設定]を選択してください。"
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "プライバシーの要求"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "%2$sへのアクセスを%1$sに許可しますか?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "許可"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "拒否"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%sが以下のアイテムにアクセスする権限を要求しています。"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "アプリを使用するには、関連する全ての権限を許可してください。"
+
diff --git a/src/notification-daemon/po/ka.po b/src/notification-daemon/po/ka.po
new file mode 100755 (executable)
index 0000000..441545e
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "აღარ მაჩვენო"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s-ს არ აქვს უფლება, გამოიყენოს %2$s. გახსენით „პარამეტრები“ > „კონფიდენციალურობა და უსაფრთხოება“ და აირჩიეთ „პირადი პარამეტრები“."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "კონფიდენციალურობის მოთხოვნა"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "ჰქონდეს %1$s-ს უფლება, რომ გახსნას თქვენი %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "ნებართვა"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "უარყოფა"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s ითხოვს წვდომის ნებართვას შემდეგზე:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "აპლიკაცია რომ გამოიყენოთ, მიეცით სათანადო ნებართვები."
+
diff --git a/src/notification-daemon/po/kk.po b/src/notification-daemon/po/kk.po
new file mode 100755 (executable)
index 0000000..94d3932
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Қайта көрсетпеу"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s үшін %2$s пайдалануға рұқсат берілмеген. Параметрлер > Құпиялылық және қауіпсіздік тармағында Құпиялылық параметрлерін таңдаңыз."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Құпиялылық сұрауы"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "%1$s %2$s қолданбасына қатынасуға рұқсат ету керек пе?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Рұқсат ету"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Бас тарту"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s келесі элементтерге қатынасу рұқсатын сұрауда:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Қолданбаны пайдалану үшін, барлық тиісті рұқсаттарды беріңіз."
+
diff --git a/src/notification-daemon/po/ko_KR.po b/src/notification-daemon/po/ko_KR.po
new file mode 100755 (executable)
index 0000000..a567a7e
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "다시 보지 않기"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s 앱은 %2$s 항목을 사용할 수 없습니다. [설정 > 개인정보 보호]에서 [개인정보 설정]을 선택하세요."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "개인정보 요청"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "%1$s 앱에서 %2$s에 접근합니다."
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "허용"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "허용 안 함"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s 앱에서 다음 항목에 접근을 요청합니다."
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "앱을 사용하려면 모든 관련 권한을 허용하세요."
+
diff --git a/src/notification-daemon/po/lt.po b/src/notification-daemon/po/lt.po
new file mode 100755 (executable)
index 0000000..2780a3e
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Neberodyti"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s neleido naudoti %2$s. Pasirinkite privatumo nustatymus eidami į Nustatymai > Privatumas ir sauga."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Privatumo užklausa"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Leisti %1$s pasiekti jūsų %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Leisti"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Atmesti"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s prašo leidimo pasiekti šiuos elementus:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Jei norite naudoti programą, suteikite visus reikiamus leidimus."
+
diff --git a/src/notification-daemon/po/lv.po b/src/notification-daemon/po/lv.po
new file mode 100755 (executable)
index 0000000..0588893
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Vairs nerādīt"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "Programmai %1$s nav atļauts lietot %2$s. Izvēlnē Iestatījumi izvēlieties Konfidencialitātes iestatījumi > Konfidencialitāte un drošība."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Konfidencialitātes pieprasījums"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Vai atļaut %1$s piekļūt jūsu %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Atļaut"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Noraidīt"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s pieprasa atļauju piekļūt šādiem objektiem:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Lai izmantotu programmu, piešķiriet visas nepieciešamās atļaujas."
+
diff --git a/src/notification-daemon/po/mk.po b/src/notification-daemon/po/mk.po
new file mode 100755 (executable)
index 0000000..9e6308d
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Не прикажувај повторно"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s не смее да користи %2$s. Изберете Поставувања за приватност во Поставувања > Приватност и безбедност."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Барање за приватност"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Да се дозволи %1$s да пристапи до %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Дозволи"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Отфрли"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s бара дозвола да пристапи до следниве записи:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "За да ја користите апликацијата, овозможете ги сите релевантни дозволи."
+
diff --git a/src/notification-daemon/po/nb.po b/src/notification-daemon/po/nb.po
new file mode 100755 (executable)
index 0000000..cb4a803
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Ikke vis igjen"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s er ikke tillatt å bruke %2$s. Velg Personverninnstillinger i Innstillinger > Personvern og sikkerhet."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Personvernforespørsel"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Vil du gi %1$s tilgang til %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Tillat"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Avslå"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s ber om tillatelse til å få tilgang til følgende elementer:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "For å bruke appen må du gi alle de relevante tillatelsene."
+
diff --git a/src/notification-daemon/po/nl.po b/src/notification-daemon/po/nl.po
new file mode 100755 (executable)
index 0000000..0af69b9
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Niet opnieuw weergeven"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s mag %2$s niet gebruiken. Selecteer Privacy-instellingen in Instellingen > Privacy en beveiliging."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Verzoek om privacy"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Mag %1$s uw %2$s openen?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Toestaan"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Weigeren"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s vraagt toestemming om de volgende items te openen:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Als u de app wilt gebruiken, staat u alle relevante machtigingen toe."
+
diff --git a/src/notification-daemon/po/pl.po b/src/notification-daemon/po/pl.po
new file mode 100755 (executable)
index 0000000..1808014
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Nie pokazuj ponownie"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "Aplikacja %1$s nie ma uprawnień do używania zasobów %2$s. Przejdź do opcji Ustawienia prywatności w menu Ustawienia > Prywatność i bezpieczeństwo."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Żądanie związane z prywatnością"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Zezwolić %1$s na dostęp do %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Zezwól"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Odmów"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "Urządzenie %s żąda uprawnienia dostępu następujących elementów:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "W celu używania aplikacji zezwól na wszystkie odpowiednie uprawnienia."
+
diff --git a/src/notification-daemon/po/pt_BR.po b/src/notification-daemon/po/pt_BR.po
new file mode 100755 (executable)
index 0000000..920ff53
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Não exibir novamente"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s não permitiu usar %2$s. Selecione Configurações de privacidade em Configurações > Privacidade e segurança."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Solicitação de privacidade"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Permitir que %1$s acesse %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Permitir"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Negar"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s está solicitando permissão para acessar os seguintes itens:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Para usar o aplicativo, conceda todas as permissões relevantes."
+
diff --git a/src/notification-daemon/po/pt_PT.po b/src/notification-daemon/po/pt_PT.po
new file mode 100755 (executable)
index 0000000..b20f665
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Não voltar a mostrar"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s não está autorizado a utilizar %2$s. Seleccione Definições de privacidade em Definições > Privacidade e segurança."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Pedido de privacidade"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Permitir que %1$s aceda a %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Permitir"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Recusar"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s está a pedir permissão para aceder aos seguintes itens:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Para utilizar a aplicação, autorize todas as permissões relevantes."
+
diff --git a/src/notification-daemon/po/ro.po b/src/notification-daemon/po/ro.po
new file mode 100755 (executable)
index 0000000..cc6d8e3
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Nu se mai afișează"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s nu are permisiunea să utilizeze %2$s. Selectați Setări confidențialitate din meniul Setări > Confidențialitate și securitate."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Solicitare confidențialitate"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Permiteți ca %1$s să acceseze %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Permitere"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Refuz"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s solicită permisiunea de a accesa următoarele elemente:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Pentru a utiliza aplicația, acordați toate permisiunile corespunzătoare."
+
diff --git a/src/notification-daemon/po/ru_RU.po b/src/notification-daemon/po/ru_RU.po
new file mode 100755 (executable)
index 0000000..ed35743
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Больше не показывать"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "Пользователю %1$s не разрешено использовать %2$s. Задайте параметры конфиденциальности в меню “Настройки” > “Конфиденциальность и безопасность”."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Запрос на предоставление конфиденциальных данных"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Разрешить %1$s получать доступ к %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Разрешить"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Запретить"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s запрашивает разрешение на доступ к следующим элементам:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Для использования приложения предоставьте все необходимые разрешения."
+
diff --git a/src/notification-daemon/po/sk.po b/src/notification-daemon/po/sk.po
new file mode 100755 (executable)
index 0000000..05bee16
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Už nezobrazovať"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s nemá povolené používať %2$s. Vyberte položku Nastavenia súkromia v menu Nastavenia > Ochrana osobných údajov a zabezpečenie."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Žiadosť o ochranu osobných údajov"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Povoliť aplikácii %1$s prístup k: %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Povoliť"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Zamietnuť"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s žiada o povolenie na prístup k nasledujúcim položkám:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Ak chcete používať túto aplikáciu, udeľte všetky príslušné povolenia."
+
diff --git a/src/notification-daemon/po/sl.po b/src/notification-daemon/po/sl.po
new file mode 100755 (executable)
index 0000000..418a00f
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Ne pokaži znova"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s ne sme uporabljati %2$s. V meniju nastavitve > Zasebnost in varnost izberite Nastavitve zasebnosti."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Zahteva za zasebnost"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Dovolite aplikaciji %1$s, da dostopa do podatkov %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Dovoli"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Zavrni"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "Aplikacija %s zahteva dovoljenje za dostop do naslednjih elementov:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Če želite uporabljati aplikacijo, omogočite vsa ustrezna dovoljenja."
+
diff --git a/src/notification-daemon/po/sr.po b/src/notification-daemon/po/sr.po
new file mode 100755 (executable)
index 0000000..92b3422
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Ne prikazuj ponovo"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s ne sme da koristi %2$s. Izaberite opciju Podešavanja privatnosti u okviru Podešavanja > Privatnost i bezbednost."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Zahtev za privatnim informacijama"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Dozvoliti da %1$s pristupi funkciji %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Dozvoli"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Odbij"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "Aplikacija %s traži dozvolu da pristupi sledećim stavkama:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Da biste koristili aplikaciju, dozvolite sve odgovarajuće dozvole."
+
diff --git a/src/notification-daemon/po/sv.po b/src/notification-daemon/po/sv.po
new file mode 100755 (executable)
index 0000000..2f55495
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Visa inte igen"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s har inte tillåtelse att använda %2$s. Öppna Sekretessinställningar i Inställningar > Sekretess och säkerhet."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Sekretessbegäran"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Tillåt att %1$s får tillgång till %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Tillåt"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Neka"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s begär att få komma åt dessa objekt:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Tillåt alla relevanta behörigheter om du vill använda programmet."
+
diff --git a/src/notification-daemon/po/tr_TR.po b/src/notification-daemon/po/tr_TR.po
new file mode 100755 (executable)
index 0000000..6962853
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Tekrar gösterme"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s için %2$s öğesini kullanma izni yok. Ayarlar > Gizlilik ve güvenlik bölümünde Gizlilik ayarlarını seçin."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Gizlilik isteği"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "%1$s öğesinin %2$s erişimine izin verilsin mi?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "İzin ver"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Reddet"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s, aşağıdaki öğelere erişim izni istiyor:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Uygulamayı kullanmak için ilgili izinlerin tümünü verin."
+
diff --git a/src/notification-daemon/po/uk.po b/src/notification-daemon/po/uk.po
new file mode 100755 (executable)
index 0000000..b2daf0c
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Більше не показувати"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "Користувач %1$s не має дозволу на використання %2$s. Змініть параметри у розділі «Налаштування» > «Конфіденційність та безпека»."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Запит на надання конфіденційних даних"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "Дозволити %1$s отримувати доступ до %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Дозволити"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Заборонити"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "Програма %s запитує дозвіл на отримання доступу до наступних об’єктів:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Для використання програми надайте всі відповідні дозволи."
+
diff --git a/src/notification-daemon/po/uz.po b/src/notification-daemon/po/uz.po
new file mode 100755 (executable)
index 0000000..eecff99
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "Qayta ko‘rsatilmasin"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s’ga %2$s’dan foydalanish uchun ruxsat berilmagan. Parametrlar > Maxfiylik va xavfsizlik menyusida Maxfiylik parametrlarini tanlang."
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Maxfiylik so‘rovi"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "%1$s’ga %2$s’ga kirish uchun ruxsat berilsinmi?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Ruxsat ber"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Rad etish"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s quyidagi elementlarga kirish uchun ruxsat so‘ramoqda:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "Ilovadan foydalanish uchun barcha tegishli ruxsatlarga ijozat bering."
+
diff --git a/src/notification-daemon/po/zh_CN.po b/src/notification-daemon/po/zh_CN.po
new file mode 100755 (executable)
index 0000000..79bb1bc
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "不再显示"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s 不允许使用 %2$s。请进入【设置】>【隐私和安全】并选择【隐私设置】。"
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "隐私请求"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "是否允许 %1$s 访问您的 %2$s?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "允许"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "拒绝"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s正在请求访问以下内容的许可:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "若要使用应用程序,请允许全部相关权限。"
+
diff --git a/src/notification-daemon/po/zh_HK.po b/src/notification-daemon/po/zh_HK.po
new file mode 100755 (executable)
index 0000000..0c07b87
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "不再顯示"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "%1$s 不允許使用 %2$s。請在 [設定] > [隱私與安全] 中選擇 [隱私設定]。"
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "私隱請求"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "允許 %1$s 存取您的 %2$s 嗎?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "允許"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "拒絕"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s 正在請求存取以下項目的權限:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "若要使用應用程式,請允許相關權限。"
+
diff --git a/src/notification-daemon/po/zh_TW.po b/src/notification-daemon/po/zh_TW.po
new file mode 100755 (executable)
index 0000000..11af87f
--- /dev/null
@@ -0,0 +1,24 @@
+msgid "IDS_ST_OPT_DONT_SHOW_AGAIN"
+msgstr "不要再顯示"
+
+msgid "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"
+msgstr "不允許 %1$s 使用 %2$s。請前往 [設定] > [隱私與安全性],然後選擇 [隱私設定]。"
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "隱私權要求"
+
+msgid "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"
+msgstr "允許 %1$s 存取您的 %2$s 嗎?"
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "允許"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "拒絕"
+
+msgid "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"
+msgstr "%s 正在要求存取下列項目的權限:"
+
+msgid "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"
+msgstr "若要使用應用程式,請允許相關權限。"
+
diff --git a/src/notification-daemon/res/popup_custom.edc b/src/notification-daemon/res/popup_custom.edc
new file mode 100644 (file)
index 0000000..3773e82
--- /dev/null
@@ -0,0 +1,297 @@
+/*
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+collections {
+    base_scale: 1.3;
+//Height = 480 - (2 + 83 + 68)
+group { name: "popup_checkview_internal";
+   parts {
+      part { name: "label";
+         scale: 1;
+         type: SWALLOW;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            rel2 {
+               relative: 1.0 0.0;
+               to_y: "end_field";
+            }
+         }
+      }
+      part { name: "bottom_pad";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 1.0;
+            min: 0 4;
+            fixed: 0 1;
+            rel1.relative: 0.0 1.0;
+         }
+      }
+      part { name: "pad_b";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 1.0;
+            min: 0 90;
+            fixed: 0 1;
+            rel1 {
+               relative: 0.0 0.0;
+               to: "bottom_pad";
+            }
+            rel2 {
+               relative: 1.0 0.0;
+               to: "bottom_pad";
+            }
+         }
+      }
+      part { name: "left_pad";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 16 0;
+            rel1 {
+               relative: 0.0 0.0;
+            }
+            rel2 {
+               relative: 0.0 1.0;
+            }
+         }
+      }
+      part { name: "right_pad";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            min: 16 0;
+            rel1 {
+               relative: 1.0 0.0;
+            }
+            rel2 {
+               relative: 1.0 1.0;
+            }
+         }
+      }
+      part { name: "end_field";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            align: 0.0 1.0;
+            min: 0 90;
+            max: 244 -1;
+            fixed: 0 1;
+            rel1 {
+               relative: 1.0 1.0;
+               to_x: "left_pad";
+               to_y: "pad_b";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to_x: "right_pad";
+               to_y: "pad_b";
+            }
+         }
+      }
+      part { name: "elm.swallow.end";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "end_field";
+            rel2.to: "end_field";
+            rel1 {
+               relative: 0.0 0.0;
+            }
+            rel2 {
+               relative: 1.0 1.0;
+            }
+         }
+      }
+   }
+}
+group { "popup_checkview_layout_mobile";
+   parts {
+      spacer { "spacer_t";
+         scale: 1;
+         desc { "default";
+            align: 0.5 0.5;
+            fixed: 0 1;
+            rel1.relative: 0.00 0.00;
+            rel2.relative: 1.00 0.04;
+         }
+      }
+      spacer { "spacer_b";
+         scale: 1;
+         desc { "default";
+            align: 0.5 0.5;
+            fixed: 0 1;
+            rel1.relative: 0.00 0.94;
+            rel2.relative: 1.00 1.00;
+         }
+      }
+      spacer { "spacer_l";
+         scale: 1;
+         desc { "default";
+            align: 0.5 0.5;
+            fixed: 1 0;
+            rel1.to_y: "spacer_t";
+            rel2.to_y: "spacer_b";
+            rel1.relative: 0.91 1.00;
+            rel2.relative: 1.00 0.00;
+         }
+      }
+      spacer { "spacer_r";
+         scale: 1;
+         desc { "default";
+            align: 0.5 0.5;
+            fixed: 1 0;
+            rel1.to_y: "spacer_t";
+            rel2.to_y: "spacer_b";
+            rel1.relative: 0.00 1.00;
+            rel2.relative: 0.09 0.00;
+         }
+      }
+      swallow { "elm.swallow.content";
+         scale: 1;
+         desc { "default";
+            visible: 1;
+            align: 0.5 0.5;
+            rel1.to_x: "spacer_rr";
+            rel1.to_y: "spacer_t";
+            rel2.to_x: "spacer_ll";
+            rel1.relative: 1.00 1.00;
+            rel2.relative: 0.00 0.64;
+         }
+      }
+      swallow { "elm.swallow.end";
+         scale: 1;
+         desc { "default";
+            visible: 1;
+            align: 0.5 0.5;
+            fixed: 0 1;
+            rel1.to_x: "spacer_r";
+            rel1.to_y: "elm.swallow.content";
+            rel2.to_x: "spacer_l";
+            rel2.to_y: "spacer_b";
+            rel1.relative: 1.00 1.00;
+            rel2.relative: 0.00 0.00;
+         }
+      }
+      spacer { "spacer_rr";
+         scale: 1;
+         desc { "default";
+            align: 0.5 0.5;
+            fixed: 1 0;
+            rel1.to_y: "spacer_t";
+            rel2.to_y: "spacer_b";
+            rel1.relative: 0.00 1.00;
+            rel2.relative: 0.05 0.00;
+         }
+      }
+      spacer { "spacer_ll";
+         scale: 1;
+         desc { "default";
+            align: 0.5 0.5;
+            fixed: 1 0;
+            rel1.to_y: "spacer_t";
+            rel2.to_y: "spacer_b";
+            rel1.relative: 0.95 1.00;
+            rel2.relative: 1.00 0.00;
+         }
+      }
+   }
+}
+
+group { "popup_layout_mobile";
+   parts {
+      spacer { "spacer_t";
+         scale: 1;
+         desc { "default";
+            align: 0.5 0.5;
+            fixed: 0 1;
+            rel1.relative: 0.00 0.00;
+            rel2.relative: 1.00 0.04;
+         }
+      }
+      spacer { "spacer_b";
+         scale: 1;
+         desc { "default";
+            align: 0.5 0.5;
+            fixed: 0 1;
+            rel1.relative: 0.00 0.94;
+            rel2.relative: 1.00 1.00;
+         }
+      }
+      spacer { "spacer_l";
+         scale: 1;
+         desc { "default";
+            align: 0.5 0.5;
+            fixed: 1 0;
+            rel1.to_y: "spacer_t";
+            rel2.to_y: "spacer_b";
+            rel1.relative: 0.91 1.00;
+            rel2.relative: 1.00 0.00;
+         }
+      }
+      spacer { "spacer_r";
+         scale: 1;
+         desc { "default";
+            align: 0.5 0.5;
+            fixed: 1 0;
+            rel1.to_y: "spacer_t";
+            rel2.to_y: "spacer_b";
+            rel1.relative: 0.00 1.00;
+            rel2.relative: 0.09 0.00;
+         }
+      }
+      swallow { "elm.swallow.content";
+         scale: 1;
+         desc { "default";
+            visible: 1;
+            align: 0.5 0.5;
+            rel1.to_x: "spacer_rr";
+            rel1.to_y: "spacer_t";
+            rel2.to_x: "spacer_ll";
+            rel2.to_y: "spacer_b";
+            rel1.relative: 1.00 1.00;
+            rel2.relative: 0.00 0.64;
+         }
+      }
+      spacer { "spacer_rr";
+         scale: 1;
+         desc { "default";
+            align: 0.5 0.5;
+            fixed: 1 0;
+            rel1.to_y: "spacer_t";
+            rel2.to_y: "spacer_b";
+            rel1.relative: 0.00 1.00;
+            rel2.relative: 0.05 0.00;
+         }
+      }
+      spacer { "spacer_ll";
+         scale: 1;
+         desc { "default";
+            align: 0.5 0.5;
+            fixed: 1 0;
+            rel1.to_y: "spacer_t";
+            rel2.to_y: "spacer_b";
+            rel1.relative: 0.95 1.00;
+            rel2.relative: 1.00 0.00;
+         }
+      }
+   }
+}
+}
diff --git a/src/notification-daemon/res/tw_ic_popup_btn_check.png b/src/notification-daemon/res/tw_ic_popup_btn_check.png
new file mode 100644 (file)
index 0000000..f20f62e
Binary files /dev/null and b/src/notification-daemon/res/tw_ic_popup_btn_check.png differ
diff --git a/src/notification-daemon/res/tw_ic_popup_btn_delete.png b/src/notification-daemon/res/tw_ic_popup_btn_delete.png
new file mode 100644 (file)
index 0000000..5f346cb
Binary files /dev/null and b/src/notification-daemon/res/tw_ic_popup_btn_delete.png differ
diff --git a/src/notification-daemon/ui/Answerable.h b/src/notification-daemon/ui/Answerable.h
new file mode 100644 (file)
index 0000000..3a18ed2
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/ui/Answerable.h
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Implementation Answerable button pressed events classes
+ */
+#pragma once
+
+#include "PopupCheck.h"
+#include "Popup.h"
+
+#include <types/NotificationResponse.h>
+
+namespace AskUser {
+namespace Notification {
+
+class IAnswerable {
+public:
+    enum class Button {
+        ALLOW,
+        DENY
+    };
+    typedef std::function<void(int, NResponseType)> AnswerHandler;
+
+    IAnswerable(AnswerHandler handler) : m_handler(handler) {}
+    virtual void process(enum Button) const = 0;
+    virtual ~IAnswerable() {}
+protected:
+    AnswerHandler m_handler;
+};
+
+class AnswerablePopupCheck : public IAnswerable {
+public:
+    AnswerablePopupCheck(PopupCheck *popup, AnswerHandler handler)
+        : IAnswerable(handler), m_popup(popup) {}
+    virtual void process(enum Button button) const {
+        NResponseType answer;
+        switch (button) {
+        case IAnswerable::Button::ALLOW:
+            if (m_popup->getCheckboxState())
+                answer = NResponseType::AllowAlways;
+            else
+                answer = NResponseType::Allow;
+            break;
+        case IAnswerable::Button::DENY:
+            if (m_popup->getCheckboxState())
+                answer = NResponseType::DenyAlways;
+            else
+                answer = NResponseType::Deny;
+            break;
+        default:
+            answer = NResponseType::Error;
+        }
+        m_handler(m_popup->getId(), answer);
+    }
+private:
+    PopupCheck *m_popup;
+};
+
+} // namespace AskUser
+} // namespace Notification
diff --git a/src/notification-daemon/ui/Po.cpp b/src/notification-daemon/ui/Po.cpp
new file mode 100644 (file)
index 0000000..b984fd5
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/ui/Po.cpp
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Declaration of Po message generation class
+ */
+
+#include <cstdio>
+#include <cstdlib>
+#include <libintl.h>
+#include <map>
+#include <memory>
+#include <string>
+#include <unistd.h>
+#include <vconf.h>
+#include <Elementary.h>
+
+#include "Po.h"
+
+#include <exception/ErrnoException.h>
+#include <policy/PkgInfo.h>
+#include <policy/PrivilegeInfo.h>
+
+namespace AskUser {
+
+namespace {
+enum class MsgType {
+    MSG_POPUP_TITLE,
+
+    MSG_POPUP_TEXT,
+    MSG_POPUP_LAUNCH_TEXT,
+
+    MSG_POPUP_CHECKBOX,
+    MSG_POPUP_ALLOW_BTN,
+    MSG_POPUP_DENY_BTN,
+
+    MSG_TOAST_DENY_TEXT,
+    MSG_TOAST_FAIL_TEXT,
+};
+
+std::map<MsgType, const char*> MSG_PO = {
+        {MsgType::MSG_POPUP_TITLE, "IDS_IDLE_HEADER_PRIVACY_REQUEST"},
+        {MsgType::MSG_POPUP_TEXT, "IDS_IDLE_POP_ALLOW_P1SS_TO_ACCESS_YOUR_P2SS_Q"},
+        {MsgType::MSG_POPUP_LAUNCH_TEXT, "IDS_IDLE_POP_PS_IS_REQUESTING_PERMISSION_TO_ACCESS_THE_FOLLOWING_ITEMS_C"},
+        {MsgType::MSG_POPUP_CHECKBOX, "IDS_ST_OPT_DONT_SHOW_AGAIN"},
+        {MsgType::MSG_POPUP_ALLOW_BTN,"IDS_IDLE_BUTTON_ALLOW_ABB7"},
+        {MsgType::MSG_POPUP_DENY_BTN, "IDS_IDLE_BUTTON_DENY"},
+        {MsgType::MSG_TOAST_DENY_TEXT, "IDS_ST_TPOP_P1SS_NOT_ALLOWED_TO_USE_P2SS_SELECT_PRIVACY_SETTINGS_IN_SETTINGS_PRIVACY_AND_SECURITY"},
+        {MsgType::MSG_TOAST_FAIL_TEXT, "IDS_IDLE_TPOP_TO_USE_APP_ALLOW_ALL_RELEVANT_PERMISSIONS"}
+};
+
+void setLocale() {
+    char *lang = vconf_get_str(VCONFKEY_LANGSET);
+    if (lang)
+    {
+        elm_language_set(lang);
+        free(lang);
+    } else {
+        ALOGE("Couldn't fetch language from vconf failed.");
+    }
+}
+
+template <typename ...Args>
+std::string makeFromFormat(const char *format, Args... args) {
+    char *buf;
+    int ret = asprintf(&buf, format, args...);
+    if (ret == -1) {
+        throw ErrnoException("asprintf failed");
+    }
+    std::unique_ptr<char, decltype(std::free) *> bufPtr(buf, std::free);
+    return std::string(buf);
+}
+
+const char *getFormat(enum MsgType type) {
+    setLocale();
+    return dgettext(PROJECT_NAME, MSG_PO[type]);
+}
+
+std::string getPkgLabel(const std::string &pkgName) {
+    PkgInfo pkgInfo(pkgName, geteuid());
+    return pkgInfo.pkgLabel();
+}
+
+} // namespace anonymous
+
+namespace Notification {
+namespace Po {
+std::string createPopupCheckMsg(const std::string &, const std::string &pkgName, const std::string &priv) {
+    return makeFromFormat(getFormat(MsgType::MSG_POPUP_TEXT), getPkgLabel(pkgName).c_str(),
+                          PrivilegeInfo::getPrivacyDisplayName(priv).c_str());
+}
+
+std::string getPopupTitleMsg() {
+    return makeFromFormat("%s", getFormat(MsgType::MSG_POPUP_TITLE));
+}
+std::string getAllowButtonMsg() {
+    return makeFromFormat("%s", getFormat(MsgType::MSG_POPUP_ALLOW_BTN));
+}
+std::string getDenyButtonMsg() {
+    return makeFromFormat("%s", getFormat(MsgType::MSG_POPUP_DENY_BTN));
+}
+std::string getCheckBoxMsg() {
+    return makeFromFormat("%s", getFormat(MsgType::MSG_POPUP_CHECKBOX));
+}
+
+} //namespace Po
+} //namepace Notification
+} //namespace AskUser
diff --git a/src/notification-daemon/ui/Po.h b/src/notification-daemon/ui/Po.h
new file mode 100644 (file)
index 0000000..0f7fab4
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/ui/Po.h
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Declaration of Po message generation class
+ */
+
+#include <string>
+#include <vector>
+
+namespace AskUser {
+namespace Notification {
+namespace Po {
+
+std::string createPopupCheckMsg(const std::string &appName, const std::string &pkgName, const std::string &priv);
+std::string createPrivilegeDescr(const std::string &priv);
+
+std::string getPopupTitleMsg();
+std::string getAllowButtonMsg();
+std::string getDenyButtonMsg();
+std::string getCheckBoxMsg();
+
+} // namespace Po
+} // namespace Notification
+} // namespace AskUser
diff --git a/src/notification-daemon/ui/Popup.h b/src/notification-daemon/ui/Popup.h
new file mode 100644 (file)
index 0000000..72baada
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/ui/Popup.h
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Declaration of Popup class
+ */
+
+#pragma once
+
+#include <string>
+
+#include <log/alog.h>
+#include <exception/Exception.h>
+#include <Elementary.h>
+
+#include "UIElement.h"
+
+namespace AskUser {
+namespace Notification {
+
+class Popup : public UIElement {
+public:
+    Popup(Evas_Object *parent, const std::string &msg)
+    : UIElement(parent), m_msg(msg)
+    {
+        m_popup = elm_popup_add(m_parent);
+        if (m_popup == nullptr) {
+            ALOGE("Failed to add popup");
+            throw Exception("Enlightenment failed");
+        }
+    }
+
+    Popup(const Popup &other) = delete;
+    Popup& operator=(const Popup &other) = delete;
+
+    Evas_Object *getAllowButton() const { return m_allowButton; }
+    Evas_Object *getDenyButton() const { return m_denyButton; }
+
+    virtual ~Popup() {
+        evas_object_del(m_popup);
+    }
+protected:
+    Evas_Object *m_popup = nullptr;
+    Evas_Object *m_allowButton = nullptr;
+    Evas_Object *m_denyButton = nullptr;
+
+    std::string m_msg;
+};
+
+} /* namespace Notification */
+} /* namespace Askuser */
+
diff --git a/src/notification-daemon/ui/PopupCheck.h b/src/notification-daemon/ui/PopupCheck.h
new file mode 100644 (file)
index 0000000..936fd5e
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/ui/PopupCheck.h
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Declaration of PopupCheck class
+ */
+
+#pragma once
+
+#include <string>
+
+#include <Elementary.h>
+
+#include "Popup.h"
+
+namespace AskUser {
+namespace Notification {
+
+class PopupCheck : public Popup {
+public:
+    PopupCheck(Evas_Object *parent, const std::string &msg)
+        : Popup(parent, msg)
+    {}
+
+    Evas_Object *getCheckBox() const { return m_checkBox; }
+    bool getCheckboxState() const {
+        if (m_checkBox == nullptr)
+            return false;
+        return elm_check_state_get(m_checkBox);
+    }
+
+    virtual ~PopupCheck() {}
+
+protected:
+    Evas_Object *m_checkBox = nullptr;
+};
+
+} /* namespace Notification */
+} /* namespace Askuser */
+
diff --git a/src/notification-daemon/ui/PopupCheckMobile.h b/src/notification-daemon/ui/PopupCheckMobile.h
new file mode 100644 (file)
index 0000000..5ba7380
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/ui/PopupCheckMobile.h
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Declaration of PopupCheckMobile class
+ */
+
+#pragma once
+
+#include <Elementary.h>
+
+#include <exception/Exception.h>
+#include "Po.h"
+#include "PopupCheck.h"
+
+namespace AskUser {
+namespace Notification {
+
+class PopupCheckMobile : public PopupCheck {
+public:
+    PopupCheckMobile(Evas_Object *parent, int popupId, const std::string &msg)
+        : PopupCheck(parent, msg)
+    {
+        setId(popupId);
+    }
+    virtual void create() {
+        // popup
+        elm_popup_align_set(m_popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+        elm_object_part_text_set(m_popup, "title,text", Po::getPopupTitleMsg().c_str());
+        evas_object_size_hint_weight_set(m_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+        // layout
+        m_layout = elm_layout_add(m_popup);
+        if (m_layout == nullptr) {
+            ALOGE("EFL : Failed to add layout");
+            throw Exception("Enlightenment failed");
+        }
+        elm_layout_file_set(m_layout, RES_DIR"/popup_custom.edj", "popup_checkview_layout_mobile");
+        evas_object_size_hint_weight_set(m_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+        // content
+        m_content = elm_label_add(m_layout);
+        if (!m_content) {
+            ALOGE("EFL : Failed to add content");
+            throw Exception("Enlightenment failed");
+        }
+        elm_object_text_set(m_content, m_msg.c_str());
+        elm_object_style_set(m_content, "popup/default");
+        elm_label_line_wrap_set(m_content, ELM_WRAP_MIXED);
+        evas_object_size_hint_weight_set(m_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+        evas_object_size_hint_align_set(m_content, EVAS_HINT_FILL, EVAS_HINT_FILL);
+        elm_object_part_content_set(m_layout, "elm.swallow.content", m_content);
+
+        // checkbox
+        m_checkBox = elm_check_add(m_layout);
+        if (!m_checkBox) {
+            ALOGE("EFL : Failed to add checkbox");
+            throw Exception("Enlightenment failed");
+        }
+        elm_object_part_content_set(m_layout, "elm.swallow.end", m_checkBox);
+        elm_object_text_set(m_checkBox, Po::getCheckBoxMsg().c_str());
+        elm_check_state_set(m_checkBox, EINA_FALSE);
+        evas_object_show(m_checkBox);
+
+        // buttons
+        m_denyButton = elm_button_add(m_popup);
+        if (!m_denyButton) {
+            ALOGE("EFL : Failed to add deny button");
+            throw Exception("Enlightenment failed");
+        }
+        elm_object_part_content_set(m_popup, "button1", m_denyButton);
+        elm_object_text_set(m_denyButton, Po::getDenyButtonMsg().c_str());
+
+        m_allowButton = elm_button_add(m_popup);
+        if (!m_allowButton) {
+            ALOGE("EFL : Failed to add allow button");
+            throw Exception("Enlightenment failed");
+        }
+        elm_object_part_content_set(m_popup, "button2", m_allowButton);
+        elm_object_text_set(m_allowButton, Po::getAllowButtonMsg().c_str());
+        elm_object_content_set(m_popup, m_layout);
+        evas_object_show(m_popup);
+    }
+    virtual ~PopupCheckMobile() {
+
+    }
+private:
+    Evas_Object *m_content = nullptr;
+    Evas_Object *m_layout = nullptr;
+    Evas_Object *m_layoutInner = nullptr;
+};
+
+} /* namespace Notification */
+} /* namespace Askuser */
+
diff --git a/src/notification-daemon/ui/PopupCheckWearable.h b/src/notification-daemon/ui/PopupCheckWearable.h
new file mode 100644 (file)
index 0000000..74fe9ef
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/ui/PopupCheckWearable.h
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Declaration of PopupCheckWearable class
+ */
+
+#pragma once
+
+#include <Elementary.h>
+
+#include <exception/Exception.h>
+#include "Po.h"
+#include "PopupCheck.h"
+
+namespace AskUser {
+namespace Notification {
+
+class PopupCheckWearable : public PopupCheck {
+public:
+    PopupCheckWearable(Evas_Object *parent, int popupId, const std::string msg)
+        : PopupCheck(parent, msg)
+    {
+        setId(popupId);
+    }
+    ~PopupCheckWearable() {}
+
+    virtual void create() {
+        elm_object_style_set(m_popup, "circle");
+
+        m_layout = elm_layout_add(m_popup);
+        if (m_layout == nullptr) {
+            ALOGE("EFL : Failed to add layout");
+            throw Exception("Enlightenment failed");
+        }
+        elm_layout_theme_set(m_layout, "layout", "popup", "content/circle/buttons2");
+        elm_object_part_text_set(m_layout, "elm.text.title", Po::getPopupTitleMsg().c_str());
+        elm_object_content_set(m_popup, m_layout);
+
+        m_layoutInner = elm_layout_add(m_layout);
+        if (m_layoutInner == nullptr) {
+            ALOGE("EFL : Failed to add layout");
+            throw Exception("Enlightenment failed");
+        }
+        elm_layout_file_set(m_layoutInner, RES_DIR"/popup_custom.edj", "popup_checkview_internal");
+        evas_object_size_hint_weight_set(m_layoutInner, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+        elm_object_part_content_set(m_layout, "elm.swallow.content", m_layoutInner);
+
+        m_content = elm_label_add(m_layoutInner);
+        if (m_content == nullptr) {
+            ALOGE("EFL : Failed to add content");
+            throw Exception("Enlightenment failed");
+        }
+        elm_object_text_set(m_content, m_msg.c_str());
+        elm_object_style_set(m_content, "popup/default");
+        elm_label_line_wrap_set(m_content, ELM_WRAP_MIXED);
+        evas_object_size_hint_weight_set(m_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+        evas_object_size_hint_align_set(m_content, EVAS_HINT_FILL, EVAS_HINT_FILL);
+        elm_object_part_content_set(m_layoutInner, "label", m_content);
+
+        m_checkBox = elm_check_add(m_popup);
+        if (m_checkBox == nullptr) {
+            ALOGE("EFL : Failed to add checkbox");
+            throw Exception("Enlightenment failed");
+        }
+        elm_object_style_set(m_checkBox, "popup");
+        elm_object_text_set(m_checkBox, Po::getCheckBoxMsg().c_str());
+        elm_check_state_set(m_checkBox, EINA_FALSE);
+        evas_object_size_hint_align_set(m_checkBox, EVAS_HINT_FILL, 0.0);
+        elm_object_part_content_set(m_layoutInner, "elm.swallow.end", m_checkBox);
+        evas_object_show(m_checkBox);
+
+        m_allowButton = elm_button_add(m_popup);
+        if (m_allowButton == nullptr) {
+            ALOGE("EFL : Failed to add allow button");
+            throw Exception("Enlightenment failed");
+        }
+        elm_object_style_set(m_allowButton, "popup/circle/right");
+        elm_object_part_content_set(m_popup, "button2", m_allowButton);
+
+        Evas_Object *icon;
+        icon = elm_image_add(m_allowButton);
+        if (icon == nullptr) {
+            ALOGE("EFL : Failed to add allow button icon");
+            throw Exception("Enlightenment failed");
+        }
+        elm_image_file_set(icon, RES_DIR"/tw_ic_popup_btn_check.png", NULL);
+        evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+        elm_object_part_content_set(m_allowButton, "elm.swallow.content", icon);
+        evas_object_show(icon);
+
+        m_denyButton = elm_button_add(m_popup);
+        if (m_denyButton == nullptr) {
+            ALOGE("EFL : Failed to add deny button");
+            throw Exception("Enlightenment failed");
+        }
+        elm_object_style_set(m_denyButton, "popup/circle/left");
+        elm_object_part_content_set(m_popup, "button1", m_denyButton);
+
+        icon = elm_image_add(m_denyButton);
+        if (icon == nullptr) {
+            ALOGE("EFL : Failed to add deny button icon");
+            throw Exception("Enlightenment failed");
+        }
+        elm_image_file_set(icon, RES_DIR"/tw_ic_popup_btn_delete.png", NULL);
+        elm_object_part_content_set(m_denyButton, "elm.swallow.content", icon);
+        evas_object_show(icon);
+
+        evas_object_show(m_popup);
+    }
+private:
+    Evas_Object *m_content = nullptr;
+    Evas_Object *m_layout = nullptr;
+    Evas_Object *m_layoutInner = nullptr;
+};
+
+} /* namespace Notification */
+} /* namespace Askuser */
+
diff --git a/src/notification-daemon/ui/Popupper.cpp b/src/notification-daemon/ui/Popupper.cpp
new file mode 100644 (file)
index 0000000..ee31ec6
--- /dev/null
@@ -0,0 +1,209 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/Popupper.cpp
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Definition of Popupper class
+ */
+
+#include "Popupper.h"
+
+#include "Answerable.h"
+#include "Po.h"
+#include "PopupCheckMobile.h"
+#include "PopupCheckWearable.h"
+
+#include <exception/ErrnoException.h>
+#include <exception/Exception.h>
+#include <log/alog.h>
+#include <libintl.h>
+#include <vconf.h>
+#include <efl_util.h>
+#include <system_info.h>
+
+#include <unistd.h>
+
+namespace AskUser {
+
+namespace Notification {
+
+namespace {
+    std::string getProfileName() {
+        char *profileName = nullptr;
+        system_info_get_platform_string("http://tizen.org/feature/profile", &profileName);
+        if (!profileName) {
+            ALOGE("profileName is NULL");
+            throw Exception("get profileName failed");
+        }
+        std::unique_ptr<char, decltype(free)*> profileNamePtr(profileName, free);
+        return std::string(profileName);
+    }
+}
+
+
+void Popupper::registerPopupResponseHandler(PopupHandler handler) {
+    m_popupResponseHandler = handler;
+}
+
+void Popupper::unfocusedCb(void *data, Evas_Object *, void *)
+{
+    ALOGD("Unfocused");
+    Popupper *popupper = static_cast<Popupper*>(data);
+
+    if (popupper->m_shouldRaise) {
+        evas_object_show(popupper->m_win);
+    }
+}
+
+void Popupper::popupClose(int popupId)
+{
+    ALOGD("Window close");
+    m_shouldRaise = false;
+
+    if (!m_elementPtr || popupId == -1 || popupId != m_elementPtr->getId())
+        ALOGD("Closing non-existing popup");
+
+    m_elementPtr.reset(nullptr);
+    m_answerablePtr.reset(nullptr);
+    evas_object_hide(m_win);
+}
+
+
+void Popupper::allowPressedCb(void *data, Evas_Object *, void *)
+{
+    IAnswerable *answerable = static_cast<IAnswerable *>(data);
+    answerable->process(IAnswerable::Button::ALLOW);
+}
+
+void Popupper::denyPressedCb(void *data, Evas_Object *, void *)
+{
+    IAnswerable *answerable = static_cast<IAnswerable *>(data);
+    answerable->process(IAnswerable::Button::DENY);
+}
+
+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) {
+        ALOGD("Respond as deny once.");
+        runner->m_popupResponseHandler(runner->m_elementPtr->getId(), NResponseType::None);
+    }
+    return EINA_TRUE;
+}
+
+Popupper::~Popupper()
+{}
+
+void Popupper::initialize()
+{
+    elm_init(0, NULL);
+    m_win = elm_win_add(NULL, Po::getPopupTitleMsg().c_str(), ELM_WIN_NOTIFICATION);
+    if (!m_win) {
+        ALOGE("EFL : Failed to add window");
+        throw Exception("Elementary failed");
+    }
+    efl_util_set_notification_window_level(m_win, EFL_UTIL_NOTIFICATION_LEVEL_TOP);
+
+    if (elm_win_wm_rotation_supported_get(m_win)) {
+        int rots[4] = { 0, 90, 180, 270 };
+        elm_win_wm_rotation_available_rotations_set(m_win, (const int *)(&rots), 4);
+    }
+
+    elm_win_autodel_set(m_win, EINA_TRUE);
+    elm_win_override_set(m_win, EINA_TRUE);
+    elm_win_alpha_set(m_win, EINA_TRUE);
+
+    // callbacks
+    elm_win_indicator_opacity_set(m_win, ELM_WIN_INDICATOR_OPAQUE);
+    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, "XF86Back", 0, 0, 0, ELM_WIN_KEYGRAB_TOPMOST);
+    ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, &Popupper::hwKeyClickedCb, this);
+}
+
+void Popupper::setLocale()
+{
+    char *lang = vconf_get_str(VCONFKEY_LANGSET);
+    if (lang)
+    {
+        elm_language_set(lang);
+        free(lang);
+    } else {
+        ALOGE("Couldn't fetch language from vconf failed.");
+    }
+}
+
+void Popupper::show() {
+    evas_object_show(m_win);
+}
+
+void Popupper::popupCheck(int popupId, const std::string &appId, const std::string &pkgId, const std::string &priv) {
+    std::string profileName = getProfileName();
+    PopupCheck *popup;
+    try {
+        if (profileName[0] != 'w' && profileName[0] != 'W') {
+            // Not wearable
+            popup = new PopupCheckMobile(m_win, popupId, Po::createPopupCheckMsg(appId, pkgId, priv));
+        } else {
+            // Wearable
+            popup = new PopupCheckWearable(m_win, popupId, Po::createPopupCheckMsg(appId, pkgId, priv));
+        }
+        popup->create();
+    } catch (const std::exception &e) {
+        ALOGE("Failed to create popup check : " << e.what());
+        m_popupResponseHandler(popupId, NResponseType::Error);
+        return;
+    }
+
+    m_answerablePtr.reset(new AnswerablePopupCheck(popup, m_popupResponseHandler));
+    evas_object_smart_callback_add(popup->getAllowButton(), "clicked", &Popupper::allowPressedCb,
+                                   m_answerablePtr.get());
+    evas_object_smart_callback_add(popup->getDenyButton(), "clicked", &Popupper::denyPressedCb,
+                                   m_answerablePtr.get());
+
+    m_elementPtr.reset(popup);
+    show();
+
+}
+
+void Popupper::start()
+{
+    elm_run();
+}
+
+void Popupper::stop()
+{
+    m_shouldRaise = false;
+    elm_win_keygrab_unset(m_win, "XF86Home", 0, 0);
+    elm_win_keygrab_unset(m_win, "XF86Back", 0, 0);
+    m_elementPtr.reset(nullptr);
+    m_answerablePtr.reset(nullptr);
+    evas_object_del(m_win);
+    m_win = nullptr;
+    elm_exit();
+}
+
+void Popupper::shutdown() {
+    elm_shutdown();
+}
+
+} /* namespace Notification */
+
+} /* namespace AskUser */
diff --git a/src/notification-daemon/ui/Popupper.h b/src/notification-daemon/ui/Popupper.h
new file mode 100644 (file)
index 0000000..478f682
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/Popupper.h
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Declaration of Popupper class
+ */
+
+#pragma once
+
+#include <Elementary.h>
+#include <functional>
+#include <map>
+#include <memory>
+#include <string>
+#include <vector>
+
+#include "Answerable.h"
+#include "Popup.h"
+#include <types/NotificationResponse.h>
+#include <log/alog.h>
+
+namespace AskUser {
+
+namespace Notification {
+
+class Popupper {
+public:
+    typedef std::function<void(int, NResponseType)> PopupHandler;
+
+    Popupper() = default;
+    void initialize();
+    void setLocale();
+    void registerPopupResponseHandler(PopupHandler handler);
+    void start();
+
+    void popupCheck(int popupId, const std::string &appId, const std::string &pkgId, const std::string &priv);
+
+    void popupClose(int popupId);
+    void stop();
+    void shutdown();
+
+    ~Popupper();
+private:
+    static void unfocusedCb(void *data, Evas_Object *, void *);
+    static void allowPressedCb(void *data, Evas_Object *, void *);
+    static void denyPressedCb(void *data, Evas_Object *, void *);
+    static Eina_Bool hwKeyClickedCb(void *data, int type, void *event);
+
+    void show();
+
+    PopupHandler m_popupResponseHandler;
+
+    Evas_Object *m_win = nullptr;
+    std::unique_ptr<UIElement> m_elementPtr;
+    std::unique_ptr<IAnswerable> m_answerablePtr;
+
+    bool m_shouldRaise = false;
+};
+
+} /* namespace Notification */
+
+} /* namespace AskUser */
diff --git a/src/notification-daemon/ui/UIElement.h b/src/notification-daemon/ui/UIElement.h
new file mode 100644 (file)
index 0000000..998b8e6
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/agent/notification-daemon/UIElement.h
+ * @author      Zofia Abramowska <z.abramowska@samsung.com>
+ * @brief       Declaration of UIElement class
+ */
+
+#pragma once
+
+#include <Elementary.h>
+
+namespace AskUser {
+namespace Notification {
+
+class UIElement {
+public:
+    explicit UIElement(Evas_Object *parent) : m_parent(parent), m_elementId(-1) {}
+    void setId(int id) { m_elementId = id;}
+    int getId() { return m_elementId; }
+    virtual void create() = 0;
+    virtual ~UIElement() {}
+protected:
+    Evas_Object *m_parent;
+    int m_elementId;
+};
+
+} /* namespace Notification */
+} /* namespace Askuser */
+