summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYunjin Lee <yunjin-.lee@samsung.com>2020-03-04 16:38:52 +0900
committerYunjin Lee <yunjin-.lee@samsung.com>2020-03-09 15:55:06 +0900
commit935ea47811bbd2f78538c92afbcfd1c978054cb9 (patch)
tree372eb0efb9d14ebef52c7dd4e97afa3016f2841e
parentda0c8ec3073d36567a7416da049bce00e519e2db (diff)
downloadaskuser-popup-935ea47811bbd2f78538c92afbcfd1c978054cb9.tar.gz
askuser-popup-935ea47811bbd2f78538c92afbcfd1c978054cb9.tar.bz2
askuser-popup-935ea47811bbd2f78538c92afbcfd1c978054cb9.zip
- Add DID for page num AO - Apply ppm_popup_send_response() - Use TEXT instead of SWALLOW part for popup contents - Remove custom layout - Check return value - Check unfocused - Modify contents to grab highlight - Show as multi mode when privacy_num is greater than 1 Change-Id: I5de978662f107e562fd2b432f79e346aadb8a93d Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
-rw-r--r--CMakeLists.txt7
-rw-r--r--common/include/common_utils.h13
-rw-r--r--common/src/common_utils.c9
-rwxr-xr-xpackaging/org.tizen.askuser-popup.spec7
-rwxr-xr-xpo/CMakeLists.txt1
-rwxr-xr-xpo/ar.po3
-rwxr-xr-xpo/as.po3
-rwxr-xr-xpo/az.po3
-rwxr-xr-xpo/be_BY.po3
-rwxr-xr-xpo/bg.po3
-rwxr-xr-xpo/bn.po3
-rwxr-xr-xpo/bn_BD.po3
-rwxr-xr-xpo/bs_BA.po24
-rwxr-xr-xpo/ca.po3
-rwxr-xr-xpo/cs.po3
-rwxr-xr-xpo/da.po3
-rwxr-xr-xpo/de.po3
-rwxr-xr-xpo/el_GR.po3
-rwxr-xr-xpo/en.po3
-rwxr-xr-xpo/en_PH.po3
-rwxr-xr-xpo/en_US.po3
-rwxr-xr-xpo/es_ES.po3
-rwxr-xr-xpo/es_US.po3
-rwxr-xr-xpo/et.po3
-rwxr-xr-xpo/eu.po3
-rwxr-xr-xpo/fa.po3
-rwxr-xr-xpo/fi.po3
-rwxr-xr-xpo/fr.po5
-rwxr-xr-xpo/fr_CA.po5
-rwxr-xr-xpo/ga.po3
-rwxr-xr-xpo/gl.po3
-rwxr-xr-xpo/gu.po3
-rwxr-xr-xpo/he.po3
-rwxr-xr-xpo/hi.po3
-rwxr-xr-xpo/hr.po3
-rwxr-xr-xpo/hu.po3
-rwxr-xr-xpo/hy.po3
-rwxr-xr-xpo/id.po3
-rwxr-xr-xpo/is.po3
-rwxr-xr-xpo/it_IT.po3
-rwxr-xr-xpo/ja_JP.po3
-rwxr-xr-xpo/ka.po3
-rwxr-xr-xpo/kk.po3
-rwxr-xr-xpo/km.po3
-rwxr-xr-xpo/kn.po3
-rwxr-xr-xpo/ko_KR.po3
-rwxr-xr-xpo/ky_KG.po3
-rwxr-xr-xpo/lo.po3
-rwxr-xr-xpo/lt.po3
-rwxr-xr-xpo/lv.po3
-rwxr-xr-xpo/mk.po3
-rwxr-xr-xpo/ml.po3
-rwxr-xr-xpo/mn_MN.po3
-rwxr-xr-xpo/mr.po3
-rwxr-xr-xpo/ms.po3
-rwxr-xr-xpo/my_MM.po3
-rwxr-xr-xpo/my_ZG.po3
-rwxr-xr-xpo/nb.po3
-rwxr-xr-xpo/ne.po3
-rwxr-xr-xpo/nl.po3
-rwxr-xr-xpo/or.po3
-rwxr-xr-xpo/pa.po3
-rwxr-xr-xpo/pl.po3
-rwxr-xr-xpo/pl_SP.po3
-rwxr-xr-xpo/pt_BR.po3
-rwxr-xr-xpo/pt_PT.po3
-rwxr-xr-xpo/ro.po3
-rwxr-xr-xpo/ru_RU.po3
-rwxr-xr-xpo/si.po3
-rwxr-xr-xpo/sk.po3
-rwxr-xr-xpo/sl.po3
-rwxr-xr-xpo/sq.po3
-rwxr-xr-xpo/sr.po3
-rwxr-xr-xpo/sv.po3
-rwxr-xr-xpo/ta.po3
-rwxr-xr-xpo/te.po3
-rwxr-xr-xpo/tg_TJ.po3
-rwxr-xr-xpo/th.po3
-rwxr-xr-xpo/tk_TM.po3
-rwxr-xr-xpo/tl.po3
-rwxr-xr-xpo/tr_TR.po3
-rwxr-xr-xpo/uk.po3
-rwxr-xr-xpo/ur.po3
-rwxr-xr-xpo/uz.po3
-rwxr-xr-xpo/vi.po3
-rwxr-xr-xpo/zh_CN.po3
-rwxr-xr-xpo/zh_HK.po3
-rwxr-xr-xpo/zh_TW.po3
-rw-r--r--res/edc/popup_custom.edc62
-rwxr-xr-xui/CMakeLists.txt2
-rw-r--r--ui/src/app_main.c178
-rw-r--r--ui/src/popup.c221
92 files changed, 518 insertions, 256 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bd295a8..2ba57d8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -46,13 +46,6 @@ SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
ADD_SUBDIRECTORY(ui)
ADD_SUBDIRECTORY(po)
-ADD_CUSTOM_TARGET(popup_custom.edj
- COMMAND edje_cc -no-save res/edc/popup_custom.edc res/popup_custom.edj
- DEPENDS res/edc/popup_custom.edc
- )
-ADD_DEPENDENCIES(org.tizen.askuser-popup popup_custom.edj)
-
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/res/popup_custom.edj DESTINATION ${RESDIR}/edje/)
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/button DESTINATION ${TZ_SYS_RO_APP}/org.tizen.askuser-popup/res FILES_MATCHING PATTERN "*.png")
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/icon DESTINATION ${TZ_SYS_RO_APP}/org.tizen.askuser-popup/res FILES_MATCHING PATTERN "*.png")
INSTALL(FILES ${CMAKE_SOURCE_DIR}/packaging/org.tizen.askuser-popup.xml DESTINATION ${TZ_SYS_RO_PACKAGES}/)
diff --git a/common/include/common_utils.h b/common/include/common_utils.h
index 5d57de8..f8ff9c2 100644
--- a/common/include/common_utils.h
+++ b/common/include/common_utils.h
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2019-2020 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.
@@ -28,8 +28,8 @@
#include <app.h>
#include <dlog.h>
#include <app_control_internal.h>
-
-
+#include <efl_extension.h>
+#include <ppm_popup.h>
#ifdef _cplusplus
extern "C" {
@@ -61,7 +61,7 @@ extern "C" {
typedef struct {
char* privacy;
bool user_responsed;
- char* response;
+ ppm_popup_response_e response;
} privacy_data_s;
typedef struct _app_data_s {
@@ -75,16 +75,15 @@ typedef struct _app_data_s {
Evas_Object *eext_scroller;
Evas_Object *btn_l;
Evas_Object *btn_r;
- Evas_Object *label;
- Evas_Object *counter;
+ Evas_Object *ao_contents;
Eext_Circle_Surface *circle_surface;
- app_control_h caller;
char* caller_pkgid;
bool all_responded;
char* launch_type;
+ int popup_id;
GList* privacy_list;
int privacy_num;
diff --git a/common/src/common_utils.c b/common/src/common_utils.c
index 23c68c1..27b6e73 100644
--- a/common/src/common_utils.c
+++ b/common/src/common_utils.c
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2019-2020 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.
@@ -20,8 +20,6 @@
* @brief
*/
-#include <efl_extension.h>
-
#include "common_utils.h"
privacy_data_s* new_privacy_data()
@@ -33,7 +31,7 @@ privacy_data_s* new_privacy_data()
}
pd->privacy = NULL;
pd->user_responsed = false;
- pd->response = NULL;
+ pd->response = PRIVACY_PRIVILEGE_MANAGER_POPUP_RESPONSE_DENY_ONCE;
return pd;
}
@@ -42,6 +40,7 @@ void init_app_data(app_data_s* ad)
ad->all_responded = false;
ad->launch_type = NULL;
ad->caller_pkgid = NULL;
+ ad->popup_id = 0;
ad->privacy_list = NULL;
ad->privacy_num = 0;
@@ -52,8 +51,6 @@ void __free_privacy_data(privacy_data_s* pd)
{
if (pd->privacy)
free(pd->privacy);
- if (pd->response)
- free(pd->response);
}
void free_privacy_data(gpointer pd)
diff --git a/packaging/org.tizen.askuser-popup.spec b/packaging/org.tizen.askuser-popup.spec
index 4a231f5..0b4fe9c 100755
--- a/packaging/org.tizen.askuser-popup.spec
+++ b/packaging/org.tizen.askuser-popup.spec
@@ -3,7 +3,7 @@
Name: org.tizen.askuser-popup-profile_wearable
Summary: Ask user popup for wearable profile
-Version: 0.0.1
+Version: 0.0.2
Release: 0
Provides: org.tizen.askuser-popup = %{version}-%{release}
Group: Applications/Other
@@ -24,7 +24,9 @@ BuildRequires: pkgconfig(security-privilege-manager)
BuildRequires: pkgconfig(pkgmgr-info)
BuildRequires: pkgconfig(capi-appfw-application)
BuildRequires: pkgconfig(capi-appfw-app-manager)
+BuildRequires: pkgconfig(capi-privacy-privilege-manager)
BuildRequires: pkgconfig(bundle)
+BuildRequires: pkgconfig(capi-system-device)
%description
Application providing ui for requesting privacy permission to the user.
@@ -73,6 +75,3 @@ make %{?_smp_mflags}
%{PREFIX}/bin/
%{PREFIX}/res/icon/
%{PREFIX}/res/button/
-%{PREFIX}/res/edje/
-
-
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
index 4dd815d..552bb90 100755
--- a/po/CMakeLists.txt
+++ b/po/CMakeLists.txt
@@ -6,6 +6,7 @@ SET(POFILES
bg.po
bn_BD.po
bn.po
+ bs_BA.po
ca.po
cs.po
da.po
diff --git a/po/ar.po b/po/ar.po
index 6266e50..20bcb47 100755
--- a/po/ar.po
+++ b/po/ar.po
@@ -16,6 +16,9 @@ msgstr "رفض"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "طلب الخصوصية"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "الصفحة %d من %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "اسمح لـ %1$s بالوصول إلى إذن %2$s."
diff --git a/po/as.po b/po/as.po
index 7c61dea..fb71a33 100755
--- a/po/as.po
+++ b/po/as.po
@@ -16,6 +16,9 @@ msgstr "অস্বীকাৰ"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "গোপনীয়তাৰ অনুৰোধ"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d-ৰ %d পৃষ্ঠা৷"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%2$s অনুমতিৰ বাবে %1$s প্ৰৱেশৰ অনুমতি দিয়ক।"
diff --git a/po/az.po b/po/az.po
index df01ab6..518c7d7 100755
--- a/po/az.po
+++ b/po/az.po
@@ -16,6 +16,9 @@ msgstr "Rədd et"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Məxfilik sorğusu"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Səhifə %d / %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s %2$s icazəsinə çıxış icazəsi ver."
diff --git a/po/be_BY.po b/po/be_BY.po
index c765087..0966f7d 100755
--- a/po/be_BY.po
+++ b/po/be_BY.po
@@ -16,6 +16,9 @@ msgstr "Адхіліць"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Запыт аб прыватнасці"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Старонка %d з %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Даць %1$s дазвол на доступ %2$s."
diff --git a/po/bg.po b/po/bg.po
index bf4c24b..b62eca5 100755
--- a/po/bg.po
+++ b/po/bg.po
@@ -16,6 +16,9 @@ msgstr "Отказ"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Заявка за поверителна информация"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Стр. %d от %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Позволете на %1$s достъп до разрешението %2$s."
diff --git a/po/bn.po b/po/bn.po
index e257be4..68a833e 100755
--- a/po/bn.po
+++ b/po/bn.po
@@ -16,6 +16,9 @@ msgstr "অস্বীকার"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "গোপনীয়তার অনুরোধ"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d-টির মধ্যে %dটি পৃষ্ঠা।"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$sকে %2$s অনুমতিতে অ্যাক্সেস করতে মঞ্জুর করুন।"
diff --git a/po/bn_BD.po b/po/bn_BD.po
index 183b3ca..4747eb0 100755
--- a/po/bn_BD.po
+++ b/po/bn_BD.po
@@ -16,6 +16,9 @@ msgstr "প্রত্যাখ্যান"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "গোপনীয়তার অনুরোধ"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d-এর মধ্যে পেইজ %d।"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s-কে %2$s অনুমতি অ্যাক্সেস করার অনুমোদন দিন৷"
diff --git a/po/bs_BA.po b/po/bs_BA.po
new file mode 100755
index 0000000..4896b9a
--- /dev/null
+++ b/po/bs_BA.po
@@ -0,0 +1,24 @@
+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 ponavljaj."
+
+msgid "IDS_IDLE_BUTTON_ALLOW_ABB7"
+msgstr "Dozvoli"
+
+msgid "IDS_IDLE_BUTTON_DENY"
+msgstr "Odbij"
+
+msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
+msgstr "Zahtjev za privatnost"
+
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Stranica %d od %d."
+
+msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
+msgstr "Dozvolite aplikaciji %1$s pristup dozvoli %2$s."
+
diff --git a/po/ca.po b/po/ca.po
index 69bac6c..08a2da6 100755
--- a/po/ca.po
+++ b/po/ca.po
@@ -16,6 +16,9 @@ msgstr "Denegar"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Sol·licitud de privadesa"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Pàgina %d de %d"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Permet que %1$s accedeixi al permís %2$s."
diff --git a/po/cs.po b/po/cs.po
index aedf949..2cbf811 100755
--- a/po/cs.po
+++ b/po/cs.po
@@ -16,6 +16,9 @@ msgstr "Odmítnout"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Požadavek na ochranu osobních údajů"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Stránka %d z %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Povolte aplikaci %1$s přístup k oprávnění %2$s."
diff --git a/po/da.po b/po/da.po
index 90ec2ce..ed9a603 100755
--- a/po/da.po
+++ b/po/da.po
@@ -16,6 +16,9 @@ msgstr "Afvis"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Fortrolighedsanmodning"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Side %d af %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Giv %1$s adgang til tilladelsen %2$s."
diff --git a/po/de.po b/po/de.po
index 95e6e8a..91f5240 100755
--- a/po/de.po
+++ b/po/de.po
@@ -16,6 +16,9 @@ msgstr "Ablehnen"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Datenschutzanfrage"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Seite %d von %d"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s den Zugriff auf %2$s erlauben."
diff --git a/po/el_GR.po b/po/el_GR.po
index df97f17..b6545b8 100755
--- a/po/el_GR.po
+++ b/po/el_GR.po
@@ -16,6 +16,9 @@ msgstr "Απόρριψη"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Αίτηση απορρήτου"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Σελίδα %d από %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Επιτρέψτε στην εφαρμογή %1$s την πρόσβαση στο δικαίωμα %2$s."
diff --git a/po/en.po b/po/en.po
index e77e1d8..b3074a4 100755
--- a/po/en.po
+++ b/po/en.po
@@ -16,6 +16,9 @@ msgstr "Deny"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Privacy request"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Page %d of %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Allow %1$s access to %2$s permission."
diff --git a/po/en_PH.po b/po/en_PH.po
index 8ec01a4..8f42eab 100755
--- a/po/en_PH.po
+++ b/po/en_PH.po
@@ -16,6 +16,9 @@ msgstr "Deny"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Privacy request"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Page %d of %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Allow %1$s access to %2$s permission."
diff --git a/po/en_US.po b/po/en_US.po
index 8ec01a4..8f42eab 100755
--- a/po/en_US.po
+++ b/po/en_US.po
@@ -16,6 +16,9 @@ msgstr "Deny"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Privacy request"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Page %d of %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Allow %1$s access to %2$s permission."
diff --git a/po/es_ES.po b/po/es_ES.po
index 1dfd604..3edd426 100755
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -16,6 +16,9 @@ msgstr "Rechazar"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Solicitud de privacidad"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Página %d de %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Conceder que %1$s acceda al permiso %2$s."
diff --git a/po/es_US.po b/po/es_US.po
index 2e32d7b..fa7e93a 100755
--- a/po/es_US.po
+++ b/po/es_US.po
@@ -16,6 +16,9 @@ msgstr "Rechazar"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Solicitud de privacidad"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Página %d de %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Permitir que %1$s acceda a %2$s."
diff --git a/po/et.po b/po/et.po
index 6b937b7..dd40691 100755
--- a/po/et.po
+++ b/po/et.po
@@ -16,6 +16,9 @@ msgstr "Keela"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Privaatsustaotlus"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Lehekülg %d/%d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Andke rakendusele %1$s juurdepääs loale %2$s."
diff --git a/po/eu.po b/po/eu.po
index ebbd209..6b8f437 100755
--- a/po/eu.po
+++ b/po/eu.po
@@ -16,6 +16,9 @@ msgstr "Ukatu"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Pribatutasun eskaera"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d. orria %d-tik"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Baimendu %1$s aplikazioari %2$s atzitzea."
diff --git a/po/fa.po b/po/fa.po
index d9e20b4..71a0acd 100755
--- a/po/fa.po
+++ b/po/fa.po
@@ -16,6 +16,9 @@ msgstr "رد کردن"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "درخواست حریم خصوصی"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "صفحه %d از %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "به %1$s اجازه دسترسی به %2$s بدهید."
diff --git a/po/fi.po b/po/fi.po
index a7ff88a..5578098 100755
--- a/po/fi.po
+++ b/po/fi.po
@@ -16,6 +16,9 @@ msgstr "Estä"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Tietosuojapyyntö"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Sivu %d / %d"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Salli, että %1$s käyttää käyttöoikeutta %2$s."
diff --git a/po/fr.po b/po/fr.po
index 520ea0f..6116fb5 100755
--- a/po/fr.po
+++ b/po/fr.po
@@ -16,6 +16,9 @@ msgstr "Refuser"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Demande de confidentialité"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Page %d sur %d"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Accordez à %1$s l'accès à l'autorisation %2$s."
+msgstr "Accordez à %1$s l'accès à %2$s."
diff --git a/po/fr_CA.po b/po/fr_CA.po
index 2820a32..53b5111 100755
--- a/po/fr_CA.po
+++ b/po/fr_CA.po
@@ -16,6 +16,9 @@ msgstr "Refuser"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Demande de confidentialité"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Page %d sur %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
-msgstr "Accordez à %1$s l'accès à l'autorisation %2$s."
+msgstr "Accordez à %1$s l'accès à %2$s."
diff --git a/po/ga.po b/po/ga.po
index 9f933c9..59d9ecd 100755
--- a/po/ga.po
+++ b/po/ga.po
@@ -16,6 +16,9 @@ msgstr "Diúltaigh"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Iarratas príobháide"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Leathanach %d de %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Ceadaigh do %1$s an cead %2$s a rochtain."
diff --git a/po/gl.po b/po/gl.po
index 0c27d33..4c355a1 100755
--- a/po/gl.po
+++ b/po/gl.po
@@ -16,6 +16,9 @@ msgstr "Denegar"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Solicitude de privacidade"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Páxina %d de %d"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Permite que %1$s acceda ao permiso %2$s."
diff --git a/po/gu.po b/po/gu.po
index adff201..5ab8dd9 100755
--- a/po/gu.po
+++ b/po/gu.po
@@ -16,6 +16,9 @@ msgstr "નકારો"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "ગોપનીયતા વિનંતી"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d માંથી %d પૃષ્ઠ."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s ને %2$s ની મંજૂરીથી સંમત થાઓ."
diff --git a/po/he.po b/po/he.po
index d60d374..76c7e18 100755
--- a/po/he.po
+++ b/po/he.po
@@ -16,6 +16,9 @@ msgstr "דחה"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "בקשת פרטיות"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "עמוד %d מתוך %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "אשר ל-%1$s גישה להרשאת %2$s."
diff --git a/po/hi.po b/po/hi.po
index baa3ad0..30b8033 100755
--- a/po/hi.po
+++ b/po/hi.po
@@ -16,6 +16,9 @@ msgstr "अस्वीकारें"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "गोपनीयता अनुरोध"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "पेज %d के %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s को %2$s अनुमति एक्सेस करने की अनुमति दें।"
diff --git a/po/hr.po b/po/hr.po
index 491f280..ed4e83d 100755
--- a/po/hr.po
+++ b/po/hr.po
@@ -16,6 +16,9 @@ msgstr "Odbij"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Zahtjev za pristup privatnim podacima"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Stranica %d od %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Dopustite aplikaciji %1$s da pristupi dopuštenju %2$s."
diff --git a/po/hu.po b/po/hu.po
index eb5b9ad..f16fe79 100755
--- a/po/hu.po
+++ b/po/hu.po
@@ -16,6 +16,9 @@ msgstr "Tilt"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Adatvédelmi kérés"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d. oldal, összesen: %d"
+
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."
diff --git a/po/hy.po b/po/hy.po
index aa7f1ca..1461252 100755
--- a/po/hy.po
+++ b/po/hy.po
@@ -16,6 +16,9 @@ msgstr "Մերժել"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Գաղտնիության պահանջ"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Էջ %d՝ %d-ից:"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Թույլ տալ, որ %1$s-ն օգտվի %2$s թույլտվությունից:"
diff --git a/po/id.po b/po/id.po
index 7f13579..b81a993 100755
--- a/po/id.po
+++ b/po/id.po
@@ -16,6 +16,9 @@ msgstr "Tolak"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Permintaan privasi"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Halaman %d dari %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Perbolehkan %1$s mengakses izin %2$s."
diff --git a/po/is.po b/po/is.po
index 7bf99b5..0d1e648 100755
--- a/po/is.po
+++ b/po/is.po
@@ -16,6 +16,9 @@ msgstr "Hafna"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Persónuverndarbeiðni"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Bls. %d af %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Veita %1$s aðgang að heimild fyrir %2$s."
diff --git a/po/it_IT.po b/po/it_IT.po
index 25ee27c..48ce3d9 100755
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -16,6 +16,9 @@ msgstr "Nega"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Richiesta sulla privacy"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Pagina %d di %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Concedete a %1$s l’autorizzazione ad accedere a %2$s."
diff --git a/po/ja_JP.po b/po/ja_JP.po
index 57ccc4f..23eda6a 100755
--- a/po/ja_JP.po
+++ b/po/ja_JP.po
@@ -16,6 +16,9 @@ msgstr "拒否"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "プライバシーの要求"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%2$dページ中%1$dページ"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%2$sの権限へのアクセスを%1$sに許可します。"
diff --git a/po/ka.po b/po/ka.po
index 3d9c02b..6b47963 100755
--- a/po/ka.po
+++ b/po/ka.po
@@ -16,6 +16,9 @@ msgstr "უარყოფა"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "კონფიდენციალურობის მოთხოვნა"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "გვერდი %d, სულ %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s-ს მიეცით უფლება, რომ გამოიყენოს ნებართვა: %2$s."
diff --git a/po/kk.po b/po/kk.po
index 76d4470..93b3fd5 100755
--- a/po/kk.po
+++ b/po/kk.po
@@ -16,6 +16,9 @@ msgstr "Бас тарту"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Құпиялылық сұрауы"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d беттің ішіндегі %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s %2$s рұқсатын беріңіз."
diff --git a/po/km.po b/po/km.po
index e3f3ecd..8bce326 100755
--- a/po/km.po
+++ b/po/km.po
@@ -16,6 +16,9 @@ msgstr "បដិសេធ"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "សំណើ​ភាពឯកជន"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "ទំព័រ %d នៃ %d។"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "អនុញ្ញាត​ឲ្យ %1$s ចូលប្រើ​ការអនុញ្ញាត %2$s។"
diff --git a/po/kn.po b/po/kn.po
index 130288f..eb3394e 100755
--- a/po/kn.po
+++ b/po/kn.po
@@ -16,6 +16,9 @@ msgstr "ನಿರಾಕರಿಸು"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "ಗೌಪ್ಯತೆ ವಿನಂತಿ"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%dರ ಪುಟ %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s ಪ್ರವೇಶಿಸಲು %2$s ಅನುಮತಿಸಿ."
diff --git a/po/ko_KR.po b/po/ko_KR.po
index 1910490..06768ee 100755
--- a/po/ko_KR.po
+++ b/po/ko_KR.po
@@ -16,6 +16,9 @@ msgstr "허용 안 함"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "개인정보 요청"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%2$d 페이지 중 %1$d 페이지입니다."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s 앱에 %2$s 권한을 허용합니다."
diff --git a/po/ky_KG.po b/po/ky_KG.po
index 1b677f3..4d8825a 100755
--- a/po/ky_KG.po
+++ b/po/ky_KG.po
@@ -16,6 +16,9 @@ msgstr "Четке кагуу"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Жекелик талаптары"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d ичинен %d бет"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%2$s %1$s кошулуусуна уруксат берүү."
diff --git a/po/lo.po b/po/lo.po
index 66fbf91..cd6cb51 100755
--- a/po/lo.po
+++ b/po/lo.po
@@ -16,6 +16,9 @@ msgstr "ປະຕິເສດ"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "ຄຳຂໍຄວາມເປັນສ່ວນຕົວ"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "ໜ້າ %d ໃນ %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "ອະນຸຍາດໃຫ້ %1$s ເຂົ້າ​ໃຊ້ການອະນຸຍາດ %2$s."
diff --git a/po/lt.po b/po/lt.po
index c7ef966..38052eb 100755
--- a/po/lt.po
+++ b/po/lt.po
@@ -16,6 +16,9 @@ msgstr "Atmesti"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Privatumo užklausa"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d puslapis: %d"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Suteikite %1$s leidimą pasiekti %2$s."
diff --git a/po/lv.po b/po/lv.po
index 877b4c6..e107dfe 100755
--- a/po/lv.po
+++ b/po/lv.po
@@ -16,6 +16,9 @@ msgstr "Noraidīt"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Konfidencialitātes pieprasījums"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d lapa no %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Piešķiriet programmai %1$s piekļuvi %2$s atļaujai."
diff --git a/po/mk.po b/po/mk.po
index e434eda..daac3c0 100755
--- a/po/mk.po
+++ b/po/mk.po
@@ -16,6 +16,9 @@ msgstr "Отфрли"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Барање за приватност"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Страница %d од %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Дозволи %1$s да пристапи до дозвола за %2$s."
diff --git a/po/ml.po b/po/ml.po
index d14f2c1..fdea472 100755
--- a/po/ml.po
+++ b/po/ml.po
@@ -16,6 +16,9 @@ msgstr "നിഷേധിക്കുക"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "സ്വകാര്യതാ അഭ്യർത്ഥന"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "പേജ് %d ല്‍ %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%2$s അനുമതിയിലേക്ക് %1$s ആക്സസ് അനുവദിക്കുക."
diff --git a/po/mn_MN.po b/po/mn_MN.po
index 2d51437..d29d649 100755
--- a/po/mn_MN.po
+++ b/po/mn_MN.po
@@ -16,6 +16,9 @@ msgstr "Татгалзах"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Нууцлалын хүсэлт"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Хуудас %d / %d"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s хандалтыг %2$s зөвшөөрөлд зөвшөөр."
diff --git a/po/mr.po b/po/mr.po
index f8aa983..eaed207 100755
--- a/po/mr.po
+++ b/po/mr.po
@@ -16,6 +16,9 @@ msgstr "नकार द्या"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "गोपनीयता विनंती"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d पैकी %d पेज."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s ला %2$s परवानगीच्या ऍक्सेसची अनुमती द्या."
diff --git a/po/ms.po b/po/ms.po
index be7429a..cbae9de 100755
--- a/po/ms.po
+++ b/po/ms.po
@@ -16,6 +16,9 @@ msgstr "Nafi"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Permintaan privasi"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Halaman %d dari %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Benarkan capaian %1$s ke kebenaran %2$s."
diff --git a/po/my_MM.po b/po/my_MM.po
index d312847..7a79e66 100755
--- a/po/my_MM.po
+++ b/po/my_MM.po
@@ -16,6 +16,9 @@ msgstr "ငြင်းဆိုပါ"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "ကိုယ်ရေးလုံခြုံမှု တောင်းဆိုချက်"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "စာမျက်နှာ %d ၏ %d။"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s ကို %2$s ခွင့်ပြုချက်ထဲ ဝင်သုံးခွင့် ပြုပါ။"
diff --git a/po/my_ZG.po b/po/my_ZG.po
index 282d4fc..3d4c273 100755
--- a/po/my_ZG.po
+++ b/po/my_ZG.po
@@ -16,6 +16,9 @@ msgstr "ျငင္းဆိုပါ"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "ကုိယ္ေရးလံုျခံဳမႈ ေတာင္းဆုိခ်က္"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "စာမ်က္ႏွာ %d ၏ %d။"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s ကုိ %2$s ခြင့္ျပဳခ်က္ထဲ ဝင္သံုးခြင့္ ျပဳပါ။"
diff --git a/po/nb.po b/po/nb.po
index a7d378a..ee2b2b1 100755
--- a/po/nb.po
+++ b/po/nb.po
@@ -16,6 +16,9 @@ msgstr "Avslå"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Personvernforespørsel"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Side %d av %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Gi %1$s tilgang til %2$s-tillatelsen."
diff --git a/po/ne.po b/po/ne.po
index e8a3337..a931219 100755
--- a/po/ne.po
+++ b/po/ne.po
@@ -16,6 +16,9 @@ msgstr "अस्वीकार गर्नु"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "गोपनीयता अनुरोध"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d को %d पृष्ठ।"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s लाई %2$s सम्बन्धी अनुमतिमा पहुँच गर्न दिने हो।"
diff --git a/po/nl.po b/po/nl.po
index d8ebd66..77c9203 100755
--- a/po/nl.po
+++ b/po/nl.po
@@ -16,6 +16,9 @@ msgstr "Weigeren"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Verzoek om privacy"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Pagina %d van %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s heeft toegang tot machtiging %2$s."
diff --git a/po/or.po b/po/or.po
index b627ea9..ffd75c7 100755
--- a/po/or.po
+++ b/po/or.po
@@ -16,6 +16,9 @@ msgstr "ଅଗ୍ରାହ୍ୟ"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "ଗୋପନୀୟ ଅନୁରୋଧ"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d ର %d ପୃଷ୍ଠା"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$sକୁ %2$s ଆକସେସ୍ ଅନୁମତି ଦିଅନ୍ତୁ।"
diff --git a/po/pa.po b/po/pa.po
index f257391..37e3bc8 100755
--- a/po/pa.po
+++ b/po/pa.po
@@ -16,6 +16,9 @@ msgstr "ਅਸਵੀਕਾਰ ਕਰੋ"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "ਗੋਪਨਿਯਤਾ ਬੇਨਤੀ"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "ਪੰਨਾ %d ਵਿੱਚੋਂ %d।"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s ਨੂੰ %2$s ਐਕਸੈੱਸ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਉ।"
diff --git a/po/pl.po b/po/pl.po
index 66b93be..c9bf5c1 100755
--- a/po/pl.po
+++ b/po/pl.po
@@ -16,6 +16,9 @@ msgstr "Odmów"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Żądanie związane z prywatnością"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Strona %d z %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Zezwól aplikacji %1$s na dostęp do uprawnienia %2$s."
diff --git a/po/pl_SP.po b/po/pl_SP.po
index 39f8f14..f88d31b 100755
--- a/po/pl_SP.po
+++ b/po/pl_SP.po
@@ -16,6 +16,9 @@ msgstr "Ôdkoż"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Przikŏz pochytany z prywatnościōm"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Zajta %d z %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Przizwōl aplikacyji %1$s na dostymp do dozwŏlynio %2$s."
diff --git a/po/pt_BR.po b/po/pt_BR.po
index b651962..11161ca 100755
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -16,6 +16,9 @@ msgstr "Negar"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Solicitação de privacidade"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Página %d de %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Permita que %1$s acesse a permissão %2$s."
diff --git a/po/pt_PT.po b/po/pt_PT.po
index fb51c3f..29196dd 100755
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -16,6 +16,9 @@ msgstr "Recusar"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Pedido de privacidade"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Página %d de %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Permita que %1$s aceda à permissão %2$s."
diff --git a/po/ro.po b/po/ro.po
index e4bd93d..4f285af 100755
--- a/po/ro.po
+++ b/po/ro.po
@@ -16,6 +16,9 @@ msgstr "Refuz"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Solicitare confidențialitate"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Pagina %d din %d"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Acordați aplicației %1$s accesul la permisiunea %2$s."
diff --git a/po/ru_RU.po b/po/ru_RU.po
index 50fc2f6..8a10348 100755
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -16,6 +16,9 @@ msgstr "Запретить"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Запрос на предоставление конфиденциальных данных"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Страница %d из %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Предоставление %1$s доступа к разрешению %2$s."
diff --git a/po/si.po b/po/si.po
index 776f55c..26fa09b 100755
--- a/po/si.po
+++ b/po/si.po
@@ -16,6 +16,9 @@ msgstr "ප්‍රතික්."
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "රහස්‍යතා ඉල්ලීම"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d හි %d පිටුව."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s හට %2$s අවසරයට ඉඩ දෙන්න."
diff --git a/po/sk.po b/po/sk.po
index 982e4c1..06dc319 100755
--- a/po/sk.po
+++ b/po/sk.po
@@ -16,6 +16,9 @@ msgstr "Zamietnuť"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Žiadosť o ochranu osobných údajov"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Strana %d z %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Udeľte aplikácii %1$s povolenie %2$s."
diff --git a/po/sl.po b/po/sl.po
index c9d3f2f..a1e9b56 100755
--- a/po/sl.po
+++ b/po/sl.po
@@ -16,6 +16,9 @@ msgstr "Zavrni"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Zahteva za zasebnost"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Stran %d od %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Aplikaciji %1$s omogočite dostop do dovoljenja %2$s."
diff --git a/po/sq.po b/po/sq.po
index bd31e26..5fd3ab1 100755
--- a/po/sq.po
+++ b/po/sq.po
@@ -16,6 +16,9 @@ msgstr "Refuzo"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Kërkesë privatësie"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Faqe %d nga %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Jepi %1$s akses në lejen %2$s."
diff --git a/po/sr.po b/po/sr.po
index f64b001..f1545e0 100755
--- a/po/sr.po
+++ b/po/sr.po
@@ -16,6 +16,9 @@ msgstr "Odbij"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Zahtev za privatnim informacijama"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Strana %d od %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Dozvolite aplikaciji %1$s da pristupi dozvoli %2$s."
diff --git a/po/sv.po b/po/sv.po
index 13e5b3b..0901468 100755
--- a/po/sv.po
+++ b/po/sv.po
@@ -16,6 +16,9 @@ msgstr "Neka"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Sekretessbegäran"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Sida %d av %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Ge %1$s åtkomst till behörighet för %2$s."
diff --git a/po/ta.po b/po/ta.po
index bd4ed9d..0cbda80 100755
--- a/po/ta.po
+++ b/po/ta.po
@@ -16,6 +16,9 @@ msgstr "நிராகரி"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "தனிப்பயன் கோரிக்கை"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "பக்கம் %d-ல் %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%2$s அனுமதிக்கு %1$s அணுகலை அனுமதிக்கவும்."
diff --git a/po/te.po b/po/te.po
index a10725a..9f9a778 100755
--- a/po/te.po
+++ b/po/te.po
@@ -16,6 +16,9 @@ msgstr "తిరస్కరించు"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "గోప్యతా అభ్యర్థన"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d యొక్క %d పేజీ."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%2$s అనుమతిని ప్రాప్యత చేయడానికి %1$sను అనుమతించాలా."
diff --git a/po/tg_TJ.po b/po/tg_TJ.po
index 86ba853..39649d7 100755
--- a/po/tg_TJ.po
+++ b/po/tg_TJ.po
@@ -16,6 +16,9 @@ msgstr "Рад кардан"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Дархости махфият"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Саҳифаи %d аз %d"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Ба %1$s барои дастрас кардани %2$s иҷозат диҳед."
diff --git a/po/th.po b/po/th.po
index 939ee75..fe96893 100755
--- a/po/th.po
+++ b/po/th.po
@@ -16,6 +16,9 @@ msgstr "ไม่"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "การร้องขอความเป็นส่วนตัว"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "หน้าที่ %d ​จาก %d"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "อนุญาต %1$s ให้เข้าถึงการอนุญาต %2$s หรือไม่"
diff --git a/po/tk_TM.po b/po/tk_TM.po
index f720f83..39fc897 100755
--- a/po/tk_TM.po
+++ b/po/tk_TM.po
@@ -16,6 +16,9 @@ msgstr "Ret et"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Gizlinlik haýyşy"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "%d-nyň %d sahypasy"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s %2$s rugsadyna girsin."
diff --git a/po/tl.po b/po/tl.po
index 2a564f7..5928fa7 100755
--- a/po/tl.po
+++ b/po/tl.po
@@ -16,6 +16,9 @@ msgstr "Tanggihan"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Hiling sa privacy"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Pahina %d ng %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Payagan ang %1$s sa pahintulot na %2$s."
diff --git a/po/tr_TR.po b/po/tr_TR.po
index e8c46b2..179ea65 100755
--- a/po/tr_TR.po
+++ b/po/tr_TR.po
@@ -16,6 +16,9 @@ msgstr "Reddet"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Gizlilik isteği"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Sayfa %d / %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s uygulamasına %2$s izni verin."
diff --git a/po/uk.po b/po/uk.po
index d0d6564..5fbab62 100755
--- a/po/uk.po
+++ b/po/uk.po
@@ -16,6 +16,9 @@ msgstr "Заборонити"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Запит на надання конфіденційних даних"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Сторінка %d з %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Надання %1$s доступу до дозволу %2$s."
diff --git a/po/ur.po b/po/ur.po
index ce3b7bd..d0d74e7 100755
--- a/po/ur.po
+++ b/po/ur.po
@@ -16,6 +16,9 @@ msgstr "انکار کریں"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "رازداری کی درخواست"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "صفحہ %d از %d۔"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%2$s کی رسائی کی اجازت کے لیے %1$s کی اجازت دیں۔"
diff --git a/po/uz.po b/po/uz.po
index 0684ab3..5b62da0 100755
--- a/po/uz.po
+++ b/po/uz.po
@@ -16,6 +16,9 @@ msgstr "Rad etish"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Maxfiylik so‘rovi"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Sahifa %d, %ddan."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "%1$s’ga %2$s ruxsatiga kirish uchun ijozat bering."
diff --git a/po/vi.po b/po/vi.po
index 877729e..ef77d82 100755
--- a/po/vi.po
+++ b/po/vi.po
@@ -16,6 +16,9 @@ msgstr "Từ chối"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "Yêu cầu về riêng tư"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "Trang %d của %d."
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "Cho phép %1$s truy cập %2$s."
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 9efb42a..ddbf032 100755
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -16,6 +16,9 @@ msgstr "拒绝"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "隐私请求"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "第 %d 页,共 %d 页。"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "允许%1$s访问%2$s。"
diff --git a/po/zh_HK.po b/po/zh_HK.po
index 0bbda2e..58ab3fb 100755
--- a/po/zh_HK.po
+++ b/po/zh_HK.po
@@ -16,6 +16,9 @@ msgstr "拒絕"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "私隱請求"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "第 %d 頁,共 %d 頁。"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "允許 %1$s 存取%2$s權限。"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 6f060c5..641ed17 100755
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -16,6 +16,9 @@ msgstr "拒絕"
msgid "IDS_IDLE_HEADER_PRIVACY_REQUEST"
msgstr "隱私權要求"
+msgid "IDS_PB_BODY_PAGE_PD_OF_PD"
+msgstr "頁面 %d 為 %d。"
+
msgid "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
msgstr "允許 %1$s 存取 %2$s 權限。"
diff --git a/res/edc/popup_custom.edc b/res/edc/popup_custom.edc
deleted file mode 100644
index 30418d3..0000000
--- a/res/edc/popup_custom.edc
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- *
- */
-
-collections {
- base_scale: 1.3;
-
-
-group { name: "popup_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;
- }
- }
- }
-}
-}
diff --git a/ui/CMakeLists.txt b/ui/CMakeLists.txt
index 43fd6de..cfe9797 100755
--- a/ui/CMakeLists.txt
+++ b/ui/CMakeLists.txt
@@ -1,7 +1,7 @@
INCLUDE(FindPkgConfig)
SET(pkg_name "org.tizen.askuser-popup")
-pkg_check_modules(${pkg_name} REQUIRED glib-2.0 evas elementary edje eina efl-extension security-privilege-manager dlog capi-appfw-app-control bundle capi-appfw-app-manager capi-appfw-application pkgmgr-info)
+pkg_check_modules(${pkg_name} REQUIRED glib-2.0 evas elementary edje eina efl-extension security-privilege-manager dlog capi-appfw-app-control bundle capi-appfw-app-manager capi-appfw-application pkgmgr-info capi-privacy-privilege-manager capi-system-device)
SET(SRCS
${CMAKE_SOURCE_DIR}/common/src/common_utils.c
diff --git a/ui/src/app_main.c b/ui/src/app_main.c
index aa22d71..e8e57dc 100644
--- a/ui/src/app_main.c
+++ b/ui/src/app_main.c
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2019-2020 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.
@@ -20,12 +20,10 @@
* @brief
*/
-#include <libintl.h>
-#include <efl_extension.h>
#include <app_info.h>
+#include <app_manager.h>
#include <bundle.h>
#include <bundle_internal.h>
-#include <glib.h>
#include "common_utils.h"
#include "view.h"
@@ -76,21 +74,7 @@ static bool app_create(void * data)
return true;
}
-// TODO: remove clone
-// -> There's no response request from caller app so no need to save app-control
-static void __app_control_clone(app_control_h *clone, app_control_h app_control)
-{
- if (*clone)
- app_control_destroy(*clone);
- int ret = app_control_clone(clone, app_control);
- if (ret != APP_CONTROL_ERROR_NONE)
- LOGE("app_control_clone failed. ret = %d", ret);
- else
- LOGD("app control cloned");
-
- return;
-}
-
+//TODO: remove when implementation is done
void print_all(const char *k, const char *v, void *data)
{
LOGD("%s -> %s ", k, v);
@@ -102,78 +86,87 @@ static void app_control(app_control_h app_control, void *data)
/* Handle the launch request. */
app_data_s *ad = (app_data_s *)data;
int ret = 0;
- ad->launch_type = NULL;
- char* caller_appid = NULL;
- __app_control_clone(&(ad->caller), app_control);
+ char* caller_appid = NULL;
+ ret = app_control_get_caller(app_control, &caller_appid);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ LOGE("app_control_get_caller() failed. Can't get caller info. Terminate.");
+ ui_app_exit();
+ }
- app_control_get_caller(ad->caller, &caller_appid);
+ LOGD("caller appid = %s", caller_appid);
- if (caller_appid != NULL) {
- LOGD("launched by aul_forward_app()");
+ app_info_h app_info;
+ ret = app_info_create(caller_appid, &app_info);
+ free(caller_appid);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ LOGE("app_info_create() failed. ret = %d", ret);
+ ui_app_exit();
+ }
- app_info_h app_info;
- app_info_create(caller_appid, &app_info);
- app_info_get_package(app_info, &(ad->caller_pkgid));
- app_info_destroy(app_info);
- free(caller_appid);
- if (ad->caller_pkgid) {
- LOGD("caller_pkgid = %s", ad->caller_pkgid);
- } else {
- LOGE("Failed to get caller_pkgid");
- //TODO: Error notification for askuser?
- ui_app_exit();
- }
+ ret = app_info_get_package(app_info, &(ad->caller_pkgid));
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ LOGE("app_info_get_package() failed. ret = %d", ret);
+ ui_app_exit();
+ }
- bundle *b = NULL;
+ if (ad->caller_pkgid == NULL) {
+ LOGE("Failed to get caller_pkgid");
+ ui_app_exit();
+ }
- app_control_to_bundle(app_control, &b);
+ bundle *b = NULL;
- bundle_iterate(b, print_all, NULL); //TODO: remove or comment it
+ ret = app_control_to_bundle(app_control, &b);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ LOGE("caller pkgid [%s]: app_control_to_bundle() failed. ret = %d", ad->caller_pkgid, ret);
+ ui_app_exit();
+ }
- const char* launch_type = bundle_get_val(b, "launch_type");
- ad->launch_type = strdup(launch_type);
- if (!ad->launch_type) {
- LOGE("Failed to get launch_type");
- //TODO: Error notification for askuser?
- ui_app_exit();
- } else if (strcmp(ad->launch_type, "multi") && strcmp(ad->launch_type, "single")) {
- LOGE("Unknown launch_type = %s", ad->launch_type);
- //TODO: Error notification for askuser?
- ui_app_exit();
- }
+ //bundle_iterate(b, print_all, NULL); //TODO: remove or comment it when implementation is done
- const char** privacy_list = bundle_get_str_array(b, "privacy_list", &ad->privacy_num);
- ad->all_responded = false;
- ad->privacy_idx = 0;
- LOGD("privacy num = %d", ad->privacy_num);
- int i = 0;
- for (i = 0; i < ad->privacy_num; ++i) {
- LOGD("privacy_list: %s", privacy_list[i]);
- privacy_data_s *pd = new_privacy_data();
- pd->privacy = strdup(privacy_list[i]);
- pd->response = NULL;
- pd->user_responsed = false;
- ad->privacy_list = g_list_append(ad->privacy_list, pd);
- }
+ size_t popup_id_size;
+ int *popup_id;
+ ret = bundle_get_byte(b, "popup_id", (void**)&popup_id, &popup_id_size);
+ if (ret == BUNDLE_ERROR_NONE) {
+ ad->popup_id = *popup_id;
+ LOGD("popup_id = %d", *popup_id);
} else {
- LOGD("launched by app_launcher");
- ad->caller_pkgid = strdup("org.tizen.chromium-efl");
+ LOGE("caller pkgid [%s]: bundle_get_byte() failed. ret = %d", ad->caller_pkgid, ret);
+ ui_app_exit();
+ }
+
+ int privacy_num = 0;
+ const char** privacy_list = bundle_get_str_array(b, "privacy_list", &privacy_num);
+ if (privacy_list == NULL) {
+ LOGE("caller pkgid [%s]: key 'privacy_list' not found.", ad->caller_pkgid);
+ ui_app_exit();
+ }
+ if (privacy_num < 1) {
+ LOGE("caller_pkgid [%s]: key 'privacy_list' len: %d < 1", ad->caller_pkgid, ad->privacy_num);
+ ui_app_exit();
+ }
+
+ ad->privacy_num = privacy_num;
+ LOGD("privacy num = %d", ad->privacy_num);
+ int i = 0;
+ for (i = 0; i < ad->privacy_num; ++i) {
+ LOGD("privacy_list: %s", privacy_list[i]);
privacy_data_s *pd = new_privacy_data();
- pd->privacy = strdup("http://tizen.org/privacy/account");
- pd->response = NULL;
- pd->user_responsed = false;
- ad->privacy_list = g_list_append(ad->privacy_list, pd);
- pd = new_privacy_data();
- pd->privacy = strdup("http://tizen.org/privacy/call");
- pd->response = NULL;
- pd->user_responsed = false;
+ pd->privacy = strdup(privacy_list[i]);
ad->privacy_list = g_list_append(ad->privacy_list, pd);
- ad->privacy_num = 2;
+ }
+
+ if (ad->privacy_num > 1) {
+ ad->launch_type = strdup("multi");
+ } else {
ad->launch_type = strdup("single");
- ad->all_responded = false;
- ad->privacy_idx = 0;
+ }
+
+ if (!ad->launch_type) {
+ LOGE("caller pkgid [%s]: strdup of 'launch_type' failed.", ad->caller_pkgid);
+ ui_app_exit();
}
LOGD("launch_type : %s", ad->launch_type);
@@ -190,17 +183,39 @@ static void app_resume(void *data)
LOGD("app_resume()");
/* Take necessary actions when application becomes visible. */
}
+
static void app_terminate(void *data)
{
LOGD("app_terminate()");
+
app_data_s *ad = (app_data_s*)data;
- if (!ad->all_responded) {
- while (ad->privacy_idx < ad->privacy_num) {
- send_response("deny_once", ad);
- ad->privacy_idx++;
+ int ret = 0;
+
+ if (ad->privacy_idx == 0) {
+ LOGD("no responses");
+ ret = ppm_popup_send_response(ad->popup_id, NULL, NULL, 0);
+ } else {
+ char *privacies[ad->privacy_idx];
+ ppm_popup_response_e responses[ad->privacy_idx];
+
+ int i = 0;
+ for (i = 0; i < ad->privacy_idx; ++i) {
+ privacy_data_s *pd = (privacy_data_s*)g_list_nth_data(ad->privacy_list, i);
+ if (pd->user_responsed) {
+ privacies[i] = strdup(pd->privacy);
+ responses[i] = pd->response;
+ } else {
+ break;
+ }
}
+ ret = ppm_popup_send_response(ad->popup_id, (const char**)privacies, responses, i);
}
+
+ if (ret != PRIVACY_PRIVILEGE_MANAGER_ERROR_NONE)
+ LOGE("ppm_popup_send_response() failed. ret = %d", ret);
+
free_app_data(ad);
+
LOGD("app_terminate() end");
}
@@ -223,6 +238,7 @@ int main(int argc, char *argv[])
int ret = 0;
app_data_s ad;
memset(&ad, 0x0, sizeof(app_data_s));
+ init_app_data(&ad);
ui_app_lifecycle_callback_s event_callback = {0, };
app_event_handler_h handlers[2] = {NULL, };
diff --git a/ui/src/popup.c b/ui/src/popup.c
index e35ffd5..b3efb54 100644
--- a/ui/src/popup.c
+++ b/ui/src/popup.c
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2019-2020 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.
@@ -21,49 +21,38 @@
*/
#define _GNU_SOURCE
-#include <efl_extension.h>
-#include <glib.h>
#include "common_utils.h"
#include "view.h"
-#include <glib.h>
-#include <string.h>
+
#include <app_control_internal.h>
-#include <stdio.h>
#include <privilege_info.h>
#include <pkgmgr-info.h>
+#include <device/display.h>
#define OK_BUTTON_PATH "/usr/apps/org.tizen.askuser-popup/res/button/tw_ic_popup_btn_check.png"
#define CANCEL_BUTTON_PATH "/usr/apps/org.tizen.askuser-popup/res/button/tw_ic_popup_btn_delete.png"
-#define CUSTOM_EDJE_PATH "/usr/apps/org.tizen.askuser-popup/res/edje/popup_custom.edj"
-
#define MSG_OK_BUTTON "IDS_IDLE_BUTTON_ALLOW_ABB7"
#define MSG_CANCEL_BUTTON "IDS_IDLE_BUTTON_DENY"
#define MSG_POPUP_TITLE "IDS_IDLE_HEADER_PRIVACY_REQUEST"
#define MSG_POPUP_TEXT "WDS_TPLATFORM_POP_ALLOW_P1SS_ACCESS_TO_P2SS_PERMISSION"
#define MSG_POPUP_CHECKBOX "IDS_CLOCK_BODY_DONT_REPEAT_ABB"
+#define AO_MSG_COUNTER "IDS_PB_BODY_PAGE_PD_OF_PD"
#define LABEL_PADDING "<br>"
#define AO_LABEL_PADDING " ..."
#define TEXT_DOMAIN "askuser-popup"
-#define COUNTER_LEN 26
-
-void send_response(const char *response, app_data_s *ad) //TODO: change to enum?
+void save_response(ppm_popup_response_e response, app_data_s *ad)
{
- //TODO: send response for privacy, pkgid, response
- //privacy_data_s *pd = (privacy_data_s *)g_list_nth_data(ad->privacy_list, ad->privacy_idx);
- //(const char*)pd->privacy, ad->caller_pkgid, response
- //pd->user_responsed = true;
- //pd->response ...
- //TBD: should we store all responses? it depends on whether to return at once or return for each response?
- LOGD("send response: %s", response);
+ privacy_data_s *pd = (privacy_data_s *)g_list_nth_data(ad->privacy_list, ad->privacy_idx);
+ pd->response = response;
+ pd->user_responsed = true;
}
-
static char* __get_privacy_display(const char* privacy)
{
int ret = 0;
@@ -72,15 +61,9 @@ static char* __get_privacy_display(const char* privacy)
if (ret == PRVMGR_ERR_NONE && privacy_display != NULL)
return privacy_display;
else
- LOGE("privilege_info_get_privacy_display() failed. ret = %d, privacy_display = %s", ret, privacy_display);
+ LOGE("privilege_info_get_privacy_display() failed. ret = %d, privacy = %s", ret, privacy);
- return NULL;
-}
-
-static char* __accessible_content_name_cb(void *data, Evas_Object *obj)
-{
- Evas_Object *content = (Evas_Object*)data;
- return strdup(elm_object_text_get(content));
+ return "";
}
static char* __make_message(const char* format, const char* pkg_label, const char* privacy)
@@ -90,41 +73,121 @@ static char* __make_message(const char* format, const char* pkg_label, const cha
ret = asprintf(&message, dgettext(TEXT_DOMAIN, format), pkg_label, privacy);
if (ret == -1)
- LOGE("asprintf failed");
-
- LOGD("message : %s", message);
+ LOGE("asprintf() of message failed");
- return message;
+ if (message != NULL) {
+ LOGD("message : %s", message);
+ return message;
+ }
+ return "";
}
static char* __get_pkg_label(const char* pkgid)
{
- pkgmgrinfo_pkginfo_h handle;
+ pkgmgrinfo_pkginfo_h handle = NULL;
char* label = NULL;
+ char* pkg_label = NULL;
+
+ int ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+ if (ret != PMINFO_R_OK)
+ LOGE("pkgmgrinfo_pkginfo_get_pkginfo() failed. ret = %d", ret);
+
+ ret = pkgmgrinfo_pkginfo_get_label(handle, &label);
+ if (ret != PMINFO_R_OK)
+ LOGE("pkgmgrinfo_pkginfo_get_label() failed. ret = %d", ret);
+
+ if (label != NULL)
+ pkg_label = strdup(label);
- pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
- pkgmgrinfo_pkginfo_get_label(handle, &label);
- char* pkg_label = strdup(label);
- pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+ if (handle != NULL)
+ pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
- return pkg_label;
+ if (pkg_label != NULL)
+ return pkg_label;
+
+ return "";
}
-static char* __get_message(const char* pkgid, const char* privacy)
+static char* __get_accessible_counter(int idx, int num)
+{
+ char* counter = NULL;
+ int ret = 0;
+ char* format = AO_MSG_COUNTER;
+
+ ret = asprintf(&counter, dgettext(TEXT_DOMAIN, format), idx, num);
+ if (ret == -1)
+ LOGE("asprintf() of counter failed");
+
+ if (counter != NULL)
+ return counter;
+ return "";
+}
+
+static char* __get_popup_contents(const char* pkgid, const char* privacy,
+ int idx, __attribute__((unused)) int num,
+ __attribute__((unused)) bool is_accessible)
{
LOGD("__get_message(%s, %s)", pkgid, privacy);
- return __make_message(MSG_POPUP_TEXT, __get_pkg_label(pkgid), __get_privacy_display(privacy));
+ char* message = __make_message(MSG_POPUP_TEXT, __get_pkg_label(pkgid), __get_privacy_display(privacy));
+ if (idx == -1)
+ return message;
+
+ char* counter_message = NULL;
+ int ret = 0;
+
+ if (is_accessible) {
+ ret = asprintf(&counter_message, "%s%s%s%s",
+ message, AO_LABEL_PADDING, AO_LABEL_PADDING, __get_accessible_counter(idx, num));
+ } else {
+ ret = asprintf(&counter_message, "%s%s%s%d / %d",
+ message, LABEL_PADDING, LABEL_PADDING, idx, num);
+ }
+
+ free(message);
+
+ if (ret == -1)
+ LOGE("asprintf() of counter_message failed");
+
+ if (counter_message != NULL) {
+ LOGD("message with counter : %s", counter_message);
+ return counter_message;
+ }
+ return "";
}
+
static void __set_popup_contents(app_data_s *ad)
{
privacy_data_s *pd = (privacy_data_s *)g_list_nth_data(ad->privacy_list, ad->privacy_idx);
- elm_object_text_set(ad->label, __get_message(ad->caller_pkgid, (const char*)pd->privacy));
- elm_atspi_accessible_name_set(ad->label, __get_message(ad->caller_pkgid, (const char*)pd->privacy));
- if (!strcmp(ad->launch_type, "multi")) {
- char counter[COUNTER_LEN];
- int ret = sprintf(counter, "%d / %d", (ad->privacy_idx) + 1, ad->privacy_num);
- LOGD("counter %s", counter);
- elm_object_text_set(ad->counter, counter);
+
+ char* contents = NULL;
+ char* ao_contents = NULL;
+ if (!strcmp(ad->launch_type, "single")) {
+ contents = __get_popup_contents(ad->caller_pkgid, (const char*)pd->privacy, -1, -1, false);
+ ao_contents = __get_popup_contents(ad->caller_pkgid, (const char*)pd->privacy, -1, -1, true);
+ } else if (!strcmp(ad->launch_type, "multi")) {
+ contents = __get_popup_contents(ad->caller_pkgid, (const char*)pd->privacy, (ad->privacy_idx) + 1, ad->privacy_num, false);
+ ao_contents = __get_popup_contents(ad->caller_pkgid, (const char*)pd->privacy, (ad->privacy_idx) + 1, ad->privacy_num, true);
+ }
+
+ elm_object_part_text_set(ad->layout, "elm.text", contents);
+ elm_atspi_accessible_name_set(ad->ao_contents, ao_contents);
+ elm_atspi_component_highlight_grab(ad->ao_contents);
+
+ free(contents);
+ free(ao_contents);
+}
+
+static char* __get_accessible_popup_contents_cb(void *data, Evas_Object *obj)
+{
+ app_data_s *ad = (app_data_s*)data;
+ privacy_data_s *pd = (privacy_data_s *)g_list_nth_data(ad->privacy_list, ad->privacy_idx);
+ elm_atspi_component_highlight_grab(ad->ao_contents);
+ if (!strcmp(ad->launch_type, "single")) {
+ return __get_popup_contents(ad->caller_pkgid, (const char*)pd->privacy, -1, -1, true);
+ } else if (!strcmp(ad->launch_type, "multi")) {
+ return __get_popup_contents(ad->caller_pkgid, (const char*)pd->privacy, (ad->privacy_idx) + 1, ad->privacy_num, true);
+ } else {
+ return "";
}
}
@@ -144,7 +207,7 @@ static void __allow_response_cb(void *data, Evas_Object *obj, void *event_info)
{
LOGD("allow response");
app_data_s *ad = (app_data_s *)data;
- send_response("allow", ad);
+ save_response(PRIVACY_PRIVILEGE_MANAGER_POPUP_RESPONSE_ALLOW_FOREVER, ad);
__check_next_privacy(ad);
if (ad->all_responded)
ui_app_exit();
@@ -154,7 +217,7 @@ static void __deny_response_cb(void *data, Evas_Object *obj, void *event_info)
{
LOGD("deny response");
app_data_s *ad = (app_data_s *)data;
- send_response("deny_once", ad);
+ save_response(PRIVACY_PRIVILEGE_MANAGER_POPUP_RESPONSE_DENY_ONCE, ad);
__check_next_privacy(ad);
if (ad->all_responded)
ui_app_exit();
@@ -170,29 +233,39 @@ static void __lang_changed_cb(void *data, Evas_Object *obj, void *event_info)
}
-Eina_Bool __hw_key_clicked_cb(void *data, int type, void *event)
+Eina_Bool __hw_key_clicked_cb(void *data, int type, void *event_info)
{
- Ecore_Event_Key *ev = (Ecore_Event_Key*)event;
+ Ecore_Event_Key *ev = (Ecore_Event_Key*)event_info;
ALOGD("HW key clicked. type <%d> pressed key is <%s>", type, ev->key);
if (!strcmp(ev->key, "XF86PowerOff") || !strcmp(ev->key, "XF86Back")) {
- LOGD("deny response");
- app_data_s *ad = (app_data_s *)data;
- while (ad->privacy_idx < ad->privacy_num) {
- send_response("deny_once", ad);
- ad->privacy_idx++;
- }
- ad->all_responded = true;
ui_app_exit();
}
return EINA_TRUE;
}
+void __unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ LOGD("unfocused cb");
+ display_state_e state;
+ int ret = device_display_get_state(&state);
+ if (ret != DEVICE_ERROR_NONE) {
+ LOGE("device_display_get_state() failed. ret = %d", ret);
+ ui_app_exit();
+ }
+ if (state != DISPLAY_STATE_SCREEN_OFF) {
+ LOGD("display on and unfocused. terminate popup.");
+ ui_app_exit();
+ }
+}
+
void create_view(app_data_s *ad)
{
LOGD("popup launched");
Evas_Object *icon = NULL;
+ evas_object_smart_callback_add(ad->win, "unfocused", __unfocused_cb, ad);
+
/* Popup */
ad->popup = elm_popup_add(ad->win);
elm_object_style_set(ad->popup, "circle");
@@ -215,39 +288,15 @@ void create_view(app_data_s *ad)
elm_layout_theme_set(ad->layout, "layout", "popup", "content/circle/buttons2");
elm_object_content_set(ad->scroller, ad->layout);
- if (!strcmp(ad->launch_type, "multi")) { /* Multi : Use custom edje for inner layout */
- LOGD("draw multi popup");
- ad->inner_layout = elm_layout_add(ad->layout);
- elm_layout_file_set(ad->inner_layout, CUSTOM_EDJE_PATH, "popup_internal");
- evas_object_size_hint_weight_set(ad->inner_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_part_content_set(ad->layout, "elm.swallow.content", ad->inner_layout);
-
- ad->label = elm_label_add(ad->inner_layout);
- elm_object_part_content_set(ad->inner_layout, "elm.swallow.content", ad->label);
-
- ad->counter = elm_label_add(ad->inner_layout);
- elm_object_style_set(ad->counter, "popup/default");
- elm_label_line_wrap_set(ad->counter, ELM_WRAP_MIXED);
- elm_atspi_accessible_reading_info_type_set(ad->counter, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
- evas_object_size_hint_weight_set(ad->counter, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_part_content_set(ad->inner_layout, "elm.privilege_counter", ad->counter);
- evas_object_size_hint_align_set(ad->counter, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_show(ad->counter);
- } else { /* Single */
- ad->label = elm_label_add(ad->layout);
- elm_object_part_content_set(ad->layout, "elm.swallow.content", ad->label);
- }
+ ad->ao_contents = elm_access_object_register((Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(ad->layout), "elm.text"), ad->layout);
+ elm_atspi_accessible_reading_info_type_set(ad->ao_contents, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
+ elm_atspi_accessible_can_highlight_set(ad->ao_contents, EINA_TRUE);
- elm_object_style_set(ad->label, "popup/default");
- elm_label_line_wrap_set(ad->label, ELM_WRAP_MIXED);
- elm_atspi_accessible_reading_info_type_set(ad->label, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
- evas_object_size_hint_weight_set(ad->label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(ad->label, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_smart_callback_add(ad->label, "language,changed", __lang_changed_cb, ad);
+ evas_object_smart_callback_add(ad->layout, "language,changed", __lang_changed_cb, ad);
ecore_event_handler_add(ECORE_EVENT_KEY_UP, __hw_key_clicked_cb, ad);
elm_atspi_accessible_reading_info_type_set(ad->popup, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
- elm_atspi_accessible_name_cb_set(ad->popup, __accessible_content_name_cb, ad->label);
+ elm_atspi_accessible_name_cb_set(ad->popup, __get_accessible_popup_contents_cb, ad);
eext_rotary_object_event_activated_set(ad->eext_scroller, EINA_TRUE);