diff options
28 files changed, 102 insertions, 334 deletions
diff --git a/res/layout/permissions_frame.xml b/res/layout/permissions_frame.xml new file mode 100644 index 00000000..e70aaf63 --- /dev/null +++ b/res/layout/permissions_frame.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2015 The Android Open Source Project + + 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. +--> + +<FrameLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" > + + <TextView + android:id="@+id/no_permissions" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:text="@string/no_permissions" + android:gravity="center" + android:textAppearance="@android:style/TextAppearance.Large" + /> + +</FrameLayout> diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index 75d32a8a..a2e3d4c0 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Отказване"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g> от <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"Ще разрешите ли на <xliff:g id="APP_NAME">%1$s</xliff:g> да <xliff:g id="ACTION">%2$s</xliff:g>?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Разрешения за приложения"</string> + <string name="never_ask_again" msgid="3798895821072102967">"Никога вече да не се извежда запитване"</string> </resources> diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 0b2092bd..f451703c 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Denega"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g> de <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"Vols permetre que <xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="ACTION">%2$s</xliff:g>?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Permisos de l\'aplicació"</string> + <string name="never_ask_again" msgid="3798895821072102967">"No el tornis a demanar"</string> </resources> diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index 9e4879d1..1348ee6f 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Afvis"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g> ud af <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"Vil du give <xliff:g id="APP_NAME">%1$s</xliff:g> lov til at <xliff:g id="ACTION">%2$s</xliff:g>?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Apptilladelser"</string> + <string name="never_ask_again" msgid="3798895821072102967">"Spørg ikke igen"</string> </resources> diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml index 9fad230a..3620818e 100644 --- a/res/values-et-rEE/strings.xml +++ b/res/values-et-rEE/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Keelamine"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g>/<xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>-st"</string> <string name="permission_warning_template" msgid="5209102765005869454">"Kas lubada rakendusele <xliff:g id="APP_NAME">%1$s</xliff:g> toiming <xliff:g id="ACTION">%2$s</xliff:g>?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Rakenduse load"</string> + <string name="never_ask_again" msgid="3798895821072102967">"Ära enam küsi"</string> </resources> diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index 9966eba3..c6fd778b 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Estä"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g>/<xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"Onko sovelluksella <xliff:g id="APP_NAME">%1$s</xliff:g> lupa <xliff:g id="ACTION">%2$s</xliff:g>?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Sovelluksen käyttöoikeudet"</string> + <string name="never_ask_again" msgid="3798895821072102967">"Älä kysy enää koskaan"</string> </resources> diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index b9ed5e45..f03568f0 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -25,7 +25,7 @@ <string name="unknown" msgid="4742479012767208045">"Nepoznato"</string> <string name="installing" msgid="8613631001631998372">"Instaliranje..."</string> <string name="install_done" msgid="3682715442154357097">"Aplikacija je instalirana."</string> - <string name="install_confirm_question" msgid="7295206719219043890">"Želite li instalirati ovu aplikaciju? Aplikacija će dobiti pristup sljedećem:"</string> + <string name="install_confirm_question" msgid="7295206719219043890">"Želite li instalirati ovu aplikaciju? Aplikacija će moći sljedeće:"</string> <string name="install_confirm_question_no_perms" msgid="5918305641302873520">"Želite li instalirati ovu aplikaciju? Aplikacija ne zahtijeva nikakav poseban pristup."</string> <string name="install_confirm_question_update" msgid="4624159567361487964">"Želite li instalirati ažuriranje postojeće aplikacije? Vaši postojeći podaci neće biti izgubljeni. Ažurirana aplikacija dobit će pristup sljedećem:"</string> <string name="install_confirm_question_update_system" msgid="1302330093676416336">"Želite li instalirati ažuriranje za ovu ugrađenu aplikaciju? Vaši postojeći podaci neće biti izgubljeni. Ažurirana aplikacija dobit će pristup sljedećem:"</string> diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml index 745af163..41624bd5 100644 --- a/res/values-hy-rAM/strings.xml +++ b/res/values-hy-rAM/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Մերժել"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g>-ը <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>-ից"</string> <string name="permission_warning_template" msgid="5209102765005869454">"Թույլատրե՞լ <xliff:g id="APP_NAME">%1$s</xliff:g>-ին <xliff:g id="ACTION">%2$s</xliff:g>:"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Հավելվածների թույլտվությունները"</string> + <string name="never_ask_again" msgid="3798895821072102967">"Այլևս երբեք չհարցնել"</string> </resources> diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml index d6a9fb65..5600a5f0 100644 --- a/res/values-ka-rGE/strings.xml +++ b/res/values-ka-rGE/strings.xml @@ -92,8 +92,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"უარყოფა"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g> სულ <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>-დან"</string> <string name="permission_warning_template" msgid="5209102765005869454">"აძლევთ ნებას აპს <xliff:g id="APP_NAME">%1$s</xliff:g> შეასრულოს <xliff:g id="ACTION">%2$s</xliff:g>?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"აპის უფლებები"</string> + <string name="never_ask_again" msgid="3798895821072102967">"აღარასოდეს შემეკითხოს"</string> </resources> diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml index a908a2db..5362d7da 100644 --- a/res/values-kk-rKZ/strings.xml +++ b/res/values-kk-rKZ/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Қабылдамау"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>/<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"<xliff:g id="APP_NAME">%1$s</xliff:g> қолданбасына <xliff:g id="ACTION">%2$s</xliff:g> рұқсатын бересіз бе?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Қолданба рұқсаттары"</string> + <string name="never_ask_again" msgid="3798895821072102967">"Қайтадан сұрамау"</string> </resources> diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml index 7a604637..635e6689 100644 --- a/res/values-km-rKH/strings.xml +++ b/res/values-km-rKH/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"បដិសេធ"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g> នៃ <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"អនុញ្ញាតឲ្យ <xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="ACTION">%2$s</xliff:g>?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"សិទ្ធិកម្មវិធី"</string> + <string name="never_ask_again" msgid="3798895821072102967">"កុំសួរទៀត"</string> </resources> diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index b232132a..5e512d87 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"거부"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g>/<xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"<xliff:g id="APP_NAME">%1$s</xliff:g>의 <xliff:g id="ACTION">%2$s</xliff:g> 작업 수행을 허용하시겠습니까?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"앱 권한"</string> + <string name="never_ask_again" msgid="3798895821072102967">"다시 묻지 않기"</string> </resources> diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml index 22070aa0..f1c738fb 100644 --- a/res/values-ky-rKG/strings.xml +++ b/res/values-ky-rKG/strings.xml @@ -109,8 +109,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Жок"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="PERMISSION_COUNT">%2$s</xliff:g> ичинен <xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"<xliff:g id="APP_NAME">%1$s</xliff:g> үчүн <xliff:g id="ACTION">%2$s</xliff:g> уруксатпы?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Колдонмо уруксаттары"</string> + <string name="never_ask_again" msgid="3798895821072102967">"Экинчи сураба"</string> </resources> diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 1fb412f2..1518d206 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Neatļaut"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g>. no <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"Vai atļaut lietotnei <xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="ACTION">%2$s</xliff:g>?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Lietotnes atļaujas"</string> + <string name="never_ask_again" msgid="3798895821072102967">"Vairs nejautāt"</string> </resources> diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml index 00fe67f3..b5a0498f 100644 --- a/res/values-mk-rMK/strings.xml +++ b/res/values-mk-rMK/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Одбиј"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g> од <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"Дозволете <xliff:g id="APP_NAME">%1$s</xliff:g> да <xliff:g id="ACTION">%2$s</xliff:g>?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Дозволи за апликацијата"</string> + <string name="never_ask_again" msgid="3798895821072102967">"Никогаш не прашувај повторно"</string> </resources> diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml index 9d5ddc5b..21dd0064 100644 --- a/res/values-ms-rMY/strings.xml +++ b/res/values-ms-rMY/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Tolak"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g> daripada <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"Benarkan <xliff:g id="APP_NAME">%1$s</xliff:g> untuk <xliff:g id="ACTION">%2$s</xliff:g>?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Kebenaran apl"</string> + <string name="never_ask_again" msgid="3798895821072102967">"Jangan tanya lagi"</string> </resources> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index c5fa44f5..ff713cf4 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Отклонить"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g> из <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"Разрешить приложению \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" <xliff:g id="ACTION">%2$s</xliff:g>?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Разрешения для приложений"</string> + <string name="never_ask_again" msgid="3798895821072102967">"Больше не запрашивать"</string> </resources> diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 5784bfaa..e9df078b 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Reddet"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g> / <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"<xliff:g id="APP_NAME">%1$s</xliff:g> uygulamasına <xliff:g id="ACTION">%2$s</xliff:g> izni verilsin mi?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Uygulama izinleri"</string> + <string name="never_ask_again" msgid="3798895821072102967">"Bir daha sorma"</string> </resources> diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml index ca3be651..ab4fc8ec 100644 --- a/res/values-ur-rPK/strings.xml +++ b/res/values-ur-rPK/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"مسترد کریں"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g> از <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"<xliff:g id="APP_NAME">%1$s</xliff:g> کو <xliff:g id="ACTION">%2$s</xliff:g> کی اجازت دیں؟"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"ایپ کی اجازتیں"</string> + <string name="never_ask_again" msgid="3798895821072102967">"دوبارہ کبھی نہ پوچھیں"</string> </resources> diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml index a7bcf3cc..7e6c929b 100644 --- a/res/values-uz-rUZ/strings.xml +++ b/res/values-uz-rUZ/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"Rad etish"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g> / <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasiga <xliff:g id="ACTION">%2$s</xliff:g> uchun ruxsat berilsinmi?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"Ilova ruxsatnomalari"</string> + <string name="never_ask_again" msgid="3798895821072102967">"Boshqa so‘ralmasin"</string> </resources> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index c7f2a5f9..06dd0dc7 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"拒绝"</string> <string name="current_permission_template" msgid="6378304249516652817">"第 <xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g> 项权限(共 <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g> 项)"</string> <string name="permission_warning_template" msgid="5209102765005869454">"要允许<xliff:g id="APP_NAME">%1$s</xliff:g><xliff:g id="ACTION">%2$s</xliff:g>吗?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"应用权限"</string> + <string name="never_ask_again" msgid="3798895821072102967">"不再询问"</string> </resources> diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml index a178b5d5..e169852f 100644 --- a/res/values-zh-rHK/strings.xml +++ b/res/values-zh-rHK/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"拒絕"</string> <string name="current_permission_template" msgid="6378304249516652817">"第 <xliff:g id="PERMISSION_COUNT">%2$s</xliff:g> 個 (共 <xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g> 個)"</string> <string name="permission_warning_template" msgid="5209102765005869454">"允許 <xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="ACTION">%2$s</xliff:g>嗎?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"應用程式權限"</string> + <string name="never_ask_again" msgid="3798895821072102967">"不再要求輸入"</string> </resources> diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index f67fc55b..cabc0d1d 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -91,8 +91,6 @@ <string name="grant_dialog_button_deny" msgid="2176510645406614340">"拒絕"</string> <string name="current_permission_template" msgid="6378304249516652817">"<xliff:g id="CURRENT_PERMISSION_INDEX">%1$s</xliff:g>/<xliff:g id="PERMISSION_COUNT">%2$s</xliff:g>"</string> <string name="permission_warning_template" msgid="5209102765005869454">"要允許「<xliff:g id="APP_NAME">%1$s</xliff:g>」<xliff:g id="ACTION">%2$s</xliff:g>嗎?"</string> - <!-- no translation found for app_permissions (3146758905824597178) --> - <skip /> - <!-- no translation found for never_ask_again (3798895821072102967) --> - <skip /> + <string name="app_permissions" msgid="3146758905824597178">"應用程式權限"</string> + <string name="never_ask_again" msgid="3798895821072102967">"不要再詢問我"</string> </resources> diff --git a/res/values/strings.xml b/res/values/strings.xml index 52fe050d..3bd5ed8c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -203,4 +203,7 @@ request again --> <string name="never_ask_again">Never ask again</string> + <!-- Label when app requests no permissions --> + <string name="no_permissions">No permissions</string> + </resources> diff --git a/src/com/android/packageinstaller/GrantActivity.java b/src/com/android/packageinstaller/GrantActivity.java deleted file mode 100644 index 3664fc00..00000000 --- a/src/com/android/packageinstaller/GrantActivity.java +++ /dev/null @@ -1,247 +0,0 @@ -/* -** Copyright 2013, The Android Open Source Project -** -** 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. -*/ - -package com.android.packageinstaller; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.content.pm.PackageManager.NameNotFoundException; -import android.content.pm.PermissionInfo; -import android.os.Bundle; -import android.os.UserHandle; -import android.support.v4.view.ViewPager; -import android.util.Slog; -import android.util.SparseArray; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.AppSecurityPermissions; -import android.widget.Button; -import android.widget.TabHost; -import android.widget.TextView; - -/* - * The activity which is responsible for asking the user to grant permissions - * to applications. - */ -public class GrantActivity extends Activity implements OnClickListener { - private static final String LOG_TAG = "GrantActivity"; - - private static final int PERMISSION_GRANTED = 1; - private static final int PERMISSION_DENIED = 2; - private static final int PERMISSION_DENIED_RUNTIME = 3; - - private String[] mRequestedPermissions; - private int[] mGrantResults; - private final SparseArray<String> mRequestedRuntimePermissions = new SparseArray<>(); - - private PackageManager mPm; - - private Button mOk; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - - mPm = getPackageManager(); - - mRequestedPermissions = getIntent().getStringArrayExtra( - PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES); - if (mRequestedPermissions == null) { - mRequestedPermissions = new String[0]; - } - - mGrantResults = new int[mRequestedPermissions.length]; - - final int requestedPermCount = mRequestedPermissions.length; - if (requestedPermCount == 0) { - setResultAndFinish(); - return; - } - - for (int i = 0; i < requestedPermCount; i++) { - String permission = mRequestedPermissions[i]; - final int state = computePermissionGrantState(permission); - switch (state) { - case PERMISSION_GRANTED: { - mGrantResults[i] = PackageManager.PERMISSION_GRANTED; - } break; - - case PERMISSION_DENIED: { - mGrantResults[i] = PackageManager.PERMISSION_DENIED; - } break; - - case PERMISSION_DENIED_RUNTIME: { - mGrantResults[i] = PackageManager.PERMISSION_DENIED; - mRequestedRuntimePermissions.put(i, permission); - } break; - } - } - - PackageInfo pkgInfo = getUpdatedPackageInfo(); - AppSecurityPermissions perms = new AppSecurityPermissions(this, pkgInfo); - - if (perms.getPermissionCount(AppSecurityPermissions.WHICH_NEW) == 0) { - setResultAndFinish(); - return; - } - - setContentView(R.layout.install_start); - bindUi(pkgInfo, perms); - } - - @Override - public void onClick(View v) { - if (v == mOk) { - grantRequestedPermissions(); - } - setResultAndFinish(); - } - - private void bindUi(PackageInfo pkgInfo, AppSecurityPermissions perms) { - TextView confirmMessage = (TextView)findViewById(R.id.install_confirm_question); - confirmMessage.setText(R.string.grant_confirm_question); - - PackageUtil.AppSnippet as = new PackageUtil.AppSnippet( - mPm.getApplicationLabel(pkgInfo.applicationInfo), - mPm.getApplicationIcon(pkgInfo.applicationInfo)); - PackageUtil.initSnippetForNewApp(this, as, R.id.app_snippet); - - mOk = (Button) findViewById(R.id.ok_button); - mOk.setText(R.string.ok); - mOk.setOnClickListener(this); - - Button cancel = (Button) findViewById(R.id.cancel_button); - cancel.setOnClickListener(this); - - TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); - tabHost.setup(); - - ViewPager viewPager = (ViewPager) findViewById(R.id.pager); - TabsAdapter adapter = new TabsAdapter(this, tabHost, viewPager); - - View newTab = perms.getPermissionsView(AppSecurityPermissions.WHICH_NEW); - adapter.addTab(tabHost.newTabSpec("new").setIndicator( - getText(R.string.newPerms)), newTab); - - View allTab = getPermissionList(perms); - adapter.addTab(tabHost.newTabSpec("all").setIndicator( - getText(R.string.allPerms)), allTab); - } - - /** - * Returns a PackageInfo object representing the results of adding all the permissions - * in {@code requested_permissions} to {@code mRequestingPackage}. This is the package - * permissions the user will have if they accept the grant request. - */ - private PackageInfo getUpdatedPackageInfo() { - try { - PackageInfo pkgInfo = mPm.getPackageInfo(getCallingPackage(), - PackageManager.GET_PERMISSIONS); - for (int i = 0; i < pkgInfo.requestedPermissions.length; i++) { - String requestedPerm = pkgInfo.requestedPermissions[i]; - final int notGrantedCount = mRequestedRuntimePermissions.size(); - for (int j = 0; j < notGrantedCount; j++) { - String notGrantedPerm = mRequestedRuntimePermissions.get(j); - if (requestedPerm.equals(notGrantedPerm)) { - pkgInfo.requestedPermissionsFlags[i] - |= PackageInfo.REQUESTED_PERMISSION_GRANTED; - } - } - } - return pkgInfo; - } catch (NameNotFoundException e) { - throw new RuntimeException(e); // will never occur - } - } - - private View getPermissionList(AppSecurityPermissions perms) { - LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); - View root = inflater.inflate(R.layout.permissions_list, null); - View personalPermissions = perms.getPermissionsView(AppSecurityPermissions.WHICH_PERSONAL); - View devicePermissions = perms.getPermissionsView(AppSecurityPermissions.WHICH_DEVICE); - - ((ViewGroup)root.findViewById(R.id.privacylist)).addView(personalPermissions); - ((ViewGroup)root.findViewById(R.id.devicelist)).addView(devicePermissions); - - return root; - } - - private int computePermissionGrantState(String permission) { - final PackageInfo pkgInfo; - try { - pkgInfo = getPackageManager().getPackageInfo(getCallingPackage(), - PackageManager.GET_PERMISSIONS); - if (pkgInfo.requestedPermissions == null) { - return PERMISSION_DENIED; - } - } catch (NameNotFoundException e) { - Slog.i(LOG_TAG, "No such permission:" + permission, e); - return PERMISSION_DENIED; - } - - boolean permissionRequested = false; - - for (int i = 0; i < pkgInfo.requestedPermissions.length; i++) { - if (permission.equals(pkgInfo.requestedPermissions[i])) { - permissionRequested = true; - if ((pkgInfo.requestedPermissionsFlags[i] - & PackageInfo.REQUESTED_PERMISSION_GRANTED) != 0) { - return PERMISSION_GRANTED; - } - break; - } - } - - if (!permissionRequested) { - return PERMISSION_DENIED; - } - - try { - PermissionInfo pInfo = mPm.getPermissionInfo(permission, 0); - if ((pInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE) - != PermissionInfo.PROTECTION_DANGEROUS) { - return PERMISSION_DENIED; - } - } catch (NameNotFoundException e) { - /* ignore */ - } - - return PERMISSION_DENIED_RUNTIME; - } - - private void grantRequestedPermissions() { - final int requestedPermCount = mRequestedRuntimePermissions.size(); - for (int i = 0; i < requestedPermCount; i++) { - String permission = mRequestedRuntimePermissions.valueAt(i); - mPm.grantPermission(getCallingPackage(), permission, new UserHandle(getUserId())); - final int index = mRequestedRuntimePermissions.keyAt(i); - mGrantResults[index] = PackageManager.PERMISSION_GRANTED; - } - } - - private void setResultAndFinish() { - Intent result = new Intent(PackageManager.ACTION_REQUEST_PERMISSIONS); - result.putExtra(PackageManager.EXTRA_REQUEST_PERMISSIONS_NAMES, mRequestedPermissions); - result.putExtra(PackageManager.EXTRA_REQUEST_PERMISSIONS_RESULTS, mGrantResults); - setResult(RESULT_OK, result); - finish(); - } -} diff --git a/src/com/android/packageinstaller/permission/AppPermissions.java b/src/com/android/packageinstaller/permission/AppPermissions.java index 8d81d682..47ec42f7 100644 --- a/src/com/android/packageinstaller/permission/AppPermissions.java +++ b/src/com/android/packageinstaller/permission/AppPermissions.java @@ -73,6 +73,9 @@ public final class AppPermissions { private void loadPermissionGroups() { mGroups.clear(); + if (mPackageInfo.requestedPermissions == null) { + return; + } final boolean appSupportsRuntimePermissions = mPackageInfo.applicationInfo.targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1; diff --git a/src/com/android/packageinstaller/permission/GrantPermissionFragment.java b/src/com/android/packageinstaller/permission/GrantPermissionFragment.java index 3fe37114..e751338f 100644 --- a/src/com/android/packageinstaller/permission/GrantPermissionFragment.java +++ b/src/com/android/packageinstaller/permission/GrantPermissionFragment.java @@ -16,6 +16,8 @@ package com.android.packageinstaller.permission; +import android.app.Activity; +import android.app.Dialog; import android.app.DialogFragment; import android.content.DialogInterface; import android.graphics.drawable.Drawable; @@ -118,7 +120,10 @@ public final class GrantPermissionFragment extends DialogFragment { @Override public void onDismiss(DialogInterface dialog) { - ((OnRequestGrantPermissionGroupResult) getActivity()) - .onRequestGrantPermissionGroupResult(mGroupName, false); + Activity activity = getActivity(); + if (activity != null) { + ((OnRequestGrantPermissionGroupResult) getActivity()) + .onRequestGrantPermissionGroupResult(mGroupName, false); + } } } diff --git a/src/com/android/packageinstaller/permission/ManagePermissionsFragment.java b/src/com/android/packageinstaller/permission/ManagePermissionsFragment.java index 4382f551..e93ba314 100644 --- a/src/com/android/packageinstaller/permission/ManagePermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ManagePermissionsFragment.java @@ -27,7 +27,11 @@ import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceScreen; import android.preference.SwitchPreference; import android.util.Log; +import android.view.LayoutInflater; import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ListView; import android.widget.Toast; import com.android.packageinstaller.R; @@ -70,6 +74,17 @@ public final class ManagePermissionsFragment extends SettingsWithHeader return super.onOptionsItemSelected(item); } + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + ViewGroup rootView = (ViewGroup) + LayoutInflater.from(getActivity()).inflate(R.layout.permissions_frame, null); + rootView.addView(super.onCreateView(inflater, container, savedInstanceState)); + View emptyView = rootView.findViewById(R.id.no_permissions); + ((ListView) rootView.findViewById(android.R.id.list)).setEmptyView(emptyView); + return rootView; + } + private void bindUi() { String packageName = getArguments().getString(Intent.EXTRA_PACKAGE_NAME); |