summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/layout/permissions_frame.xml31
-rw-r--r--res/values-bg/strings.xml6
-rw-r--r--res/values-ca/strings.xml6
-rw-r--r--res/values-da/strings.xml6
-rw-r--r--res/values-et-rEE/strings.xml6
-rw-r--r--res/values-fi/strings.xml6
-rw-r--r--res/values-hr/strings.xml2
-rw-r--r--res/values-hy-rAM/strings.xml6
-rw-r--r--res/values-ka-rGE/strings.xml6
-rw-r--r--res/values-kk-rKZ/strings.xml6
-rw-r--r--res/values-km-rKH/strings.xml6
-rw-r--r--res/values-ko/strings.xml6
-rw-r--r--res/values-ky-rKG/strings.xml6
-rw-r--r--res/values-lv/strings.xml6
-rw-r--r--res/values-mk-rMK/strings.xml6
-rw-r--r--res/values-ms-rMY/strings.xml6
-rw-r--r--res/values-ru/strings.xml6
-rw-r--r--res/values-tr/strings.xml6
-rw-r--r--res/values-ur-rPK/strings.xml6
-rw-r--r--res/values-uz-rUZ/strings.xml6
-rw-r--r--res/values-zh-rCN/strings.xml6
-rw-r--r--res/values-zh-rHK/strings.xml6
-rw-r--r--res/values-zh-rTW/strings.xml6
-rw-r--r--res/values/strings.xml3
-rw-r--r--src/com/android/packageinstaller/GrantActivity.java247
-rw-r--r--src/com/android/packageinstaller/permission/AppPermissions.java3
-rw-r--r--src/com/android/packageinstaller/permission/GrantPermissionFragment.java9
-rw-r--r--src/com/android/packageinstaller/permission/ManagePermissionsFragment.java15
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);