BuildRequires: pkgconfig(security-privilege-manager)
BuildRequires: pkgconfig(security-manager)
BuildRequires: pkgconfig(glib-2.0)
-BuildRequires: pkgconfig(vconf)
BuildRequires: pkgconfig(capi-appfw-app-manager)
BuildRequires: pkgconfig(capi-appfw-component-manager)
BuildRequires: pkgconfig(capi-base-common)
-BuildRequires: pkgconfig(capi-ui-efl-util)
-BuildRequires: pkgconfig(capi-system-info)
BuildRequires: pkgconfig(libsmack)
BuildRequires: pkgconfig(aul)
-BuildRequires: edje-bin
-BuildRequires: pkgconfig(efl-extension)
%if !%{defined build_type}
%define build_type RELEASE
their statuses by displaying an appropriate pop-up dialog box. A user
can make a decision whether to give a privilege to an application or not.
-
%prep
%setup -q
%cmake . \
-DCMAKE_BUILD_TYPE=%{?build_type} \
-DBUILD_WITH_SYSTEMD_DAEMON=%{?with_systemd_daemon} \
- -DCMAKE_VERBOSE_MAKEFILE=ON \
- -DRES_DIR="/usr/share/askuser-notification/res"
+ -DCMAKE_VERBOSE_MAKEFILE=ON
make %{?jobs:-j%jobs}
%install
rm -rf %{buildroot}
+mkdir -p %{buildroot}%{_datadir}/
%make_install
-%find_lang %{name}
%if %{with_systemd_daemon}
mkdir -p %{buildroot}/%{_unitdir_user}/sockets.target.wants
%postun -n capi-privacy-privilege-manager -p /sbin/ldconfig
-%files -f %{name}.lang
+%files -n %{name}
%manifest %{_datadir}/default.manifest
%license LICENSE
%attr(755,root,root) /usr/bin/askuser-notification
%{_unitdir_user}/askuser-notification-stream.socket
%{_unitdir_user}/sockets.target.wants
%endif
-%{_datadir}/askuser-notification/res
%{_libdir}/cynara/plugin/service/*.so
%files -n libaskuser-notification-common
%manifest %{_datadir}/default.manifest
%license LICENSE
%attr(644,-,-) %{_libdir}/libcapi-privacy-privilege-manager.so.*
-
+++ /dev/null
-/*
- * Copyright (c) 2014-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 GuiTranslator.cpp
- * @author Zofia Abramowska <z.abramowska@samsung.com>
- * @author Oskar Ĺwitalski <o.switalski@samsung.com>
- * @brief Implementation of GuiTranslator methods
- */
-
-#include "GuiTranslator.h"
-
-#include <sstream>
-#include <vector>
-
-namespace AskUser {
-namespace Translator {
-namespace Gui {
-
-std::string responseToString(NResponseType response)
-{
- switch (response) {
- case NResponseType::Allow:
- return "Allow once";
- case NResponseType::Deny:
- return "Deny once";
- case NResponseType::AllowAlways:
- return "Allow always";
- case NResponseType::DenyAlways:
- return "Deny always";
- case NResponseType::Error:
- return "Error";
- default:
- return "None";
- }
-}
-
-NotificationRequest dataToNotificationRequest(const std::string &data) {
- std::stringstream stream(data);
- std::size_t strSize;
- char separator;
-
- NotificationRequestId id;
- std::string members[3];
-
- stream >> id;
- stream.read(&separator, 1);
-
- for (auto &member : members) {
- stream >> strSize;
- std::vector<char> buffer(strSize, '\0');
- char separator;
- //Consume separator
- stream.read(&separator, 1);
- stream.read(buffer.data(), strSize);
- //read doesn't append null
- member.assign(buffer.begin(), buffer.end());
- }
-
- return NotificationRequest({id, std::move(members[0]), std::move(members[1]), "", std::move(members[2])});
-}
-
-std::string notificationRequestToData(NotificationRequestId id, const std::string &client,
- const std::string &pkgLabel, const std::string &privilege)
-{
- const char separator = ' ';
- return std::to_string(id) + separator +
- std::to_string(client.length()) + separator + client + separator +
- std::to_string(pkgLabel.length()) + separator + pkgLabel + separator +
- std::to_string(privilege.length()) + separator + privilege + separator + separator;
-}
-
-} //namespace Gui
-} //namespace Translator
-} //namespace AskUser
+++ /dev/null
-/*
- * Copyright (c) 2014-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 GuiTranslator.h
- * @author Zofia Abramowska <z.abramowska@samsung.com>
- * @author Oskar Ĺwitalski <o.switalski@samsung.com>
- * @brief Definition of GuiTranslator methods
- */
-
-#pragma once
-
-#include <types/NotificationRequest.h>
-#include <types/NotificationResponse.h>
-#include <types/NotificationRequestId.h>
-
-#include <string>
-
-namespace AskUser {
-namespace Translator {
-namespace Gui {
-
-std::string responseToString(NResponseType response);
-NotificationRequest dataToNotificationRequest(const std::string &data);
-std::string notificationRequestToData(NotificationRequestId id, const std::string &client,
- const std::string &pkgLabel, const std::string &privilege);
-} // namespace Gui
-} // namespace Translator
-} // namespace AskUser
+++ /dev/null
-/*
- * Copyright (c) 2014-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 Translator.cpp
- * @author Zofia Abramowska <z.abramowska@samsung.com>
- * @author Oskar Ĺwitalski <o.switalski@samsung.com>
- * @brief Implementation of Translator methods
- */
-
-#include "Translator.h"
-
-#include <types/AgentErrorMsg.h>
-
-#include <limits>
-#include <stdexcept>
-#include <sstream>
-#include <vector>
-
-namespace AskUser {
-namespace Translator {
-namespace Agent {
-
-RequestData dataToRequest(const Cynara::PluginData &data) {
- std::stringstream stream(data);
- std::size_t strSize;
- std::string members[3];
-
- for (auto &member : members) {
- stream >> strSize;
- std::vector<char> buffer(strSize, '\0');
- char separator;
- //Consume separator
- stream.read(&separator, 1);
- stream.read(buffer.data(), strSize);
- //read doesn't append null
- member.assign(buffer.begin(), buffer.end());
- }
- return RequestData{members[0], members[1], members[2]};
-}
-
-Cynara::PluginData answerToData(Cynara::PolicyType answer, const std::string &errMsg) {
- if (errMsg.empty())
- return std::to_string(answer);
- else
- return errMsg;
-}
-
-} //namespace Agent
-
-namespace Plugin {
-
-Cynara::PolicyType dataToAnswer(const Cynara::PluginData &data) {
- // data is an error string
- if (data == AgentErrorMsg::Error || data == AgentErrorMsg::Timeout)
- return AskUser::SupportedTypes::Client::DENY_ONCE;
- // data is policy type
- long long policyType;
- try {
- policyType = std::stoll(data);
- } catch (const std::exception &e) {
- throw TranslateErrorException("Could not convert response to PolicyType : " +
- data);
- }
- auto maxPolicyType = std::numeric_limits<Cynara::PolicyType>::max();
- if (policyType > maxPolicyType) {
- throw TranslateErrorException("Value of response exceeds max value of PolicyType : "
- + std::to_string(policyType));
- }
- return static_cast<Cynara::PolicyType>(policyType);
-}
-
-Cynara::PluginData requestToData(const std::string &client,
- const std::string &user,
- const std::string &privilege)
-{
- const char separator = ' ';
- return std::to_string(client.length()) + separator + client + separator
- + std::to_string(user.length()) + separator + user + separator
- + std::to_string(privilege.length()) + separator + privilege + separator;
-}
-
-} //namespace Plugin
-} //namespace Translator
-} //namespace AskUser
+++ /dev/null
-/*
- * Copyright (c) 2014-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 Translator.h
- * @author Zofia Abramowska <z.abramowska@samsung.com>
- * @author Oskar Ĺwitalski <o.switalski@samsung.com>
- * @brief Definition of Translator methods and TranslateErrorException class
- */
-
-#pragma once
-
-#include <types/RequestData.h>
-#include <types/SupportedTypes.h>
-#include <cynara-plugin.h>
-
-#include <exception>
-#include <string>
-
-namespace AskUser {
-namespace Translator {
-
-class TranslateErrorException : std::exception {
-public:
- TranslateErrorException(const std::string &msg) : m_what(msg) {};
- virtual const char* what() const noexcept {
- return m_what.c_str();
- }
-private:
- std::string m_what;
-};
-
-namespace Agent {
- RequestData dataToRequest(const Cynara::PluginData &data);
- Cynara::PluginData answerToData(Cynara::PolicyType answer, const std::string &errMsg);
-} // namespace Agent
-
-namespace Plugin {
- Cynara::PolicyType dataToAnswer(const Cynara::PluginData &data);
- Cynara::PluginData requestToData(const std::string &client,
- const std::string &user,
- const std::string &privilege);
-} // namespace Plugin
-
-} // namespace Translator
-} // namespace AskUser
-
cynara-client
elementary
libsystemd
- vconf
glib-2.0
capi-appfw-app-manager
capi-appfw-component-manager
- capi-ui-efl-util
- capi-system-info
- efl-extension
aul
)
${NOTIF_PATH}/PolicyUpdater.cpp
${NOTIF_PATH}/PrivaciesSequence.cpp
${NOTIF_PATH}/ServerCallbacks.cpp
- ${NOTIF_PATH}/ui/Po.cpp
- ${NOTIF_PATH}/ui/Popupper.cpp
${NOTIF_PATH}/ui/UIAppInvoker.cpp
)
-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)
#include <signal.h>
#include <string>
#include <sys/signalfd.h>
-#include <vconf.h>
#include <Elementary.h>
+#include <log/alog.h>
#include <exception/Exception.h>
#include <exception/ErrnoException.h>
#include <policy/Policy.h>
#include <policy/PrivilegePolicy.h>
-#include <ui/Po.h>
#include <ui/UIAppInvoker.h>
#include "PolicyUpdater.h"
ConnectionInfo &conn = m_connToInfo[fd];
- FdEvent fdEvent{eventId, popup_id, std::shared_ptr<IUIEvent>(new ExtUIEvent(popup_id, conn.pid, conn.pkgId, privacies))};
+ FdEvent fdEvent{eventId, popup_id, std::shared_ptr<ExtUIEvent>(new ExtUIEvent(popup_id, conn.pid, conn.pkgId, privacies))};
+
fdEvent.event->process();
m_pendingEvents.emplace_back(std::move(fdEvent));
}
}
void Logic::stop() {
- m_popupper.stop();
+ elm_exit();
}
Eina_Bool Logic::signalHandler(void *data, Ecore_Fd_Handler *) {
void Logic::init() {
init_agent_log();
- m_popupper.initialize();
- Po::setLocale();
+ elm_init(0, NULL);
registerSignalFd();
}
void Logic::run() {
- m_popupper.start();
- m_popupper.shutdown();
+ elm_run();
+ elm_shutdown();
}
} // namespace Notification
#include <Elementary.h>
#include "event/Event.h"
+#include <types/PolicyTypes.h>
namespace AskUser {
bool processError(EventId id, int error);
std::unique_ptr<AskUser::Protocol::ServerChannel> m_serverChannel;
- Popupper m_popupper;
struct FdEvent {
EventId id;
Protocol::PopupId popup_id;
- std::shared_ptr<IUIEvent> event;
+ std::shared_ptr<ExtUIEvent> event;
FdEvent():
id{-1, -1},
popup_id (-1)
{}
- FdEvent(EventId an_id, Protocol::PopupId an_popup_id, std::shared_ptr<IUIEvent> an_event):
+ FdEvent(EventId an_id, Protocol::PopupId an_popup_id, std::shared_ptr<ExtUIEvent> an_event):
id(an_id.fd, an_id.id),
popup_id(an_popup_id),
event(an_event)
#include <server-channel.h>
#include "Logic.h"
-#include "ui/Popupper.h"
namespace AskUser {
namespace Protocol {
#include <vector>
#include <exception/Exception.h>
-#include <ui/Popupper.h>
#include <ui/UIAppInvoker.h>
namespace AskUser {
namespace Notification {
-class IUIEvent {
+class ExtUIEvent {
public:
- IUIEvent(Popupper *popupper) : m_popupper(popupper) {}
- virtual void process() = 0;
- virtual ~IUIEvent() {}
-protected:
- Popupper *m_popupper;
-};
-
-class ExtUIEvent : public IUIEvent {
-public:
- ExtUIEvent(int popup_id, pid_t caller_app_pid, std::string pkg_id, std::vector<std::string> privacies)
- : IUIEvent(NULL),
- m_popup_id(popup_id),
- m_caller_app_pid(caller_app_pid),
- m_pkg_id(pkg_id),
- m_privacies(privacies)
+ ExtUIEvent(int popup_id, pid_t caller_app_pid, std::string pkg_id, std::vector<std::string> privacies) :
+ m_popup_id(std::move(popup_id)),
+ m_caller_app_pid(std::move(caller_app_pid)),
+ m_pkg_id(std::move(pkg_id)),
+ m_privacies(std::move(privacies))
{}
+
virtual void process() {
(void)UIAppInvoker::invoke(m_popup_id, m_caller_app_pid, m_pkg_id, m_privacies);
}
std::vector<std::string> m_privacies;
};
-class EventPopupCheck : public IUIEvent {
-public:
- EventPopupCheck(Popupper *popupper, const std::string &pkgId, const std::vector<std::string> &privacies)
- : IUIEvent(popupper), m_pkgId(pkgId), m_privacies(privacies)
- {}
-
- virtual void process() {
- // TODO we don't want askuser popups now, just the external app UI
- // m_popupper->popupCheck(m_pkgId, m_privacies);
- }
-private:
- std::string m_pkgId;
- std::vector<std::string> m_privacies;
-};
-
} //namespace AskUser
} //namespace Notification
-
-
+++ /dev/null
-# Copyright (c) 2015-2018 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
- as.po
- az.po
- be_BY.po
- bg.po
- bn_BD.po
- bn.po
- ca.po
- cs.po
- da.po
- de.po
- el_GR.po
- en_PH.po
- en.po
- en_US.po
- es_ES.po
- es_US.po
- et.po
- eu.po
- fa.po
- fi.po
- fr_CA.po
- fr.po
- ga.po
- gl.po
- gu.po
- he.po
- hi.po
- hr.po
- hu.po
- hy.po
- id.po
- is.po
- it_IT.po
- ja_JP.po
- ka.po
- kk.po
- km.po
- kn.po
- ko_KR.po
- ky_KG.po
- lo.po
- lt.po
- lv.po
- mk.po
- ml.po
- mn_MN.po
- mr.po
- ms.po
- my_MM.po
- my_ZG.po
- nb.po
- ne.po
- nl.po
- or.po
- pa.po
- pl.po
- pl_SP.po
- pt_BR.po
- pt_PT.po
- ro.po
- ru_RU.po
- si.po
- sk.po
- sl.po
- sq.po
- sr.po
- sv.po
- ta.po
- te.po
- tg_TJ.po
- th.po
- tk_TM.po
- tl.po
- tr_TR.po
- uk.po
- ur.po
- uz.po
- vi.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})
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ؚدŮ
اŮŘŞŮعاع."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "اŮŘłŮ
اŘ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ŘąŮŘś"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ءŮب اŮŘŽŘľŮŘľŮŘŠ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "اسŮ
Ř ŮŮ %1$s باŮŮŘľŮŮ ŘĽŮ٠ؼذ٠%2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "পŕ§ŕŚ¨ŕ§°ŕŚžŕŚ ŕŚ¨ŕŚŕ§°ŕŚżŕŚŹŕĽ¤"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕŚ
নŕ§ŕŚŽŕŚ¤ŕŚż দিŕ§ŕŚ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ŕŚ
সŕ§ŕŚŹŕ§ŕŚŕŚžŕ§°"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕŚŕ§ŕŚŞŕŚ¨ŕ§ŕ§ŕŚ¤ŕŚžŕ§° ŕŚ
নŕ§ŕ§°ŕ§ŕڧ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%2$s ŕŚ
নŕ§ŕŚŽŕŚ¤ŕŚżŕ§° বাবৠ%1$s পŕ§ŕ§°ŕ§ąŕ§ŕŚśŕ§° ŕŚ
নŕ§ŕŚŽŕŚ¤ŕŚż দিŕ§ŕŚŕĽ¤"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1; "
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "TÉkrar etmÉ"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "İcazÉ ver"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "RÉdd et"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "MÉxfilik sorÄusu"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s %2$s icazÉsinÉ Ă§ÄąxĹŠicazÉsi ver."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n%10==1 && n%100!=11 ? 1 : (n%10>=2 && n%10<=4) && !(n%100>=12 && n%100<=14) ? 3 : n%10 == 0 || (n%10 >=5 && n%10 <= 9) || (n%100 >=11 && n%100 <= 14) ? 4 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ĐĐľ паŃŃаŃаŃŃ."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ĐаСвОНŃŃŃ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ĐĐ´Ń
ŃĐťŃŃŃ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ĐапŃŃ Đ°Đą ĐżŃŃваŃнаŃŃŃ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ĐаŃŃ %1$s даСвОН на Đ´ĐžŃŃŃĐż %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ĐĐľ пОвŃаŃŃĐš"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ĐОСвОНŃв."
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ĐŃкаС"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ĐаŃвка Са пОвоŃиŃоНна инŃĐžŃПаŃиŃ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ĐОСвОНоŃĐľ на %1$s Đ´ĐžŃŃŃĐż Đ´Đž ŃаСŃĐľŃониоŃĐž %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "পŕ§ŕŚ¨ŕŚ°ŕŚžŕŚŹŕ§ŕڤŕ§ŕŚ¤ŕŚż ŕŚŕŚ°ŕŚŹŕ§ŕڍ না।"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕŚ
নŕ§ŕŚŽŕŚ¤ŕŚż দিন"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ŕŚ
সŕ§ŕŚŹŕ§ŕŚŕŚžŕŚ°"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕŚŕ§ŕŚŞŕŚ¨ŕ§ŕ§ŕŚ¤ŕŚžŕŚ° ŕŚ
নŕ§ŕڰŕ§ŕڧ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$sŕŚŕ§ %2$s ŕŚ
নŕ§ŕŚŽŕŚ¤ŕŚżŕŚ¤ŕ§ ŕŚ
ŕ§ŕŚŻŕŚžŕŚŕ§ŕڏŕ§ŕڏ ŕŚŕŚ°ŕŚ¤ŕ§ ŕŚŽŕŚŕ§ŕŚŕ§ŕڰ ŕŚŕڰŕ§ŕŚ¨ŕĽ¤"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "রিপিঠŕŚŕŚ°ŕŚŹŕ§ŕڍ না৷"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕŚ
নŕ§ŕŚŽŕŚ¤ŕŚż দিন"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "পŕ§ŕŚ°ŕŚ¤ŕ§ŕŚŻŕŚžŕŚŕ§ŕŚŻŕŚžŕŚ¨"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕŚŕ§ŕŚŞŕŚ¨ŕ§ŕ§ŕŚ¤ŕŚžŕŚ° ŕŚ
নŕ§ŕڰŕ§ŕڧ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s-ŕŚŕ§ %2$s ŕŚ
নŕ§ŕŚŽŕŚ¤ŕŚż ŕŚ
ŕ§ŕŚŻŕŚžŕŚŕ§ŕڏŕ§ŕڏ ŕŚŕŚ°ŕŚžŕŚ° ŕŚ
নŕ§ŕŚŽŕ§ŕŚŚŕŚ¨ দিন৷"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "No repetir"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permetre"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Denegar"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Sol¡licitud de privadesa"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Permet que %1$s accedeixi al permĂs %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=((n==1) ? 1 : (n>=2 && n<=4) ? 3 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Neopakovat"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Povolit"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "OdmĂtnout"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "PoĹžadavek na ochranu osobnĂch ĂşdajĹŻ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Povolte aplikaci %1$s pĹĂstup k oprĂĄvnÄnĂ %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Gentag ikke."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Tillad"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Afvis"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Fortrolighedsanmodning"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Giv %1$s adgang til tilladelsen %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Nicht wiederholen"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Zulassen"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Ablehnen"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Datenschutzanfrage"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s den Zugriff auf %2$s erlauben."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ÎĎΚ ÎľĎινΏΝ."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ÎÎą ÎľĎΚĎĎÎĎ."
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ÎĎĎĎĎΚĎΡ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ÎÎŻĎΡĎΡ ÎąĎÎżĎĎÎŽĎÎżĎ
"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ÎĎΚĎĎÎĎĎÎľ ĎĎΡν ÎľĎÎąĎΟογΎ %1$s ĎΡν ĎĎĎĎβιĎΡ ĎĎÎż δΚκιίĎΟι %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Don't repeat."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Allow"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Deny"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Privacy request"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Allow %1$s access to %2$s permission."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Don't repeat"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Allow"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Deny"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Privacy request"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Allow %1$s access to %2$s permission."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Don't repeat"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Allow"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Deny"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Privacy request"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Allow %1$s access to %2$s permission."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1; "
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "No repetir."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permitir"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Rechazar"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Solicitud de privacidad"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Conceder que %1$s acceda al permiso %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1; "
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "No volver a mostrar"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permitir"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Rechazar"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Solicitud de privacidad"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Permitir que %1$s acceda a %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Ăra korda"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Luba"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Keela"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Privaatsustaotlus"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Andke rakendusele %1$s juurdepääs loale %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1; "
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Ez errepik."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Baimendu"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Ukatu"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Pribatutasun eskaera"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Baimendu %1$s aplikazioari %2$s atzitzea."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "تڊعاع ŮŘ´ŮŘŻ"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ا؏از٠دادŮ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "عد ڊعدŮ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "دع؎Ůاست ŘŘąŰŮ
ŘŽŘľŮŘľŰ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ب٠%1$s Ř§ŘŹŘ§Ř˛Ů ŘŻŘłŘŞŘąŘłŰ Ř¨Ů %2$s بدŮŰŘŻ."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Ălä toista."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Salli"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Estä"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "TietosuojapyyntĂś"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Salli, että %1$s käyttää käyttÜoikeutta %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Ne plus afficher"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Autoriser"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Refuser"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Demande de confidentialitĂŠ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Accordez à %1$s l'accès à l'autorisation %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Ne pas rĂŠp."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Autoriser"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Refuser"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Demande de confidentialitĂŠ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Accordez à %1$s l'accès à l'autorisation %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n==1 ? 1 : n==2 ? 2 : (n>=3 && n<=6) ? 3 : (n>=7 && n<=10) ? 4 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "NĂĄ hathdhĂŠan"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Ceadaigh"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "DiĂşltaigh"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Iarratas prĂobhĂĄide"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Ceadaigh do %1$s an cead %2$s a rochtain."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Non repetir"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permitir"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Denegar"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Solicitude de privacidade"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Permite que %1$s acceda ao permiso %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ઌŕŤŕŞšŕŞ°ŕŞžŕŞľŕŞśŕŤ ŕŞ¨ŕŞšŕŤŕŞ."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "઎ŕŞŕŞŕŤŕŞ°ŕŤ ŕŞŕŞŞŕŤ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "નŕŞŕŞžŕŞ°ŕŤ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕŞŕŤŕŞŞŕŞ¨ŕŤŕŞŻŕŞ¤ŕŞž ાિનŕŞŕޤŕŤ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s નૠ%2$s નૠમŕŞŕŞŕŤŕްŕŤŕŞĽŕŤ ŕŞ¸ŕŞŕŞŽŕŞ¤ ઼ઞŕŞ."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=((n==1) ? 1 : (n==2) ? 2 : !(n>=0 && n<=10) && (n%10 == 0) ? 4 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "×× ×Ş×Ś×× ×Š××"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "×פ׊ר"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "×××"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "×ק׊ת פר×××ת"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "×׊ר ×-%1$s ×××Š× ××ר׊×ת %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ऌŕĽŕ¤šŕ¤°ŕ¤žŕ¤ŕ¤ नचŕĽŕ¤"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕ¤
नŕĽŕ¤Žŕ¤¤ŕ¤ż ऌŕĽŕ¤"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ŕ¤
सŕĽŕ¤ľŕĽŕ¤ŕ¤žŕ¤°ŕĽŕ¤"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕ¤ŕĽŕ¤Şŕ¤¨ŕĽŕ¤Żŕ¤¤ŕ¤ž ŕ¤
नŕĽŕ¤°ŕĽŕ¤§"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s ŕ¤ŕĽ %2$s ŕ¤
नŕĽŕ¤Žŕ¤¤ŕ¤ż ŕ¤ŕ¤ŕĽŕ¤¸ŕĽŕ¤¸ ŕ¤ŕ¤°ŕ¤¨ŕĽ ŕ¤ŕĽ ŕ¤
नŕĽŕ¤Žŕ¤¤ŕ¤ż ऌŕĽŕ¤ŕĽ¤"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n%10==1 && n%100!=11 ? 1 : n%10 >=2 && n%10 <=4 && !(n%100>=12 && n%100<=14) ? 3 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Ne ponovi."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Dopusti"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Odbij"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Zahtjev za pristup privatnim podacima"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Dopustite aplikaciji %1$s da pristupi dopuĹĄtenju %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Ne ismĂŠtelje"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Enged"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Tilt"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "AdatvĂŠdelmi kĂŠrĂŠs"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "A(z) %2$s engedĂŠly megadĂĄsa a(z) %1$s szĂĄmĂĄra."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ŐŐŻÖŐŻŐśŐĽŐŹ"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ÔšŐ¸ÖŐľŐŹ ŐżŐĄŐŹ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ŐŐĽÖŐŞŐĽŐŹ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ÔłŐĄŐ˛ŐżŐśŐŤŐ¸ÖŐŠŐľŐĄŐś ŐşŐĄŐ°ŐĄŐśŐť"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ÔšŐ¸ÖŐľŐŹ ŐżŐĄŐŹ, Ő¸Ö %1$s-Őś Ö
ŐŁŐżŐžŐŤ %2$s ŐŠŐ¸ÖŐľŐŹŐżŐžŐ¸ÖŐŠŐľŐ¸ÖŐśŐŤÖ:"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Jgn ulangi"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Izinkan"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Tolak"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Permintaan privasi"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Perbolehkan %1$s mengakses izin %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n%10==1 && n%100!=11) ? 1 : 5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Ekki endurt."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Leyfa"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Hafna"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Persónuverndarbeiðni"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Veita %1$s aðgang að heimild fyrir %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Non ripetere"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Consenti"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Nega"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Richiesta sulla privacy"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Concedete a %1$s lâautorizzazione ad accedere a %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "襨示ăăŞă"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "訹ĺŻ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ćĺŚ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ăăŠă¤ăăˇăźăŽčŚćą"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%2$săŽć¨Šéă¸ăŽă˘ăŻăťăšă%1$săŤč¨ąĺŻăăžăă"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "áá áááááá áááĄ"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ááááá ááá"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "áŁáá á§áá¤á"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "áááá¤áááááŞááááŁá áááᥠááááŽáááá"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s-ᥠááááŞáá áŁá¤áááá, á áá áááááá§áááᥠááááá ááá: %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ŇаКŃаНаПаŃ"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Đ ŇąŇŃĐ°Ń ĐľŃŃ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ĐĐ°Ń ŃаŃŃŃ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŇҹпиŃĐťŃĐťŃŇ ŃŇąŃаŃŃ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s %2$s ŃŇąŇŃаŃŃĐ˝ йоŃŃŇŁŃС."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ááťáâáááážáĄážáááˇá"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "á˘ááťááááśá"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "áááˇááá"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "áááážâááśááŻááá"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "á˘ááťááááśáâá˛áá %1$s á
áźááááážâááśáá˘ááťááááśá %2$sá"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ಪŕłŕ˛¨ŕ˛°ŕ˛žŕ˛ľŕ˛°ŕłŕ˛¤ŕ˛żŕ˛¸ŕ˛Źŕłŕ˛Ąŕ˛ż."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕ˛
ನŕłŕ˛Žŕ˛¤ŕ˛żŕ˛¸ŕ˛ż"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ನಿರಞŕ˛ŕ˛°ŕ˛żŕ˛¸ŕł"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕ˛ŕłŕ˛Şŕłŕ˛Żŕ˛¤ŕł ಾಿನŕ˛ŕ˛¤ŕ˛ż"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s ಪŕłŕ˛°ŕ˛ľŕłŕ˛śŕ˛żŕ˛¸ŕ˛˛ŕł %2$s ŕ˛
ನŕłŕ˛Žŕ˛¤ŕ˛żŕ˛¸ŕ˛ż."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ë¤ě ëł´ě§ ě기"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "íěŠ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "íěŠ ě í¨"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ę°ě¸ě ëł´ ěě˛"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s ěąě %2$s ęśíě íěŠíŠëë¤."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ĐаКŃаНайОО"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ĐŁŃŃĐşŃĐ°Ń ĐąĐľŃ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ЧоŃко кагŃŃ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ĐокоНик ŃаНапŃаŃŃ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%2$s %1$s кОŃŃĐťŃŃŃŃна ŃŃŃĐşŃĐ°Ń ĐąĐľŃŇŻŇŻ."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ຢŕťŕş˛ŕťŕşŽŕşąŕşŕşŕťŕťŕş˛ŕşŕşˇŕş"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕşŕş°ŕşŕş¸ŕşŕş˛ŕş"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ŕşŕş°ŕşŕş´ŕťŕşŞŕş"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕşŕşłŕşŕťŕşŕş§ŕş˛ŕşĄŕťŕşŕşąŕşŕşŞŕťŕş§ŕşŕşŕşťŕş§"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ŕşŕş°ŕşŕş¸ŕşŕş˛ŕşŕťŕşŤŕť %1$s ŕťŕşŕşťŕťŕş˛âŕťŕşŕťŕşŕş˛ŕşŕşŕş°ŕşŕş¸ŕşŕş˛ŕş %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n%10==1 && !(n%100>=11 && n%100<=19) ? 1 : (n%10>=2 && n%10<=9) && !(n%100>=11 && n%100<=19) ? 3 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Nekartoti"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Leisti"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Atmesti"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Privatumo uĹžklausa"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Suteikite %1$s leidimÄ
pasiekti %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n%10 == 0 || (n%100 >= 11 && n%100 <= 19) ? 0 : (n%10 == 1 && n%100 != 11) ? 1 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "NeatkÄrtot"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "AtÄźaut"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "NoraidÄŤt"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "KonfidencialitÄtes pieprasÄŤjums"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Pieťġiriet programmai %1$s piekğuvi %2$s atğaujai."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n%10==1) ? 1 : 5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ĐĐľ пОвŃĐžŃ."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ĐОСвОНи"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ĐŃŃŃНи"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ĐаŃаŃĐľ Са ĐżŃиваŃнОŃŃ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ĐОСвОНи %1$s да ĐżŃиŃŃапи Đ´Đž дОСвОНа Са %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ŕ´ŕ´ľŕľźŕ´¤ŕľŕ´¤ŕ´żŕ´ŕľŕ´ŕľŕ´Łŕľŕ´."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕ´
ŕ´¨ŕľŕ´ľŕ´Śŕ´żŕ´ŕľŕ´ŕľŕ´"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "നിഡŕľŕ´§ŕ´żŕ´ŕľŕ´ŕľŕ´"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕ´¸ŕľŕ´ľŕ´ŕ´žŕ´°ŕľŕ´Żŕ´¤ŕ´ž ŕ´
ŕ´ŕľŕ´Żŕľźŕ´¤ŕľŕ´Ľŕ´¨"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%2$s ŕ´
ŕ´¨ŕľŕ´Žŕ´¤ŕ´żŕ´Żŕ´żŕ´˛ŕľŕ´ŕľŕ´ŕľ %1$s ŕ´ŕ´ŕľŕ´¸ŕ´¸ŕľ ŕ´
ŕ´¨ŕľŕ´ľŕ´Śŕ´żŕ´ŕľŕ´ŕľŕ´."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ĐŇŻŇŻ давŃ"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ĐӊвŃÓŠÓŠŃ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ТаŃгаНСаŃ
"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ĐŃŃŃНаНŃĐ˝ Ń
ŇŻŃŃĐťŃ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s Ń
андаНŃŃĐł %2$s СӊвŃÓŠÓŠŃӊНд СӊвŃÓŠÓŠŃ."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "पŕĽŕ¤¨ŕ¤°ŕ¤žŕ¤ľŕĽŕ¤¤ŕĽâत༠ŕ¤ŕ¤°ŕĽ नŕ¤ŕ¤ž."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕ¤
नŕĽŕ¤Žŕ¤¤ŕĽ ऌŕĽŕ¤Żŕ¤ž"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "नŕ¤ŕ¤žŕ¤° ऌŕĽŕ¤Żŕ¤ž"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕ¤ŕĽŕ¤Şŕ¤¨ŕĽŕ¤Żŕ¤¤ŕ¤ž ािनŕ¤ŕ¤¤ŕĽ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s लञ %2$s पराञनŕ¤ŕĽŕ¤ŕĽŕ¤Żŕ¤ž ŕ¤ŕ¤ŕĽŕ¤¸ŕĽŕ¤¸ŕ¤ŕĽ ŕ¤
नŕĽŕ¤Žŕ¤¤ŕĽ ऌŕĽŕ¤Żŕ¤ž."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Jgn ulang"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Benarkan"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Nafi"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Permintaan privasi"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Benarkan capaian %1$s ke kebenaran %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "áááşááŤáááşá፠áááŻááşááŤáážááˇáşá"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "áá˝ááˇáşááźáŻááŤ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ááźááşá¸áááŻááŤ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "áááŻááşááąá¸ááŻáśááźáŻáśáážáŻ ááąáŹááşá¸áááŻááťááş"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s ááᯠ%2$s áá˝ááˇáşááźáŻááťááşáᲠáááşááŻáśá¸áá˝ááˇáş ááźáŻááŤá"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ááášááŤááášá፠áááŻáášááŤáá˝áášáˇ"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ááźááˇášáťááłááŤ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "áťááášá¸áááŻááŤ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ááŻááášáąáá¸ááśáŻáťááśáłáá áąááŹáášá¸ááŻáááşááš"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s ááŻá %2$s ááźáášáˇáťááłááşáášáᲠááášááśáŻá¸ááźáášáˇ áťááłááŤá"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Ikke gjenta."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Tillat"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "AvslĂĽ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Personvernforespørsel"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Gi %1$s tilgang til %2$s-tillatelsen."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "नऌŕĽŕ¤šŕ¤°ŕĽâयञŕ¤ŕ¤¨ŕĽŕ¤šŕĽŕ¤¸ŕĽŕĽ¤"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕ¤
नŕĽŕ¤Žŕ¤¤ŕ¤ż ऌिनŕĽ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ŕ¤
सŕĽŕ¤ľŕĽŕ¤ŕ¤žŕ¤° ŕ¤ŕ¤°ŕĽŕ¤¨ŕĽ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕ¤ŕĽŕ¤Şŕ¤¨ŕĽŕ¤Żŕ¤¤ŕ¤ž ŕ¤
नŕĽŕ¤°ŕĽŕ¤§"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s लञठ%2$s सऎŕĽŕ¤Źŕ¤¨ŕĽŕ¤§ŕĽ ŕ¤
नŕĽŕ¤Žŕ¤¤ŕ¤żŕ¤Žŕ¤ž पचŕĽŕ¤ŕ¤ ŕ¤ŕ¤°ŕĽŕ¤¨ ऌिन༠चŕĽŕĽ¤"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Niet herhalen"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Toestaan"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Weigeren"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Verzoek om privacy"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s heeft toegang tot machtiging %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ପŕନରାବŕତŕତି ŕŹŕŹ°ŕŹ¨ŕତŕ ନାହିŕŹŕĽ¤"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕŹ
ନŕମତି"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ŕŹ
ŕŹŕରାହŕŕ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕŹŕପନŕŕ ŕŹ
ନŕରŕଧ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$sŕŹŕ %2$s ŕŹŕŹŕʏŕସŕ ŕŹ
ନŕମତି ଦିŕŹ
ନŕତŕ༤"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "਌ŕŠŕ¨šŕ¨°ŕ¨žŕ¨ ਨਚŕŠŕ¨ŕĽ¤"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕ¨ŕ¨ŕ¨żŕ¨ ਌ਿŕ¨"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ŕ¨
ਸਾŕŠŕ¨ŕ¨žŕ¨° ŕ¨ŕ¨°ŕŠ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕ¨ŕŠŕ¨Şŕ¨¨ŕ¨żŕ¨Żŕ¨¤ŕ¨ž ਏŕŠŕ¨¨ŕ¨¤ŕŠ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s ਨŕŠŕа %2$s ŕ¨ŕ¨ŕ¨¸ŕŠŕŠąŕ¨¸ ŕ¨ŕ¨°ŕ¨¨ ਦ੠ŕ¨ŕ¨ŕ¨żŕ¨ ਌ਿŕ¨ŕĽ¤"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n==1 ? 1 : n%10 >=2 && n%10 <=4 && !(n%100>=12 && n%100<=14) ? 3 : (n!=1 && n%10 <= 1) || (n%10 >=5 && n%10 <=9) || (n%100 >=12 && n%100 <=14) ? 4 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Nie powt."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ZezwĂłl"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "OdmĂłw"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ĹťÄ
danie zwiÄ
zane z prywatnoĹciÄ
"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ZezwĂłl aplikacji %1$s na dostÄp do uprawnienia %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n==1 ? 1 : n%10 >=2 && n%10 <=4 && !(n%100>=12 && n%100<=14) ? 3 : (n!=1 && n%10 <= 1) || (n%10 >=5 && n%10 <=9) || (n%100 >=12 && n%100 <=14) ? 4 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Niy powt."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "PrzizwĹl"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ĂdkoĹź"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "PrzikĹz pochytany z prywatnoĹciĹm"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "PrzizwĹl aplikacyji %1$s na dostymp do dozwĹlynio %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "NĂŁo repetir."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permitir"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Negar"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Solicitação de privacidade"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Permita que %1$s acesse a permissĂŁo %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1; "
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "NĂŁo repetir"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permitir"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Recusar"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Pedido de privacidade"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Permita que %1$s aceda Ă permissĂŁo %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n==1 ? 1 : (n==0 || n!=1 && (n%100 >= 1 && n%100 <= 19)) ? 3 : 5); "
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "FÄrÄ repet."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Permitere"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Refuz"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Solicitare confidenČialitate"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "AcordaČi aplicaČiei %1$s accesul la permisiunea %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n%10==1 && n%100!=11 ? 1 : (n%10>=2 && n%10<=4) && !(n%100>=12 && n%100<=14) ? 3 : n%10 ==0 || (n%10>=5 && n%10<=9) || (n%100 >= 11 && n%100 <= 14) ? 4 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ĐĐľ пОвŃĐžŃŃŃŃ."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "РаСŃĐľŃиŃŃ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ĐапŃĐľŃиŃŃ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ĐапŃĐžŃ Đ˝Đ° ĐżŃодОŃŃавНонио кОнŃидонŃиаНŃĐ˝ŃŃ
даннŃŃ
"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ĐŃодОŃŃавНонио %1$s Đ´ĐžŃŃŃпа Đş ŃаСŃĐľŃĐľĐ˝Đ¸Ń %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ŕś´ŕˇŕśąŕśťŕˇ.ŕśąŕśş ŕśąŕˇŕśŕśť."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕśŕśŠ දŕˇŕśąŕˇŕśą"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ŕś´ŕˇâŕśťŕśŕˇŕśŕˇ."
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕśťŕˇŕˇŕˇâŕśşŕśŕˇ ŕśŕś˝ŕˇŕś˝ŕˇŕś¸"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s ŕˇŕś§ %2$s ŕś
ŕˇŕˇŕśťŕśşŕś§ ŕśŕśŠ දŕˇŕśąŕˇŕśą."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=((n==1) ? 1 : (n>=2 && n<=4) ? 3 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "NeopakovaĹĽ"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "PovoliĹĽ"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ZamietnuĹĽ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Žiadosż o ochranu osobných údajov"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "UdeÄžte aplikĂĄcii %1$s povolenie %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n%100==1 ? 1 : n%100==2 ? 2 : (n%100==3 || n%100==4) ? 3 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Ne ponovi"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Dovoli"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Zavrni"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Zahteva za zasebnost"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Aplikaciji %1$s omogoÄite dostop do dovoljenja %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Mos pĂŤrsĂŤr."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Lejo"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Refuzo"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "KĂŤrkesĂŤ privatĂŤsie"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Jepi %1$s akses nĂŤ lejen %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n%10==1 && n%100!=11 ? 1 : n%10 >=2 && n%10 <=4 && !(n%100>=12 && n%100<=14) ? 3 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Ne ponavlj."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Dozvoli"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Odbij"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Zahtev za privatnim informacijama"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Dozvolite aplikaciji %1$s da pristupi dozvoli %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Uppr. inte."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "TillĂĽt"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Neka"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Sekretessbegäran"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Ge %1$s ĂĽtkomst till behĂśrighet fĂśr %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "மŕŻ.ŕŽŕŽžŕŽŕŻŕŽ ŕŽľŕŻŕŽŁŕŻŕŽŕŽžŕŽŽŕŻ."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕŽ
னŕŻŕŽŽŕŽ¤ŕŽż"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "நிராŕŽŕŽ°ŕŽż"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "தனிபŕŻŕŽŞŕŽŻŕŽŠŕŻ ŕŽŕŻŕŽ°ŕŽżŕŽŕŻŕŽŕŻ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%2$s ŕŽ
னŕŻŕŽŽŕŽ¤ŕŽżŕŽŕŻŕŽŕŻ %1$s ŕŽ
ணŕŻŕŽŕŽ˛ŕŻ ŕŽ
னŕŻŕŽŽŕŽ¤ŕŽżŕŽŕŻŕŽŕŽľŕŻŕŽŽŕŻ."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ŕ°Şŕąŕ°¨ŕ°°ŕ°žŕ°ľŕąŕ°¤ŕ° ŕ°ŕąŕ°Żŕ°ľŕ°Śŕąŕ°Śŕą."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕ°
ŕ°¨ŕąŕ°Žŕ°¤ŕ°żŕ°ŕ°ŕą"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "తిరసŕąŕ°ŕ°°ŕ°żŕ°ŕ°ŕą"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕ°ŕąŕ°Şŕąŕ°Żŕ°¤ŕ°ž ŕ°
ŕ°ŕąŕ°Żŕ°°ŕąŕ°Ľŕ°¨"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%2$s ŕ°
ŕ°¨ŕąŕ°Žŕ°¤ŕ°żŕ°¨ŕ°ż ŕ°Şŕąŕ°°ŕ°žŕ°Şŕąŕ°Żŕ°¤ ŕ°ŕąŕ°Żŕ°Ąŕ°žŕ°¨ŕ°żŕ°ŕ°ż %1$sన๠ŕ°
ŕ°¨ŕąŕ°Žŕ°¤ŕ°żŕ°ŕ°ŕ°žŕ°˛ŕ°ž."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ТакŃĐžŃ Đ˝Đ°Đş."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ĐŇˇĐžĐˇĐ°Ń Đ´-Đ˝"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Рад каŃдан"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ĐаŃŃ
ĐžŃŃи ПаŃ
ŃиŃŃ"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Đа %1$s йаŃОи даŃŃŃĐ°Ń ĐşĐ°Ńдани %2$s Đ¸ŇˇĐžĐˇĐ°Ń Đ´Đ¸ŇłĐľĐ´."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ŕ¸ŕ¸˘ŕšŕ¸˛ŕšŕ¸Şŕ¸ŕ¸ŕ¸ŕšŕ¸ł"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ŕ¸ŕ¸ŕ¸¸ŕ¸ŕ¸˛ŕ¸"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ŕšŕ¸Ąŕš"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŕ¸ŕ¸˛ŕ¸Łŕ¸Łŕšŕ¸ŕ¸ŕ¸ŕ¸ŕ¸ŕ¸§ŕ¸˛ŕ¸Ąŕšŕ¸ŕšŕ¸ŕ¸Şŕšŕ¸§ŕ¸ŕ¸ŕ¸ąŕ¸§"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ŕ¸ŕ¸ŕ¸¸ŕ¸ŕ¸˛ŕ¸ %1$s ŕšŕ¸Ťŕšŕšŕ¸ŕšŕ¸˛ŕ¸ŕ¸śŕ¸ŕ¸ŕ¸˛ŕ¸Łŕ¸ŕ¸ŕ¸¸ŕ¸ŕ¸˛ŕ¸ %2$s ญรมŕ¸ŕšŕ¸Ąŕš"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "GaĂ˝talamaĹ."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Rugsat ber"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Ret et"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Gizlinlik haĂ˝yĹy"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s %2$s rugsadyna girsin."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n>=1 && n<=3 || n%10!=4 || n%10!=6 || n%10!=9 ? 1 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Wag ulitin"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Payagan"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Tanggihan"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Hiling sa privacy"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Payagan ang %1$s sa pahintulot na %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Tekrarlama"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "İzin ver"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Reddet"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Gizlilik isteÄi"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$s uygulamasÄąna %2$s izni verin."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n%10==1 && n%100!=11 ? 1 : (n%10>=2 && n%10<=4) && !(n%100>=12 && n%100<=14) ? 3 : n%10 == 0 || (n%10 >= 5 && n%10 <= 9) || (n%100 >= 11 && n%100 <= 14) ? 4 : 5);"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ĐĐľ пОвŃĐžŃ."
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ĐОСвОНиŃи"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ĐайОŃОниŃи"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ĐĐ°ĐżĐ¸Ń Đ˝Đ° Đ˝Đ°Đ´Đ°Đ˝Đ˝Ń ĐşĐžĐ˝ŃŃдонŃŃКниŃ
даниŃ
"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ĐĐ°Đ´Đ°Đ˝Đ˝Ń %1$s Đ´ĐžŃŃŃĐżŃ Đ´Đž Đ´ĐžĐˇĐ˛ĐžĐťŃ %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ŮŰ ŘŻŰعا،ŰÚş"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ا؏ازت ŘŻŰÚş"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "اŮڊاع ÚŠŘąŰÚş"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ŘąŘ§Ř˛ŘŻŘ§ŘąŰ ÚŠŰ ŘŻŘąŘŽŮاست"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%2$s ÚŠŰ ŘąŘłŘ§ŘŚŰ ÚŠŰ Ř§ŘŹŘ§Ř˛ŘŞ ÚŠŰ ŮŰŰ %1$s ÚŠŰ Ř§ŘŹŘ§Ř˛ŘŞ ŘŻŰÚşŰ"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=(n != 1) ? 5 : 1;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Takrorlama"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Ruxsat ber"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Rad etish"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Maxfiylik soârovi"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "%1$sâga %2$s ruxsatiga kirish uchun ijozat bering."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "Không lạp lấi"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "Cho phĂŠp"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "Tᝍ cháťi"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "Yêu cầu vᝠriêng tư"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Cho phĂŠp %1$s truy cáşp %2$s."
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ä¸éĺ¤"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ĺ
莸"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ćçť"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "éç§čݎćą"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ĺ
莸%1$s莿éŽ%2$să"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ä¸čŚéč¤ă"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ĺ
訹"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ćçľ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "ç§éąčŤćą"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ĺ
訹 %1$s ĺĺ%2$sćŹéă"
-
+++ /dev/null
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=6; plural=5;"
-
-
-msgid "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
-msgstr "ä¸ĺ饯示"
-
-msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
-msgstr "ĺ
訹"
-
-msgid "IDS_IDLE_BUTTON_DENY"
-msgstr "ćçľ"
-
-msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
-msgstr "éąç§ćŹčŚćą"
-
-msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "ĺ
訹 %1$s ĺĺ %2$s ćŹéă"
-
+++ /dev/null
-/*
- * Copyright (c) 2011 - 2018 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.
- *
- */
-
- #define DBG(name, r, g, b, a) \
- part { \
- scale: 1; \
- type: RECT; \
- desc { state: "default" 0.0; \
- color: r g b a; \
- visible: 1; \
- rel1.relative: 0.0 0.0; \
- rel1.to: name; \
- rel2.relative: 1.0 1.0; \
- rel2.to: name; \
- } \
- } \
-
-collections {
- base_scale: 1.3;
-//Height = 480 - (2 + 83 + 68) font_size=20
-styles {
- style {
- name: "small_text_style";
- base: "font=default color=#ffffffff font_size=20 align=center valign=center wrap=mixed";
- }
-}
-
-group { name: "popup_checkview_internal"; //wearable
- parts {
- part { name: "elm.swallow.content"; // text: Allow ... priv_name
- scale: 1;
- type: SWALLOW;
- description { state: "default" 0.0;
- fixed: 1 0;
- rel2 {
- relative: 1.0 0.0;
- to_y: "spacer_m";
- }
- }
- }
- spacer { "spacer_m";
- scale: 1;
- desc { state: "default" 0.0;
- align: 0.0 1.0;
- fixed: 0 1;
- min: 0 60;
- rel1 {
- relative: 1.0 1.0;
- offset: 0 60;
- }
- }
- }
- part { name: "elm.privilege_counter";
- scale: 1;
- type: SWALLOW;
- desc { state: "default" 0.0;
- visible: 1;
- fixed: 0 1;
- rel1.relative: 0.0 1.0;
- rel1.to_y: "spacer_m";
- rel2.relative: 1.0 1.0;
- min: 20 20;
- max: -1 100;
- }
- }
- }
-}
-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_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.91 1.00;
- rel2.relative: 1.00 0.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.00 1.00;
- rel2.relative: 0.09 0.00;
- }
- }
- swallow { "elm.swallow.content"; // message between spacer_t and checkbox
- scale: 1;
- desc { //visible
- align: 0.5 0.5;
- state: "default" 0.0;
- visible: 1;
- rel1.to_x: "spacer_ll";
- rel1.to_y: "spacer_t";
- rel2.to_x: "spacer_rr";
- rel1.relative: 1.00 1.00;
- rel2.relative: 0.00 0.64;
- }
- }
- swallow { "elm.swallow.end"; //checkbox
- scale: 1;
- desc { "default";
- visible: 1;
- align: 0.5 0.5;
- fixed: 0 1;
- rel1.to_x: "spacer_l";
- rel1.to_y: "elm.swallow.content";
- rel2.to_x: "spacer_r";
- rel2.to_y: "elm.privilege_counter";
- rel1.relative: 1.00 1.00;
- rel2.relative: 0.00 0.00;
- }
- }
- part { name: "elm.privilege_counter";
- scale: 1;
- type: TEXT;
- desc { "default"
- visible: 1;
- align: 0.5 0.5;
- fixed: 0 1;
- rel1.relative: 0.00 0.80;
- rel2.relative: 1.00 1.00;
- color: 0 0 0 255;
- text {
- size: 26;
- }
- }
- }
- 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.00 1.00;
- rel2.relative: 0.05 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.95 1.00;
- rel2.relative: 1.00 0.00;
- }
- }
- }
-}
-}
+++ /dev/null
-/*
- * 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
- };
-
- IAnswerable() {}
- virtual NResponseType getAnswer(enum Button) const = 0;
- virtual ~IAnswerable() {}
-};
-
-class AnswerablePopupCheck : public IAnswerable {
-public:
- AnswerablePopupCheck(PopupCheck *popup)
- : m_popup(popup) {}
- virtual NResponseType getAnswer(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;
- }
- return answer;
- }
-private:
- PopupCheck *m_popup;
-};
-
-} // namespace AskUser
-} // namespace Notification
+++ /dev/null
-/*
- * 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 <log/alog.h>
-#include <policy/PkgInfo.h>
-#include <policy/PrivilegeInfo.h>
-
-namespace AskUser {
-
-namespace {
-enum class MsgType {
- MSG_POPUP_TITLE,
-
- MSG_POPUP_TEXT,
-
- MSG_POPUP_CHECKBOX,
- MSG_POPUP_ALLOW_BTN,
- MSG_POPUP_DENY_BTN,
-};
-
-std::map<MsgType, const char*> MSG_PO = {
- {MsgType::MSG_POPUP_TITLE, "IDS_IDLE_HEADER_PRIVACY_REQUEST"},
- {MsgType::MSG_POPUP_TEXT, "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"},
- {MsgType::MSG_POPUP_CHECKBOX, "IDS_CLOCK_BODY_DONT_REPEAT_ABB"},
- {MsgType::MSG_POPUP_ALLOW_BTN, "IDS_IDLE_BUTTON_ALLOW_ABB7"},
- {MsgType::MSG_POPUP_DENY_BTN, "IDS_IDLE_BUTTON_DENY"},
-};
-
-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");
- }
- char *markup = elm_entry_utf8_to_markup(buf);
- free(buf);
- if (!markup) {
- ALOGE("markup is NULL");
- throw ErrnoException("elm_entry_utf8_to_markup failed");
- }
- std::unique_ptr<char, decltype(std::free) *> bufPtr(markup, std::free);
- return std::string(markup);
-}
-
-const char *getFormat(enum MsgType type) {
- return dgettext(PROJECT_NAME, MSG_PO[type]);
-}
-
-} // namespace anonymous
-
-namespace Notification {
-namespace Po {
-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.");
- }
-}
-
-std::string createPopupCheckMsg(const std::string &pkgId, const std::string &privacy) {
- PkgMgrPkgInfo pkgInfo;
- return makeFromFormat(getFormat(MsgType::MSG_POPUP_TEXT), pkgInfo.pkgLabel(pkgId, getuid()).c_str(),
- PrivilegeInfo::getPrivacyDisplayName(privacy).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
+++ /dev/null
-/*
- * 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 &pkgId, const std::string &priv);
-std::string createPrivilegeDescr(const std::string &priv);
-
-void setLocale();
-std::string getPopupTitleMsg();
-std::string getAllowButtonMsg();
-std::string getDenyButtonMsg();
-std::string getCheckBoxMsg();
-
-} // namespace Po
-} // namespace Notification
-} // namespace AskUser
+++ /dev/null
-/*
- * Copyright (c) 2017 -2018 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>
- * @author Ernest Borowski <e.borowski@partner.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, size_t privilegeCount)
- : UIElement(parent), m_msg(msg), m_privilegeIndex(1), m_privilegeCount(privilegeCount)
- {
- 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;
- size_t m_privilegeIndex;
- size_t m_privilegeCount;
-};
-
-} /* namespace Notification */
-} /* namespace Askuser */
-
+++ /dev/null
-/*
- * Copyright (c) 2017 - 2019 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>
- * @author Ernest Borowski <e.borowski@partner.samsung.com>
- * @brief Declaration of PopupCheck class
- */
-
-#pragma once
-
-#include <memory>
-#include <sstream>
-#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, size_t privilegeCount)
- : Popup(parent, msg, privilegeCount)
- {}
-
- Evas_Object *getCheckBox() const { return m_checkBox; }
- bool getCheckboxState() const {
- if (m_checkBox == nullptr)
- return false;
- return elm_check_state_get(m_checkBox);
- }
-
- void changePopupCounter() {
- if (m_privilegeCount == 1)
- return;
-
- std::stringstream ss;
- ss << m_privilegeIndex << " / " << m_privilegeCount;
-
- changePopupCounterMsg(ss.str());
- }
-
- virtual void changePopupCounterMsg(std::string counterMsg) = 0;
-
- void changePopupMessage() {
- changePopupTitle();
- changePopupCounter();
- }
-
- virtual void changePopupTitle() = 0;
-
- static void changePopupMessageCallback(void* data, Elm_Transit*) {
- PopupCheck *popupCheck = static_cast<PopupCheck*>(data);
- popupCheck->changePopupMessage();
- popupCheck->resetPopupContentState();
- (void)popupCheck->m_transitOutPtr.release();
- }
-
- static void enableButtonsAfterTransitionCallback(void* data, Elm_Transit*) {
- PopupCheck *popupCheck = static_cast<PopupCheck*>(data);
- elm_object_disabled_set(popupCheck->m_denyButton, EINA_FALSE);
- elm_object_disabled_set(popupCheck->m_allowButton, EINA_FALSE);
- (void)popupCheck->m_transitPtr.release();
- }
-
- virtual Evas_Object* getAnimatedLayout() = 0;
-
- bool showNext(const std::string &msg) {
- if (++m_privilegeIndex > m_privilegeCount) {
- return false;
- }
-
- Evas_Object* layout = getAnimatedLayout();
- if (!layout) {
- ALOGE("Unable to get Evas_Object for animation");
- return false;
- }
-
- m_msg = msg;
- double animation_length_in_sec = 0.075 * 2;
- m_transitOutPtr.reset(elm_transit_add()); // fade out
- m_transitBetweenPtr.reset(elm_transit_add()); // slightly delay for changing message
- m_transitPtr.reset(elm_transit_add()); // fade in
- if (!m_transitOutPtr || !m_transitBetweenPtr || !m_transitPtr) {
- // just change text without transitions
- ALOGE("Failed to initialize transition");
- changePopupMessageCallback(this, NULL);
- return true;
- }
-
- elm_object_disabled_set(m_denyButton, EINA_TRUE);
- elm_object_disabled_set(m_allowButton, EINA_TRUE);
-
- elm_transit_effect_wipe_add(m_transitOutPtr.get(),
- ELM_TRANSIT_EFFECT_WIPE_TYPE_HIDE,
- ELM_TRANSIT_EFFECT_WIPE_DIR_LEFT);
- elm_transit_duration_set(m_transitOutPtr.get(), animation_length_in_sec);
- elm_transit_tween_mode_set(m_transitOutPtr.get(), ELM_TRANSIT_TWEEN_MODE_SINUSOIDAL);
-
- elm_transit_object_add(m_transitBetweenPtr.get(), layout);
- elm_transit_effect_translation_add(m_transitBetweenPtr.get(), -10000, -10000, -10000, -10000);
- elm_transit_duration_set(m_transitBetweenPtr.get(), animation_length_in_sec);
-
- elm_transit_object_add(m_transitPtr.get(), layout);
- elm_transit_effect_wipe_add(m_transitPtr.get(),
- ELM_TRANSIT_EFFECT_WIPE_TYPE_SHOW,
- ELM_TRANSIT_EFFECT_WIPE_DIR_LEFT);
-
-
- elm_transit_tween_mode_set(m_transitPtr.get(), ELM_TRANSIT_TWEEN_MODE_SINUSOIDAL);
- elm_transit_duration_set(m_transitPtr.get(), animation_length_in_sec);
-
- elm_transit_chain_transit_add(m_transitOutPtr.get(), m_transitBetweenPtr.get());
- elm_transit_chain_transit_add(m_transitBetweenPtr.get(), m_transitPtr.get());
- elm_transit_del_cb_set(m_transitOutPtr.get(), changePopupMessageCallback, this);
- elm_transit_del_cb_set(m_transitPtr.get(), enableButtonsAfterTransitionCallback, this);
- elm_transit_del_cb_set(m_transitBetweenPtr.get(), [] (void* data, Elm_Transit*) {
- PopupCheck *popupCheck = static_cast<PopupCheck*>(data);
- (void)popupCheck->m_transitBetweenPtr.release();
- }, this);
- elm_transit_go(m_transitOutPtr.get());
- return true;
- }
-
- // optional method for reseting popup state during text transition
- virtual void resetPopupContentState() {}
- virtual ~PopupCheck() {}
-
-protected:
- Evas_Object *m_checkBox = nullptr;
- struct transitionPtrDeleter {
- void operator () (Elm_Transit* et) {
- if (et) {
- elm_transit_del_cb_set(et, nullptr, nullptr);
- elm_transit_del(et);
- }
- }
- };
- std::unique_ptr<Elm_Transit, transitionPtrDeleter> m_transitPtr;
- std::unique_ptr<Elm_Transit, transitionPtrDeleter> m_transitOutPtr;
- std::unique_ptr<Elm_Transit, transitionPtrDeleter> m_transitBetweenPtr;
-};
-
-} /* namespace Notification */
-} /* namespace Askuser */
-
+++ /dev/null
-/*
- * Copyright (c) 2017 - 2018 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>
- * @author Ernest Borowski <e.borowski@partner.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, const std::string &msg, size_t privilegeCount)
- : PopupCheck(parent, msg, privilegeCount)
- {}
- 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);
- evas_object_size_hint_align_set(m_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
- // content
- m_content = elm_label_add(m_layout);
- if (!m_content) {
- ALOGE("EFL : Failed to add content");
- throw Exception("Enlightenment failed");
- }
- 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());
-
- changePopupMessage();
-
- elm_object_content_set(m_popup, m_layout);
- evas_object_show(m_popup);
- }
-
- virtual void changePopupCounterMsg(std::string counterMsg) {
- elm_object_part_text_set(m_layout, "elm.privilege_counter", counterMsg.c_str());
- }
- virtual void changePopupTitle() {
- // change content to next msg
- elm_object_text_set(m_content, m_msg.c_str());
- }
- virtual Evas_Object* getAnimatedLayout() {
- return m_layout;
- }
-
- virtual ~PopupCheckMobile() {
-
- }
-private:
- Evas_Object *m_content = nullptr;
- Evas_Object *m_layout = nullptr;
- Evas_Object *m_layoutInner = nullptr;
-};
-
-} /* namespace Notification */
-} /* namespace Askuser */
-
+++ /dev/null
-/*
- * Copyright (c) 2017 - 2018 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>
- * @author Ernest Borowski <e.borowski@partner.samsung.com>
- * @brief Declaration of PopupCheckWearable class
- */
-
-#pragma once
-
-#include <Elementary.h>
-#include <efl_extension.h>
-
-#include <exception/Exception.h>
-#include "Po.h"
-#include "PopupCheck.h"
-
-namespace AskUser {
-namespace Notification {
-
-class PopupCheckWearable : public PopupCheck {
-public:
- PopupCheckWearable(Evas_Object *parent, const std::string &msg, const std::string &pkgId,
- const std::string &privacy, size_t privilegeCount)
- : PopupCheck(parent, msg, privilegeCount), m_pkgId(pkgId), m_privacy(privacy)
- {}
- ~PopupCheckWearable() {
- vconf_ignore_key_changed(VCONFKEY_LANGSET, &PopupCheckWearable::langChangedCb);
- }
- static void langChangedCb(keynode_t *, void *data)
- {
- PopupCheckWearable *popup = static_cast<PopupCheckWearable*>(data);
-
- Po::setLocale();
- elm_atspi_accessible_name_set(popup->m_allowButton, Po::getAllowButtonMsg().c_str());
- elm_atspi_accessible_name_set(popup->m_denyButton, Po::getDenyButtonMsg().c_str());
-
- popup->m_msg = Po::createPopupCheckMsg(popup->m_pkgId, popup->m_privacy);
- popup->changePopupTitle();
- popup->resetPopupContentState();
- }
-
- virtual void create() {
- elm_object_style_set(m_popup, "circle");
- elm_popup_scrollable_set(m_popup, EINA_FALSE);
-
- m_conform = elm_conformant_add(m_parent);
- if (m_conform == nullptr) {
- ALOGE("EFL : Failed to add conformant");
- throw Exception("Enlightenment failed");
- }
- evas_object_size_hint_weight_set(m_conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(m_parent, m_conform);
- evas_object_show(m_conform);
-
- circle_surface = eext_circle_surface_conformant_add(m_conform);
- if (circle_surface == nullptr) {
- ALOGE("EFL : Failed to add circle surface");
- throw Exception("Enlightenment failed");
- }
-
- m_scroller = elm_scroller_add(m_popup);
- if (m_scroller == nullptr) {
- ALOGE("EFL : Failed to add scroller");
- throw Exception("Enlightenment failed");
- }
- elm_object_style_set(m_scroller, "list_effect");
- elm_scroller_policy_set(m_scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
- evas_object_size_hint_weight_set(m_scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(m_scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_object_content_set(m_popup, m_scroller);
-
- eext_scroller = eext_circle_object_scroller_add(m_scroller, circle_surface);
- if (eext_scroller == nullptr) {
- ALOGE("EFL : Failed to add eext_scroller");
- throw Exception("Enlightenment failed");
- }
- eext_circle_object_scroller_policy_set(eext_scroller, ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_OFF);
-
-
- 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_content_set(m_scroller, 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);
-
- eext_rotary_object_event_activated_set(eext_scroller, EINA_TRUE);
-
- m_content = elm_label_add(m_layoutInner);
- if (m_content == nullptr) {
- ALOGE("EFL : Failed to add content");
- throw Exception("Enlightenment failed");
- }
- elm_object_style_set(m_content, "popup/default");
- elm_label_line_wrap_set(m_content, ELM_WRAP_MIXED);
- elm_object_text_set(m_content, m_msg.c_str());
- elm_atspi_accessible_reading_info_type_set(m_content, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
- evas_object_size_hint_weight_set(m_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_part_content_set(m_layoutInner, "elm.swallow.content", m_content);
- evas_object_size_hint_align_set(m_content, EVAS_HINT_FILL, EVAS_HINT_FILL);
-
- m_counter = elm_label_add(m_layoutInner);
- if (m_counter == nullptr) {
- ALOGE("EFL : Failed to add counter");
- throw Exception("Enlightenment failed");
- }
- elm_object_style_set(m_counter, "popup/default");
- elm_label_line_wrap_set(m_counter, ELM_WRAP_MIXED);
- elm_atspi_accessible_reading_info_type_set(m_counter, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
- evas_object_size_hint_weight_set(m_counter, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_part_content_set(m_layoutInner, "elm.privilege_counter", m_counter);
- evas_object_size_hint_align_set(m_counter, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_show(m_counter);
-
- 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);
- elm_atspi_accessible_name_set(m_allowButton, Po::getAllowButtonMsg().c_str());
-
- 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);
- elm_atspi_accessible_name_set(m_denyButton, Po::getDenyButtonMsg().c_str());
-
- elm_atspi_accessible_name_set(m_popup, m_msg.c_str());
-
- /* language changed callback */
- vconf_notify_key_changed(VCONFKEY_LANGSET, &PopupCheckWearable::langChangedCb, this);
-
- changePopupMessage();
- evas_object_show(m_popup);
- }
-
- virtual void changePopupCounterMsg(std::string counterMsg) {
- elm_object_text_set(m_counter, counterMsg.c_str());
- }
-
- virtual void changePopupTitle() {
- // change content to next msg
- elm_object_text_set(m_content, m_msg.c_str());
- }
-
- virtual Evas_Object* getAnimatedLayout() {
- return m_layoutInner;
- }
-
- virtual void resetPopupContentState() {
- // reset popup scroller position
- elm_scroller_page_show(m_scroller, 0, 0);
- }
-
-private:
- Evas_Object *m_content = nullptr;
- Evas_Object *m_layout = nullptr;
- Evas_Object *m_layoutInner = nullptr;
- Evas_Object *m_scroller = nullptr;
- Evas_Object *eext_scroller = nullptr;
- Eext_Circle_Surface *circle_surface = nullptr;
- Evas_Object *m_conform = nullptr;
- Evas_Object *m_counter = nullptr;
- std::string m_pkgId;
- std::string m_privacy;
-};
-
-} /* namespace Notification */
-} /* namespace Askuser */
-
+++ /dev/null
-/*
- * Copyright (c) 2017 - 2019 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>
- * @author Ernest Borowski <e.borowski@partner.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);
- }
-
- std::string getHomeKey() {
- std::string profileName = getProfileName();
- if (profileName[0] == 'w' || profileName[0] == 'W')
- return "XF86PowerOff";
- else
- return "XF86Home";
- }
-}
-
-
-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()
-{
- ALOGD("Window close");
- m_shouldRaise = false;
-
- if (!m_elementPtr)
- ALOGD("Closing non-existing popup");
-
- m_elementPtr.reset(nullptr);
- m_answerablePtr.reset(nullptr);
- m_responses.clear();
- m_privaciesSequence.setPrivacies({});
- evas_object_hide(m_win);
-}
-
-void Popupper::buttonAnswer(IAnswerable::Button button) {
- if (m_answerablePtr) {
- NResponseType answer = m_answerablePtr->getAnswer(button);
- m_responses.push_back(answer);
-
- if (m_responses.size() == m_privaciesSequence.size()) {
- m_popupResponseHandler(m_responses);
- return;
- }
-
- Privacy privacy;
- if (!m_privaciesSequence.getNextPrivacy(privacy)) {
- ALOGE("Unable to get next privacy");
- respondToRest(NResponseType::None);
- return;
- }
-
- if (!m_elementPtr->showNext(Po::createPopupCheckMsg(m_pkgId, privacy))) {
- ALOGE("unable to show next popup");
- respondToRest(NResponseType::None);
- }
- } else {
- ALOGD("Popupper::buttonAnswer called without m_answerablePtr, skipping");
- }
-}
-
-void Popupper::allowPressedCb(void *data, Evas_Object *, void *)
-{
- Popupper *popupper = static_cast<Popupper*>(data);
- popupper->buttonAnswer(IAnswerable::Button::ALLOW);
-}
-
-void Popupper::denyPressedCb(void *data, Evas_Object *, void *)
-{
- Popupper *popupper = static_cast<Popupper*>(data);
- popupper->buttonAnswer(IAnswerable::Button::DENY);
-}
-
-Eina_Bool Popupper::checkWakeupCb(void *data, int type, void *event)
-{
- Ecore_Event_Key *ev = static_cast<Ecore_Event_Key*>(event);
- Popupper* popupper = static_cast<Popupper*>(data);
- if ((!strcmp(getHomeKey().c_str(), ev->key) || !strcmp("XF86Back", ev->key)) && elm_win_focus_get(popupper->m_win)) {
- ALOGD("Focused. Pressed key is <" << ev->key << "> type <" << type << ">");
- popupper->m_focused = true;
- } else {
- popupper->m_focused = false;
- }
- return EINA_TRUE;
-}
-
-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);
- if (!runner->m_focused) {
- ALOGD("Key input for wake up. Ignore.");
- return EINA_TRUE;
- }
- double delay = 0.5;
- ALOGD("HW button pressed. type <" << type << "> pressed key is <" << ev->key << ">");
- if ((!strcmp(getHomeKey().c_str(), ev->key) || !strcmp("XF86Back", ev->key)) && runner->m_elementPtr) {
- ALOGD("Respond as deny once.");
- if (!strcmp("XF86Back", ev->key))
- delay = 0;
- runner->closeDelayTimer(false);
- runner->m_ecoreDelayExitPtr = ecore_timer_add(delay,
- [](void *data) -> Eina_Bool {
- Popupper *runner = static_cast<Popupper *>(data);
- runner->m_ecoreDelayExitPtr = nullptr;
- runner->respondToRest(NResponseType::None);
- return ECORE_CALLBACK_CANCEL;
- },
- runner);
- }
- return EINA_TRUE;
-}
-
-Popupper::~Popupper()
-{
- closeDelayTimer();
-}
-
-void Popupper::closeDelayTimer(bool sendRequestResponses) {
- if (m_ecoreDelayExitPtr) {
- ecore_timer_del(m_ecoreDelayExitPtr);
- if (sendRequestResponses)
- respondToRest(NResponseType::None);
- }
-}
-
-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_MEDIUM);
-
- 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, getHomeKey().c_str(), 0, 0, 0, ELM_WIN_KEYGRAB_SHARED);
- elm_win_keygrab_set(m_win, "XF86Back", 0, 0, 0, ELM_WIN_KEYGRAB_TOPMOST);
- m_keyDownHandler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, &Popupper::checkWakeupCb, this);
- m_keyUpHandler = ecore_event_handler_add(ECORE_EVENT_KEY_UP, &Popupper::hwKeyClickedCb, this);
-}
-
-void Popupper::show() {
- evas_object_show(m_win);
-}
-
-void Popupper::popupCheck(const std::string &pkgId, const std::vector<Privacy> &privacies) {
- std::string profileName = getProfileName();
- PopupCheck *popup;
- m_responses.clear();
- m_privaciesSequence.setPrivacies(privacies);
- m_pkgId = pkgId;
- try {
- Privacy currentPrivacy;
- if (!m_privaciesSequence.getNextPrivacy(currentPrivacy)) {
- ALOGE("Unable to get next privacy");
- respondToRest(NResponseType::None);
- return;
- }
- if (profileName[0] != 'w' && profileName[0] != 'W') {
- // Not wearable
- popup = new PopupCheckMobile(m_win, Po::createPopupCheckMsg(pkgId, currentPrivacy), m_privaciesSequence.size());
- } else {
- // Wearable
- popup = new PopupCheckWearable(m_win, Po::createPopupCheckMsg(pkgId, currentPrivacy),
- pkgId, currentPrivacy, m_privaciesSequence.size());
- }
- popup->create();
- } catch (const std::exception &e) {
- ALOGE("Failed to create popup check : " << e.what());
- respondToRest(NResponseType::None);
- return;
- }
-
- m_answerablePtr.reset(new AnswerablePopupCheck(popup));
- evas_object_smart_callback_add(popup->getAllowButton(), "clicked", &Popupper::allowPressedCb,
- this);
- evas_object_smart_callback_add(popup->getDenyButton(), "clicked", &Popupper::denyPressedCb,
- this);
-
- m_elementPtr.reset(popup);
- show();
-
-}
-
-void Popupper::respondToRest(NResponseType response)
-{
- size_t alreadyRespondedCount = m_responses.size();
- while (alreadyRespondedCount < m_privaciesSequence.size()) {
- m_responses.push_back(response);
- alreadyRespondedCount++;
- }
- m_popupResponseHandler(m_responses);
-}
-
-void Popupper::start()
-{
- elm_run();
-}
-
-void Popupper::stop()
-{
- m_shouldRaise = false;
- elm_win_keygrab_unset(m_win, getHomeKey().c_str(), 0, 0);
- elm_win_keygrab_unset(m_win, "XF86Back", 0, 0);
- ecore_event_handler_del(m_keyDownHandler);
- ecore_event_handler_del(m_keyUpHandler);
- m_elementPtr.reset(nullptr);
- m_answerablePtr.reset(nullptr);
- m_responses.clear();
- evas_object_del(m_win);
- m_win = nullptr;
- elm_exit();
-}
-
-void Popupper::shutdown() {
- elm_shutdown();
-}
-
-} /* namespace Notification */
-
-} /* namespace AskUser */
+++ /dev/null
-/*
- * Copyright (c) 2017 - 2019 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>
- * @author Ernest Borowski <e.borowski@partner.samsung.com>
- * @brief Declaration of Popupper class
- */
-
-#pragma once
-
-#include <Elementary.h>
-#include <functional>
-#include <memory>
-#include <string>
-#include <vector>
-#include <vconf.h>
-
-#include "Answerable.h"
-#include "Popup.h"
-#include "PrivaciesSequence.h"
-#include <types/NotificationResponse.h>
-#include <types/PolicyTypes.h>
-#include <log/alog.h>
-
-namespace AskUser {
-
-namespace Notification {
-
-class Popupper {
-public:
- typedef std::function<void(const std::vector<NResponseType>&)> PopupHandler;
-
- Popupper() = default;
- void initialize();
- void registerPopupResponseHandler(PopupHandler handler);
- void start();
-
- void popupCheck(const std::string &pkgId, const std::vector<std::string> &privacies);
-
- void popupClose();
- 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 checkWakeupCb(void *data, int type, void *event);
- static Eina_Bool hwKeyClickedCb(void *data, int type, void *event);
-
- void buttonAnswer(IAnswerable::Button button);
- void closeDelayTimer(bool sendRequestResponses = true);
- void respondToRest(NResponseType response);
- void show();
-
- PopupHandler m_popupResponseHandler;
-
- Ecore_Timer *m_ecoreDelayExitPtr = nullptr;
- Evas_Object *m_win = nullptr;
- std::unique_ptr<UIElement> m_elementPtr;
- std::unique_ptr<IAnswerable> m_answerablePtr;
- std::vector<NResponseType> m_responses;
- PrivaciesSequence m_privaciesSequence;
- std::string m_pkgId;
-
- bool m_shouldRaise = false;
- bool m_focused = false;
-
- Ecore_Event_Handler *m_keyDownHandler = nullptr;
- Ecore_Event_Handler *m_keyUpHandler = nullptr;
-};
-
-} /* namespace Notification */
-
-} /* namespace AskUser */
+++ /dev/null
-/*
- * Copyright (c) 2017 - 2018 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>
- * @author Ernest Borowski <e.borowski@partner.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) {}
- virtual void create() = 0;
- virtual bool showNext(const std::string &msg) = 0;
- virtual ~UIElement() {}
-protected:
- Evas_Object *m_parent;
-};
-
-} /* namespace Notification */
-} /* namespace Askuser */
-
SET(TESTS_SOURCES
${TESTS_PATH}/main.cpp
${TESTS_PATH}/common/exception.cpp
- ${TESTS_PATH}/common/translator.cpp
)
ADD_DEFINITIONS(${TESTS_DEP_CFLAGS})
+++ /dev/null
-/*
- * Copyright (c) 2016-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 translator.cpp
- * @author Oskar Ĺwitalski <o.switalski@samsung.com>
- * @brief Tests fortranslator funcions
- */
-
-#include <cstring>
-#include <string>
-
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
-
-#include <translator/Translator.h>
-#include <translator/GuiTranslator.h>
-
-using namespace AskUser;
-
-TEST(TranslatorTest, PluginData_Strings) {
- std::string client = "TranslatorTest-client";
- std::string user = "TranslatorTest-user";
- std::string privilege = "http://example.com/permissions/example";
-
- auto data = Translator::Plugin::requestToData(client, user, privilege);
- auto request = Translator::Agent::dataToRequest(data);
-
- ASSERT_EQ(client, request.client);
- ASSERT_EQ(user, request.user);
- ASSERT_EQ(privilege, request.privilege);
-}
-
-TEST(TranslatorTest, NotificationRequest) {
- NotificationRequestId id = 1234;
- std::string client = "lorem ipsum dolor est amet";
- std::string pkgLabel = "My app";
- std::string privilege = "http://example.com/permissions/example";
-
- auto data = Translator::Gui::notificationRequestToData(id, client, pkgLabel, privilege);
- auto request = Translator::Gui::dataToNotificationRequest(data);
-
- ASSERT_EQ(id, request.id);
- ASSERT_EQ(client, request.data.client);
- ASSERT_EQ(privilege, request.data.privilege);
- ASSERT_EQ(pkgLabel, request.pkgLabel);
-}