summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/values-ca/strings.xml2
-rw-r--r--res/values-da/strings.xml20
-rw-r--r--res/values-de/strings.xml2
-rw-r--r--res/values-es/strings.xml4
-rw-r--r--res/values-ko/strings.xml4
-rw-r--r--res/values-ky-rKG/strings.xml2
-rw-r--r--res/values-pl/strings.xml2
-rw-r--r--res/values-pt-rBR/strings.xml2
-rw-r--r--res/values-pt/strings.xml2
-rw-r--r--res/values-ro/strings.xml24
-rw-r--r--res/values-ru/strings.xml2
-rw-r--r--res/values-th/strings.xml4
-rw-r--r--res/values-zh-rCN/strings.xml4
-rw-r--r--res/values-zh-rHK/strings.xml4
-rw-r--r--res/values-zh-rTW/strings.xml2
-rw-r--r--src/com/android/settings/Utils.java4
-rw-r--r--src/com/android/settings/applications/AppLaunchSettings.java126
-rw-r--r--src/com/android/settings/applications/ClearDefaultsPreference.java12
-rw-r--r--src/com/android/settings/vpn2/ConfigDialogFragment.java15
19 files changed, 150 insertions, 87 deletions
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index d1f78f0..e602bd7 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -344,7 +344,7 @@
<string name="security_settings_fingerprint_enroll_repeat_title" msgid="4327640138658832625">"Molt bé. Repeteix-ho"</string>
<string name="security_settings_fingerprint_enroll_repeat_message" msgid="4232813847507193627">"Mou el dit lleugerament perquè es pugui captar l’empremta digital sencera"</string>
<string name="security_settings_fingerprint_enroll_finish_title" msgid="4798692662828257300">"Empremta dig. afegida"</string>
- <string name="security_settings_fingerprint_enroll_finish_message" msgid="835496875787664316">"Quan vegis aquesta icona, pots fer servir la teva empremta digital per identificar o per autoritzar una compra."</string>
+ <string name="security_settings_fingerprint_enroll_finish_message" msgid="835496875787664316">"Quan vegis aquesta icona, pots fer servir la teva empremta digital per identificar-te o per autoritzar una compra."</string>
<string name="setup_fingerprint_enroll_finish_message" msgid="7234264291957984004">"Toca el sensor d\'empremtes digitals per activar i desbloquejar el dispositiu."</string>
<string name="setup_fingerprint_enroll_finish_message_secondary" msgid="7280546429133276374">"Quan vegis aquesta icona, pots fer servir la teva empremta digital."</string>
<string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Sortir de configuració d\'empremta digital?"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 01a5ec4..01b5f29 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -491,7 +491,7 @@
<string name="manage_device_admin_summary" msgid="7672709110988761075">"Vis eller deaktiver enhedsadministratorer"</string>
<string name="manage_trust_agents" msgid="4629279457536987768">"Trust agents"</string>
<string name="disabled_because_no_backup_security" msgid="6877660253409580377">"Hvis du vil bruge dette, skal du først indstille en skærmlås"</string>
- <string name="manage_trust_agents_summary" msgid="6804319935640148441">"Se eller deaktivere trust agents"</string>
+ <string name="manage_trust_agents_summary" msgid="6804319935640148441">"Se eller deaktiver trust agents"</string>
<string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
<string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Slå Bluetooth til"</string>
<string name="bluetooth_settings" msgid="1810521656168174329">"Bluetooth"</string>
@@ -743,7 +743,7 @@
<string name="wifi_hotspot_checkbox_text_summary" msgid="3800646230853724318">"Brug mobilforbindelsen til angivelse Wi-Fi-netværk"</string>
<string name="wifi_tether_starting" msgid="1322237938998639724">"Aktiverer hotspot..."</string>
<string name="wifi_tether_stopping" msgid="4835852171686388107">"Deaktiverer hotspot..."</string>
- <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Det mobile hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g> er aktivt"</string>
+ <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Mobilhotspottet <xliff:g id="NETWORK_SSID">%1$s</xliff:g> er aktivt"</string>
<string name="wifi_tether_failed_subtext" msgid="1484941858530919002">"Fejl ved mobilt Wi-Fi-hotspot"</string>
<string name="wifi_tether_configure_ap_text" msgid="7974681394041609308">"Konfiguration af Wi-Fi-hotspot"</string>
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Konfiguration af Wi-Fi-hotspot"</string>
@@ -908,7 +908,7 @@
<string name="device_status_summary" product="tablet" msgid="3292717754497039686">"Status for batteri, netværk og andre oplysninger"</string>
<string name="device_status_summary" product="default" msgid="2599162787451519618">"Telefonnummer, signal osv."</string>
<string name="storage_settings" msgid="4211799979832404953">"Lagerplads"</string>
- <string name="storage_usb_settings" msgid="642612065405691122">"Lager og USB"</string>
+ <string name="storage_usb_settings" msgid="642612065405691122">"Lagerplads og USB"</string>
<string name="storage_settings_title" msgid="8746016738388094064">"Indstillinger for lagerplads"</string>
<string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"Demonter USB-lager, vis ledig lagerplads"</string>
<string name="storage_settings_summary" product="default" msgid="9176693537325988610">"Demonter SD-kort, vis ledig lagerplads"</string>
@@ -1000,8 +1000,8 @@
<string name="storage_external_title" msgid="3433462910096848696">"Ekstern lagerplads"</string>
<string name="storage_volume_summary" msgid="7023441974367853372">"Der er anvendt <xliff:g id="USED">%1$s</xliff:g> ud af <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
<string name="storage_size_large" msgid="5691585991420946254">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>" <xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
- <string name="storage_volume_used" msgid="1303803057698959872">"Lagerplads, der er anvendt ud af <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
- <string name="storage_volume_used_total" msgid="6113121714019000244">"Samlet lagerplads, der er anvendt ud af <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
+ <string name="storage_volume_used" msgid="1303803057698959872">"Anvendt lagerplads ud af <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
+ <string name="storage_volume_used_total" msgid="6113121714019000244">"Samlet anvendt lagerplads ud af <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_mount_success" msgid="687641090137253647">"<xliff:g id="NAME">%1$s</xliff:g> blev monteret"</string>
<string name="storage_mount_failure" msgid="1042621107954547316">"<xliff:g id="NAME">%1$s</xliff:g> kunne ikke monteres"</string>
<string name="storage_unmount_success" msgid="5737203344673441677">"<xliff:g id="NAME">%1$s</xliff:g> blev skubbet sikkert ud"</string>
@@ -2403,7 +2403,7 @@
<string name="cell_broadcast_settings" msgid="2451014351355183338">"Nødudsendelser"</string>
<string name="network_operators_settings" msgid="2583178259504630435">"Netværksudbydere"</string>
<string name="access_point_names" msgid="1381602020438634481">"Adgangspunkter (APN)"</string>
- <string name="enhanced_4g_lte_mode_title" msgid="5808043757309522392">"Forbedret 4G LTE-tilstand"</string>
+ <string name="enhanced_4g_lte_mode_title" msgid="5808043757309522392">"Udvidet 4G LTE-tilstand"</string>
<string name="enhanced_4g_lte_mode_summary" msgid="1376589643017218924">"Brug LTE-data til at forbedre indtalingslyden og kommunikationen (anbefales)"</string>
<string name="preferred_network_type_title" msgid="3431041717309776341">"Foretrukken netværkstype"</string>
<string name="preferred_network_type_summary" msgid="6564884693884755019">"LTE (anbefales)"</string>
@@ -2828,7 +2828,7 @@
<string name="assist_access_screenshot_title" msgid="4034721336291215819">"Brug skærmbillede"</string>
<string name="assist_access_screenshot_summary" msgid="6761636689013259901">"Giv assistanceappen adgang til et billede af skærmen"</string>
<string name="assist_footer" msgid="1982791172085896864">"Assistanceapps kan hjælpe dig med afsæt i oplysningerne på den aktuelle skærm. Nogle apps understøtter både startertjenester og tjenester til taleinput for at give dig integreret assistance."</string>
- <string name="average_memory_use" msgid="829566450150198512">"Gennemsnit. hukommelsesforbrug"</string>
+ <string name="average_memory_use" msgid="829566450150198512">"Gennemsnitligt hukommelsesforbrug"</string>
<string name="maximum_memory_use" msgid="7493720799710132496">"Maksimal hukommelsesforbrug"</string>
<string name="memory_usage" msgid="1781358557214390033">"Hukommelsesforbrug"</string>
<string name="app_list_memory_use" msgid="6987417883876419338">"Appforbrug"</string>
@@ -2837,7 +2837,7 @@
<string name="no_memory_use_summary" msgid="2016900536806235588">"Der er ikke brugt hukommelse inden for de sidste tre timer"</string>
<string name="sort_avg_use" msgid="3998036180505143129">"Sortér efter gennemsnitligt forbrug"</string>
<string name="sort_max_use" msgid="4629247978290075124">"Sortér efter maksimal forbrug"</string>
- <string name="memory_performance" msgid="5661005192284103281">"Præstation"</string>
+ <string name="memory_performance" msgid="5661005192284103281">"Ydelse"</string>
<string name="total_memory" msgid="2017287600738630165">"Hukommelse i alt"</string>
<string name="average_used" msgid="5338339266517245782">"Brugt i gennemsnit (%)"</string>
<string name="free_memory" msgid="4003936141603549746">"Ledig"</string>
@@ -2873,12 +2873,12 @@
<string name="filter_overlay_apps" msgid="6965969283342557573">"Apps med tilladelse"</string>
<string name="system_alert_window_on" msgid="2939489395109048888">"Ja"</string>
<string name="system_alert_window_off" msgid="6189115687233061992">"Nej"</string>
- <string name="write_settings" msgid="4797457275727195681">"Skift systemindstillinger"</string>
+ <string name="write_settings" msgid="4797457275727195681">"Rediger systemindstillinger"</string>
<string name="keywords_write_settings" msgid="6415597272561105138">"redigere ændre systemindstillinger"</string>
<string name="write_settings_summary" msgid="4302268998611412696">"<xliff:g id="COUNT_0">%d</xliff:g> af <xliff:g id="COUNT_1">%d</xliff:g> apps med tilladelse til at ændre systemindstillinger"</string>
<string name="filter_write_settings_apps" msgid="2914615026197322551">"Apps, som kan ændre systemindstillinger"</string>
<string name="write_settings_title" msgid="4232152481902542284">"Apps, som kan ændre systemindstillinger"</string>
- <string name="write_system_settings" msgid="3482913590601096763">"Skift systemindstillinger"</string>
+ <string name="write_system_settings" msgid="3482913590601096763">"Rediger systemindstillinger"</string>
<string name="write_settings_preference" msgid="3407383041273067448">"Apptilladelse til at ændre systemindstillinger"</string>
<string name="permit_write_settings" msgid="6393779336656870080">"Tillad ændring af systemindstillinger"</string>
<string name="write_settings_description" msgid="6868293938839954623">"Denne tilladelse giver en app lov til at ændre systemindstillinger."</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 3d2d744..6cf01e4 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -1001,7 +1001,7 @@
<string name="storage_external_title" msgid="3433462910096848696">"Mobiler Speicher"</string>
<string name="storage_volume_summary" msgid="7023441974367853372">"<xliff:g id="USED">%1$s</xliff:g> von <xliff:g id="TOTAL">%2$s</xliff:g> verwendet"</string>
<string name="storage_size_large" msgid="5691585991420946254">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>" <xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
- <string name="storage_volume_used" msgid="1303803057698959872">"Von <xliff:g id="TOTAL">%1$s</xliff:g> verwendet"</string>
+ <string name="storage_volume_used" msgid="1303803057698959872">"von <xliff:g id="TOTAL">%1$s</xliff:g> verwendet"</string>
<string name="storage_volume_used_total" msgid="6113121714019000244">"Von <xliff:g id="TOTAL">%1$s</xliff:g> insgesamt verwendet"</string>
<string name="storage_mount_success" msgid="687641090137253647">"<xliff:g id="NAME">%1$s</xliff:g> wurde bereitgestellt."</string>
<string name="storage_mount_failure" msgid="1042621107954547316">"<xliff:g id="NAME">%1$s</xliff:g> konnte nicht bereitgestellt werden."</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index baab32b..440e5ed 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -998,9 +998,9 @@
<string name="storage_other_users" msgid="808708845102611856">"Otros usuarios"</string>
<string name="storage_internal_title" msgid="690771193137801021">"Almacenamiento del dispositivo"</string>
<string name="storage_external_title" msgid="3433462910096848696">"Almacenamiento portátil"</string>
- <string name="storage_volume_summary" msgid="7023441974367853372">"Utilizado: <xliff:g id="USED">%1$s</xliff:g> de <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+ <string name="storage_volume_summary" msgid="7023441974367853372">"Usado: <xliff:g id="USED">%1$s</xliff:g> de <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
<string name="storage_size_large" msgid="5691585991420946254">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>" <xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
- <string name="storage_volume_used" msgid="1303803057698959872">"Utilizado de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
+ <string name="storage_volume_used" msgid="1303803057698959872">"En uso de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_volume_used_total" msgid="6113121714019000244">"Total utilizado de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_mount_success" msgid="687641090137253647">"<xliff:g id="NAME">%1$s</xliff:g> se ha activado"</string>
<string name="storage_mount_failure" msgid="1042621107954547316">"Error al activar <xliff:g id="NAME">%1$s</xliff:g>"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index a173b78..040a0e0 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -998,9 +998,9 @@
<string name="storage_other_users" msgid="808708845102611856">"다른 사용자"</string>
<string name="storage_internal_title" msgid="690771193137801021">"기기 저장용량"</string>
<string name="storage_external_title" msgid="3433462910096848696">"휴대용 저장소"</string>
- <string name="storage_volume_summary" msgid="7023441974367853372">"<xliff:g id="TOTAL">%2$s</xliff:g> 중 <xliff:g id="USED">%1$s</xliff:g> 사용"</string>
+ <string name="storage_volume_summary" msgid="7023441974367853372">"<xliff:g id="USED">%1$s</xliff:g> / <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
<string name="storage_size_large" msgid="5691585991420946254">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>"<xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
- <string name="storage_volume_used" msgid="1303803057698959872">"<xliff:g id="TOTAL">%1$s</xliff:g> 중 사용"</string>
+ <string name="storage_volume_used" msgid="1303803057698959872">"/ <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_volume_used_total" msgid="6113121714019000244">"<xliff:g id="TOTAL">%1$s</xliff:g> 중 총 사용"</string>
<string name="storage_mount_success" msgid="687641090137253647">"<xliff:g id="NAME">%1$s</xliff:g>이(가) 마운트되었습니다."</string>
<string name="storage_mount_failure" msgid="1042621107954547316">"<xliff:g id="NAME">%1$s</xliff:g>을(를) 마운트하지 못했습니다."</string>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index b8a7085..74710e1 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -2385,7 +2385,7 @@
<string name="restriction_menu_reset" msgid="2067644523489568173">"Чектөөлөрдү жок кылуу"</string>
<string name="restriction_menu_change_pin" msgid="740081584044302775">"PIN алмаштыруу"</string>
<string name="app_notifications_switch_label" msgid="9124072219553687583">"Эскертүүнү көргөзүү"</string>
- <string name="help_label" msgid="6886837949306318591">"Жардам &amp; жооп пикир"</string>
+ <string name="help_label" msgid="6886837949306318591">"Жардам жана жооп пикир"</string>
<string name="user_account_title" msgid="1127193807312271167">"Мазмун үчүн эсеп"</string>
<string name="user_picture_title" msgid="7297782792000291692">"Сүрөттүн ID\'си"</string>
<string name="extreme_threats_title" msgid="6549541803542968699">"Олуттуу коркунучтар"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 7939e79..48dfb4b 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -1850,7 +1850,7 @@
<string name="mem_use_native_type" msgid="5976704902328347400">"Natywna"</string>
<string name="mem_use_kernel_cache_type" msgid="6411475064463957513">"Pamięć podręczna jądra"</string>
<string name="mem_use_zram_type" msgid="9087217476795358232">"Partycja wymiany modułu ZRam"</string>
- <string name="mem_use_free_type" msgid="717708548454880840">"Bezpłatna"</string>
+ <string name="mem_use_free_type" msgid="717708548454880840">"Wolna"</string>
<string name="mem_use_total" msgid="6308786055749777934">"Ogółem"</string>
<string name="menu_duration_3h" msgid="4714866438374738385">"3 godziny"</string>
<string name="menu_duration_6h" msgid="1940846763432184132">"6 godzin"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 5194158..ea6e02c 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -998,7 +998,7 @@
<string name="storage_other_users" msgid="808708845102611856">"Outros usuários"</string>
<string name="storage_internal_title" msgid="690771193137801021">"Armazenamento do dispositivo"</string>
<string name="storage_external_title" msgid="3433462910096848696">"Armazenamento portátil"</string>
- <string name="storage_volume_summary" msgid="7023441974367853372">"<xliff:g id="USED">%1$s</xliff:g> usado(s) de <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+ <string name="storage_volume_summary" msgid="7023441974367853372">"<xliff:g id="USED">%1$s</xliff:g> usados de um total de <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
<string name="storage_size_large" msgid="5691585991420946254">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>" <xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
<string name="storage_volume_used" msgid="1303803057698959872">"Usado(s) de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_volume_used_total" msgid="6113121714019000244">"Total usado de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 5194158..ea6e02c 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -998,7 +998,7 @@
<string name="storage_other_users" msgid="808708845102611856">"Outros usuários"</string>
<string name="storage_internal_title" msgid="690771193137801021">"Armazenamento do dispositivo"</string>
<string name="storage_external_title" msgid="3433462910096848696">"Armazenamento portátil"</string>
- <string name="storage_volume_summary" msgid="7023441974367853372">"<xliff:g id="USED">%1$s</xliff:g> usado(s) de <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+ <string name="storage_volume_summary" msgid="7023441974367853372">"<xliff:g id="USED">%1$s</xliff:g> usados de um total de <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
<string name="storage_size_large" msgid="5691585991420946254">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>" <xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
<string name="storage_volume_used" msgid="1303803057698959872">"Usado(s) de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_volume_used_total" msgid="6113121714019000244">"Total usado de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 91a74e9..80f8cf2 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -381,8 +381,8 @@
<string name="crypt_keeper_dialog_need_password_title" msgid="4058971800557767">"Nu există un cod PIN sau o parolă pentru blocarea ecranului"</string>
<string name="crypt_keeper_dialog_need_password_message" msgid="4071395977297369642">"Trebuie să setați un cod PIN sau o parolă pentru blocarea ecranului înainte de a începe criptarea."</string>
<string name="crypt_keeper_confirm_title" msgid="5100339496381875522">"Criptați?"</string>
- <string name="crypt_keeper_final_desc" product="tablet" msgid="517662068757620756">"Operaţia de criptare este ireversibilă și întreruperea ei va duce la pierderea datelor. Criptarea durează cel puţin o oră, timp în care tableta se va reporni de mai multe ori."</string>
- <string name="crypt_keeper_final_desc" product="default" msgid="287503113671320916">"Operaţia de criptare este ireversibilă și întreruperea ei va duce la pierderea datelor. Criptarea durează cel puţin o oră, timp în care telefonul se va reporni de mai multe ori."</string>
+ <string name="crypt_keeper_final_desc" product="tablet" msgid="517662068757620756">"Operația de criptare este ireversibilă și întreruperea ei va duce la pierderea datelor. Criptarea durează cel puţin o oră, timp în care tableta se va reporni de mai multe ori."</string>
+ <string name="crypt_keeper_final_desc" product="default" msgid="287503113671320916">"Operația de criptare este ireversibilă și întreruperea ei va duce la pierderea datelor. Criptarea durează cel puţin o oră, timp în care telefonul se va reporni de mai multe ori."</string>
<string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Criptare"</string>
<string name="crypt_keeper_setup_description" product="tablet" msgid="6689952371032099350">"Aşteptaţi criptarea tabletei. Finalizat <xliff:g id="PERCENT">^1</xliff:g>%."</string>
<string name="crypt_keeper_setup_description" product="default" msgid="951918761585534875">"Aşteptaţi criptarea telefonului. Finalizat <xliff:g id="PERCENT">^1</xliff:g>%."</string>
@@ -393,8 +393,8 @@
<string name="crypt_keeper_warn_wipe" msgid="2738374897337991667">"Avertisment: datele de pe dispozitiv vor fi șterse după încă <xliff:g id="COUNT">^1</xliff:g> încercări nereușite de deblocare!"</string>
<string name="crypt_keeper_enter_password" msgid="2223340178473871064">"Introduceţi parola"</string>
<string name="crypt_keeper_failed_title" msgid="7133499413023075961">"Criptare nereușită"</string>
- <string name="crypt_keeper_failed_summary" product="tablet" msgid="8219375738445017266">"Criptarea a fost întreruptă și nu se poate finaliza. Prin urmare, datele de pe tableta dvs. nu mai sunt accesibile. \n\nPentru a relua utilizarea tabletei, trebuie să efectuaţi o resetare la valorile din fabrică. Când configuraţi tableta după resetare, veţi putea restabili toate datele pentru care aţi creat copii de rezervă în Contul Google."</string>
- <string name="crypt_keeper_failed_summary" product="default" msgid="3270131542549577953">"Criptarea a fost întreruptă și nu se poate finaliza. Prin urmare, datele de pe telefonul dvs. nu mai sunt accesibile. \n\nPentru a relua utilizarea telefonului, trebuie să efectuaţi o resetare la valorile din fabrică. Când configuraţi telefonul după resetare, veţi putea restabili toate datele pentru care aţi creat copii de rezervă în Contul Google."</string>
+ <string name="crypt_keeper_failed_summary" product="tablet" msgid="8219375738445017266">"Criptarea a fost întreruptă și nu se poate finaliza. Prin urmare, datele de pe tableta dvs. nu mai sunt accesibile. \n\nPentru a relua utilizarea tabletei, trebuie să efectuați o resetare la valorile din fabrică. Când configuraţi tableta după resetare, veţi putea restabili toate datele pentru care aţi creat copii de rezervă în Contul Google."</string>
+ <string name="crypt_keeper_failed_summary" product="default" msgid="3270131542549577953">"Criptarea a fost întreruptă și nu se poate finaliza. Prin urmare, datele de pe telefonul dvs. nu mai sunt accesibile. \n\nPentru a relua utilizarea telefonului, trebuie să efectuați o resetare la valorile din fabrică. Când configuraţi telefonul după resetare, veţi putea restabili toate datele pentru care aţi creat copii de rezervă în Contul Google."</string>
<string name="crypt_keeper_data_corrupt_title" msgid="8759119849089795751">"Decriptarea nu a reușit"</string>
<string name="crypt_keeper_data_corrupt_summary" product="tablet" msgid="840107296925798402">"Parola pe care ați introdus-o este corectă, dar, din păcate, datele sunt deteriorate. \n\nPentru a relua utilizarea tabletei, trebuie să reveniți la setările din fabrică. Când vă configurați tableta după resetare, veți putea să restabiliți toate datele care au backup în Contul Google."</string>
<string name="crypt_keeper_data_corrupt_summary" product="default" msgid="8843311420059663824">"Parola pe care ați introdus-o este corectă, dar, din păcate, datele sunt deteriorate. \n\nPentru a relua utilizarea telefonului, trebuie să reveniți la setările din fabrică. Când vă configurați telefonul după resetare, veți putea să restabiliți toate datele care au backup în Contul Google."</string>
@@ -744,7 +744,7 @@
<string name="wifi_p2p_disconnect_message" msgid="8227342771610125771">"Dacă vă deconectați, conexiunea cu <xliff:g id="PEER_NAME">%1$s</xliff:g> se va încheia."</string>
<string name="wifi_p2p_disconnect_multiple_message" msgid="3283805371034883105">"Dacă vă deconectați, conexiunea cu <xliff:g id="PEER_NAME">%1$s</xliff:g> și cu alte <xliff:g id="PEER_COUNT">%2$s</xliff:g> dispozitive se va încheia."</string>
<string name="wifi_p2p_cancel_connect_title" msgid="255267538099324413">"Anulați invitaţia?"</string>
- <string name="wifi_p2p_cancel_connect_message" msgid="7477756213423749402">"Doriţi să anulaţi invitaţia de conectare cu <xliff:g id="PEER_NAME">%1$s</xliff:g>?"</string>
+ <string name="wifi_p2p_cancel_connect_message" msgid="7477756213423749402">"Doriți să anulaţi invitaţia de conectare cu <xliff:g id="PEER_NAME">%1$s</xliff:g>?"</string>
<string name="wifi_p2p_delete_group_message" msgid="834559380069647086">"Eliminaţi acest grup?"</string>
<string name="wifi_tether_checkbox_text" msgid="1847167643625779136">"Hotspot Wi-Fi portabil"</string>
<string name="wifi_hotspot_checkbox_text" msgid="7763495093333664887">"Hotspot Wi-Fi"</string>
@@ -1238,7 +1238,7 @@
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Se încarcă…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informații privind siguranța"</string>
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Informații privind siguranţa"</string>
- <string name="settings_safetylegal_activity_unreachable" msgid="250674109915859456">"Nu aveţi o conexiune de date. Pentru a vedea aceste informații acum, accesaţi %s de pe orice computer conectat la internet."</string>
+ <string name="settings_safetylegal_activity_unreachable" msgid="250674109915859456">"Nu aveți o conexiune de date. Pentru a vedea aceste informații acum, accesați %s de pe orice computer conectat la internet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Se încarcă…"</string>
<string name="lockpassword_choose_your_password_header" msgid="8624900666929394990">"Alegeți parola"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Alegeți modelul"</string>
@@ -1368,8 +1368,8 @@
<string name="clear_failed_dlg_text" msgid="5464475937929941008">"Nu s-au putut șterge datele aplicației."</string>
<string name="security_settings_desc" product="tablet" msgid="1292421279262430109">"Această aplicație poate accesa pe tabletă următoarele:"</string>
<string name="security_settings_desc" product="default" msgid="61749028818785244">"Această aplicație poate accesa următoarele elemente de pe telefonul dvs.:"</string>
- <string name="security_settings_desc_multi" product="tablet" msgid="7300932212437084403">"Această aplicație poate accesa următoarele elemente pe tableta dvs. Pentru a îmbunătăţi performanţa și a reduce consumul de memorie, unele dintre aceste permisiuni sunt disponibile pentru <xliff:g id="BASE_APP_NAME">%1$s</xliff:g>, deoarece aceasta rulează în același proces ca și <xliff:g id="ADDITIONAL_APPS_LIST">%2$s</xliff:g>:"</string>
- <string name="security_settings_desc_multi" product="default" msgid="6610268420793984752">"Această aplicație poate accesa următoarele elemente pe telefonul dvs. Pentru a îmbunătăţi performanţa și a reduce consumul de memorie, unele dintre aceste permisiuni sunt disponibile pentru <xliff:g id="BASE_APP_NAME">%1$s</xliff:g>, deoarece aceasta rulează în același proces ca și <xliff:g id="ADDITIONAL_APPS_LIST">%2$s</xliff:g>:"</string>
+ <string name="security_settings_desc_multi" product="tablet" msgid="7300932212437084403">"Această aplicație poate accesa următoarele elemente pe tableta dvs. Pentru a îmbunătăţi performanța și a reduce consumul de memorie, unele dintre aceste permisiuni sunt disponibile pentru <xliff:g id="BASE_APP_NAME">%1$s</xliff:g>, deoarece aceasta rulează în același proces ca și <xliff:g id="ADDITIONAL_APPS_LIST">%2$s</xliff:g>:"</string>
+ <string name="security_settings_desc_multi" product="default" msgid="6610268420793984752">"Această aplicație poate accesa următoarele elemente pe telefonul dvs. Pentru a îmbunătăţi performanța și a reduce consumul de memorie, unele dintre aceste permisiuni sunt disponibile pentru <xliff:g id="BASE_APP_NAME">%1$s</xliff:g>, deoarece aceasta rulează în același proces ca și <xliff:g id="ADDITIONAL_APPS_LIST">%2$s</xliff:g>:"</string>
<string name="join_two_items" msgid="1336880355987539064">"<xliff:g id="FIRST_ITEM">%1$s</xliff:g> și <xliff:g id="SECOND_ITEM">%2$s</xliff:g>"</string>
<string name="join_many_items_last" msgid="5925635036718502724">"<xliff:g id="ALL_BUT_LAST_ITEM">%1$s</xliff:g> și <xliff:g id="LAST_ITEM_0">%2$s</xliff:g>"</string>
<string name="join_many_items_first" msgid="4333907712038448660">"<xliff:g id="FIRST_ITEM">%1$s</xliff:g>, <xliff:g id="ALL_BUT_FIRST_AND_LAST_ITEM">%2$s</xliff:g>"</string>
@@ -1378,7 +1378,7 @@
<string name="security_settings_premium_sms_desc" msgid="8734171334263713717">"Trimiteți SMS premium"</string>
<string name="computing_size" msgid="1599186977475211186">"În curs de calculare..."</string>
<string name="invalid_size_value" msgid="1582744272718752951">"Nu s-a putut calcula mărimea pachetului."</string>
- <string name="empty_list_msg" msgid="3552095537348807772">"Nu aveţi instalată nicio aplicație terţă parte."</string>
+ <string name="empty_list_msg" msgid="3552095537348807772">"Nu aveți instalată nicio aplicație terţă parte."</string>
<string name="version_text" msgid="9189073826278676425">"versiunea <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
<string name="move_app" msgid="5042838441401731346">"Mutați"</string>
<string name="move_app_to_internal" product="tablet" msgid="2299714147283854957">"Mutați pe tabletă"</string>
@@ -1471,7 +1471,7 @@
<string name="spellchecker_security_warning" msgid="9060897418527708922">"Acest instrument de verificare a ortografiei poate, de asemenea, să culeagă în întregime textul pe care îl introduceţi, inclusiv datele personale, cum ar fi parolele și numerele cardurilor de credit. Instrumentul provine de la aplicația <xliff:g id="SPELLCHECKER_APPLICATION_NAME">%1$s</xliff:g>. Utilizaţi acest instrument de verificare ortografică?"</string>
<string name="spellchecker_quick_settings" msgid="246728645150092058">"Setări"</string>
<string name="spellchecker_language" msgid="6041050114690541437">"Limbă"</string>
- <string name="failed_to_open_app_settings_toast" msgid="1251067459298072462">"Deschiderea setărilor pentru <xliff:g id="SPELL_APPLICATION_NAME">%1$s</xliff:g> a eşuat"</string>
+ <string name="failed_to_open_app_settings_toast" msgid="1251067459298072462">"Deschiderea setărilor pentru <xliff:g id="SPELL_APPLICATION_NAME">%1$s</xliff:g> a eșuat"</string>
<string name="pointer_settings_category" msgid="8183819795164034286">"Mouse/trackpad"</string>
<string name="pointer_speed" msgid="1221342330217861616">"Viteza indicatorului"</string>
<string name="game_controller_settings_category" msgid="8794508575329923718">"Controler de joc"</string>
@@ -1609,7 +1609,7 @@
<string name="accessibility_display_title" msgid="7610175687949675162">"Afișaj"</string>
<string name="accessibility_captioning_title" msgid="7589266662024836291">"Subtitrări"</string>
<string name="accessibility_screen_magnification_title" msgid="7001782548715744981">"Gesturi pentru mărire"</string>
- <string name="accessibility_screen_magnification_summary" msgid="1178289000423776584">"După activarea acestei funcţii, puteţi mări și micşora atingând de trei ori ecranul.\n\nÎn timp ce măriți, puteţi:\n"<ul><li>"să deplasați: deplasați două sau mai multe degete pe ecran;"</li>\n<li>"să ajustați nivelul de zoom: ciupiți cu două sau mai multe degete ori îndepărtați-le."</li></ul>\n\n"De asemenea, puteţi să măriți temporar ce se află sub degetul dvs. atingând ecranul de trei ori și menținând degetul pe ecran. În imaginea mărită, puteţi să glisaţi degetul pentru a explora diferite părți ale ecranului. Ridicaţi degetul pentru a reveni la starea anterioară.\n\nNotă: atingerea triplă pentru mărire funcţionează peste tot, cu excepţia tastaturii și a barei de navigare."</string>
+ <string name="accessibility_screen_magnification_summary" msgid="1178289000423776584">"După activarea acestei funcţii, puteţi mări și micşora atingând de trei ori ecranul.\n\nÎn timp ce măriți, puteţi:\n"<ul><li>"să deplasați: deplasați două sau mai multe degete pe ecran;"</li>\n<li>"să ajustați nivelul de zoom: ciupiți cu două sau mai multe degete ori îndepărtați-le."</li></ul>\n\n"De asemenea, puteţi să măriți temporar ce se află sub degetul dvs. atingând ecranul de trei ori și menținând degetul pe ecran. În imaginea mărită, puteţi să glisaţi degetul pentru a explora diferite părți ale ecranului. Ridicaţi degetul pentru a reveni la starea anterioară.\n\nNotă: atingerea triplă pentru mărire funcţionează peste tot, cu excepția tastaturii și a barei de navigare."</string>
<string name="accessibility_global_gesture_preference_title" msgid="6752037184140789970">"Comandă rapidă de accesibilitate"</string>
<string name="accessibility_global_gesture_preference_summary_on" msgid="6180927399052022181">"Activat"</string>
<string name="accessibility_global_gesture_preference_summary_off" msgid="8102103337813609849">"Dezactivată"</string>
@@ -1979,7 +1979,7 @@
<string name="local_backup_password_summary_change" msgid="2731163425081172638">"Atingeţi pentru a modifica sau pentru a elimina parola pentru copiile de rezervă complete pe desktop"</string>
<string name="local_backup_password_toast_success" msgid="582016086228434290">"A fost setată o parolă de rezervă nouă"</string>
<string name="local_backup_password_toast_confirmation_mismatch" msgid="7805892532752708288">"Parola nouă și confirmarea acesteia nu se potrivesc."</string>
- <string name="local_backup_password_toast_validation_failure" msgid="5646377234895626531">"Setarea parolei de rezervă a eşuat"</string>
+ <string name="local_backup_password_toast_validation_failure" msgid="5646377234895626531">"Setarea parolei de rezervă a eșuat"</string>
<string name="backup_erase_dialog_title" msgid="1027640829482174106"></string>
<string name="backup_erase_dialog_message" msgid="5221011285568343155">"Doriți să opriți crearea copiei de rezervă pentru parolele Wi-Fi, marcaje, alte setări, datele aplicațiilor și să ștergeți toate copiile aflate pe serverele Google?"</string>
<string name="fullbackup_erase_dialog_message" msgid="944399039066318647">"Doriți să nu li se mai facă backup datelor de pe dispozitiv (de exemplu, parolele Wi-Fi și istoricul apelurilor) și datelor din aplicații (de exemplu, setările și fișierele stocate de aplicații) și să ștergeți toate copiile din Google Drive?"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 1f20638..5216355 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -2922,7 +2922,7 @@
<string name="write_settings_off" msgid="5156104383386336233">"Нет"</string>
<string name="camera_gesture_title" msgid="1075838577642393011">"Включать камеру движением запястья"</string>
<string name="camera_gesture_desc" msgid="1831390075255870960">"Чтобы открыть приложение \"Камера\", дважды поверните запястье."</string>
- <string name="camera_double_tap_power_gesture_title" msgid="1651873760405034645">"Открывать камеру, дважды нажимая кнопку питания"</string>
+ <string name="camera_double_tap_power_gesture_title" msgid="1651873760405034645">"Камера двойным нажатием кнопки питания"</string>
<string name="camera_double_tap_power_gesture_desc" msgid="7355664631775680376">"Быстро открывать камеру, не снимая блокировку экрана."</string>
<string-array name="color_mode_names">
<item msgid="2425514299220523812">"Насыщенный (по умолчанию)"</item>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index b75a04b..1d8ec89 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -998,9 +998,9 @@
<string name="storage_other_users" msgid="808708845102611856">"ผู้ใช้รายอื่นๆ"</string>
<string name="storage_internal_title" msgid="690771193137801021">"ที่เก็บข้อมูลอุปกรณ์"</string>
<string name="storage_external_title" msgid="3433462910096848696">"ที่จัดเก็บข้อมูลแบบพกพา"</string>
- <string name="storage_volume_summary" msgid="7023441974367853372">"ใช้ไป <xliff:g id="USED">%1$s</xliff:g> จาก <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+ <string name="storage_volume_summary" msgid="7023441974367853372">"ใช้ไป <xliff:g id="USED">%1$s</xliff:g> จากทั้งหมด <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
<string name="storage_size_large" msgid="5691585991420946254">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>" <xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
- <string name="storage_volume_used" msgid="1303803057698959872">"ใช้ไปจาก <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
+ <string name="storage_volume_used" msgid="1303803057698959872">"ที่ใช้ไปจากทั้งหมด <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_volume_used_total" msgid="6113121714019000244">"ใช้ไปทั้งหมดจาก <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_mount_success" msgid="687641090137253647">"ต่อเชื่อม<xliff:g id="NAME">%1$s</xliff:g>แล้ว"</string>
<string name="storage_mount_failure" msgid="1042621107954547316">"ไม่สามารถต่อเชื่อม<xliff:g id="NAME">%1$s</xliff:g>"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 8930832..9524d24 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -1354,7 +1354,7 @@
<string name="app_not_found_dlg_text" msgid="4893589904687340011">"在已安装应用的列表中找不到该应用。"</string>
<string name="clear_data_failed" msgid="7214074331627422248">"无法清除应用数据。"</string>
<string name="app_factory_reset_dlg_title" msgid="7441012826373143593">"要卸载更新吗?"</string>
- <string name="app_factory_reset_dlg_text" msgid="6371247225487725860">"此Android系统自带应用的所有相关更新都将被卸载。"</string>
+ <string name="app_factory_reset_dlg_text" msgid="6371247225487725860">"此 Android 系统自带应用的所有相关更新都将被卸载。"</string>
<string name="clear_failed_dlg_title" msgid="2387060805294783175">"清除数据"</string>
<string name="clear_failed_dlg_text" msgid="5464475937929941008">"无法清除应用数据。"</string>
<string name="security_settings_desc" product="tablet" msgid="1292421279262430109">"此应用拥有以下权限:"</string>
@@ -1799,7 +1799,7 @@
<string name="menu_stats_last_unplugged" msgid="5922246077592434526">"上次拔下电源 <xliff:g id="UNPLUGGED">%1$s</xliff:g> 时"</string>
<string name="menu_stats_total" msgid="8973377864854807854">"总使用量"</string>
<string name="menu_stats_refresh" msgid="1676215433344981075">"刷新"</string>
- <string name="process_kernel_label" msgid="3916858646836739323">"Android操作系统"</string>
+ <string name="process_kernel_label" msgid="3916858646836739323">"Android 操作系统"</string>
<string name="process_mediaserver_label" msgid="6500382062945689285">"媒体服务器"</string>
<string name="process_dex2oat_label" msgid="2592408651060518226">"应用优化"</string>
<string name="battery_saver" msgid="1426682272004907982">"节电助手"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 5f8756e..a7b7408 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -998,9 +998,9 @@
<string name="storage_other_users" msgid="808708845102611856">"其他使用者"</string>
<string name="storage_internal_title" msgid="690771193137801021">"儲存裝置"</string>
<string name="storage_external_title" msgid="3433462910096848696">"外置儲存空間"</string>
- <string name="storage_volume_summary" msgid="7023441974367853372">"使用了 <xliff:g id="TOTAL">%2$s</xliff:g> 中的 <xliff:g id="USED">%1$s</xliff:g>"</string>
+ <string name="storage_volume_summary" msgid="7023441974367853372">"已使用 <xliff:g id="USED">%1$s</xliff:g> (共 <xliff:g id="TOTAL">%2$s</xliff:g>)"</string>
<string name="storage_size_large" msgid="5691585991420946254">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>" <xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
- <string name="storage_volume_used" msgid="1303803057698959872">"<xliff:g id="TOTAL">%1$s</xliff:g> 已使用"</string>
+ <string name="storage_volume_used" msgid="1303803057698959872">"(共 <xliff:g id="TOTAL">%1$s</xliff:g>)"</string>
<string name="storage_volume_used_total" msgid="6113121714019000244">"<xliff:g id="TOTAL">%1$s</xliff:g> 總共已使用"</string>
<string name="storage_mount_success" msgid="687641090137253647">"已連接 <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="storage_mount_failure" msgid="1042621107954547316">"無法連接 <xliff:g id="NAME">%1$s</xliff:g>"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 7897373..c955812 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -1000,7 +1000,7 @@
<string name="storage_external_title" msgid="3433462910096848696">"可攜式儲存空間"</string>
<string name="storage_volume_summary" msgid="7023441974367853372">"已使用 <xliff:g id="USED">%1$s</xliff:g> (共 <xliff:g id="TOTAL">%2$s</xliff:g>)"</string>
<string name="storage_size_large" msgid="5691585991420946254">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>" <xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
- <string name="storage_volume_used" msgid="1303803057698959872">"<xliff:g id="TOTAL">%1$s</xliff:g> 總儲存空間使用量"</string>
+ <string name="storage_volume_used" msgid="1303803057698959872">"(共 <xliff:g id="TOTAL">%1$s</xliff:g>)"</string>
<string name="storage_volume_used_total" msgid="6113121714019000244">"儲存空間共計:<xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_mount_success" msgid="687641090137253647">"已掛載「<xliff:g id="NAME">%1$s</xliff:g>」"</string>
<string name="storage_mount_failure" msgid="1042621107954547316">"無法掛載「<xliff:g id="NAME">%1$s</xliff:g>」"</string>
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index d25d8c3..d2d04ec 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -1146,9 +1146,9 @@ public final class Utils {
boolean hasPreferred = hasPreferredActivities(pm, packageName)
|| hasUsbDefaults(usbManager, packageName);
int status = pm.getIntentVerificationStatus(packageName, UserHandle.myUserId());
+ // consider a visible current link-handling state to be any explicitly designated behavior
boolean hasDomainURLsPreference =
- (status == PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS) ||
- (status == PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER);
+ status != PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED;
return context.getString(hasPreferred || hasDomainURLsPreference
? R.string.launch_defaults_some
: R.string.launch_defaults_none);
diff --git a/src/com/android/settings/applications/AppLaunchSettings.java b/src/com/android/settings/applications/AppLaunchSettings.java
index c885b02..6c2f241 100644
--- a/src/com/android/settings/applications/AppLaunchSettings.java
+++ b/src/com/android/settings/applications/AppLaunchSettings.java
@@ -17,14 +17,16 @@
package com.android.settings.applications;
import android.app.AlertDialog;
+import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ApplicationInfo;
import android.content.pm.IntentFilterVerificationInfo;
import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.net.Uri;
import android.os.Bundle;
import android.os.UserHandle;
import android.preference.Preference;
-import android.preference.SwitchPreference;
import android.util.ArraySet;
import android.util.Log;
import android.view.View;
@@ -52,8 +54,17 @@ public class AppLaunchSettings extends AppInfoWithHeader implements OnClickListe
private static final String KEY_SUPPORTED_DOMAIN_URLS = "app_launch_supported_domain_urls";
private static final String KEY_CLEAR_DEFAULTS = "app_launch_clear_defaults";
+ private static final Intent sBrowserIntent;
+ static {
+ sBrowserIntent = new Intent()
+ .setAction(Intent.ACTION_VIEW)
+ .addCategory(Intent.CATEGORY_BROWSABLE)
+ .setData(Uri.parse("http:"));
+ }
+
private PackageManager mPm;
+ private boolean mIsBrowser;
private boolean mHasDomainUrls;
private DropDownPreference mAppLinkState;
private AppDomainsPreference mAppDomainUrls;
@@ -64,62 +75,91 @@ public class AppLaunchSettings extends AppInfoWithHeader implements OnClickListe
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.installed_app_launch_settings);
+ mAppDomainUrls = (AppDomainsPreference) findPreference(KEY_SUPPORTED_DOMAIN_URLS);
+ mClearDefaultsPreference = (ClearDefaultsPreference) findPreference(KEY_CLEAR_DEFAULTS);
+ mAppLinkState = (DropDownPreference) findPreference(KEY_APP_LINK_STATE);
mPm = getActivity().getPackageManager();
+ mIsBrowser = isBrowserApp(mPackageName);
mHasDomainUrls =
(mAppEntry.info.privateFlags & ApplicationInfo.PRIVATE_FLAG_HAS_DOMAIN_URLS) != 0;
- List<IntentFilterVerificationInfo> iviList = mPm.getIntentFilterVerifications(mPackageName);
-
- List<IntentFilter> filters = mPm.getAllIntentFilters(mPackageName);
-
- mAppDomainUrls = (AppDomainsPreference) findPreference(KEY_SUPPORTED_DOMAIN_URLS);
- CharSequence[] entries = getEntries(mPackageName, iviList, filters);
- mAppDomainUrls.setTitles(entries);
- mAppDomainUrls.setValues(new int[entries.length]);
-
- mClearDefaultsPreference = (ClearDefaultsPreference) findPreference(KEY_CLEAR_DEFAULTS);
+ if (!mIsBrowser) {
+ List<IntentFilterVerificationInfo> iviList = mPm.getIntentFilterVerifications(mPackageName);
+ List<IntentFilter> filters = mPm.getAllIntentFilters(mPackageName);
+ CharSequence[] entries = getEntries(mPackageName, iviList, filters);
+ mAppDomainUrls.setTitles(entries);
+ mAppDomainUrls.setValues(new int[entries.length]);
+ }
buildStateDropDown();
}
- private void buildStateDropDown() {
- mAppLinkState = (DropDownPreference) findPreference(KEY_APP_LINK_STATE);
+ // An app is a "browser" if it has an activity resolution that wound up
+ // marked with the 'handleAllWebDataURI' flag.
+ private boolean isBrowserApp(String packageName) {
+ sBrowserIntent.setPackage(packageName);
+ List<ResolveInfo> list = mPm.queryIntentActivitiesAsUser(sBrowserIntent,
+ PackageManager.MATCH_ALL, UserHandle.myUserId());
+ final int count = list.size();
+ for (int i = 0; i < count; i++) {
+ ResolveInfo info = list.get(i);
+ if (info.activityInfo != null && info.handleAllWebDataURI) {
+ return true;
+ }
+ }
+ return false;
+ }
- // Designed order of states in the dropdown:
- //
- // * always
- // * ask
- // * never
- mAppLinkState.addItem(R.string.app_link_open_always,
- INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS);
- mAppLinkState.addItem(R.string.app_link_open_ask,
- INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK);
- mAppLinkState.addItem(R.string.app_link_open_never,
- INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER);
-
- mAppLinkState.setEnabled(mHasDomainUrls);
- if (mHasDomainUrls) {
- // Present 'undefined' as 'ask' because the OS treats them identically for
- // purposes of the UI (and does the right thing around pending domain
- // verifications that might arrive after the user chooses 'ask' in this UI).
- final int state = mPm.getIntentVerificationStatus(mPackageName, UserHandle.myUserId());
- mAppLinkState.setSelectedValue(
- (state == INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED)
- ? INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK
- : state);
-
- // Set the callback only after setting the initial selected item
- mAppLinkState.setCallback(new Callback() {
- @Override
- public boolean onItemSelected(int pos, Object value) {
- return updateAppLinkState((Integer) value);
- }
- });
+ private void buildStateDropDown() {
+ if (mIsBrowser) {
+ // Browsers don't show the app-link prefs
+ mAppLinkState.setShouldDisableView(true);
+ mAppLinkState.setEnabled(false);
+ mAppDomainUrls.setShouldDisableView(true);
+ mAppDomainUrls.setEnabled(false);
+ } else {
+ // Designed order of states in the dropdown:
+ //
+ // * always
+ // * ask
+ // * never
+ mAppLinkState.addItem(R.string.app_link_open_always,
+ INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS);
+ mAppLinkState.addItem(R.string.app_link_open_ask,
+ INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK);
+ mAppLinkState.addItem(R.string.app_link_open_never,
+ INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER);
+
+ mAppLinkState.setEnabled(mHasDomainUrls);
+ if (mHasDomainUrls) {
+ // Present 'undefined' as 'ask' because the OS treats them identically for
+ // purposes of the UI (and does the right thing around pending domain
+ // verifications that might arrive after the user chooses 'ask' in this UI).
+ final int state = mPm.getIntentVerificationStatus(mPackageName, UserHandle.myUserId());
+ mAppLinkState.setSelectedValue(
+ (state == INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED)
+ ? INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK
+ : state);
+
+ // Set the callback only after setting the initial selected item
+ mAppLinkState.setCallback(new Callback() {
+ @Override
+ public boolean onItemSelected(int pos, Object value) {
+ return updateAppLinkState((Integer) value);
+ }
+ });
+ }
}
}
private boolean updateAppLinkState(final int newState) {
+ if (mIsBrowser) {
+ // We shouldn't get into this state, but if we do make sure
+ // not to cause any permanent mayhem.
+ return false;
+ }
+
final int userId = UserHandle.myUserId();
final int priorState = mPm.getIntentVerificationStatus(mPackageName, userId);
diff --git a/src/com/android/settings/applications/ClearDefaultsPreference.java b/src/com/android/settings/applications/ClearDefaultsPreference.java
index 8be4be0..bcb6a8a 100644
--- a/src/com/android/settings/applications/ClearDefaultsPreference.java
+++ b/src/com/android/settings/applications/ClearDefaultsPreference.java
@@ -93,9 +93,13 @@ public class ClearDefaultsPreference extends Preference {
@Override
public void onClick(View v) {
if (mUsbManager != null) {
+ final int userId = UserHandle.myUserId();
mPm.clearPackagePreferredActivities(mPackageName);
+ if (isDefaultBrowser(mPackageName)) {
+ mPm.setDefaultBrowserPackageName(null, userId);
+ }
try {
- mUsbManager.clearDefaults(mPackageName, UserHandle.myUserId());
+ mUsbManager.clearDefaults(mPackageName, userId);
} catch (RemoteException e) {
Log.e(TAG, "mUsbManager.clearDefaults", e);
}
@@ -122,6 +126,7 @@ public class ClearDefaultsPreference extends Preference {
TextView autoLaunchView = (TextView) mRootView.findViewById(R.id.auto_launch);
boolean autoLaunchEnabled = Utils.hasPreferredActivities(mPm, mPackageName)
+ || isDefaultBrowser(mPackageName)
|| Utils.hasUsbDefaults(mUsbManager, mPackageName);
if (!autoLaunchEnabled && !hasBindAppWidgetPermission) {
resetLaunchDefaultsUi(autoLaunchView);
@@ -165,6 +170,11 @@ public class ClearDefaultsPreference extends Preference {
return true;
}
+ private boolean isDefaultBrowser(String packageName) {
+ final String defaultBrowser = mPm.getDefaultBrowserPackageName(UserHandle.myUserId());
+ return packageName.equals(defaultBrowser);
+ }
+
private void resetLaunchDefaultsUi(TextView autoLaunchView) {
autoLaunchView.setText(R.string.auto_launch_disable_text);
// Disable clear activities button
diff --git a/src/com/android/settings/vpn2/ConfigDialogFragment.java b/src/com/android/settings/vpn2/ConfigDialogFragment.java
index 80f9fcd..a6189a9 100644
--- a/src/com/android/settings/vpn2/ConfigDialogFragment.java
+++ b/src/com/android/settings/vpn2/ConfigDialogFragment.java
@@ -16,6 +16,8 @@
package com.android.settings.vpn2;
+import java.util.Arrays;
+
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Context;
@@ -123,7 +125,18 @@ public class ConfigDialogFragment extends DialogFragment implements
disconnect(profile);
// Delete from KeyStore
- KeyStore.getInstance().delete(Credentials.VPN + profile.key, KeyStore.UID_SELF);
+ KeyStore keyStore = KeyStore.getInstance();
+ keyStore.delete(Credentials.VPN + profile.key, KeyStore.UID_SELF);
+
+ // If this was the current lockdown VPN, clear it.
+ if (Arrays.equals(profile.key.getBytes(), keyStore.get(Credentials.LOCKDOWN_VPN))) {
+ keyStore.delete(Credentials.LOCKDOWN_VPN);
+ try {
+ mService.updateLockdownVpn();
+ } catch (RemoteException e) {
+ Log.e(TAG, "Failed to clear lockdown VPN configuration");
+ }
+ }
}
dismiss();
}