Merge "Fix issue for new account not being shown in work profile." into oc-dev
diff --git a/res/drawable-hdpi/empty_search_results.png b/res/drawable-hdpi/empty_search_results.png
new file mode 100644
index 0000000..290f0ed
--- /dev/null
+++ b/res/drawable-hdpi/empty_search_results.png
Binary files differ
diff --git a/res/drawable-mdpi/empty_search_results.png b/res/drawable-mdpi/empty_search_results.png
new file mode 100644
index 0000000..9ef49a6
--- /dev/null
+++ b/res/drawable-mdpi/empty_search_results.png
Binary files differ
diff --git a/res/drawable-xhdpi/empty_search_results.png b/res/drawable-xhdpi/empty_search_results.png
new file mode 100644
index 0000000..92a9392
--- /dev/null
+++ b/res/drawable-xhdpi/empty_search_results.png
Binary files differ
diff --git a/res/drawable-xxhdpi/empty_search_results.png b/res/drawable-xxhdpi/empty_search_results.png
new file mode 100644
index 0000000..894ed7b
--- /dev/null
+++ b/res/drawable-xxhdpi/empty_search_results.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/empty_search_results.png b/res/drawable-xxxhdpi/empty_search_results.png
new file mode 100644
index 0000000..8f12e96
--- /dev/null
+++ b/res/drawable-xxxhdpi/empty_search_results.png
Binary files differ
diff --git a/res/drawable/no_search_results.xml b/res/drawable/no_search_results.xml
deleted file mode 100644
index a75a443..0000000
--- a/res/drawable/no_search_results.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--
- Copyright (C) 2017 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.
-
- -->
-
-<vector android:height="24dp" android:viewportHeight="267.9"
- android:viewportWidth="236.3" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
- <path android:fillAlpha="0.9" android:fillColor="#00000000"
- android:pathData="M18,-19c0,-0.4 0,-0.5 -0.3,-0.3l-12,7c-0.3,0.2 -0.2,0.5 0.1,0.6l11.9,7C18,-4.5 18,-4.7 18,-5V-19z"
- android:strokeColor="#FFFFFF" android:strokeWidth="2"/>
- <path android:fillAlpha="0.9" android:fillColor="#00000000"
- android:pathData="M18.9,-12c0,-3.8 -3.1,-6.9 -6.9,-6.9c-3.8,0 -6.9,3.1 -6.9,6.9c0,3.8 3.1,6.9 6.9,6.9C15.8,-5.1 18.9,-8.2 18.9,-12z"
- android:strokeColor="#FFFFFF" android:strokeWidth="1.8033"/>
- <path android:fillAlpha="0.9" android:fillColor="#00000000"
- android:pathData="M19,-5.7C19,-5.4 18.6,-5 18.2,-5H5.8C5.4,-5 5,-5.4 5,-5.7v-12.6C5,-18.6 5.4,-19 5.8,-19h12.4c0.4,0 0.8,0.4 0.8,0.7V-5.7z"
- android:strokeColor="#FFFFFF" android:strokeWidth="2"/>
- <path android:fillColor="#FAFAFA" android:pathData="M118.2,134.4m-118.2,0a118.2,118.2 0,1 1,236.4 0a118.2,118.2 0,1 1,-236.4 0"/>
- <path android:fillColor="#F5F5F5" android:pathData="M22.8,239L96,206.2c0.2,-0.1 0.3,-0.1 0.5,-0.1l117.3,23c0.7,0.2 0.9,1.2 0.2,1.5l-75.9,37.2c-0.2,0.1 -0.3,0.1 -0.5,0.1L23,240.5C22.2,240.3 22.1,239.3 22.8,239z"/>
- <path android:fillColor="#E8E8E8" android:pathData="M35.6,76.5l102,17.3l0,167.4l-102,-23.2z"/>
- <path android:fillColor="#E8E8E8" android:pathData="M35.7,19.6l102,17.3l0,79.2l-102,-23.2z"/>
- <path android:fillColor="#EFEFEF" android:pathData="M35.7,19.6l66.6,-19.6l100.5,19.1l-65.1,18.5z"/>
- <path android:fillColor="#00000000"
- android:pathData="M37.6,131.9L135.2,150"
- android:strokeColor="#E0E0E0" android:strokeWidth="0.1816"/>
- <path android:fillAlpha="0.5" android:fillColor="#00000000"
- android:pathData="M39.1,185.3L132.3,204.8"
- android:strokeColor="#C1C1C1" android:strokeWidth="0.1816"/>
- <path android:fillColor="#00000000"
- android:pathData="M137.7,147.6L116.5,154.5"
- android:strokeColor="#E0E0E0" android:strokeWidth="0.1816"/>
- <path android:fillColor="#00000000" android:pathData="M35.7,142.2"
- android:strokeColor="#E0E0E0" android:strokeWidth="0.1816"/>
- <path android:fillAlpha="5.000000e-02" android:fillColor="#FF000000" android:pathData="M35.7,140.9l101.7,9.2l0,33.1l-101.8,-21.3z"/>
- <path android:fillColor="#CECECE" android:pathData="M71,36.9l28.8,5l0,5.8l-28.8,-5.3z"/>
- <path android:fillAlpha="0.1" android:fillColor="#1F1F1F" android:pathData="M71,36.9l28.8,5l0,1.7l-28.8,-5.3z"/>
- <path android:fillAlpha="0.5" android:fillColor="#CECECE" android:pathData="M68.4,147.3l28.8,5.1l0,5.8l-28.8,-5.4z"/>
- <path android:fillAlpha="0.1" android:fillColor="#1F1F1F" android:pathData="M68.4,147.3l28.8,5.1l0,1.7l-28.8,-5.4z"/>
- <path android:fillAlpha="0.7" android:fillColor="#CECECE" android:pathData="M68.4,201.2l28.8,5.4l0,5.8l-28.8,-5.7z"/>
- <path android:fillAlpha="0.1" android:fillColor="#1F1F1F" android:pathData="M68.4,201.2l28.8,5.4l0,1.6l-28.8,-5.6z"/>
- <path android:fillColor="#EAEAEA" android:pathData="M16.2,80.3l100.3,18.1l0,58.5l-100.3,-20.2z"/>
- <path android:fillColor="#EFEFEF" android:pathData="M137.7,37.6l0,53.9l-21.2,6.9l0,58.5l21.2,-6.9l0,111.1l65.1,-30l0,-212z"/>
- <path android:fillColor="#E57373" android:pathData="M16.2,80.3l19.5,-8.2l0,11.7z"/>
- <path android:fillAlpha="0.6" android:fillColor="#E57373" android:pathData="M137.7,91.5l-102,-19.4l0,11.7l80.8,14.6z"/>
- <path android:fillColor="#CECECE" android:pathData="M47.2,95.5l28.8,5l0,5.8l-28.8,-5.2z"/>
- <path android:fillAlpha="0.1" android:fillColor="#1F1F1F" android:pathData="M47.2,95.5l28.8,5l0,1.7l-28.8,-5.2z"/>
- <path android:fillColor="#EAEAEA" android:pathData="M35.7,72.1L35.7,72.1l-19.6,8.1l0,0.1l0,0l100.3,18.1l0,0l0,0l21.6,-7L35.7,72.1zM116.5,97.5L19.4,80l16.4,-6.8L134,91.8L116.5,97.5z"/>
-</vector>
diff --git a/res/layout/search_panel.xml b/res/layout/search_panel.xml
index 8f72847..9445e0c 100644
--- a/res/layout/search_panel.xml
+++ b/res/layout/search_panel.xml
@@ -61,18 +61,20 @@
android:id="@+id/no_results_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:gravity="center"
+ android:paddingTop="80dp"
android:orientation="vertical"
android:visibility="gone">
<ImageView
- android:layout_height="112dp"
- android:layout_width="112dp"
- android:src="@drawable/no_search_results"/>
+ android:layout_height="160dp"
+ android:layout_width="160dp"
+ android:layout_gravity="center_horizontal"
+ android:src="@drawable/empty_search_results"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"
+ android:paddingTop="24dp"
android:textSize="18sp"
android:text="@string/search_settings_no_results"
android:gravity="center"/>
diff --git a/res/layout/storage_summary_donut.xml b/res/layout/storage_summary_donut.xml
index 585fbf4..eb26077 100644
--- a/res/layout/storage_summary_donut.xml
+++ b/res/layout/storage_summary_donut.xml
@@ -17,7 +17,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="?android:attr/selectableItemBackground"
+ android:background="?android:attr/colorSecondary"
android:gravity="center_vertical"
android:orientation="horizontal" >
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 705e49e..567d7ec 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Oorberekende kragverbruik"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> lank gebruik"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> gebruik deur <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> van algehele batterygebruik"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Ontleding sedert battery laas volgelaai is"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Speletjies"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Ander programme"</string>
<string name="storage_files" msgid="8581083146777364063">"Lêers"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Tabletberging"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Foonberging"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Gebruik van <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"gebruik"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 9ed45af..b5b1ce8 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"ከመጠን በላይ የተቆጠረ የሃይል አጠቃቀም"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"ለ<xliff:g id="TIME">^1</xliff:g> ጥቅም ላይ ውሏል"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> <xliff:g id="PERCENT">%1$s</xliff:g> ተጠቅሟል"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ከጠቅላላ ባትሪ"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"መጨረሻ ላይ ሙሉ ኃይል ከነበረበት ጊዜ ጀምሮ ያለው ትንታኔ"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"ጨዋታዎች"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"ሌሎች መተግበሪያዎች"</string>
<string name="storage_files" msgid="8581083146777364063">"ፋይሎች"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"የጡባዊ ማከማቻ"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"የስልክ ማከማቻ"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"ከ<xliff:g id="TOTAL">%1$s</xliff:g> ጥቅም ላይ የዋለው"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"ጥቅም ላይ ውሏል"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 95321a0..3dd7553 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -2089,6 +2089,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"استخدام زائد عن الحد للطاقة"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> مللي أمبير في الساعة"</string>
<string name="battery_used_for" msgid="2690821851327075443">"تم استخدامه لمدة <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> مستخدمة بواسطة <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> من إجمالي شحن البطارية"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"تفاصيل الاستخدام منذ آخر شحن كامل"</string>
@@ -3771,8 +3773,6 @@
<string name="storage_games" msgid="7703159201697117621">"الألعاب"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"تطبيقات أخرى"</string>
<string name="storage_files" msgid="8581083146777364063">"الملفات"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"سعة تخزين الجهاز اللوحي"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"سعة تخزين الهاتف"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"سعة تخزين مستخدمة من <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"مستخدمة"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 8b271af..5eec8ff 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Artıq hesablanmış enerji istifadəsi"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> üçün istifadə olundu"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> <xliff:g id="PERCENT">%1$s</xliff:g> batareya istifadə etdi"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> batareya istifadəsi"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Sonuncu tam doldurmadan sonrakı istifadə problemi"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Oyunlar"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Digər tətbiqlər"</string>
<string name="storage_files" msgid="8581083146777364063">"Fayllar"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Planşet yaddaşı"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Telefon yaddaşı"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g> istifadə olunub"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"işlənib"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 9416bfe..29f79b3 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -34,7 +34,7 @@
<string name="header_category_wireless_networks" msgid="5110914332313954940">"Bežična veza i mreže"</string>
<string name="header_category_connections" msgid="6471513040815680662">"Veze"</string>
<string name="header_category_device" msgid="4544026001618307754">"Uređaj"</string>
- <string name="header_category_personal" msgid="3310195187905720823">"Lično"</string>
+ <string name="header_category_personal" msgid="3310195187905720823">"Lični"</string>
<string name="header_category_access" msgid="7580499097416970962">"Pristup"</string>
<string name="header_category_system" msgid="2816866961183068977">"Sistem"</string>
<string name="radio_info_data_connection_enable" msgid="8656750679353982712">"Omogući vezu za prenos podataka"</string>
@@ -584,7 +584,7 @@
<item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> aktivne aplikacije</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> aktivnih aplikacija</item>
</plurals>
- <string name="manage_trust_agents" msgid="4629279457536987768">"Trust agents"</string>
+ <string name="manage_trust_agents" msgid="4629279457536987768">"Pouzdani agenti"</string>
<string name="disabled_because_no_backup_security" msgid="6877660253409580377">"Da biste ga koristili, prvo podesite zaključavanje ekrana"</string>
<string name="manage_trust_agents_summary" msgid="1475819820389620546">"Ništa"</string>
<plurals name="manage_trust_agents_summary_on" formatted="false" msgid="3935182396726101824">
@@ -962,7 +962,7 @@
<string name="search_settings" msgid="1910951467596035063">"Pretraga"</string>
<string name="search_settings_summary" msgid="9205656546570654169">"Upravljanje podešavanjima pretrage i istorijom"</string>
<string name="search_settings_no_results" msgid="8799027492641230999">"Nema rezultata"</string>
- <string name="display_settings" msgid="7965901687241669598">"Prikaz"</string>
+ <string name="display_settings" msgid="7965901687241669598">"Ekran"</string>
<string name="accelerometer_title" msgid="7854608399547349157">"Automatsko rotiranje ekrana"</string>
<string name="accelerometer_summary_on" product="tablet" msgid="429982132339828942">"Promeni položaj automatski prilikom rotiranja tableta"</string>
<string name="accelerometer_summary_on" product="default" msgid="1133737282813048021">"Automatska promena položaja prilikom rotacije telefona"</string>
@@ -2026,6 +2026,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Prekomerno izračunata potrošnja energije"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Koristi se <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> koristi <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ukupnog kapaciteta baterije"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Pregled od poslednjeg potpunog punjenja"</string>
@@ -2190,7 +2192,7 @@
<string name="no_device_admins" msgid="4846602835339095768">"Nema dostupnih aplikacija za administratora uređaja"</string>
<string name="personal_device_admin_title" msgid="2849617316347669861">"Lični"</string>
<string name="managed_device_admin_title" msgid="7853955652864478435">"Posao"</string>
- <string name="no_trust_agents" msgid="7450273545568977523">"Trust agents - Nedostupno"</string>
+ <string name="no_trust_agents" msgid="7450273545568977523">"Nema dostupnih pouzdanih agenata"</string>
<string name="add_device_admin_msg" msgid="1501847129819382149">"Aktiviraj aplikaciju za administratore?"</string>
<string name="add_device_admin" msgid="4192055385312215731">"Aktiviraj ovu aplikaciju za administratore uređaja"</string>
<string name="device_admin_add_title" msgid="3140663753671809044">"Administrator uređaja"</string>
@@ -3035,7 +3037,7 @@
<string name="storage_used" msgid="7128074132917008743">"Memorijski prostor u upotrebi"</string>
<string name="change" msgid="6657848623929839991">"Promeni"</string>
<string name="change_storage" msgid="600475265207060436">"Promenite memoriju"</string>
- <string name="notifications_label" msgid="8543457911148619898">"Obaveštenja aplikacije"</string>
+ <string name="notifications_label" msgid="8543457911148619898">"Obaveštenja o aplikaciji"</string>
<string name="notifications_enabled" msgid="6983396130566021385">"Uključena"</string>
<string name="notifications_disabled" msgid="334416731283131597">"Sve je isključeno"</string>
<string name="notifications_partly_blocked" msgid="592071133950126656">"Uključenih kategorija: <xliff:g id="COUNT_0">%1$d</xliff:g> od <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
@@ -3155,12 +3157,12 @@
<string name="usb_use_power_only" msgid="6426550616883919530">"Napajanje"</string>
<string name="usb_use_power_only_desc" msgid="3461232831015575152">"Punite povezani uređaj. Radi samo sa uređajima koji podržavaju punjenje preko USB-a."</string>
<string name="usb_use_file_transfers" msgid="7409600791007250137">"Prenos datoteka"</string>
- <string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"Prenosi datoteke na drugi uređaj"</string>
+ <string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"Prenosite datoteke na drugi uređaj"</string>
<string name="usb_use_photo_transfers" msgid="7794775645350330454">"Prenos slika (PTP)"</string>
- <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"Prenosi slike ili datoteke ako MTP nije podržan (PTP)"</string>
+ <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"Prenosite slike ili datoteke ako MTP nije podržan (PTP)"</string>
<string name="usb_use_MIDI" msgid="870922185938298263">"Korišćenje uređaja u MIDI režimu"</string>
- <string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Koristi ovaj uređaj kao MIDI"</string>
- <string name="usb_use" msgid="3256040963685055320">"Upotrebite USB za:"</string>
+ <string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Koristite ovaj uređaj kao MIDI"</string>
+ <string name="usb_use" msgid="3256040963685055320">"Koristite USB za:"</string>
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Punjenje uređaja"</string>
<string name="usb_summary_power_only" msgid="3629517713817003738">"Napajanje"</string>
@@ -3264,7 +3266,7 @@
<string name="screen_zoom_conversation_timestamp_3" msgid="3785674344762707688">"Uto 18:02"</string>
<string name="screen_zoom_conversation_timestamp_4" msgid="2511469395448561259">"Uto 18:03"</string>
<string name="disconnected" msgid="4836600637485526329">"Nije povezano"</string>
- <string name="data_usage_summary_format" msgid="7507047900192160585">"Koristi se <xliff:g id="AMOUNT">%1$s</xliff:g> podataka"</string>
+ <string name="data_usage_summary_format" msgid="7507047900192160585">"Iskorišćeno je <xliff:g id="AMOUNT">%1$s</xliff:g> podataka"</string>
<plurals name="notification_summary" formatted="false" msgid="3941492005316143599">
<item quantity="one">Isključeno za <xliff:g id="COUNT">%d</xliff:g> aplikaciju</item>
<item quantity="few">Isključeno za <xliff:g id="COUNT">%d</xliff:g> aplikacije</item>
@@ -3618,8 +3620,6 @@
<string name="storage_games" msgid="7703159201697117621">"Igre"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Druge aplikacije"</string>
<string name="storage_files" msgid="8581083146777364063">"Datoteke"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Memorija tableta"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Memorija telefona"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Iskorišćeno od ukupno <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"u upot."</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 692f78d..47289ee 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -2048,6 +2048,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Няўлічанае спажыванне энергіі"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> мАг"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Выкарыстана на працягу <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> выкарыстана праграмай <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ад усяго зараду"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Разбіўка з моманту апошняй поўнай зарадкі"</string>
@@ -3671,8 +3673,6 @@
<string name="storage_games" msgid="7703159201697117621">"Гульні"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Іншыя праграмы"</string>
<string name="storage_files" msgid="8581083146777364063">"Файлы"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Сховішча планшэта"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Сховішча тэлефона"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Выкарыстана з <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"занята"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 3708013..7d765c2 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Отчетено в повече захранване"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> мАч"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Използвано за <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"Използван капацитет от <xliff:g id="APP">%2$s</xliff:g>: <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> от общия капацитет на батерията"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Разбивка след последното пълно зареждане"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Игри"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Други приложения"</string>
<string name="storage_files" msgid="8581083146777364063">"Файлове"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Хранилище на таблета"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Хранилище на телефона"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"използвани от <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"ползв."</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index dcf1762..d367206 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"নির্ধারিত শক্তির থেকে বেশী শক্তির ব্যবহার"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> এর জন্য ব্যবহার করা হয়েছে"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> এর দ্বারা <xliff:g id="PERCENT">%1$s</xliff:g> ব্যবহার করা হয়েছে"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"সামগ্রিক ব্যাটারির <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"শেষবার সম্পূর্ণ চার্জ দেওয়ার পর থেকে ব্যাটারির ব্যবহার"</string>
@@ -2777,8 +2779,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"বিজ্ঞপ্তি"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"উন্নত"</string>
<string name="profile_section_header" msgid="2320848161066912001">"কর্মস্থলের বিজ্ঞপ্তিগুলি"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"আইকন ব্যাজের অনুমতি দিন"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"মিটমিট করা আলো"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"লক স্ক্রীনে"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"সমস্ত বিজ্ঞপ্তির সামগ্রীগুলি দেখান"</string>
@@ -3568,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"গেম্স"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"অন্যান্য অ্যাপ্লিকেশান"</string>
<string name="storage_files" msgid="8581083146777364063">"ফাইল"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"ট্যাবলেটের সঞ্চয়স্থান"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"ফোনের সঞ্চয়স্থান"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g> এর মধ্যে ব্যবহার হয়েছে"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"ব্যবহৃত"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 7007974..d4798f3 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -1759,12 +1759,12 @@
<string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"Kreirati vidžet i omogućiti pristup?"</string>
<string name="allow_bind_app_widget_activity_allow_bind" msgid="1584388129273282080">"Nakon što kreirate vidžet, <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> može pristupiti svim podacima koje prikazuje."</string>
<string name="allow_bind_app_widget_activity_always_allow_bind" msgid="7037503685859688034">"Uvijek dopusti da aplikacija <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> kreira vidžete i koristi njihove podatke"</string>
- <string name="battery_history_days" msgid="7110262897769622564">"<xliff:g id="DAYS">%1$d</xliff:g>d <xliff:g id="HOURS">%2$d</xliff:g>h <xliff:g id="MINUTES">%3$d</xliff:g>m <xliff:g id="SECONDS">%4$d</xliff:g>s"</string>
- <string name="battery_history_hours" msgid="7525170329826274999">"<xliff:g id="HOURS">%1$d</xliff:g>h <xliff:g id="MINUTES">%2$d</xliff:g>m <xliff:g id="SECONDS">%3$d</xliff:g>s"</string>
- <string name="battery_history_minutes" msgid="1467775596084148610">"<xliff:g id="MINUTES">%1$d</xliff:g>m <xliff:g id="SECONDS">%2$d</xliff:g>s"</string>
- <string name="battery_history_seconds" msgid="4283492130945761685">"<xliff:g id="SECONDS">%1$d</xliff:g>s"</string>
- <string name="battery_history_days_no_seconds" msgid="703063770554334710">"<xliff:g id="DAYS">%1$d</xliff:g>d <xliff:g id="HOURS">%2$d</xliff:g>h <xliff:g id="MINUTES">%3$d</xliff:g>m"</string>
- <string name="battery_history_hours_no_seconds" msgid="663342892615646712">"<xliff:g id="HOURS">%1$d</xliff:g> s <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
+ <string name="battery_history_days" msgid="7110262897769622564">"<xliff:g id="DAYS">%1$d</xliff:g> d, <xliff:g id="HOURS">%2$d</xliff:g> h, <xliff:g id="MINUTES">%3$d</xliff:g> min, <xliff:g id="SECONDS">%4$d</xliff:g> s"</string>
+ <string name="battery_history_hours" msgid="7525170329826274999">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min, <xliff:g id="SECONDS">%3$d</xliff:g> s"</string>
+ <string name="battery_history_minutes" msgid="1467775596084148610">"<xliff:g id="MINUTES">%1$d</xliff:g> min, <xliff:g id="SECONDS">%2$d</xliff:g> s"</string>
+ <string name="battery_history_seconds" msgid="4283492130945761685">"<xliff:g id="SECONDS">%1$d</xliff:g> s"</string>
+ <string name="battery_history_days_no_seconds" msgid="703063770554334710">"<xliff:g id="DAYS">%1$d</xliff:g> d, <xliff:g id="HOURS">%2$d</xliff:g> h, <xliff:g id="MINUTES">%3$d</xliff:g> min"</string>
+ <string name="battery_history_hours_no_seconds" msgid="663342892615646712">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
<string name="battery_history_minutes_no_seconds" msgid="7780294302606853082">"<xliff:g id="MINUTES">%1$d</xliff:g> min"</string>
<string name="usage_stats_label" msgid="5890846333487083609">"Statistika korištenja"</string>
<string name="testing_usage_stats" msgid="7823048598893937339">"Statistika korištenja"</string>
@@ -1950,7 +1950,7 @@
<string name="battery_stats_screen_on_label" msgid="7150221809877509708">"Ekran uključen"</string>
<string name="battery_stats_gps_on_label" msgid="1193657533641951256">"GPS uključen"</string>
<string name="battery_stats_camera_on_label" msgid="4935637383628414968">"Kamera je uključena"</string>
- <string name="battery_stats_flashlight_on_label" msgid="4319637669889411307">"Lampa je uključena"</string>
+ <string name="battery_stats_flashlight_on_label" msgid="4319637669889411307">"Svjetiljka je uključena"</string>
<string name="battery_stats_wifi_running_label" msgid="1845839195549226252">"Wi-Fi"</string>
<string name="battery_stats_wake_lock_label" msgid="1908942681902324095">"Aktivan"</string>
<!-- no translation found for battery_stats_phone_signal_label (4137799310329041341) -->
@@ -1967,7 +1967,7 @@
<string name="controls_subtitle" msgid="390468421138288702">"Podesite potrošnju energije"</string>
<string name="packages_subtitle" msgid="4736416171658062768">"Uključeni paketi"</string>
<string name="power_screen" msgid="3023346080675904613">"Ekran"</string>
- <string name="power_flashlight" msgid="7794409781003567614">"Lampa"</string>
+ <string name="power_flashlight" msgid="7794409781003567614">"Svjetiljka"</string>
<string name="power_camera" msgid="4976286950934622605">"Fotoaparat"</string>
<string name="power_wifi" msgid="1135085252964054957">"Wi‑Fi"</string>
<string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
@@ -1996,7 +1996,7 @@
<string name="usage_type_audio" msgid="6957269406840886290">"Zvuk"</string>
<string name="usage_type_video" msgid="4295357792078579944">"Video"</string>
<string name="usage_type_camera" msgid="8299433109956769757">"Kamera"</string>
- <string name="usage_type_flashlight" msgid="1516392356962208230">"Lampa"</string>
+ <string name="usage_type_flashlight" msgid="1516392356962208230">"Svjetiljka"</string>
<string name="usage_type_on_time" msgid="3351200096173733159">"Vrijeme rada"</string>
<string name="usage_type_no_coverage" msgid="3797004252954385053">"Vrijeme bez signala"</string>
<string name="usage_type_total_battery_capacity" msgid="3798285287848675346">"Ukupni kapacitet baterije"</string>
@@ -2013,7 +2013,7 @@
<string name="battery_desc_standby" product="default" msgid="3009080001948091424">"Potrošnja baterije kada je telefon u stanju pripravnosti"</string>
<string name="battery_desc_radio" msgid="5479196477223185367">"Potrošnja baterije za mobilni radio"</string>
<string name="battery_sugg_radio" msgid="8211336978326295047">"Prebacite se na način rada u avionu kako biste štedili napajanje na područjima u kojima nema pokrivenosti mobilnom mrežom"</string>
- <string name="battery_desc_flashlight" msgid="2908579430841025494">"Potrošnja baterije upotrebom baterijske lampe"</string>
+ <string name="battery_desc_flashlight" msgid="2908579430841025494">"Potrošnja baterije upotrebom svjetiljke"</string>
<string name="battery_desc_camera" msgid="7375389919760613499">"Potrošnja baterije upotrebom kamere"</string>
<string name="battery_desc_display" msgid="5432795282958076557">"Potrošnja baterije na prikaz i pozadinsko osvjetljenje"</string>
<string name="battery_sugg_display" msgid="3370202402045141760">"Smanjite osvjetljenje ekrana i/ili trajanje perioda do isključivanja ekrana"</string>
@@ -2032,6 +2032,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Prekoračenje potrošnje energije"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Korišteno <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"Aplikacija <xliff:g id="APP">%2$s</xliff:g> koristi <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ukupne baterije"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Pregled od posljednje potpune napunjenosti"</string>
@@ -2696,7 +2698,7 @@
<string name="connected_devices_dashboard_title" msgid="2355264951438890709">"Povezani uređaji"</string>
<string name="connected_devices_dashboard_summary" msgid="2390582103384791904">"Bluetooth, emitiranje, NFC"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikacije i obavještenja"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Dopuštenja, zadane aplikacije"</string>
+ <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Odobrenja, zadane aplikacije"</string>
<string name="account_dashboard_title" msgid="4936890821712178853">"Korisnici i računi"</string>
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Zadane aplikacije"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Jezici, vrijeme, sigurnosna kopija, ažuriranja"</string>
@@ -3061,9 +3063,9 @@
<string name="notification_summary_level" msgid="2726571692704140826">"Nivo %d"</string>
<string name="notification_summary_channel" msgid="5831124672372023524">"<xliff:g id="CHANNEL_NAME">%1$s</xliff:g> • <xliff:g id="GROUP_NAME">%2$s</xliff:g>"</string>
<plurals name="permissions_summary" formatted="false" msgid="6402730318075959117">
- <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> dodijeljena dozvola</item>
- <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> dodijeljene dozvole</item>
- <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> dodijeljenih dozvola</item>
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> dodijeljeno odobrenje</item>
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> dodijeljena odobrenja</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> dodijeljenih odobrenja</item>
</plurals>
<plurals name="runtime_permissions_summary" formatted="false" msgid="1564663886246010959">
<item quantity="one"><xliff:g id="COUNT_2">%d</xliff:g> od <xliff:g id="COUNT_3">%d</xliff:g> odobrenja je dato</item>
@@ -3071,12 +3073,12 @@
<item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> od <xliff:g id="COUNT_3">%d</xliff:g> odobrenja je dato</item>
</plurals>
<plurals name="runtime_permissions_additional_count" formatted="false" msgid="931276038884210752">
- <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> dodatna dozvola</item>
- <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> dodatne dozvole</item>
- <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> dodatnih dozvola</item>
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> dodatno odobrenje</item>
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> dodatna odobrenje</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> dodatnih odobrenja</item>
</plurals>
- <string name="runtime_permissions_summary_no_permissions_granted" msgid="1679758182657005375">"Nema dodijeljenih dozvola"</string>
- <string name="runtime_permissions_summary_no_permissions_requested" msgid="7655100570513818534">"Nema zatraženih dozvola"</string>
+ <string name="runtime_permissions_summary_no_permissions_granted" msgid="1679758182657005375">"Nema dodijeljenih odobrenja"</string>
+ <string name="runtime_permissions_summary_no_permissions_requested" msgid="7655100570513818534">"Nema zatraženih odobrenja"</string>
<string name="filter_all_apps" msgid="1988403195820688644">"Sve aplikacije"</string>
<string name="filter_enabled_apps" msgid="5395727306799456250">"Instalirane aplikacije"</string>
<string name="filter_instant_apps" msgid="574277769963965565">"Instant-aplikacije"</string>
@@ -3235,15 +3237,15 @@
<string name="keywords_vr_listener" msgid="7441221822576384680">"vr slušalac virtuelne realnosti stereo pomoćna usluga"</string>
<string name="keywords_system_alert_window" msgid="5049498015597864850">"sistem upozorenje prozor dijaloški okvir prikazivanje preko drugih aplikacija"</string>
<string name="overlay_settings" msgid="6930854109449524280">"Prikaz preko drugih aplikacija"</string>
- <string name="system_alert_window_summary" msgid="602892301318324492">"Aplikacije s dozvolom za prikaz preko drugih aplikacija: <xliff:g id="COUNT_0">%1$d</xliff:g> od <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
- <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplikacije s dozvolom"</string>
+ <string name="system_alert_window_summary" msgid="602892301318324492">"Aplikacije s odobrenjem za prikaz preko drugih aplikacija: <xliff:g id="COUNT_0">%1$d</xliff:g> od <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
+ <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplikacije s odobrenjem"</string>
<string name="system_alert_window_on" msgid="2939489395109048888">"Da"</string>
<string name="system_alert_window_off" msgid="6189115687233061992">"Ne"</string>
<string name="install_other_apps" msgid="6986686991775883017">"Instaliranje nepoznatih aplikacija"</string>
<string name="keywords_install_other_apps" msgid="761078076051006558">"instaliranje aplikacije nepoznati izvori"</string>
<string name="write_settings" msgid="4797457275727195681">"Izmjena postavki sistema"</string>
<string name="keywords_write_settings" msgid="6415597272561105138">"pisati izmijeniti sistemske postavke"</string>
- <string name="write_settings_summary" msgid="4302268998611412696">"Aplikacije sa dozvolom za mijenjanje postavki sistema: <xliff:g id="COUNT_0">%1$d</xliff:g> od <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
+ <string name="write_settings_summary" msgid="4302268998611412696">"Aplikacije sa odobrenjem za mijenjanje postavki sistema: <xliff:g id="COUNT_0">%1$d</xliff:g> od <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
<string name="filter_install_sources_apps" msgid="3102976274848199118">"Mogu instalirati druge aplikacije"</string>
<string name="filter_write_settings_apps" msgid="2914615026197322551">"Mogu mijenjati postavke sistema"</string>
<string name="write_settings_title" msgid="4232152481902542284">"Mogu mijenjati postavke sistema"</string>
@@ -3574,8 +3576,8 @@
<item quantity="other">Najmanje <xliff:g id="COUNT_1">%d</xliff:g> aplikacija</item>
</plurals>
<string name="enterprise_privacy_location_access" msgid="4158197200885270634">"Odobrenja za lokacije"</string>
- <string name="enterprise_privacy_microphone_access" msgid="5717375623568864441">"Dopuštenja za mikrofon"</string>
- <string name="enterprise_privacy_camera_access" msgid="4858146118537519375">"Dopuštenja za kameru"</string>
+ <string name="enterprise_privacy_microphone_access" msgid="5717375623568864441">"Odobrenja za mikrofon"</string>
+ <string name="enterprise_privacy_camera_access" msgid="4858146118537519375">"Odobrenja za kameru"</string>
<string name="enterprise_privacy_enterprise_set_default_apps" msgid="3288495615791128724">"Zadane aplikacije"</string>
<plurals name="enterprise_privacy_number_packages" formatted="false" msgid="2765037387436064893">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> aplikacija</item>
@@ -3632,8 +3634,6 @@
<string name="storage_games" msgid="7703159201697117621">"Igre"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Druge aplikacije"</string>
<string name="storage_files" msgid="8581083146777364063">"Fajlovi"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Pohrana na tabletu"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Pohrana na telefonu"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Iskorišteno od <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"iskor."</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index c33d5a9..bd81a0d 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -1488,7 +1488,7 @@
<string name="applications_settings" msgid="5281808652705396152">"Informació d\'aplicacions"</string>
<string name="applications_settings_summary" msgid="6683465446264515367">"Gestiona les aplicacions i configura les dreceres d\'inici ràpid"</string>
<string name="applications_settings_header" msgid="1014813055054356646">"Configuració de l\'aplicació"</string>
- <string name="install_applications" msgid="4872012136210802181">"Orígens desconeguts"</string>
+ <string name="install_applications" msgid="4872012136210802181">"Fonts desconegudes"</string>
<string name="install_applications_title" msgid="4987712352256508946">"Permet totes les fonts d\'apl."</string>
<string name="install_all_warning" product="tablet" msgid="8310489909586138165">"La tauleta i les dades personals són més vulnerables a atacs d\'aplicacions desconegudes. En instal·lar aplicacions d\'aquesta font, acceptes que ets responsable de qualsevol dany a la tauleta i qualsevol pèrdua de dades que es pugui produir per l\'ús d\'aquestes aplicacions."</string>
<string name="install_all_warning" product="default" msgid="1952257127370115988">"El telèfon i les dades personals són més vulnerables a atacs d\'aplicacions desconegudes. En instal·lar aplicacions d\'aquesta font, acceptes que ets responsable de qualsevol dany al telèfon i qualsevol pèrdua de dades que es pugui produir per l\'ús d\'aquestes aplicacions."</string>
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Consum d\'energia comptabilitzat més d\'una vegada"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"En ús durant <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> utilitzat per <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> d\'ús de la bateria"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Desglossament des de l\'última càrrega completa"</string>
@@ -2777,7 +2779,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"Notificacions"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"Avançada"</string>
<string name="profile_section_header" msgid="2320848161066912001">"Notificacions de la feina"</string>
- <string name="notification_badging_title" msgid="5125022693565388760">"Permet les insígnies d\'icona"</string>
+ <string name="notification_badging_title" msgid="5125022693565388760">"Permet icones encerclades"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"Llum intermitent"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"A la pantalla de bloqueig"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Mostra tot el contingut de les notificacions"</string>
@@ -2859,7 +2861,7 @@
<string name="app_notification_block_summary" msgid="4744020456943215352">"No mostris mai aquestes notificacions"</string>
<string name="notification_content_block_title" msgid="5854232570963006360">"Mostra notificacions"</string>
<string name="notification_content_block_summary" msgid="7746185794438882389">"No mostris mai notificacions a l\'àrea de notificacions ni en dispositius perifèrics"</string>
- <string name="notification_badge_title" msgid="7734903868300369178">"Permet l\'etiqueta de la icona"</string>
+ <string name="notification_badge_title" msgid="7734903868300369178">"Permet icones encerclades"</string>
<string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Fes prioritària"</string>
<string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Permet que aquestes notificacions continuïn interrompent quan el mode No molestis estigui configurat com a Només amb prioritat"</string>
<string name="app_notification_visibility_override_title" msgid="2187232730902430718">"A la pantalla de bloqueig"</string>
@@ -3189,7 +3191,7 @@
<string name="system_alert_window_on" msgid="2939489395109048888">"Sí"</string>
<string name="system_alert_window_off" msgid="6189115687233061992">"No"</string>
<string name="install_other_apps" msgid="6986686991775883017">"Instal·lar aplicacions desconegudes"</string>
- <string name="keywords_install_other_apps" msgid="761078076051006558">"instal·lar aplicacions orígens desconeguts"</string>
+ <string name="keywords_install_other_apps" msgid="761078076051006558">"instal·lar aplicacions fonts desconegudes"</string>
<string name="write_settings" msgid="4797457275727195681">"Modificar configuració sistema"</string>
<string name="keywords_write_settings" msgid="6415597272561105138">"modifica la configuració del sistema i hi escriu"</string>
<string name="write_settings_summary" msgid="4302268998611412696">"<xliff:g id="COUNT_0">%1$d</xliff:g> de: <xliff:g id="COUNT_1">%2$d</xliff:g> aplicacions poden modificar configuració del sistema"</string>
@@ -3484,7 +3486,7 @@
<string name="web_action_enable_title" msgid="4051513950976670853">"Aplicacions instantànies"</string>
<string name="web_action_enable_summary" msgid="3108127559723396382">"Obre enllaços en aplicacions, encara que no estiguin instal·lades"</string>
<string name="web_action_section_title" msgid="7364647086538399136">"Aplicacions instantànies"</string>
- <string name="instant_apps_account" msgid="1433620209791992528">"Compte d\'aplicacions instantànies"</string>
+ <string name="instant_apps_account" msgid="1433620209791992528">"Compte per a les aplicacions instantànies"</string>
<string name="domain_url_section_title" msgid="7046835219056428883">"Aplicacions instal·lades"</string>
<string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Ara mateix, el gestor d\'emmagatzematge gestiona el teu emmagatzematge"</string>
<string name="account_for_section_header" msgid="5356566418548737121">"Comptes de l\'usuari <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Jocs"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Altres aplicacions"</string>
<string name="storage_files" msgid="8581083146777364063">"Fitxers"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Emmagatzematge tauleta"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Emmagatzematge del telèfon"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Utilitzat de: <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"utilitzat"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index f5f1d41..f4f1d73 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -2047,6 +2047,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Nadhodnocení spotřeby energie"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Využíváno <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> bylo použito aplikací <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> z celkové kapacity baterie"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Přehled od posledního úplného nabití"</string>
@@ -3669,8 +3671,6 @@
<string name="storage_games" msgid="7703159201697117621">"Hry"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Další aplikace"</string>
<string name="storage_files" msgid="8581083146777364063">"Soubory"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Úložiště tabletu"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Úložiště telefonu"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Využito z <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"využito"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index faad3b8..b64255a 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -733,7 +733,7 @@
<string name="wifi_more" msgid="3195296805089107950">"Mere"</string>
<string name="wifi_setup_wps" msgid="8128702488486283957">"Automatisk konfig. (WPS)"</string>
<string name="wifi_show_advanced" msgid="3409422789616520979">"Avancerede valgmuligheder"</string>
- <string name="wifi_advanced_toggle_description_expanded" msgid="2380600578544493084">"Rullelisten Avancerede indstillinger. Tryk to gange for at skjule listen."</string>
+ <string name="wifi_advanced_toggle_description_expanded" msgid="2380600578544493084">"Rullelisten Avancerede valgmuligheder. Tryk to gange for at skjule listen."</string>
<string name="wifi_advanced_toggle_description_collapsed" msgid="1463812308429197263">"Rullelisten Avancerede valgmuligheder. Tryk to gange for at udvide listen."</string>
<string name="wifi_wps_setup_title" msgid="8207552222481570175">"Wi-Fi Protected Setup"</string>
<string name="wifi_wps_setup_msg" msgid="315174329121275092">"Starter WPS..."</string>
@@ -1012,7 +1012,7 @@
<string name="screensaver_settings_summary_dock" msgid="2072657401664633283">"Når enheden er tilsluttet en dockingstation"</string>
<string name="screensaver_settings_summary_never" msgid="5165622985174349585">"Aldrig"</string>
<string name="screensaver_settings_summary_off" msgid="2481581696365146473">"Fra"</string>
- <string name="screensaver_settings_disabled_prompt" msgid="1239088321034437608">"Aktivér pauseskærmen for at kontrollere, hvad der sker, når telefonen er sat i dockingstationen og/eller går i dvale."</string>
+ <string name="screensaver_settings_disabled_prompt" msgid="1239088321034437608">"Aktivér pauseskærmen for at administrere, hvad der sker, når telefonen er sat i dockingstationen og/eller går i dvale."</string>
<string name="screensaver_settings_when_to_dream" msgid="7262410541382890146">"Starttidspunkt"</string>
<string name="screensaver_settings_current" msgid="4663846038247130023">"Aktuel pauseskærm"</string>
<string name="screensaver_settings_dream_start" msgid="4998187847985120168">"Start nu"</string>
@@ -1527,7 +1527,7 @@
<string name="always_allow_bind_appwidgets_text" msgid="566822577792032925">"Du har valgt at tillade, at denne app opretter widgets og får adgang til deres data."</string>
<string name="auto_launch_disable_text" msgid="7800385822185540166">"Der er ikke angivet nogen standarder."</string>
<string name="clear_activities" msgid="7408923511535174430">"Ryd standarder"</string>
- <string name="screen_compatibility_text" msgid="1616155457673106022">"Denne app er muligvis ikke beregnet til din skærm. Her kan du kontrollere, hvordan den skal tilpasses til din skærm."</string>
+ <string name="screen_compatibility_text" msgid="1616155457673106022">"Denne app er muligvis ikke beregnet til din skærm. Her kan du administrere, hvordan den skal tilpasses til din skærm."</string>
<string name="ask_compatibility" msgid="7225195569089607846">"Spørg, når der startes"</string>
<string name="enable_compatibility" msgid="5806819252068617811">"Skaler app"</string>
<string name="unknown" msgid="1592123443519355854">"Ukendt"</string>
@@ -1617,7 +1617,7 @@
<string name="app_ops_never_used" msgid="9114608022906887802">"(Aldrig brugt)"</string>
<string name="no_default_apps" msgid="2915315663141025400">"Ingen standardapps."</string>
<string name="storageuse_settings_title" msgid="5657014373502630403">"Lagerforbrug"</string>
- <string name="storageuse_settings_summary" msgid="3748286507165697834">"Vis lagerplads, der bruges af apps"</string>
+ <string name="storageuse_settings_summary" msgid="3748286507165697834">"Vis lagerplads, der anvendes af apps"</string>
<string name="service_restarting" msgid="2242747937372354306">"Genstarter"</string>
<string name="cached" msgid="1059590879740175019">"Cachelagret baggrundsproces"</string>
<string name="no_running_services" msgid="2059536495597645347">"Intet kører."</string>
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Overvurderet strømforbrug"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Har været aktiv i <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> anvendt af <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> af det samlede batteriforbrug"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Siden sidste fulde opladning"</string>
@@ -2374,7 +2376,7 @@
<string name="vpn_ipsec_user_cert" msgid="6880651510020187230">"IPSec-brugercertifikat"</string>
<string name="vpn_ipsec_ca_cert" msgid="91338213449148229">"IPSec CA-certifikat"</string>
<string name="vpn_ipsec_server_cert" msgid="6599276718456935010">"IPSec-servercertifikat"</string>
- <string name="vpn_show_options" msgid="7182688955890457003">"Vis avancerede indstillinger"</string>
+ <string name="vpn_show_options" msgid="7182688955890457003">"Vis avancerede valgmuligheder"</string>
<string name="vpn_search_domains" msgid="5391995501541199624">"DNS-søgedomæner"</string>
<string name="vpn_dns_servers" msgid="5570715561245741829">"DNS-servere (f.eks. 8.8.8.8)"</string>
<string name="vpn_routes" msgid="3818655448226312232">"Videresendelsesruter (f.eks. 10.0.0.0/8)"</string>
@@ -3000,7 +3002,7 @@
<string name="storage_type_external" msgid="7738894330670001898">"Ekstern lagerplads"</string>
<string name="app_data_usage" msgid="7942375313697452803">"Appens dataforbrug"</string>
<string name="data_summary_format" msgid="6213211533341068366">"<xliff:g id="SIZE">%1$s</xliff:g> brugt siden <xliff:g id="DATE">%2$s</xliff:g>"</string>
- <string name="storage_used" msgid="7128074132917008743">"Brugt lagerplads"</string>
+ <string name="storage_used" msgid="7128074132917008743">"Anvendt lagerplads"</string>
<string name="change" msgid="6657848623929839991">"Skift"</string>
<string name="change_storage" msgid="600475265207060436">"Skift lager"</string>
<string name="notifications_label" msgid="8543457911148619898">"Appunderretninger"</string>
@@ -3236,7 +3238,7 @@
<string name="apps_summary" msgid="193158055537070092">"<xliff:g id="COUNT">%1$d</xliff:g> apps er installeret"</string>
<string name="apps_summary_example" msgid="2118896966712746139">"Der er installeret 24 apps"</string>
<string name="storage_summary" msgid="3801281635351732202">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> er brugt – <xliff:g id="FREE_SPACE">%2$s</xliff:g> ledig plads"</string>
- <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Intern lagerplads: <xliff:g id="PERCENTAGE">%1$s</xliff:g> er brugt – <xliff:g id="FREE_SPACE">%2$s</xliff:g> ledig plads"</string>
+ <string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Intern lagerplads: <xliff:g id="PERCENTAGE">%1$s</xliff:g> er anvendt – <xliff:g id="FREE_SPACE">%2$s</xliff:g> ledig plads"</string>
<string name="display_summary" msgid="6737806235882127328">"Gå i dvale efter <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> uden aktivitet"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Baggrund, dvale, skriftstørrelse"</string>
<string name="display_summary_example" msgid="9102633726811090523">"Gå i dvale efter 10 minutters inaktivitet"</string>
@@ -3380,7 +3382,7 @@
<string name="button_confirm_convert_fbe" msgid="7101855374850373091">"Ryd og konvertér"</string>
<string name="reset_shortcut_manager_throttling" msgid="6495066467198668994">"Nulstil antalsbegrænsning i ShortcutManager"</string>
<string name="reset_shortcut_manager_throttling_complete" msgid="1826770872063707900">"Antalsbegrænsning i ShortcutManager er nulstillet"</string>
- <string name="notification_suggestion_title" msgid="4506524937307816475">"Kontrollér underretninger for låseskærm"</string>
+ <string name="notification_suggestion_title" msgid="4506524937307816475">"Konfigurer underretninger for låseskærm"</string>
<string name="notification_suggestion_summary" msgid="8521159741445416875">"Vis eller skjul indhold i underretninger"</string>
<string name="page_tab_title_summary" msgid="4070309266374993258">"Alle"</string>
<string name="page_tab_title_support" msgid="6330657582897417458">"Support"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Spil"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Andre apps"</string>
<string name="storage_files" msgid="8581083146777364063">"Filer"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Din tablets lagerplads"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Lagerplads på telefonen"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Anvendt lagerplads ud af <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"brugt"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index a80211b..4c1e519 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Zu hoch berechneter Stromverbrauch"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Seit <xliff:g id="TIME">^1</xliff:g> verwendet"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> durch <xliff:g id="APP">%2$s</xliff:g> verbraucht"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> des gesamten Akkuverbrauchs"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Verbrauchsdetails seit letzter vollständiger Ladung"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Spiele"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Weitere Apps"</string>
<string name="storage_files" msgid="8581083146777364063">"Dateien"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Tablet-Speicher"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Telefonspeicher"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"von <xliff:g id="TOTAL">%1$s</xliff:g> verwendet"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"belegt"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 8203b6e..40c936d 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Υπερεκτίμηση χρήσης ισχύος"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Χρησιμοποιείται για <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> χρησιμοποιείται από: <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> της συνολικής μπαταρίας"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Ανάλυση από την τελευταία πλήρη φόρτιση"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Παιχνίδια"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Άλλες εφαρμογές"</string>
<string name="storage_files" msgid="8581083146777364063">"Αρχεία"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Αποθηκ. χώρος tablet"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Αποθηκ. χώρος τηλεφώνου"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Σε χρήση από τα <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"σε χρήση"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 6edc218..a13d0da 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Over-counted power use"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Used for <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> used by <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> of overall battery"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Breakdown since last full charge"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Games"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Other apps"</string>
<string name="storage_files" msgid="8581083146777364063">"Files"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Tablet storage"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Phone storage"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Used of <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"used"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 6edc218..a13d0da 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Over-counted power use"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Used for <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> used by <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> of overall battery"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Breakdown since last full charge"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Games"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Other apps"</string>
<string name="storage_files" msgid="8581083146777364063">"Files"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Tablet storage"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Phone storage"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Used of <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"used"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 6edc218..a13d0da 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Over-counted power use"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Used for <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> used by <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> of overall battery"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Breakdown since last full charge"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Games"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Other apps"</string>
<string name="storage_files" msgid="8581083146777364063">"Files"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Tablet storage"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Phone storage"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Used of <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"used"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 437343d..050eff9 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Uso de potencia sobrecalculada"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Se usó durante <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> usado por <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> de la batería total"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Desglose desde la última carga completa"</string>
@@ -3565,8 +3567,6 @@
<string name="storage_games" msgid="7703159201697117621">"Juegos"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Otras apps"</string>
<string name="storage_files" msgid="8581083146777364063">"Archivos"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Almacenamiento en tablet"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Almacenamiento del teléfono"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"En uso de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"usado"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index e156d2f..30c8c25 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Uso de potencia sobrecalculado"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"En uso durante <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> usado por <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> del total de batería"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Desglose desde la última carga completa"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Juegos"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Otras aplicaciones"</string>
<string name="storage_files" msgid="8581083146777364063">"Archivos"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Almacenamiento del tablet"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Almacenamiento del teléfono"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Usado de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"usado"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 9ac8b37..d3f4413 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Liigselt arvestatud energiatarbimine"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Kasutatud <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> kasutab <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> kogu akumahust"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Üksikasjalik teave alates viimasest täislaadimisest"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Mängud"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Muud rakendused"</string>
<string name="storage_files" msgid="8581083146777364063">"Failid"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Tahvelarvuti salvestusruum"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Telefoni salvestusruum"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Kasutatud <xliff:g id="TOTAL">%1$s</xliff:g>-st"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"kasut."</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index fb96a37..287d173 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Uste baino energia gutxiago erabili da."</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Erabilera-denbora: <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> erabili du <xliff:g id="APP">%2$s</xliff:g> aplikazioak"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"Bateria osoaren <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Guztiz kargatu zenetik emandako erabileraren datuak"</string>
@@ -2074,7 +2076,7 @@
<string name="menu_proc_stats_type_cached" msgid="5084272779786820693">"Cachean gordeta"</string>
<string name="voice_input_output_settings" msgid="1336135218350444783">"Ahots-sarrera eta -irteera"</string>
<string name="voice_input_output_settings_title" msgid="2442850635048676991">"Ahots-sarreraren eta -irteeraren ezarpenak"</string>
- <string name="voice_search_settings_title" msgid="2775469246913196536">"Ahots bidezko bilaketa"</string>
+ <string name="voice_search_settings_title" msgid="2775469246913196536">"Ahozko bilaketa"</string>
<string name="keyboard_settings_title" msgid="5080115226780201234">"Android teklatua"</string>
<string name="voice_input_settings" msgid="1099937800539324567">"Ahots bidezko idazketaren ezarpenak"</string>
<string name="voice_input_settings_title" msgid="2676028028084981891">"Ahots bidezko idazketa"</string>
@@ -3070,7 +3072,7 @@
<string name="choose_voice_input_title" msgid="975471367067718019">"Aukeratu ahots-idazketa aplik."</string>
<string name="default_browser_title" msgid="8101772675085814670">"Arakatzailearen aplikazioa"</string>
<string name="default_browser_title_none" msgid="2124785489953628553">"Ez dago arakatzailerik lehenetsita"</string>
- <string name="default_phone_title" msgid="282005908059637350">"Telefonoaren aplikazioa"</string>
+ <string name="default_phone_title" msgid="282005908059637350">"Telefonoa aplikazioa"</string>
<string name="default_app" msgid="6864503001385843060">"(lehenetsia)"</string>
<string name="system_app" msgid="9068313769550747372">"(Sistema)"</string>
<string name="system_default_app" msgid="3091113402349739037">"(Sistemaren lehenespena)"</string>
@@ -3263,20 +3265,20 @@
<string name="condition_turn_on" msgid="9089876276117874591">"Aktibatu"</string>
<string name="condition_expand_show" msgid="608202020023489939">"Erakutsi"</string>
<string name="condition_expand_hide" msgid="948507739223760667">"Ezkutatu"</string>
- <string name="condition_hotspot_title" msgid="7778958849468560027">"Hotspot is on"</string>
+ <string name="condition_hotspot_title" msgid="7778958849468560027">"Sare publikoa aktibatuta"</string>
<string name="condition_hotspot_summary" msgid="3433182779269409683">"Wi-Fi sare publiko eramangarria (<xliff:g id="ID_1">%1$s</xliff:g>) aktibo dago, is active, Wi-Fi for this device is turned off."</string>
- <string name="condition_airplane_title" msgid="287356299107070503">"Hegaldi modua aktibatuta dago"</string>
+ <string name="condition_airplane_title" msgid="287356299107070503">"Hegaldi modua aktibatuta"</string>
<string name="condition_airplane_summary" msgid="5561586417832393666">"Desaktibatuta daude Wi-Fi, Bluetooth eta telefonia mugikorreko sareak. Ezin izango duzu egin telefono-deirik, ezta Internetera konektatu ere."</string>
- <string name="condition_zen_title" msgid="2679168532600816392">"Do not disturb is on (<xliff:g id="ID_1">%1$s</xliff:g>)"</string>
+ <string name="condition_zen_title" msgid="2679168532600816392">"\"Ez molestatu\" modua aktibatuta (<xliff:g id="ID_1">%1$s</xliff:g>)"</string>
<string name="condition_battery_title" msgid="3272131008388575349">"Bateria-aurrezlea aktibatuta"</string>
<string name="condition_battery_summary" msgid="4418839236027977450">"Funtzionamendua mantsotu egin da. Kokapen-zerbitzuak eta atzeko planoko datuak desaktibatu egin dira."</string>
<string name="condition_cellular_title" msgid="1327317003797575735">"Datu-konexioa desaktibatuta"</string>
<string name="condition_cellular_summary" msgid="1818046558419658463">"Wi-Fi bidez soilik erabil daiteke Internet"</string>
- <string name="condition_bg_data_title" msgid="2483860304802846542">"Aktibatuta dago datu-aurrezlea"</string>
+ <string name="condition_bg_data_title" msgid="2483860304802846542">"Datu-aurrezlea aktibatuta"</string>
<string name="condition_bg_data_summary" msgid="656957852895282228">"Atzeko planoko datuak Wi-Fi bidez soilik erabil daitezke. Horrek eragina izango du aplikazio eta zerbitzu batzuetan, Wi-Fi konexiorik ez dagoenean."</string>
- <string name="condition_work_title" msgid="7293722361184366648">"Desaktibatuta dago laneko profila"</string>
+ <string name="condition_work_title" msgid="7293722361184366648">"Laneko profila desaktibatuta"</string>
<string name="condition_work_summary" msgid="7543202177571590378">"Desaktibatuta daude aplikazioak, atzeko planoko sinkronizazioa eta laneko profilarekin erlazionatutako bestelako eginbideak."</string>
- <string name="condition_night_display_title" msgid="5599814941976856183">"Gaueko argia piztuta dago"</string>
+ <string name="condition_night_display_title" msgid="5599814941976856183">"Gaueko argia aktibatuta"</string>
<string name="condition_night_display_summary" msgid="5443722724310650381">"Pantaila tindu horikaraz jantzi dugu. Errazago hartuko zaitu loak horrela."</string>
<string name="suggestions_title" msgid="7280792342273268377">"Iradokizunak"</string>
<string name="suggestions_summary" msgid="2509040178581728056">"+<xliff:g id="ID_1">%1$d</xliff:g>"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Jokoak"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Beste aplikazio batzuk"</string>
<string name="storage_files" msgid="8581083146777364063">"Fitxategiak"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Tabletaren memoria"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Telefonoaren memoria"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Memoria osotik (<xliff:g id="TOTAL">%1$s</xliff:g>) erabilitakoa"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"erabilita"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index a4be204..b6d68da 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"نیروی مصرفی بیش از حد محاسبه شده"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> میلیآمپرساعت"</string>
<string name="battery_used_for" msgid="2690821851327075443">"مدت زمان استفاده <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> <xliff:g id="PERCENT">%1$s</xliff:g> از شارژ باتری را مصرف کرده است"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> از کل شارژ باتری"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"تفکیک مصرف شارژ از زمان آخرین شارژ کامل"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"بازیها"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"سایر برنامهها"</string>
<string name="storage_files" msgid="8581083146777364063">"فایلها"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"حافظه رایانه لوحی"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"حافظه تلفن"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"مصرفشده از <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"پر"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index a8bcdab..d3e381b 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Yliarvioitu virrankulutus"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Käyttöaika: <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> on käyttänyt <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> kaikesta virrankulutuksesta"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Erittely edellisen täyden latauksen jälkeen"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Pelit"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Muut sovellukset"</string>
<string name="storage_files" msgid="8581083146777364063">"Tiedostot"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Tabletin tallennustila"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Puhelimen tallennustila"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Tallennustilasta (<xliff:g id="TOTAL">%1$s</xliff:g>) käytössä"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"käyt."</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 0db5bd6..643ba34 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Utilisation surestimée de la pile"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Temps d\'utilisation : <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> utilisé(s) par <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> de l\'utilisation totale de la pile"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Répartition depuis la dernière charge complète"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Jeux"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Autres applications"</string>
<string name="storage_files" msgid="8581083146777364063">"Fichiers"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Stockage sur la tablette"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Stockage du téléphone"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"utilisé(s) sur <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"utilisé"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index da22430..37ebc56 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -1294,7 +1294,7 @@
<string name="master_clear_desc" product="default" msgid="4800386183314202571">"Cette action effacera toutes les données du "<b>"stockage interne"</b>" de votre téléphone, y compris :\n\n"<li>"Votre compte Google"</li>\n<li>"Les données et paramètres du système et des applications"</li>\n<li>"Les applications téléchargées"</li></string>
<string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Vous êtes actuellement connecté aux comptes suivants :\n"</string>
<string name="master_clear_other_users_present" product="default" msgid="5161423070702470742">\n\n"D\'autres personnes utilisent cet appareil.\n"</string>
- <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musique"</li>\n<li>"Photos"</li>\n<li>"Autres données utilisateur"</li></string>
+ <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"La musique"</li>\n<li>"Les photos"</li>\n<li>"Les autres données utilisateur"</li>"."</string>
<string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="7744115866662613411">\n\n"Pour supprimer la musique, les photos et les autres données utilisateur, vous devez effacer la "<b>"mémoire de stockage USB"</b>"."</string>
<string name="master_clear_desc_erase_external_storage" product="default" msgid="4801026652617377093">\n\n"Pour supprimer la musique, les photos et les autres données utilisateur, vous devez formater la "<b>"carte SD"</b>"."</string>
<string name="erase_external_storage" product="nosdcard" msgid="969364037450286809">"Effacer la mémoire USB"</string>
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Consommation surestimée"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Temps d\'utilisation : <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> utilisé(s) par <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> de la batterie"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Répartition depuis la dernière charge complète"</string>
@@ -2826,12 +2828,12 @@
<string name="display_vr_pref_title" msgid="8104485269504335481">"Lorsque l\'appareil est en mode Réalité virtuelle"</string>
<string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"Réduire le flou (recommandé)"</string>
<string name="display_vr_pref_off" msgid="2190091757123260989">"Réduire le scintillement"</string>
- <string name="picture_in_picture_title" msgid="5824849294270017113">"Mode PIP"</string>
- <string name="picture_in_picture_empty_text" msgid="685224245260197779">"Aucune application installée n\'est compatible avec le mode PIP"</string>
+ <string name="picture_in_picture_title" msgid="5824849294270017113">"Picture-in-picture"</string>
+ <string name="picture_in_picture_empty_text" msgid="685224245260197779">"Aucune application installée n\'est compatible avec le mode Picture-in-picture"</string>
<string name="picture_in_picture_keywords" msgid="8361318686701764690">"pip picture in picture"</string>
- <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Mode PIP"</string>
- <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Autoriser le mode PIP"</string>
- <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Autorisez cette application à créer une fenêtre PIP lorsqu\'elle est ouverte ou après l\'avoir quittée (par exemple, pour continuer de regarder une vidéo). Cette fenêtre se superpose aux autres applications en cours d\'utilisation."</string>
+ <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Picture-in-picture"</string>
+ <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Autoriser le mode Picture-in-picture"</string>
+ <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Autorisez cette application à créer une fenêtre Picture-in-picture lorsqu\'elle est ouverte ou après l\'avoir quittée (par exemple, pour continuer de regarder une vidéo). Cette fenêtre se superpose aux autres applications en cours d\'utilisation."</string>
<string name="picture_in_picture_on" msgid="6103704909710176555">"Oui"</string>
<string name="picture_in_picture_off" msgid="5654388666434625247">"Non"</string>
<string name="manage_zen_access_title" msgid="2611116122628520522">"Accès \"Ne pas déranger\""</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Jeux"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Autres applications"</string>
<string name="storage_files" msgid="8581083146777364063">"Fichiers"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Stockage sur la tablette"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Stockage du téléphone"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Utilisés sur <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"utilisés"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 3c9d43d..6fbe87c 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -1485,7 +1485,7 @@
<string name="lock_settings_profile_unified_summary" msgid="9008819078132993492">"O mesmo que o bloqueo da pantalla do dispositivo"</string>
<string name="manageapplications_settings_title" msgid="7041951105633616745">"Xestionar aplicacións"</string>
<string name="manageapplications_settings_summary" msgid="1794401500935451259">"Xestiona e elimina as aplicacións instaladas"</string>
- <string name="applications_settings" msgid="5281808652705396152">"Información da aplicación"</string>
+ <string name="applications_settings" msgid="5281808652705396152">"Información das aplicacións"</string>
<string name="applications_settings_summary" msgid="6683465446264515367">"Xestiona aplicacións e configura atallos de inicio rápido"</string>
<string name="applications_settings_header" msgid="1014813055054356646">"Configuración da aplicación"</string>
<string name="install_applications" msgid="4872012136210802181">"Fontes descoñecidas"</string>
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Reconto excesivo do uso de enerxía"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Tempo de utilización: <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> utilizado por <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> da batería total"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Análise detallada desde a última carga completa"</string>
@@ -2826,12 +2828,12 @@
<string name="display_vr_pref_title" msgid="8104485269504335481">"Cando o dispositivo está no modo de RV"</string>
<string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"Reducir desenfoque (recomendado)"</string>
<string name="display_vr_pref_off" msgid="2190091757123260989">"Reducir escintilación"</string>
- <string name="picture_in_picture_title" msgid="5824849294270017113">"Imaxe superposta"</string>
+ <string name="picture_in_picture_title" msgid="5824849294270017113">"Pantalla superposta"</string>
<string name="picture_in_picture_empty_text" msgid="685224245260197779">"Ningunha das aplicacións instaladas é compatible coas imaxes superpostas"</string>
<string name="picture_in_picture_keywords" msgid="8361318686701764690">"superposta imaxe"</string>
- <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Imaxe superposta"</string>
- <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Permitir imaxe superposta"</string>
- <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Permite que esta aplicación cree unha ventá de imaxe superposta mentres que a aplicación está aberta ou despois de saír dela (por exemplo, para continuar visualizando un vídeo). Esta ventá móstrase sobre outras aplicacións que estás utilizando."</string>
+ <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Pantalla superposta"</string>
+ <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Permitir pantalla superposta"</string>
+ <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Permite que esta aplicación cree unha ventá de pantalla superposta mentres que a aplicación está aberta ou despois de saír dela (por exemplo, para continuar visualizando un vídeo). Esta ventá móstrase sobre outras aplicacións que estás utilizando."</string>
<string name="picture_in_picture_on" msgid="6103704909710176555">"Si"</string>
<string name="picture_in_picture_off" msgid="5654388666434625247">"Non"</string>
<string name="manage_zen_access_title" msgid="2611116122628520522">"Acceso en modo Non molestar"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Xogos"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Outras aplicacións"</string>
<string name="storage_files" msgid="8581083146777364063">"Ficheiros"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Almacenamento da tableta"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Almacenamento do teléfono"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"En uso de: <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"en uso"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 5ad7b78..9fe94a8 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"વધુ-ગણાયેલ પાવર ઉપયોગ"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> સુધી ઉપયોગ કરાયો"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> દ્વારા <xliff:g id="PERCENT">%1$s</xliff:g> વપરાયું"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"કુલ બૅટરીનું <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"છેલ્લા સંપૂર્ણ ચાર્જ પછીનું વિશ્લેષણ"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"રમતો"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"અન્ય ઍપ્લિકેશનો"</string>
<string name="storage_files" msgid="8581083146777364063">"ફાઇલો"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"ટૅબ્લેટ સ્ટોરેજ"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"ફોન સ્ટૉરેજ"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g>માંથી ઉપયોગમાં લેવાયો"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"વપરાયો"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index de0bd29..253b10b 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -353,9 +353,9 @@
<string name="security_settings_fingerprint_preference_summary_none" msgid="1507739327565151923"></string>
<string name="security_settings_fingerprint_enroll_introduction_title" msgid="3201556857492526098">"फ़िंगरप्रिंट से अनलॉक"</string>
<string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="7066417934622827305">"फ़िंगरप्रिंट का उपयोग करें"</string>
- <string name="security_settings_fingerprint_enroll_introduction_message" msgid="3508870672887336095">"अपना फ़ोन अनलॉक करने, खरीदारियां अधिकृत करने या ऐप्लिकेशन में प्रवेश करने के लिए बस फ़िंगरप्रिंट सेंसर स्पर्श करें. इस बारे में सावधानी रखें कि आप किसके फ़िंगरप्रिंट जोड रहे हैं. यहां तक एक जोड़ा गया प्रिंट भी इनमें से कोई भी कार्य कर सकता है.\n\nनोट: आपका फ़िंगरप्रिंट किसी सशक्त पैटर्न या पिन से कम सुरक्षित हो सकता है."</string>
- <string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="4193477159493347679">"खरीदारियां अधिकृत करने या ऐप्लिकेशन मेंं प्रवेश करने के लिए बस फ़िंगरप्रिंट सेंसर को स्पर्श करें. इस बारे में सावधानी रखें कि आप किसके फ़िंगरप्रिंट जोड़ रहे हैं. जोड़े गए एक प्रिंट से भी इनमें से कोई भी कार्य किया जा सकता है.\n\nनोट: आप इस डिवाइस को अनलॉक करने के लिए अपने फ़िंगरप्रिंट का उपयोग नहीं कर सकते हैं. अधिक जानकारी के लिए, अपने संगठन के व्यवस्थापक से संपर्क करें."</string>
- <string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="3635924459027832861">"अपना फ़ोन अनलॉक करने, खरीदारियां अधिकृत करने या ऐप्लिकेशन में प्रवेश करने के लिए बस फ़िंगरप्रिंट सेंसर स्पर्श करें. इस बारे में सावधानी रखें कि आप किसके फ़िंगरप्रिंट जोड़ रहे हैं. आपके द्वारा जोड़ा गया एक प्रिंट भी इनमें से कोई भी कार्य कर सकता है.\n\nनोट: आपका फ़िंगरप्रिंट किसी सशक्त पैटर्न या पिन से कम सुरक्षित हो सकता है."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_message" msgid="3508870672887336095">"अपने फ़ोन को अनलॉक करने, खरीदारियों को प्राधिकृत करने या ऐप्लिकेशन में प्रवेश करने के लिए बस फ़िंगरप्रिंट सेंसर को छूएं. इसमें सावधानी रखें कि आप किस व्यक्ति के फ़िंगरप्रिंट जोड़ रहे हैं. यहां तक कि जोड़े गए एक भी प्रिंट से भी इनमें से कोई चीज़ हो सकती है.\n\nध्यान दें: हो सकता है कि आपका फ़िंगरप्रिंट किसी मज़बूत पैटर्न या पिन से कम सुरक्षित हो."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="4193477159493347679">"खरीदारियों को प्राधिकृत करने या ऐप्लिकेशन में प्रवेश करने के लिए बस फ़िंगरप्रिंट सेंसर को छूएं. इसमें सावधानी रखें कि आप किस व्यक्ति के फ़िंगरप्रिंट जोड़ रहे हैं. यहां तक कि जोड़े गए एक भी प्रिंट से भी इनमें से कोई चीज़ हो सकती है.\n\nनोट: आप इस डिवाइस को अनलॉक करने के लिए अपने फ़िंगरप्रिंट का उपयोग नहीं कर सकते हैं. अधिक जानकारी के लिए, अपने संगठन के व्यवस्थापक से संपर्क करें."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="3635924459027832861">"अपने फ़ोन को अनलॉक करने, खरीदारियों को प्राधिकृत करने या ऐप्लिकेशन में प्रवेश करने के लिए बस फ़िंगरप्रिंट सेंसर को छूएं. इसमें सावधानी रखें कि आप किस व्यक्ति के फ़िंगरप्रिंट जोड़ रहे हैं. यहां तक कि जोड़े गए एक भी प्रिंट से भी इनमें से कोई चीज़ हो सकती है.\n\nध्यान दें: हो सकता है कि आपका फ़िंगरप्रिंट किसी मज़बूत पैटर्न या पिन से कम सुरक्षित हो."</string>
<string name="security_settings_fingerprint_enroll_introduction_cancel" msgid="3199351118385606526">"अभी नहीं"</string>
<string name="security_settings_fingerprint_enroll_introduction_continue" msgid="7472492858148162530">"जारी रखें"</string>
<string name="security_settings_fingerprint_enroll_introduction_cancel_setup" msgid="5021369420474432665">"अभी नहीं"</string>
@@ -368,26 +368,26 @@
<string name="lock_screen_intro_skip_dialog_text" product="default" msgid="3589945558504439395">"डिवाइस सुरक्षा सुविधाओं को सक्रिय नहीं किया जाएगा. यदि यह फ़ोन खो जाता है या चोरी चला जाता है, तो आप इसे दूसरे लोगों द्वारा उपयोग किए जाने से नहीं रोक सकेंगे."</string>
<string name="skip_anyway_button_label" msgid="2323522873558834513">"फिर भी आगे बढ़ें"</string>
<string name="go_back_button_label" msgid="4745265266186209467">"वापस जाएं"</string>
- <string name="security_settings_fingerprint_enroll_find_sensor_title" msgid="5877265753699187149">"संवेदक ढूंढें"</string>
- <string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="1959655161889313661">"अपने फ़ोन के पीछे फ़िंगरप्रिंट संवेदक का पता लगाएं."</string>
- <string name="security_settings_fingerprint_enroll_find_sensor_content_description" msgid="2058830032070449160">"डिवाइस और फ़िंगरप्रिंट संवेदक स्थान वाला चित्रण"</string>
+ <string name="security_settings_fingerprint_enroll_find_sensor_title" msgid="5877265753699187149">"सेंसर ढूंढें"</string>
+ <string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="1959655161889313661">"अपने फ़ोन के पीछे फ़िंगरप्रिंट सेंसर का पता लगाएं."</string>
+ <string name="security_settings_fingerprint_enroll_find_sensor_content_description" msgid="2058830032070449160">"डिवाइस और उस पर फ़िंगरप्रिंट सेंसर की जगह बताने वाला चित्रण"</string>
<string name="security_settings_fingerprint_enroll_dialog_name_label" msgid="7086763077909041106">"नाम"</string>
<string name="security_settings_fingerprint_enroll_dialog_ok" msgid="4150384963879569750">"ठीक"</string>
<string name="security_settings_fingerprint_enroll_dialog_delete" msgid="4114615413240707936">"हटाएं"</string>
<string name="security_settings_fingerprint_enroll_start_title" msgid="951888937749663602">"आइए शुरू करें"</string>
- <string name="security_settings_fingerprint_enroll_start_message" msgid="3909929328942564524">"अपनी अंगुली संवेदक पर रखें और कंपन का अनुभव होने पर उठा लें"</string>
+ <string name="security_settings_fingerprint_enroll_start_message" msgid="3909929328942564524">"अपनी उंगली सेंसर पर रखें और कंपन का अनुभव होने पर उठा लें"</string>
<string name="security_settings_fingerprint_enroll_repeat_title" msgid="8556556992897619044">"जारी रखें"</string>
<string name="security_settings_fingerprint_enroll_repeat_message" msgid="4232813847507193627">"अपने फ़िंगरप्रिंट के सभी भिन्न भागों को जोड़ने के लिए अपनी अंगुली को धीरे से हिलाएं"</string>
<string name="security_settings_fingerprint_enroll_finish_title" msgid="4798692662828257300">"अंगुली की छाप जोड़ा है!"</string>
<string name="security_settings_fingerprint_enroll_finish_message" msgid="835496875787664316">"जब भी आपको यह आइकन दिखाई दे, आप पहचान के लिए या खरीदारी को अधिकृत करने के लिए अपने फ़िंगरप्रिंट का उपयोग कर सकते हैं."</string>
- <string name="setup_fingerprint_enroll_finish_message" msgid="7234264291957984004">"अपने डिवाइस को सक्रिय और अनलॉक करने के लिए बस फ़िंगरप्रिंट सेंसर स्पर्श करें."</string>
+ <string name="setup_fingerprint_enroll_finish_message" msgid="7234264291957984004">"अपने डिवाइस को सक्रिय और अनलॉक करने के लिए बस फ़िंगरप्रिंट सेंसर को छूएं."</string>
<string name="setup_fingerprint_enroll_finish_message_secondary" msgid="7104778933406207968">"यह आइकन दिखाई देने पर, आप खरीदारियां प्राधिकृत कर सकते हैं या ऐप्लिकेशन में प्रवेश भी कर सकते हैं."</string>
<string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"फ़िंगरप्रिंट सेटअप छोड़ें?"</string>
<string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"आपने अपने फ़ोन को अनलॉक करने के एक तरीके के रूप में अपने फ़िंगरप्रिंट का उपयोग करने का चयन किया है. यदि आप इसे अभी छोड़ते हैं, तो आपको इसे बाद में सेट करना होगा. सेटअप में लगभग एक मिनट लगता है."</string>
<string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"स्क्रीन लॉक सेट करें"</string>
<string name="security_settings_fingerprint_enroll_done" msgid="4014607378328187567">"हो गया"</string>
- <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="1863561601428695160">"ओह, वह संवेदक नहीं है"</string>
- <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="5053971232594165142">"डिवाइस पर फ़िंगरप्रिंट संवेदक का उपयोग करें."</string>
+ <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="1863561601428695160">"ओह, वह सेंसर नहीं है"</string>
+ <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="5053971232594165142">"डिवाइस पर फ़िंगरप्रिंट सेंसर का उपयोग करें."</string>
<string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="3618021988442639280">"नामांकन पूर्ण नहीं हुआ था"</string>
<string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="2942551158278899627">"फ़िंगरप्रिंट नामांकन समय की सीमा पार हो गई है. फिर से प्रयास करें."</string>
<string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="3624760637222239293">"फ़िंगरप्रिंट नामांकन ने काम नहीं किया. फिर से प्रयास करें या किसी दूसरी अंगुली का उपयोग करें."</string>
@@ -395,7 +395,7 @@
<string name="fingerprint_enroll_button_next" msgid="6247009337616342759">"आगे"</string>
<string name="security_settings_fingerprint_enroll_disclaimer" msgid="2624905914239271751">"अपना फ़ोन अनलॉक करने के साथ ही, खरीदी और ऐप ऐक्सेस को अधिकृत करने के लिए आप अपनी फ़िंगरप्रिंट का भी उपयोग कर सकते हैं. "<annotation id="url">"और जानें"</annotation></string>
<string name="security_settings_fingerprint_enroll_disclaimer_lockscreen_disabled" msgid="7846871823167357942">" स्क्रीन लॉक विकल्प अक्षम है. अधिक जानने के लिए, अपने संगठन के व्यवस्थापक से संपर्क करें. "<annotation id="admin_details">"अधिक विवरण"</annotation>\n\n"आप खरीदारी और ऐप्लिकेशन एक्सेस अधिकृत करने के लिए अभी भी अपने फ़िंगरप्रिंट का उपयोग कर सकते हैं. "<annotation id="url">"अधिक जानें"</annotation></string>
- <string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="1888772560642539718">"अंगुली उठाएं, फिर सेंसर को पुनः स्पर्श करें"</string>
+ <string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="1888772560642539718">"उंगली उठाएं और सेंसर को फिर छूएं"</string>
<string name="fingerprint_add_max" msgid="1020927549936895822">"आप <xliff:g id="COUNT">%d</xliff:g> फ़िंगरप्रिंट तक जोड़ सकते हैं"</string>
<string name="fingerprint_intro_error_max" msgid="6864066984678078441">"आप अधिकतम संख्या में फ़िंगरप्रिंट जोड़ चुके हैं"</string>
<string name="fingerprint_intro_error_unknown" msgid="1905692132326523040">"और अधिक फ़िंगरप्रिंट नहीं जोड़े जा सकते"</string>
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"पावर का अत्यधिक उपयोग"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> के लिए उपयोग किया गया"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> ने <xliff:g id="PERCENT">%1$s</xliff:g> उपयोग किया है"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"पूरी बैटरी का <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"पूरी तरह चार्ज होने के बाद से अब तक का विश्लेषण"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"गेम"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"अन्य ऐप्लिकेशन"</string>
<string name="storage_files" msgid="8581083146777364063">"फ़ाइलें"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"टैबलेट में जगह"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"फ़ोन की जगह"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g> में से उपयोग किया गया"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"उपयोग की गई"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 919505c..8b66fcd 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -2026,6 +2026,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Previše obračunata potrošnja energije"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Upotrebljava se <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> upotrebljava <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ukupne potrošnje baterije"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Razrada od posljednjeg potpunog punjenja"</string>
@@ -3618,8 +3620,6 @@
<string name="storage_games" msgid="7703159201697117621">"Igre"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Ostale aplikacije"</string>
<string name="storage_files" msgid="8581083146777364063">"Datoteke"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Pohrana tableta"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Pohrana na telefonu"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Upotrijebljeno od <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"upot."</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index ad7290b..6d64af7 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Túlbecsült energiafogyasztás"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Használat ideje: <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"A(z) <xliff:g id="APP">%2$s</xliff:g> <xliff:g id="PERCENT">%1$s</xliff:g>-ot használt"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"Az akkumulátor teljes töltöttségi szintjének <xliff:g id="PERCENT">%1$s</xliff:g>-a"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Statisztikák az utolsó teljes feltöltés óta"</string>
@@ -3569,8 +3571,6 @@
<string name="storage_games" msgid="7703159201697117621">"Játékok"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Egyéb alkalmazások"</string>
<string name="storage_files" msgid="8581083146777364063">"Fájlok"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Táblagép tárhelye"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Telefontárhely"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"A(z) <xliff:g id="TOTAL">%1$s</xliff:g> tárhelyből felhasznált mennyiség"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"foglalt"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 01fbecd..13ef3c3 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -1020,7 +1020,7 @@
<string name="automatic_brightness" msgid="5014143533884135461">"Ավտոմատ պայծառություն"</string>
<string name="lift_to_wake_title" msgid="4555378006856277635">"Բարձրացնել՝ միանալու համար"</string>
<string name="doze_title" msgid="2259176504273878294">"Քնելու ռեժիմի արգելք"</string>
- <string name="doze_summary" msgid="3846219936142814032">"Ակտիվացնում է էկրանը ծանուցումներ ստանալու դեպքում"</string>
+ <string name="doze_summary" msgid="3846219936142814032">"Ակտիվացնել էկրանը ծանուցումներ ստանալու դեպքում"</string>
<string name="title_font_size" msgid="4405544325522105222">"Տառաչափ"</string>
<string name="short_summary_font_size" msgid="6819778801232989076">"Տառաչափի մեծացում կամ փոքրացում"</string>
<string name="sim_lock_settings" msgid="3392331196873564292">"SIM քարտի կողպման կարգավորումներ"</string>
@@ -1312,17 +1312,17 @@
<string name="master_clear_progress_text" msgid="6559096229480527510">"Խնդրում ենք սպասել..."</string>
<string name="call_settings_title" msgid="5188713413939232801">"Զանգի կարգավորումները"</string>
<string name="call_settings_summary" msgid="7291195704801002886">"Կարգավորեք ձայնային փոստը, զանգի վերահասցեավորումը, զանգի սպասումը, զանգողի ID-ն"</string>
- <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB միացում"</string>
+ <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB մոդեմ"</string>
<string name="tether_settings_title_wifi" msgid="3277144155960302049">"Դյուրակիր թեժ կետ"</string>
- <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetooth-ը կապվում է"</string>
- <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Միացում"</string>
+ <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetooth մոդեմ"</string>
+ <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Մոդեմի ռեժիմ"</string>
<string name="tether_settings_title_all" msgid="3058586928118801157">"Թեժ կետ և մոդեմի ռեժիմ"</string>
- <string name="tether_settings_summary_hotspot_on_tether_on" msgid="930464462687425777">"Թեժ կետը և մոդեմի ռեժիմը միացված են"</string>
+ <string name="tether_settings_summary_hotspot_on_tether_on" msgid="930464462687425777">"Թեժ կետ, մոդեմի ռեժիմ"</string>
<string name="tether_settings_summary_hotspot_on_tether_off" msgid="3473671453891735907">"Թեժ կետը միացված է"</string>
- <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1618256180720077354">"Միացում"</string>
+ <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1618256180720077354">"Մոդեմի ռեժիմ"</string>
<string name="tether_settings_disabled_on_data_saver" msgid="1576908608463904152">"Երբ թրաֆիկի տնտեսումն ակտիվ է, հնարավոր չէ կապել կամ օգտագործել շարժական հասանելիության կետերը"</string>
<string name="usb_title" msgid="7483344855356312510">"USB"</string>
- <string name="usb_tethering_button_text" msgid="585829947108007917">"USB միացում"</string>
+ <string name="usb_tethering_button_text" msgid="585829947108007917">"USB մոդեմ"</string>
<string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB սարքը միացված է, ստուգեք կապը"</string>
<string name="usb_tethering_active_subtext" msgid="8916210851136467042">"Միացված է"</string>
<string name="usb_tethering_storage_active_subtext" msgid="8427089411146908205">"Հնարավոր չէ միանալ, երբ USB կրիչը օգտագործման մեջ է"</string>
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Մարտկոցի գերօգտագործում"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Օգտագործվել է <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> օգտագործվել է <xliff:g id="APP">%2$s</xliff:g> հավելվածի կողմից"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"Մարտկոցի ընդհանուր լիցքի <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Օգտագործումը վերջին լիցքավորումից հետո"</string>
@@ -2741,7 +2743,7 @@
<string name="dock_audio_media_title" msgid="1346838179626123900">"Նվագարկել միակցիչի բարձրախոսով"</string>
<string name="dock_audio_media_disabled" msgid="3430953622491538080">"Բոլոր աուդիոֆայլերը"</string>
<string name="dock_audio_media_enabled" msgid="667849382924908673">"Միայն մեդիակրիչի աուդիոֆայլերը"</string>
- <string name="emergency_tone_silent" msgid="1067515631635824291">"Լուռ"</string>
+ <string name="emergency_tone_silent" msgid="1067515631635824291">"Անձայն"</string>
<string name="emergency_tone_alert" msgid="8941852695428130667">"Զգուշացում"</string>
<string name="emergency_tone_vibrate" msgid="8281126443204950847">"Թրթռալ"</string>
<string name="boot_sounds_title" msgid="567029107382343709">"Միացման ձայներ"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Խաղեր"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Այլ հավելվածներ"</string>
<string name="storage_files" msgid="8581083146777364063">"Ֆայլեր"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Պլանշետի հիշողությունը"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Հեռախոսի հիշողություն"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Օգտագործված է <xliff:g id="TOTAL">%1$s</xliff:g>-ից"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"զբաղված է"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 67b4b2b..b18dbab 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Penggunaan daya yang dihitung berlebih"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Digunakan selama <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> digunakan oleh <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> dari seluruh penggunaan baterai"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Penggunaan sejak pengisian baterai terakhir hingga penuh"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Game"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Aplikasi lainnya"</string>
<string name="storage_files" msgid="8581083146777364063">"File"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Penyimpanan tablet"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Penyimpanan ponsel"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Terpakai dari <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"dipakai"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 5aa4823..9f79906 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Oftalin orkunotkun"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Notað fyrir <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> notuð af <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> af heildarrafhlöðuorku"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Greining frá síðustu fullu hleðslu"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Leikir"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Önnur forrit"</string>
<string name="storage_files" msgid="8581083146777364063">"Skrár"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Geymsla spjaldtölvu"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Geymslurými símans"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Notað af <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"notuð"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 1774bb0..f27dca5 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Consumo batteria sovrastimato"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Usato per <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> utilizzato da <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> dell\'utilizzo totale della batteria"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Analisi dettagliata dall\'ultima ricarica completa"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Giochi"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Altre app"</string>
<string name="storage_files" msgid="8581083146777364063">"File"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Memoria del tablet"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Memoria telefono"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Spazio utilizzato di <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"usato"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index f3f9f99..266387d 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -2047,6 +2047,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"חישוב יתר של שימוש בחשמל"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> מיליאמפר לשעה"</string>
<string name="battery_used_for" msgid="2690821851327075443">"משך השימוש: <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> בשימוש על ידי <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> מצריכת הסוללה הכוללת"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"פירוט מאז הטעינה המלאה האחרונה"</string>
@@ -3671,8 +3673,6 @@
<string name="storage_games" msgid="7703159201697117621">"משחקים"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"אפליקציות אחרות"</string>
<string name="storage_files" msgid="8581083146777364063">"קבצים"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"אחסון בטאבלט"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"אחסון בטלפון"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"בשימוש מתוך <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"בשימוש"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 64f77ea..ba39303 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"過剰算出された消費電力"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g>mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g>、使用"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g>: <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"電池使用量全体の <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"前回のフル充電以降の内訳"</string>
@@ -2537,7 +2539,7 @@
<string name="user_enable_calling_confirm_message" msgid="8061594235219352787">"発信履歴がこのユーザーと共有されます。"</string>
<string name="user_enable_calling_and_sms_confirm_title" msgid="7243308401401932681">"通話とSMSをONにしますか?"</string>
<string name="user_enable_calling_and_sms_confirm_message" msgid="4025082715546544967">"通話とSMSの履歴がこのユーザーと共有されます。"</string>
- <string name="emergency_info_title" msgid="208607506217060337">"緊急情報"</string>
+ <string name="emergency_info_title" msgid="208607506217060337">"緊急時情報"</string>
<string name="emergency_info_summary" msgid="5062945162967838521">"<xliff:g id="USER_NAME">%1$s</xliff:g>の情報と連絡先"</string>
<string name="application_restrictions" msgid="8207332020898004394">"アプリとコンテンツの許可"</string>
<string name="apps_with_restrictions_header" msgid="3660449891478534440">"制限のあるアプリ"</string>
@@ -3571,8 +3573,6 @@
<string name="storage_games" msgid="7703159201697117621">"ゲーム"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"その他のアプリ"</string>
<string name="storage_files" msgid="8581083146777364063">"ファイル"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"タブレットのストレージ"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"スマートフォン ストレージ"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"/ <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"使用"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 6d72c71..705abce 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"ზედმეტად ჩათვლილი ელკვების გამოყენება"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"გამოიყენება <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g>-ს იყენებს <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"ბატარეის საერთო მოხმარების <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"დეტალები ბოლო სრული დატენვიდან"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"თამაშები"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"სხვა აპები"</string>
<string name="storage_files" msgid="8581083146777364063">"ფაილები"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"ტაბლეტის მეხსიერება"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"ტელეფონის მეხსიერება"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"გამოყენებულია <xliff:g id="TOTAL">%1$s</xliff:g>-დან"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"გამოყენებული"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 49b4387..acdc4b7 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Мөлшерінен жоғары есептелген қуатты қолдану"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> Ампер/сағ"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Пайдаланылу уақыты: <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> <xliff:g id="PERCENT">%1$s</xliff:g>-н пайдаланды"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"Жалпы батарея зарядының <xliff:g id="PERCENT">%1$s</xliff:g>-ы"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Толық зарядталғаннан кейін пайдаланылғаны"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Ойындар"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Басқа қолданбалар"</string>
<string name="storage_files" msgid="8581083146777364063">"Файлдар"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Планшет жады"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Телефон жады"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Жалпы <xliff:g id="TOTAL">%1$s</xliff:g> жадтан пайдаланылған"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"пайдаланылған"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 0a3aed7..3e1e46f 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"ការប្រើប្រាស់ថាមពលលើស"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"បានប្រើអស់រយៈពេល <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> ប្រើប្រាស់ដោយ <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> នៃថ្មទាំងអស់"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"ព័ត៌មានលម្អិតចាប់តាំងពីសាកថ្មពេញលើកចុងក្រោយ"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"ហ្គេម"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"កម្មវិធីផ្សេងទៀត"</string>
<string name="storage_files" msgid="8581083146777364063">"ឯកសារ"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"ទំហំផ្ទុកក្នុងថេប្លេត"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"ទំហំផ្ទុកក្នុងទូរសព្ទ"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"បានប្រើនៃ <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"បានប្រើប្រាស់"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 556c72d..ec435b2 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"ಅಧಿಕ ಗಣನೆಯ ಪವರ್ ಬಳಕೆ"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> ಕಾಲ ಬಳಸಲಾಗಿದೆ"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> ಬಳಸುತ್ತಿರುವುದು <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"ಒಟ್ಟು ಬ್ಯಾಟರಿಯ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"ಕೊನೆಯ ಬಾರಿ ಚಾರ್ಜ್ ಆದ ನಂತರದ ಬಳಕೆಯ ವಿವರ"</string>
@@ -2777,8 +2779,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"ಅಧಿಸೂಚನೆಗಳು"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"ಸುಧಾರಿತ"</string>
<string name="profile_section_header" msgid="2320848161066912001">"ಕೆಲಸದ ಅಧಿಸೂಚನೆಗಳು"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"ಐಕಾನ್ ಬ್ಯಾಡ್ಜ್ಗಳಿಗೆ ಅನುಮತಿಸಿ"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"ಮಿನುಗುವ ಬೆಳಕು"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"ಲಾಕ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"ಅಧಿಸೂಚನೆ ವಿಷಯವನ್ನು ಪೂರ್ತಿ ತೋರಿಸು"</string>
@@ -3568,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"ಗೇಮ್ಗಳು"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"ಇತರ ಅಪ್ಲಿಕೇಶನ್ಗಳು"</string>
<string name="storage_files" msgid="8581083146777364063">"ಫೈಲ್ಗಳು"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"ಟ್ಯಾಬ್ಲೆಟ್ ಸಂಗ್ರಹಣೆ"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"ಫೋನ್ ಸಂಗ್ರಹಣೆ"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g> ನಲ್ಲಿ ಬಳಸಿರುವುದು"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"ಬಳಕೆಯಾಗಿದೆ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 82b42a8..e68ebfc 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"전력 사용량 과다 산정됨"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g>mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> 사용됨"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g>에서 <xliff:g id="PERCENT">%1$s</xliff:g> 사용"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"전체 배터리 사용량의 <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"마지막 충전 완료 후 사용 내역 분석"</string>
@@ -3030,7 +3032,7 @@
<string name="runtime_permissions_summary_no_permissions_requested" msgid="7655100570513818534">"요청한 권한이 없습니다."</string>
<string name="filter_all_apps" msgid="1988403195820688644">"모든 앱"</string>
<string name="filter_enabled_apps" msgid="5395727306799456250">"설치된 앱"</string>
- <string name="filter_instant_apps" msgid="574277769963965565">"빠른 실행 앱"</string>
+ <string name="filter_instant_apps" msgid="574277769963965565">"인스턴트 앱"</string>
<string name="filter_personal_apps" msgid="3277727374174355971">"개인"</string>
<string name="filter_work_apps" msgid="24519936790795574">"직장"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"앱: 전체"</string>
@@ -3481,10 +3483,10 @@
<string name="oem_unlock_enable_disabled_summary_connectivity_or_locked" msgid="5884723935668892613">"인터넷에 연결하거나 이동통신사에 문의하세요."</string>
<string name="oem_unlock_enable_disabled_summary_sim_locked_device" msgid="4149387448213399630">"특정 이동통신사만 사용하도록 잠긴 기기에서 사용할 수 없음"</string>
<string name="automatic_storage_manager_freed_bytes" msgid="7517560170441007788">"사용 가능한 전체 크기: <xliff:g id="SIZE">%1$s</xliff:g>\n\n마지막 실행일: <xliff:g id="DATE">%2$s</xliff:g>"</string>
- <string name="web_action_enable_title" msgid="4051513950976670853">"빠른 실행 앱"</string>
+ <string name="web_action_enable_title" msgid="4051513950976670853">"인스턴트 앱"</string>
<string name="web_action_enable_summary" msgid="3108127559723396382">"앱이 설치되어 있지 않아도 앱에서 링크 열기"</string>
- <string name="web_action_section_title" msgid="7364647086538399136">"빠른 실행 앱"</string>
- <string name="instant_apps_account" msgid="1433620209791992528">"빠른 실행 앱 계정"</string>
+ <string name="web_action_section_title" msgid="7364647086538399136">"인스턴트 앱"</string>
+ <string name="instant_apps_account" msgid="1433620209791992528">"인스턴트 앱 계정"</string>
<string name="domain_url_section_title" msgid="7046835219056428883">"설치된 앱"</string>
<string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"현재 저장용량 관리자가 저장용량을 관리하고 있습니다."</string>
<string name="account_for_section_header" msgid="5356566418548737121">"<xliff:g id="USER_NAME">%1$s</xliff:g>님의 계정"</string>
@@ -3567,13 +3569,11 @@
<string name="storage_games" msgid="7703159201697117621">"게임"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"기타 앱"</string>
<string name="storage_files" msgid="8581083146777364063">"파일"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"태블릿 저장용량"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"휴대전화 저장용량"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>"<xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"/<xliff:g id="TOTAL">%1$s</xliff:g> 사용"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"사용됨"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"앱 삭제"</string>
- <string name="clear_instant_app_confirmation" msgid="7451671214898856857">"이 빠른 실행 앱을 삭제하시겠습니까?"</string>
+ <string name="clear_instant_app_confirmation" msgid="7451671214898856857">"이 인스턴트 앱을 삭제하시겠습니까?"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"게임"</string>
<string name="audio_files_title" msgid="4777048870657911307">"오디오 파일"</string>
<string name="webview_uninstalled_for_user" msgid="1819903169194420983">"(<xliff:g id="USER">%s</xliff:g>님의 경우 제거됨)"</string>
@@ -3586,7 +3586,7 @@
<string name="storage_manager_indicator" msgid="1516810749625915020">"저장용량 관리자: <xliff:g id="STATUS">^1</xliff:g>"</string>
<string name="storage_manager_indicator_off" msgid="7488057587180724388">"사용 안함"</string>
<string name="storage_manager_indicator_on" msgid="8625551710194584733">"사용"</string>
- <string name="install_type_instant" msgid="3174425974536078647">"빠른 실행 앱"</string>
+ <string name="install_type_instant" msgid="3174425974536078647">"인스턴트 앱"</string>
<string name="automatic_storage_manager_deactivation_warning" msgid="5605210730828410482">"저장용량 관리자를 사용 중지하시겠습니까?"</string>
<string name="storage_movies_tv" msgid="5498394447562086890">"영화 및 TV 앱"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"사용 중인 공간"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 7745e5c..b740e8f 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -2004,6 +2004,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Ашыкча эсептелген кубаттын пайдаланылышы"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> бою колдонулду"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> колдонмосу <xliff:g id="PERCENT">%1$s</xliff:g> сарптады"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"Батарея кубатынын <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Толук кубатталгандан бери канчасы колдонулду:"</string>
@@ -3570,8 +3572,6 @@
<string name="storage_games" msgid="7703159201697117621">"Оюндар"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Башка колдонмолор"</string>
<string name="storage_files" msgid="8581083146777364063">"Файлдар"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Планшеттин сактагычы"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Телефондун сактагычы"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"колдонулду <xliff:g id="TOTAL">%1$s</xliff:g> ичинен"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"колдонулду"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index feb30a9..8161876 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"ການໃຊ້ພະລັງງານທີ່ຄິດໄລ່ເກີນ"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"ໃຊ້ເປັນເວລາ <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> ໃຊ້ໄປແລ້ວໂດຍ <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ຂອງແບັດເຕີຣີໂດຍຮວມ"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"ວິເຄາະນັບຕັ້ງແຕ່ສາກເຕັມຫຼ້າສຸດ"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"ເກມ"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"ແອັບຯອື່ນໆ"</string>
<string name="storage_files" msgid="8581083146777364063">"ໄຟລ໌"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"ບ່ອນຈັດເກັບຂໍ້ມູນແທັບເລັດ"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"ບ່ອນຈັດເກັບຂໍ້ມູນໂທລະສັບ"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"ໃຊ້ໄປແລ້ວຈາກ <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"ໃຊ້ໄປແລ້ວ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 0e5fe29..25fca4e 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -2047,6 +2047,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Per daug apskaičiuotos energijos naudojimas"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Naudojama <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> naudoja „<xliff:g id="APP">%2$s</xliff:g>“"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> visos akumuliatoriaus įkrovos"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Naudojimo nuo paskutinio visiško įkrovimo analizė"</string>
@@ -3669,8 +3671,6 @@
<string name="storage_games" msgid="7703159201697117621">"Žaidimai"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Kitos programos"</string>
<string name="storage_files" msgid="8581083146777364063">"Failai"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Planš. komp. saugykla"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Telefono saugykla"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Naudojama iš <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"naudoj."</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index c1177d2..ec10231 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -2026,6 +2026,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Par daudz uzskaitītais enerģijas patēriņš"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Izmantots šādu laiku: <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> izmanto lietotne <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> no vispārējā akumulatora lietojuma"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Sadalījums kopš pēdējās pilnās uzlādes"</string>
@@ -3618,8 +3620,6 @@
<string name="storage_games" msgid="7703159201697117621">"Spēles"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Citas lietotnes"</string>
<string name="storage_files" msgid="8581083146777364063">"Faili"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Planšetdatora krātuve"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Tālruņa krātuve"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Izmantoti no <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"izmantots"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index ef0a2ec..995f1ce 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Надмината употреба на напојување"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Користење <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> искористени од <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> од целокупната батерија"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Детали по последното целосно полнење"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Игри"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Други апликации"</string>
<string name="storage_files" msgid="8581083146777364063">"Датотеки"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Меморија на таблетот"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Меморија на телефонот"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Искористено од <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"искор."</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index d8141a5..3f2f941 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"കണക്കാക്കിയ പവർ ഉപയോഗം"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> സമയം ഉപയോഗിച്ചു"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> ആപ്പ് <xliff:g id="PERCENT">%1$s</xliff:g> ഉപയോഗിച്ചു"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"മൊത്തം ബാറ്ററിയുടെ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"ഫുൾ ചാർജിനുശേഷമുള്ള ഉപയോഗ വിശദാംശങ്ങൾ"</string>
@@ -2777,8 +2779,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"അറിയിപ്പുകൾ"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"വിപുലമായത്"</string>
<string name="profile_section_header" msgid="2320848161066912001">"ഔദ്യോഗിക അറിയിപ്പുകൾ"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"ഐക്കൺ ബാഡ്ജുകൾ അനുവദിക്കുക"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"ലൈറ്റ് മിന്നുക"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"ലോക്ക് സ്ക്രീനിൽ"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"എല്ലാ അറിയിപ്പുകളും കാണിക്കുക"</string>
@@ -3568,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"ഗെയിമുകള്"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"മറ്റ് ആപ്സ്"</string>
<string name="storage_files" msgid="8581083146777364063">"ഫയലുകള്"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"ടാബ്ലെറ്റ് സ്റ്റോറേജ്"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"ഫോൺ സ്റ്റോറേജ്"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g> ഉപയോഗിച്ചു"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"ഉപയോഗിച്ചത്"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index cc6b54c..c832627 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Хэтрүүлэн тооцсон цахилгаан ашиглалт"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g>-д ашигласан"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> <xliff:g id="PERCENT">%1$s</xliff:g>-г ашигласан"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"Бүх батерейны <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Сүүлд бүрэн цэнэглэснээс хойших ашиглалтын мэдээлэл"</string>
@@ -3565,8 +3567,6 @@
<string name="storage_games" msgid="7703159201697117621">"Тоглоом"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Бусад апп"</string>
<string name="storage_files" msgid="8581083146777364063">"Файл"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Таблетын сан"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Зургийн сан"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g>-с ашигласан"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"ашигласан"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index fe686eb..29f0fa1 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"जास्त प्रमाणात पॉवर वापर"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g>साठी वापरले"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> ने <xliff:g id="PERCENT">%1$s</xliff:g> वापरले"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"एकूण बॅटरीचे <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"मागच्या वेळेस पूर्ण चार्ज झाल्यापासूनचा ब्रेकडाउन"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"गेम"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"अन्य अॅप्स"</string>
<string name="storage_files" msgid="8581083146777364063">"फायली"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"टॅबलेट संचय"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"फोन संचय"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small></string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g> पैकी वापरले"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"वापरलेली"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 0c0a05a..8424edd 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Penggunaan kuasa terlebih kira"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Digunakan selama <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> digunakan oleh <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> daripada keseluruhan bateri"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Pecahan sejak cas penuh terakhir"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Permainan"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Apl lain"</string>
<string name="storage_files" msgid="8581083146777364063">"Fail"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Storan tablet"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Storan telefon"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Digunakan daripada <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"digunakan"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index c94d9b2..9ad76ee 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"အပိုရေတွက်မှု စွမ်းရည် အသုံးပြုမှု"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> ကြာ သုံးထားသည်"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> ကို <xliff:g id="APP">%2$s</xliff:g> က အသုံးပြုထားသည်"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"စုစုပေါင်း ဘက်ထရီ၏<xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"နောက်ဆုံးအကြိမ် အားဖြည့်ပြီးချိန်မှစ၍ ခွဲခြမ်းစိတ်ဖြာချက်"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"ဂိမ်းများ"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"အခြားအက်ပ်များ"</string>
<string name="storage_files" msgid="8581083146777364063">"ဖိုင်များ"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"တက်ဘလက် သိုလှောင်ခန်း"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"ဖုန်း၏ သိုလှောင်ခန်း"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g> အနက်မှ အသုံးပြုထားပါသည်"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"သုံးထား"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 7c09058..8c33793 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Overberegnet strømforbruk"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Brukt i <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> brukt av <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> av total batteribruk"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Oversikt siden sist batteriet var fulladet"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Spill"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Andre apper"</string>
<string name="storage_files" msgid="8581083146777364063">"Filer"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Lagring på nettbrett"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Telefonlagring"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"brukt av <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"brukt"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index b82e4b6..8dc4b10 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"बढी गिन्ती गरिएको उर्जा प्रयोग"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> का लागि प्रयोग गरियो"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> ले प्रयोग गरेको <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"समग्र ब्याट्रीको <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"पछिल्लो पटक पूर्ण चार्ज भएदेखिको विश्लेषण"</string>
@@ -2777,8 +2779,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"सूचनाहरू"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"उन्नत"</string>
<string name="profile_section_header" msgid="2320848161066912001">"कार्यका सूचनाहरू"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"आइकनका ब्याजहरूलाई अनुमति दिनुहोस्"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"झिम झिम गर्ने बत्ती"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"लक स्क्रिनमा"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"सबै सूचना सामग्री देखाउनुहोस्"</string>
@@ -3570,8 +3571,6 @@
<string name="storage_games" msgid="7703159201697117621">"खेलहरू"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"अन्य अनुप्रयोगहरू"</string>
<string name="storage_files" msgid="8581083146777364063">"फाइलहरू"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"ट्याब्लेटको भण्डारण"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"फोनको भण्डारण"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g> मध्ये प्रयोग भएको"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"प्रयोग भयो"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 461c12b..f55cf14 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Te hoog berekend stroomgebruik"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> gebruikt"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> gebruikt door <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> van batterij"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Uitsplitsing sinds laatste volledige lading"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Games"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Andere apps"</string>
<string name="storage_files" msgid="8581083146777364063">"Bestanden"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Opslag op tablet"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Telefoonopslag"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"gebruikt van <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"gebr."</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index dcb5ef1..cbadce2 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"ਓਵਰ-ਕਾਉਂਟਿਡ ਪਾਵਰ ਵਰਤੋਂ"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> ਲਈ ਵਰਤਿਆ ਗਿਆ"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> ਵੱਲੋਂ <xliff:g id="PERCENT">%1$s</xliff:g> ਵਰਤੀ ਗਈ"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"ਸਮੁੱਚੀ ਬੈਟਰੀ ਦਾ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"ਪਿਛਲੀ ਵਾਰ ਪੂਰਾ ਚਾਰਜ ਕਰਨ ਤੋਂ ਬਾਅਦ ਬੈਟਰੀ ਦੀ ਵਰਤੋਂ ਦੇ ਵੇਰਵੇ"</string>
@@ -2777,8 +2779,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"ਸੂਚਨਾਵਾਂ"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"ਉੱਨਤ"</string>
<string name="profile_section_header" msgid="2320848161066912001">"ਕੰਮ ਸਬੰਧੀ ਸੂਚਨਾਵਾਂ"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"ਪ੍ਰਤੀਕ ਬੈਜਾਂ ਨੂੰ ਇਜਾਜ਼ਤ ਦਿਓ"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"ਲਾਈਟ ਨੂੰ ਟਿਮ-ਟਿਮਾਓ"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"ਲੌਕ ਸਕ੍ਰੀਨ \'ਤੇ"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"ਸਾਰੀ ਸੂਚਨਾ ਸਮੱਗਰੀ ਦਿਖਾਓ"</string>
@@ -3568,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"ਗੇਮਾਂ"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"ਹੋਰ ਐਪਾਂ"</string>
<string name="storage_files" msgid="8581083146777364063">"ਫ਼ਾਈਲਾਂ"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"ਟੈਬਲੈੱਟ ਸਟੋਰੇਜ"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"ਫ਼ੋਨ ਸਟੋਰੇਜ"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g> ਵਿੱਚੋਂ ਵਰਤਿਆ"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"ਵਰਤੀ ਗਈ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 1673bad..56fb22d 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -2047,6 +2047,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Zużycie energii obliczone z nadmiarem"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Korzystanie przez <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> zużyte przez: <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> całkowitego zużycia baterii"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Zestawienie od ostatniego pełnego naładowania"</string>
@@ -3669,8 +3671,6 @@
<string name="storage_games" msgid="7703159201697117621">"Gry"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Inne aplikacje"</string>
<string name="storage_files" msgid="8581083146777364063">"Pliki"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Pamięć w tablecie"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Pamięć telefonu"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"wykorzystane z <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"miejsca"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 0256a46..0ac4c68 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -1375,7 +1375,7 @@
<string name="location_mode_screen_title" msgid="4528716772270246542">"Modo de localização"</string>
<string name="location_mode_high_accuracy_description" msgid="3453010562265338113">"Usar GPS, Wi‑Fi, Bluetooth ou redes móveis para determinar a localização"</string>
<string name="location_mode_battery_saving_description" msgid="2365298246603348985">"Usar Wi-Fi, Bluetooth ou redes móveis para determinar a localização"</string>
- <string name="location_mode_sensors_only_description" msgid="788127681455735699">"Usar GPS para determinar local"</string>
+ <string name="location_mode_sensors_only_description" msgid="788127681455735699">"Usar GPS para determinar a localização"</string>
<string name="location_scanning_screen_title" msgid="4408076862929611554">"Verificação"</string>
<string name="location_scanning_wifi_always_scanning_title" msgid="6216705505621183645">"Verificação de Wi-Fi"</string>
<string name="location_scanning_wifi_always_scanning_description" msgid="8036382029606868081">"Melhore a localização permitindo que apps e serviços do sistema detectem redes Wi-Fi a qualquer momento."</string>
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Consumo de energia superestimado"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Usada por <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> de uso por <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> da bateria total"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Detalhamento desde a última carga completa"</string>
@@ -2338,7 +2340,7 @@
<string name="data_usage_auto_sync_off_dialog" msgid="4025938250775413864">"Isto preservará o uso de dados e da bateria, mas será necessário sincronizar manualmente cada conta para obter as informações mais recentes, e você não será informado de novas atualizações."</string>
<string name="data_usage_cycle_editor_title" msgid="1373797281540188533">"Data de redefinição do ciclo de uso"</string>
<string name="data_usage_cycle_editor_subtitle" msgid="5512903797979928416">"Data de cada mês:"</string>
- <string name="data_usage_cycle_editor_positive" msgid="8821760330497941117">"Definidas"</string>
+ <string name="data_usage_cycle_editor_positive" msgid="8821760330497941117">"Definir"</string>
<string name="data_usage_warning_editor_title" msgid="3704136912240060339">"Definir aviso de uso de dados"</string>
<string name="data_usage_limit_editor_title" msgid="9153595142385030015">"Definir limite do uso de dados"</string>
<string name="data_usage_limit_dialog_title" msgid="3023111643632996097">"Limitando uso de dados"</string>
@@ -3334,7 +3336,7 @@
<string name="suggestion_additional_fingerprints" msgid="2214281455363797037">"Adicionar outra impr. digital"</string>
<string name="suggestion_additional_fingerprints_summary" msgid="5471253233176471245">"Desbloqueie com um dedo diferente"</string>
<string name="battery_saver_on_summary" msgid="9072203872401530722">"Ativado / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
- <string name="battery_saver_off_summary" msgid="8309471955051162327">"Desativado / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+ <string name="battery_saver_off_summary" msgid="8309471955051162327">"Desativada / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="battery_saver_desc_turn_on_auto_never" msgid="6715896635178578813">"Nunca ativar automaticamente"</string>
<string name="battery_saver_desc_turn_on_auto_pct" msgid="7472323223085636533">"Ativar automaticamente com %1$s de bateria"</string>
<string name="not_battery_optimizing" msgid="5362861851864837617">"Otimização de bateria desativada"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Jogos"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Outros apps"</string>
<string name="storage_files" msgid="8581083146777364063">"Arquivos"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Armazenamento do tablet"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Armazenamento"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Usados de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"usado"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index c0f29a3..adca992 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -25,8 +25,8 @@
<string name="dlg_switch" msgid="6243971420240639064">"Alternar"</string>
<string name="device_info_default" msgid="7847265875578739287">"Desconhecido"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
+ <item quantity="one">You are now <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steps away from being a developer.</item>
<item quantity="other">Está agora a <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> passos de se tornar um programador.</item>
- <item quantity="one">Está agora a <xliff:g id="STEP_COUNT_0">%1$d</xliff:g> passo de se tornar um programador.</item>
</plurals>
<string name="show_dev_on" msgid="1110711554982716293">"Agora é um programador!"</string>
<string name="show_dev_already" msgid="2151632240145446227">"Não é necessário, já é um programador."</string>
@@ -242,8 +242,8 @@
<string name="locale_remove_menu" msgid="7651301406723638854">"Remover"</string>
<string name="add_a_language" msgid="2330538812283783022">"Adicionar um idioma"</string>
<plurals name="dlg_remove_locales_title" formatted="false" msgid="4276642359346122396">
+ <item quantity="one">Remove selected languages?</item>
<item quantity="other">Pretende remover os idiomas selecionados?</item>
- <item quantity="one">Pretende remover o idioma selecionado?</item>
</plurals>
<string name="dlg_remove_locales_message" msgid="1361354927342876114">"O texto será apresentado noutro idioma."</string>
<string name="dlg_remove_locales_error_title" msgid="2653242337224911425">"Não é possível remover todos os idiomas"</string>
@@ -347,8 +347,8 @@
<string name="fingerprint_add_title" msgid="1926752654454033904">"Adicionar impressão digital"</string>
<string name="fingerprint_enable_keyguard_toggle_title" msgid="5078060939636911795">"bloqueio de ecrã"</string>
<plurals name="security_settings_fingerprint_preference_summary" formatted="false" msgid="624961700033979880">
+ <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> fingerprints set up</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> impressões digitais configuradas</item>
- <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> impressão digital configurada</item>
</plurals>
<string name="security_settings_fingerprint_preference_summary_none" msgid="1507739327565151923"></string>
<string name="security_settings_fingerprint_enroll_introduction_title" msgid="3201556857492526098">"Desbloquear com impr. digital"</string>
@@ -538,28 +538,28 @@
<string name="lockpassword_password_requires_digit" msgid="5140062925787058765">"Tem de incluir, pelo menos, um dígito"</string>
<string name="lockpassword_password_requires_symbol" msgid="5944350865681510893">"Tem de incluir, pelo menos, um símbolo"</string>
<plurals name="lockpassword_password_requires_letters" formatted="false" msgid="9013132344745898400">
+ <item quantity="one">Must contain at least <xliff:g id="COUNT">%d</xliff:g> letters</item>
<item quantity="other">Tem de incluir, pelo menos, <xliff:g id="COUNT">%d</xliff:g> letras</item>
- <item quantity="one">Tem de incluir, pelo menos, 1 letra</item>
</plurals>
<plurals name="lockpassword_password_requires_lowercase" formatted="false" msgid="2626327674921055486">
+ <item quantity="one">Must contain at least <xliff:g id="COUNT">%d</xliff:g> lowercase letters</item>
<item quantity="other">Tem de incluir, pelo menos, <xliff:g id="COUNT">%d</xliff:g> letras minúsculas</item>
- <item quantity="one">Tem de incluir, pelo menos, 1 letra minúscula</item>
</plurals>
<plurals name="lockpassword_password_requires_uppercase" formatted="false" msgid="7860796359913920356">
+ <item quantity="one">Must contain at least <xliff:g id="COUNT">%d</xliff:g> uppercase letters</item>
<item quantity="other">Tem de incluir, pelo menos, <xliff:g id="COUNT">%d</xliff:g> letras maiúsculas</item>
- <item quantity="one">Tem de incluir, pelo menos, 1 letra maiúscula</item>
</plurals>
<plurals name="lockpassword_password_requires_numeric" formatted="false" msgid="1967587658356336828">
+ <item quantity="one">Must contain at least <xliff:g id="COUNT">%d</xliff:g> numerical digits</item>
<item quantity="other">Tem de incluir, pelo menos, <xliff:g id="COUNT">%d</xliff:g> dígitos numéricos</item>
- <item quantity="one">Tem de incluir, pelo menos, 1 dígito numérico</item>
</plurals>
<plurals name="lockpassword_password_requires_symbols" formatted="false" msgid="6751305770863640574">
+ <item quantity="one">Must contain at least <xliff:g id="COUNT">%d</xliff:g> special symbols</item>
<item quantity="other">Tem de incluir, pelo menos, <xliff:g id="COUNT">%d</xliff:g> símbolos especiais</item>
- <item quantity="one">Tem de incluir, pelo menos, 1 símbolo especial</item>
</plurals>
<plurals name="lockpassword_password_requires_nonletter" formatted="false" msgid="4440596998172043055">
+ <item quantity="one">Must contain at least <xliff:g id="COUNT">%d</xliff:g> non-letter characters</item>
<item quantity="other">Tem de incluir, pelo menos, <xliff:g id="COUNT">%d</xliff:g> carateres que não sejam letras</item>
- <item quantity="one">Tem de incluir, pelo menos, 1 caráter que não seja uma letra</item>
</plurals>
<string name="lockpassword_password_recently_used" msgid="942665351220525547">"O admin. do disp. não permite a utilização de uma palavra-passe recente"</string>
<string name="lockpassword_pin_no_sequential_digits" msgid="680765285206990584">"Não é permitida uma sequência de dígitos ascendente, descendente ou repetida"</string>
@@ -571,15 +571,15 @@
<string name="manage_device_admin" msgid="537804979483211453">"Aplicações de administrador do dispositivo"</string>
<string name="number_of_device_admins_none" msgid="7185056721919496069">"Sem aplicações ativas"</string>
<plurals name="number_of_device_admins" formatted="false" msgid="3361891840111523393">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> active apps</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> aplicações ativas</item>
- <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> aplicação ativa</item>
</plurals>
<string name="manage_trust_agents" msgid="4629279457536987768">"Agentes fidedignos"</string>
<string name="disabled_because_no_backup_security" msgid="6877660253409580377">"Para utilizar, defina primeiro um bloqueio de ecrã"</string>
<string name="manage_trust_agents_summary" msgid="1475819820389620546">"Nenhum"</string>
<plurals name="manage_trust_agents_summary_on" formatted="false" msgid="3935182396726101824">
+ <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> active trust agents</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> agentes fidedignos ativos</item>
- <item quantity="one">1 agente fidedigno ativo</item>
</plurals>
<string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
<string name="bluetooth_quick_toggle_summary" msgid="5293641680139873341">"Ativar Bluetooth"</string>
@@ -805,8 +805,8 @@
<string name="wifi_cancel" msgid="6763568902542968964">"Cancelar"</string>
<string name="wifi_saved_access_points_titlebar" msgid="2996149477240134064">"Redes guardadas"</string>
<plurals name="wifi_saved_access_points_summary" formatted="false" msgid="6094679048871529675">
+ <item quantity="one">%d networks</item>
<item quantity="other">%d redes</item>
- <item quantity="one">1 rede</item>
</plurals>
<string name="wifi_advanced_titlebar" msgid="4485841401774142908">"Wi-Fi Avançada"</string>
<string name="wifi_configure_titlebar" msgid="7977475161589303074">"Configurar o Wi‑Fi"</string>
@@ -1056,8 +1056,8 @@
<string name="sim_preferred_message" msgid="8466930554330635780">"O <xliff:g id="NEW_SIM">%1$s</xliff:g> é o único cartão SIM no dispositivo. Pretende utilizar este cartão SIM para os dados móveis, as chamadas e as mensagens SMS?"</string>
<string name="wrong_pin_code_pukked" msgid="4003655226832658066">"Código PIN do cartão SIM incorreto. Tem de contactar o seu operador para desbloquear o dispositivo."</string>
<plurals name="wrong_pin_code" formatted="false" msgid="1582398808893048097">
+ <item quantity="one">Incorrect SIM PIN code, you have <xliff:g id="NUMBER_1">%d</xliff:g> remaining attempts.</item>
<item quantity="other">Código PIN do cartão SIM incorreto. Tem mais <xliff:g id="NUMBER_1">%d</xliff:g> tentativas.</item>
- <item quantity="one">Cód. PIN cartão SIM incorreto. Tem mais <xliff:g id="NUMBER_0">%d</xliff:g> tentativa antes de contactar operador p/ desbloquear disp.</item>
</plurals>
<string name="pin_failed" msgid="1848423634948587645">"Falha ao introduzir o PIN do cartão SIM!"</string>
<string name="device_info_settings" product="tablet" msgid="1119755927536987178">"Estado do tablet"</string>
@@ -1286,8 +1286,8 @@
<string name="reset_network_complete_toast" msgid="787829973559541880">"As definições de rede foram repostas"</string>
<string name="master_clear_title" msgid="5907939616087039756">"Repos. dados/fábrica"</string>
<plurals name="master_clear_with_account_summary" formatted="false" msgid="5911377203778818712">
+ <item quantity="one"><xliff:g id="ACCOUNT_COUNT">%1$d</xliff:g> accounts will be reset</item>
<item quantity="other"><xliff:g id="ACCOUNT_COUNT">%1$d</xliff:g> contas serão repostas</item>
- <item quantity="one">1 conta será reposta</item>
</plurals>
<string name="master_clear_summary" msgid="6902443944660426951">"A memória de armazenamento interno e todos os dados serão repostos"</string>
<string name="master_clear_desc" product="tablet" msgid="9146059417023157222">"Serão apagados todos os dados do "<b>"armazenamento interno"</b>" do tablet, incluindo:\n\n"<li>"A conta Google"</li>\n<li>"Dados e definições do sistema e da aplicação"</li>\n<li>"Aplicações transferidas"</li></string>
@@ -1504,8 +1504,8 @@
<string name="clear_cache_btn_text" msgid="5756314834291116325">"Limpar cache"</string>
<string name="cache_size_label" msgid="7505481393108282913">"Cache"</string>
<plurals name="uri_permissions_text" formatted="false" msgid="3983110543017963732">
+ <item quantity="one">%d items</item>
<item quantity="other">%d itens</item>
- <item quantity="one">1 item</item>
</plurals>
<string name="clear_uri_btn_text" msgid="8575655132961012158">"Limpar acesso"</string>
<string name="controls_label" msgid="7611113077086853799">"Controlos"</string>
@@ -1799,24 +1799,24 @@
<string name="enable_quick_setting" msgid="2366999897816894536">"Mostrar nas Definições rápidas"</string>
<string name="daltonizer_type" msgid="1124178250809091080">"Modo de correção"</string>
<plurals name="accessibilty_autoclick_preference_subtitle_extremely_short_delay" formatted="false" msgid="7340347830562315800">
+ <item quantity="one">Extremely short delay (<xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g> ms)</item>
<item quantity="other">Atraso extremamente curto (<xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g> ms)</item>
- <item quantity="one">Atraso extremamente curto (<xliff:g id="CLICK_DELAY_LABEL_0">%1$d</xliff:g> ms)</item>
</plurals>
<plurals name="accessibilty_autoclick_preference_subtitle_very_short_delay" formatted="false" msgid="5589565607652364932">
+ <item quantity="one">Very short delay (<xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g> ms)</item>
<item quantity="other">Atraso muito curto (<xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g> ms)</item>
- <item quantity="one">Atraso muito curto (<xliff:g id="CLICK_DELAY_LABEL_0">%1$d</xliff:g> ms)</item>
</plurals>
<plurals name="accessibilty_autoclick_preference_subtitle_short_delay" formatted="false" msgid="5887754135102768400">
+ <item quantity="one">Short delay (<xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g> ms)</item>
<item quantity="other">Atraso curto (<xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g> ms)</item>
- <item quantity="one">Atraso curto (<xliff:g id="CLICK_DELAY_LABEL_0">%1$d</xliff:g> ms)</item>
</plurals>
<plurals name="accessibilty_autoclick_preference_subtitle_long_delay" formatted="false" msgid="6340683412750219405">
+ <item quantity="one">Long delay (<xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g> ms)</item>
<item quantity="other">Atraso longo (<xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g> ms)</item>
- <item quantity="one">Atraso longo (<xliff:g id="CLICK_DELAY_LABEL_0">%1$d</xliff:g> ms)</item>
</plurals>
<plurals name="accessibilty_autoclick_preference_subtitle_very_long_delay" formatted="false" msgid="3503199424330634970">
+ <item quantity="one">Very long delay (<xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g> ms)</item>
<item quantity="other">Atraso muito longo (<xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g> ms)</item>
- <item quantity="one">Atraso muito longo (<xliff:g id="CLICK_DELAY_LABEL_0">%1$d</xliff:g> ms)</item>
</plurals>
<string name="accessibility_menu_item_settings" msgid="3344942964710773365">"Configurações"</string>
<string name="accessibility_feature_state_on" msgid="2864292320042673806">"Ativado"</string>
@@ -1871,8 +1871,8 @@
<string name="print_settings" msgid="4742428530112487843">"Impressão"</string>
<string name="print_settings_summary_no_service" msgid="6354322414246865875">"Desativado"</string>
<plurals name="print_settings_summary" formatted="false" msgid="6005468025646083029">
+ <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> print services on</item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> serviços de impressão ativados</item>
- <item quantity="one">1 serviço de impressão ativado</item>
</plurals>
<string name="print_settings_title" msgid="3685449667822217816">"Serviços de impressão"</string>
<string name="print_no_services_installed" msgid="8443039625463872294">"Nenhum serviço instalado"</string>
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Utilização de energia contabilizada em excesso"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Utilizada durante <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> utilizado pela aplicação <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> da bateria total"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Detalhes desde o último carregamento completo"</string>
@@ -2458,21 +2460,21 @@
<string name="ssl_ca_cert_warning" msgid="2045866713601984673">"A rede pode ser monitorizada"</string>
<string name="done_button" msgid="1991471253042622230">"Concluído"</string>
<plurals name="ssl_ca_cert_dialog_title" formatted="false" msgid="7145092748045794650">
+ <item quantity="one">Trust or remove certificates</item>
<item quantity="other">Confiar ou remover os certificados</item>
- <item quantity="one">Confiar ou remover o certificado</item>
</plurals>
<plurals name="ssl_ca_cert_info_message_device_owner" formatted="false" msgid="1489335297837656666">
+ <item quantity="one"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> has installed certificate authorities on your device, which may allow them to monitor your device network activity, including emails, apps, and secure websites.\n\nFor more information about these certificates, contact your admin.</item>
<item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> instalou autoridades de certificação no seu dispositivo que podem permitir monitorizar a atividade na rede do dispositivo, incluindo emails, aplicações e Websites seguros.\n\nPara obter mais informações acerca destes certificados, contacte o administrador.</item>
- <item quantity="one"><xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> instalou uma autoridade de certificação no seu dispositivo que pode permitir monitorizar a atividade na rede do dispositivo, incluindo emails, aplicações e Websites seguros.\n\nPara obter mais informações acerca deste certificado, contacte o administrador.</item>
</plurals>
<plurals name="ssl_ca_cert_info_message" formatted="false" msgid="30645643499556573">
+ <item quantity="one"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> has installed certificate authorities for your work profile, which may allow them to monitor work network activity, including emails, apps, and secure websites.\n\nFor more information about these certificates, contact your admin.</item>
<item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> instalou autoridades de certificação para o seu perfil de trabalho que podem permitir monitorizar a atividade na rede de trabalho, incluindo emails, aplicações e Websites seguros.\n\nPara obter mais informações acerca destes certificados, contacte o administrador.</item>
- <item quantity="one"><xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> instalou uma autoridade de certificação para o seu perfil de trabalho que pode permitir monitorizar a atividade na rede de trabalho, incluindo emails, aplicações e Websites seguros.\n\nPara obter mais informações acerca deste certificado, contacte o administrador.</item>
</plurals>
<string name="ssl_ca_cert_warning_message" msgid="8216218659139190498">"A sua atividade de rede, incluindo emails, aplicações e Websites seguros, pode ser monitorizada por terceiros.\n\nIsto é possível através de uma credencial fidedigna instalada no seu dispositivo."</string>
<plurals name="ssl_ca_cert_settings_button" formatted="false" msgid="2426799352517325228">
+ <item quantity="one">Check certificates</item>
<item quantity="other">Verificar certificados</item>
- <item quantity="one">Verificar certificado</item>
</plurals>
<string name="user_settings_title" msgid="6151874007858148344">"Utilizadores"</string>
<string name="user_list_title" msgid="7937158411137563543">"Utilizadores e perfis"</string>
@@ -2649,8 +2651,8 @@
<string name="sim_selection_required_pref" msgid="3446721423206414652">"A seleção é necessária"</string>
<string name="dashboard_title" msgid="5453710313046681820">"Definições"</string>
<plurals name="settings_suggestion_header_summary_hidden_items" formatted="false" msgid="5597356221942118048">
+ <item quantity="one">Show %d hidden items</item>
<item quantity="other">Mostrar %d itens ocultos</item>
- <item quantity="one">Mostrar %d item oculto</item>
</plurals>
<string name="network_dashboard_title" msgid="4771589228992391573">"Rede e Internet"</string>
<string name="network_dashboard_summary" msgid="3274556191585905652">"Wi-Fi, dispositivo móvel, utilização de dados, zona Wi-Fi"</string>
@@ -2747,8 +2749,8 @@
<string name="boot_sounds_title" msgid="567029107382343709">"Ativar sons"</string>
<string name="zen_mode_settings_summary_off" msgid="1857165567766351925">"Nenhuma regra automática ativada"</string>
<plurals name="zen_mode_settings_summary_on" formatted="false" msgid="1216562765753405784">
+ <item quantity="one"><xliff:g id="ON_COUNT">%d</xliff:g> automatic rules turned on</item>
<item quantity="other"><xliff:g id="ON_COUNT">%d</xliff:g> regras automáticas ativadas</item>
- <item quantity="one">1 regra automática ativada</item>
</plurals>
<string name="zen_mode_settings_title" msgid="842308776768942600">"Preferências de Não incomodar"</string>
<string name="zen_mode_priority_settings_title" msgid="2623117023031824309">"Prioridade permite apenas"</string>
@@ -2810,8 +2812,8 @@
<string name="work_profile_notification_access_blocked_summary" msgid="8748026238701253040">"O acesso às notificações do perfil de trabalho está bloqueado"</string>
<string name="manage_notification_access_summary_zero" msgid="2409912785614953348">"As aplicações não podem ler notificações"</string>
<plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="7930130030691218387">
+ <item quantity="one">%d apps can read notifications</item>
<item quantity="other">%d aplicações conseguem ler notificações</item>
- <item quantity="one">%d aplicação consegue ler notificações</item>
</plurals>
<string name="no_notification_listeners" msgid="3487091564454192821">"Nenhuma aplicação instalada solicitou acesso a notificações"</string>
<string name="notification_listener_security_warning_title" msgid="5522924135145843279">"Pretende permitir o acesso a notificações de <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -2845,12 +2847,12 @@
<string name="app_settings_link" msgid="8894946007543660906">"Definições adicionais na aplicação"</string>
<string name="app_notification_listing_summary_zero" msgid="6482582965081108108">"Ativadas para todas as aplicações"</string>
<plurals name="app_notification_listing_summary_others" formatted="false" msgid="5668835155965827890">
+ <item quantity="one">Turned off for <xliff:g id="COUNT_1">%d</xliff:g> apps</item>
<item quantity="other">Desativado para <xliff:g id="COUNT_1">%d</xliff:g> aplicações</item>
- <item quantity="one">Desativado para <xliff:g id="COUNT_0">%d</xliff:g> aplicação</item>
</plurals>
<plurals name="deleted_channels" formatted="false" msgid="8028574302599397935">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> categories deleted</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> categorias eliminadas</item>
- <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> categoria eliminada</item>
</plurals>
<string name="notification_badges" msgid="4468378071033143539">"Balões de notificações"</string>
<string name="notification_toggle_on" msgid="650145396718191048">"Ativadas"</string>
@@ -2932,12 +2934,12 @@
<string name="zen_mode_end_time_next_day_summary_format" msgid="4201521691238728701">"<xliff:g id="FORMATTED_TIME">%s</xliff:g> do dia seguinte"</string>
<string name="zen_mode_summary_alarms_only_indefinite" msgid="2061973221027570123">"Alterar para alarmes apenas, indefinidamente"</string>
<plurals name="zen_mode_summary_alarms_only_by_minute" formatted="false" msgid="6122003583875424601">
+ <item quantity="one">Change to alarms only for <xliff:g id="DURATION">%1$d</xliff:g> minutes (until <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g>)</item>
<item quantity="other">Alterar para alarmes apenas durante <xliff:g id="DURATION">%1$d</xliff:g> minutos, até às <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
- <item quantity="one">Alterar para alarmes apenas durante um minuto, até às <xliff:g id="FORMATTEDTIME_0">%2$s</xliff:g></item>
</plurals>
<plurals name="zen_mode_summary_alarms_only_by_hour" formatted="false" msgid="2407703455581767748">
+ <item quantity="one">Change to alarms only for <xliff:g id="DURATION">%1$d</xliff:g> hours until <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
<item quantity="other">Alterar para alarmes apenas durante <xliff:g id="DURATION">%1$d</xliff:g> horas até às <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
- <item quantity="one">Alterar para alarmes apenas durante uma hora até às <xliff:g id="FORMATTEDTIME_0">%2$s</xliff:g></item>
</plurals>
<string name="zen_mode_summary_alarms_only_by_time" msgid="7465525754879341907">"Alterar para alarmes apenas, até <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="6172985102689237703">"Alterar para interromper sempre"</string>
@@ -3015,16 +3017,16 @@
<string name="notification_summary_level" msgid="2726571692704140826">"Nível %d"</string>
<string name="notification_summary_channel" msgid="5831124672372023524">"<xliff:g id="CHANNEL_NAME">%1$s</xliff:g> • <xliff:g id="GROUP_NAME">%2$s</xliff:g>"</string>
<plurals name="permissions_summary" formatted="false" msgid="6402730318075959117">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> permissions granted</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> autorizações concedidas</item>
- <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> autorização concedida</item>
</plurals>
<plurals name="runtime_permissions_summary" formatted="false" msgid="1564663886246010959">
+ <item quantity="one"><xliff:g id="COUNT_2">%d</xliff:g> of <xliff:g id="COUNT_3">%d</xliff:g> permissions granted</item>
<item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> de <xliff:g id="COUNT_3">%d</xliff:g> autorizações concedidas</item>
- <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> de <xliff:g id="COUNT_1">%d</xliff:g> autorização concedida</item>
</plurals>
<plurals name="runtime_permissions_additional_count" formatted="false" msgid="931276038884210752">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> additional permissions</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> permissões adicionais</item>
- <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> permissão adicional</item>
</plurals>
<string name="runtime_permissions_summary_no_permissions_granted" msgid="1679758182657005375">"Nenhuma permissão concedida"</string>
<string name="runtime_permissions_summary_no_permissions_requested" msgid="7655100570513818534">"Nenhuma permissão solicitada"</string>
@@ -3052,8 +3054,8 @@
<string name="domain_urls_summary_some" msgid="3950089361819428455">"Abrir <xliff:g id="DOMAIN">%s</xliff:g> e outros URLs"</string>
<string name="domain_urls_apps_summary_off" msgid="1833056772600031220">"Nenhum aplicação abre links compatíveis"</string>
<plurals name="domain_urls_apps_summary_on" formatted="false" msgid="240214361240709399">
+ <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> apps opening supported links</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> aplicações que abrem links compatíveis</item>
- <item quantity="one">Uma aplicação que abre links compatíveis</item>
</plurals>
<string name="app_link_open_always" msgid="2474058700623948148">"Abrir com esta aplicação"</string>
<string name="app_link_open_ask" msgid="7800878430190575991">"Perguntar sempre"</string>
@@ -3155,8 +3157,8 @@
<string name="free_memory" msgid="4003936141603549746">"Disponível"</string>
<string name="memory_usage_apps" msgid="5650192998273294098">"Memória utilizada pelas aplicações"</string>
<plurals name="memory_usage_apps_summary" formatted="false" msgid="6089210945574265774">
+ <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> apps used memory in the last <xliff:g id="DURATION_1">%2$s</xliff:g></item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> aplicações utilizaram a memória nos(as) últimos(as) <xliff:g id="DURATION_1">%2$s</xliff:g></item>
- <item quantity="one">1 aplicação utilizou a memória nos(as) últimos(as) <xliff:g id="DURATION_0">%2$s</xliff:g></item>
</plurals>
<string name="running_frequency" msgid="6622624669948277693">"Frequência"</string>
<string name="memory_maximum_usage" msgid="6513785462055278341">"Utilização máxima"</string>
@@ -3229,8 +3231,8 @@
<string name="disconnected" msgid="4836600637485526329">"Sem ligação"</string>
<string name="data_usage_summary_format" msgid="7507047900192160585">"<xliff:g id="AMOUNT">%1$s</xliff:g> dos dados utilizados"</string>
<plurals name="notification_summary" formatted="false" msgid="3941492005316143599">
+ <item quantity="one">Off for <xliff:g id="COUNT">%d</xliff:g> apps</item>
<item quantity="other">Desativadas para <xliff:g id="COUNT">%d</xliff:g> aplicações</item>
- <item quantity="one">Desativadas para 1 aplicação</item>
</plurals>
<string name="notification_summary_none" msgid="4586376436702610">"Ativadas para todas as aplicações"</string>
<string name="apps_summary" msgid="193158055537070092">"<xliff:g id="COUNT">%1$d</xliff:g> aplicações instaladas"</string>
@@ -3302,8 +3304,8 @@
<string name="billing_cycle_fragment_summary" msgid="1940518156600077066">"Mensalmente a partir do dia <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="network_restrictions" msgid="8234695294536675380">"Restrições de rede"</string>
<plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
+ <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> restrictions</item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> restrições</item>
- <item quantity="one">1 restrição</item>
</plurals>
<string name="operator_warning" msgid="1862988028996859195">"A contagem de dados do operador pode ser diferente da contagem do dispositivo"</string>
<string name="data_used_template" msgid="3245919669966296505">"<xliff:g id="ID_1">%1$s</xliff:g> utilizado(s)"</string>
@@ -3315,8 +3317,8 @@
<string name="configure" msgid="1029654422228677273">"Configurar"</string>
<string name="data_usage_other_apps" msgid="3272872663517382050">"Outras aplicações incluídas na utilização"</string>
<plurals name="data_saver_unrestricted_summary" formatted="false" msgid="2635267833484232703">
+ <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> apps allowed to use unrestricted data when Data Saver is on</item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> aplicações autorizadas a utilizar dados sem restrições quando a Poupança de dados está ativada</item>
- <item quantity="one">1 aplicação autorizada a utilizar dados sem restrições quando a Poupança de dados está ativada</item>
</plurals>
<string name="data_saver_title" msgid="398458827917495765">"Poupança de dados"</string>
<string name="unrestricted_data_saver" msgid="7019858887510062789">"Acesso a dados sem restrições"</string>
@@ -3373,8 +3375,8 @@
<string name="notification_log_details_ranking_none" msgid="599607025882587844">"O objeto de classificação não contém esta chave."</string>
<string name="special_access" msgid="3458780842491881155">"Acesso especial a aplicações"</string>
<plurals name="special_access_summary" formatted="false" msgid="260765309935675867">
+ <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> apps can use unrestricted data</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> aplicações podem utilizar dados sem restrições</item>
- <item quantity="one">1 aplicação pode utilizar dados sem restrições</item>
</plurals>
<string name="confirm_convert_to_fbe_warning" msgid="1487005506049137659">"Pretende mesmo limpar os dados do utilizador e converter para a encriptação de ficheiros?"</string>
<string name="button_confirm_convert_fbe" msgid="7101855374850373091">"Limpar e converter"</string>
@@ -3423,16 +3425,16 @@
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pesquisa de contactos"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permitir pesquisa de contactos por parte da sua entidade para identificar autores das chamadas e contactos"</string>
<plurals name="hours" formatted="false" msgid="7020844602875333472">
+ <item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> hours</item>
<item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> horas</item>
- <item quantity="one">1 hora</item>
</plurals>
<plurals name="minutes" formatted="false" msgid="4666832442068789413">
+ <item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> minutes</item>
<item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> minutos</item>
- <item quantity="one">1 minuto</item>
</plurals>
<plurals name="seconds" formatted="false" msgid="3876307354560025025">
+ <item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> seconds</item>
<item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> segundos</item>
- <item quantity="one">1 segundo</item>
</plurals>
<string name="support_estimated_wait_time" msgid="6523081420029378051">"Tempo de espera de ~<xliff:g id="ESTIMATE">%1$s</xliff:g>"</string>
<string name="bluetooth_talkback_computer" msgid="4875089335641234463">"Computador"</string>
@@ -3511,16 +3513,16 @@
<string name="enterprise_privacy_enterprise_installed_packages" msgid="6353757812144878828">"Aplicações instaladas"</string>
<string name="enterprise_privacy_apps_count_estimation_info" msgid="7433213592572082606">"O número de aplicações é uma estimativa. Pode não incluir as aplicações instaladas fora da Play Store."</string>
<plurals name="enterprise_privacy_number_packages_lower_bound" formatted="false" msgid="3005116533873542976">
+ <item quantity="one">Minimum <xliff:g id="COUNT_1">%d</xliff:g> apps</item>
<item quantity="other">No mínimo, <xliff:g id="COUNT_1">%d</xliff:g> aplicações</item>
- <item quantity="one">No mínimo, <xliff:g id="COUNT_0">%d</xliff:g> aplicação</item>
</plurals>
<string name="enterprise_privacy_location_access" msgid="4158197200885270634">"Autorizações de acesso à localização"</string>
<string name="enterprise_privacy_microphone_access" msgid="5717375623568864441">"Autorizações do microfone"</string>
<string name="enterprise_privacy_camera_access" msgid="4858146118537519375">"Autorizações da câmara"</string>
<string name="enterprise_privacy_enterprise_set_default_apps" msgid="3288495615791128724">"Aplicações predefinidas"</string>
<plurals name="enterprise_privacy_number_packages" formatted="false" msgid="2765037387436064893">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> apps</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> aplicações</item>
- <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> aplicação</item>
</plurals>
<string name="enterprise_privacy_input_method" msgid="6531350246850814920">"Teclado predefinido"</string>
<string name="enterprise_privacy_input_method_name" msgid="4941106433683067953">"Definido como <xliff:g id="APP_LABEL">%s</xliff:g>"</string>
@@ -3530,35 +3532,35 @@
<string name="enterprise_privacy_global_http_proxy" msgid="7936664553416257333">"Proxy HTTP global definido"</string>
<string name="enterprise_privacy_ca_certs" msgid="5885892204903688909">"Credenciais fidedignas"</string>
<plurals name="enterprise_privacy_number_ca_certs" formatted="false" msgid="526375234629534165">
+ <item quantity="one">Minimum <xliff:g id="COUNT_1">%d</xliff:g> CA certificates</item>
<item quantity="other">No mínimo, <xliff:g id="COUNT_1">%d</xliff:g> certificados da AC</item>
- <item quantity="one">No mínimo, <xliff:g id="COUNT_0">%d</xliff:g> certificado da AC</item>
</plurals>
<string name="enterprise_privacy_lock_device" msgid="8791656477097208540">"O administrador pode bloquear o dispositivo e repor a palavra-passe"</string>
<string name="enterprise_privacy_wipe_device" msgid="2821960015797241790">"O administrador pode eliminar todos os dados do dispositivo"</string>
<string name="enterprise_privacy_failed_password_wipe_device" msgid="1001255609345002878">"Tentativas de introdução da palavra-passe falhadas antes da eliminação de todos os dados do dispositivo"</string>
<string name="enterprise_privacy_failed_password_wipe_work" msgid="4040565826652951057">"Tentativas de introdução da palavra-passe falhadas antes da eliminação de todos os dados do perfil de trabalho"</string>
<plurals name="enterprise_privacy_number_failed_password_wipe" formatted="false" msgid="5279099270351036696">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> attempts</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> tentativas</item>
- <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> tentativa</item>
</plurals>
<string name="do_disclosure_generic" msgid="8653670456990823307">"Este dispositivo é gerido pela sua entidade."</string>
<string name="do_disclosure_with_name" msgid="1141081465968481380">"Este dispositivo é gerido por <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>."</string>
<string name="do_disclosure_learn_more_separator" msgid="3558079393757238670">" "</string>
<string name="do_disclosure_learn_more" msgid="2416766240581561009">"Saiba mais"</string>
<plurals name="default_camera_app_title" formatted="false" msgid="1134677050353971363">
+ <item quantity="one">Camera apps</item>
<item quantity="other">Aplicações de câmara</item>
- <item quantity="one">Aplicação de câmara</item>
</plurals>
<string name="default_calendar_app_title" msgid="3545972964391065220">"Aplicação de calendário"</string>
<string name="default_contacts_app_title" msgid="3497370557378660098">"Aplicação de contactos"</string>
<plurals name="default_email_app_title" formatted="false" msgid="42826975161049245">
+ <item quantity="one">Email client apps</item>
<item quantity="other">Aplicações de cliente de email</item>
- <item quantity="one">Aplicação de cliente de email</item>
</plurals>
<string name="default_map_app_title" msgid="7560143381633608567">"Aplicação de mapas"</string>
<plurals name="default_phone_app_title" formatted="false" msgid="6714041230953195024">
+ <item quantity="one">Phone apps</item>
<item quantity="other">Aplicações de telefone</item>
- <item quantity="one">Aplicação de telefone</item>
</plurals>
<string name="app_names_concatenation_template_2" msgid="4309216198909946380">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>"</string>
<string name="app_names_concatenation_template_3" msgid="8949045544491604376">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>, <xliff:g id="THIRD_APP_NAME">%3$s</xliff:g>"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Jogos"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Outras aplicações"</string>
<string name="storage_files" msgid="8581083146777364063">"Ficheiros"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Armazenamento do tablet"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Armazenamento telemóvel"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Utilizados de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"utilizado"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 0256a46..0ac4c68 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -1375,7 +1375,7 @@
<string name="location_mode_screen_title" msgid="4528716772270246542">"Modo de localização"</string>
<string name="location_mode_high_accuracy_description" msgid="3453010562265338113">"Usar GPS, Wi‑Fi, Bluetooth ou redes móveis para determinar a localização"</string>
<string name="location_mode_battery_saving_description" msgid="2365298246603348985">"Usar Wi-Fi, Bluetooth ou redes móveis para determinar a localização"</string>
- <string name="location_mode_sensors_only_description" msgid="788127681455735699">"Usar GPS para determinar local"</string>
+ <string name="location_mode_sensors_only_description" msgid="788127681455735699">"Usar GPS para determinar a localização"</string>
<string name="location_scanning_screen_title" msgid="4408076862929611554">"Verificação"</string>
<string name="location_scanning_wifi_always_scanning_title" msgid="6216705505621183645">"Verificação de Wi-Fi"</string>
<string name="location_scanning_wifi_always_scanning_description" msgid="8036382029606868081">"Melhore a localização permitindo que apps e serviços do sistema detectem redes Wi-Fi a qualquer momento."</string>
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Consumo de energia superestimado"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Usada por <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> de uso por <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> da bateria total"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Detalhamento desde a última carga completa"</string>
@@ -2338,7 +2340,7 @@
<string name="data_usage_auto_sync_off_dialog" msgid="4025938250775413864">"Isto preservará o uso de dados e da bateria, mas será necessário sincronizar manualmente cada conta para obter as informações mais recentes, e você não será informado de novas atualizações."</string>
<string name="data_usage_cycle_editor_title" msgid="1373797281540188533">"Data de redefinição do ciclo de uso"</string>
<string name="data_usage_cycle_editor_subtitle" msgid="5512903797979928416">"Data de cada mês:"</string>
- <string name="data_usage_cycle_editor_positive" msgid="8821760330497941117">"Definidas"</string>
+ <string name="data_usage_cycle_editor_positive" msgid="8821760330497941117">"Definir"</string>
<string name="data_usage_warning_editor_title" msgid="3704136912240060339">"Definir aviso de uso de dados"</string>
<string name="data_usage_limit_editor_title" msgid="9153595142385030015">"Definir limite do uso de dados"</string>
<string name="data_usage_limit_dialog_title" msgid="3023111643632996097">"Limitando uso de dados"</string>
@@ -3334,7 +3336,7 @@
<string name="suggestion_additional_fingerprints" msgid="2214281455363797037">"Adicionar outra impr. digital"</string>
<string name="suggestion_additional_fingerprints_summary" msgid="5471253233176471245">"Desbloqueie com um dedo diferente"</string>
<string name="battery_saver_on_summary" msgid="9072203872401530722">"Ativado / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
- <string name="battery_saver_off_summary" msgid="8309471955051162327">"Desativado / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+ <string name="battery_saver_off_summary" msgid="8309471955051162327">"Desativada / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="battery_saver_desc_turn_on_auto_never" msgid="6715896635178578813">"Nunca ativar automaticamente"</string>
<string name="battery_saver_desc_turn_on_auto_pct" msgid="7472323223085636533">"Ativar automaticamente com %1$s de bateria"</string>
<string name="not_battery_optimizing" msgid="5362861851864837617">"Otimização de bateria desativada"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Jogos"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Outros apps"</string>
<string name="storage_files" msgid="8581083146777364063">"Arquivos"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Armazenamento do tablet"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Armazenamento"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Usados de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"usado"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index bd8c960..e961bab 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -2026,6 +2026,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Consumul supraevaluat al bateriei"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Utilizată <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> folosită de <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> din bateria încărcată complet"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Detaliere de la ultima încărcare completă"</string>
@@ -3618,8 +3620,6 @@
<string name="storage_games" msgid="7703159201697117621">"Jocuri"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Alte aplicații"</string>
<string name="storage_files" msgid="8581083146777364063">"Fișiere"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Spațiu de stocare pe tabletă"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Stocare pe telefon"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Folosit din <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"folosit"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 4d833ef..cdfc6aa 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -2047,6 +2047,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Преувеличенное энергопотребление"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> мА·ч"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Время использования: <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> – <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> заряда батареи"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Использование с момента полной зарядки"</string>
@@ -3669,8 +3671,6 @@
<string name="storage_games" msgid="7703159201697117621">"Игры"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Другие приложения"</string>
<string name="storage_files" msgid="8581083146777364063">"Файлы"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Память планшета"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Хранилище телефона"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"занято из <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"занято"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 779cf4a..998e42d 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"වැඩියෙන් ගණනය කළ බල භාවිතය"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g>ක් භාවිත කරන ලදී"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> වෙතින් <xliff:g id="PERCENT">%1$s</xliff:g>ක් භාවිතා කර ඇත"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"සමස්ත බැටරියෙන් <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"අවසන් පූර්ණ ආරෝපණයෙන් පසුව ප්රභේදනය"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"ක්රීඩා"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"වෙනත් යෙදුම්"</string>
<string name="storage_files" msgid="8581083146777364063">"ගොනු"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"ටැබ්ලට ආචයනය"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"දුරකථන ගබඞාව"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g>න් භාවිත කළ"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"භාවිතා කළ"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 76d5435..27bdad1 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -2047,6 +2047,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Nadsadená spotreba energie"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Používané <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> využila aplikácia <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> celkovej výdrže batérie"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Prehľad od posledného úplného nabitia"</string>
@@ -2831,8 +2833,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"Upozornenia"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"Rozšírené"</string>
<string name="profile_section_header" msgid="2320848161066912001">"Pracovné upozornenia"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"Povoliť odznaky na ikonách"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"Blikanie"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"Na uzamknutej obrazovke"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Zobrazovať všetok obsah upozornení"</string>
@@ -2884,7 +2885,7 @@
<string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"Znížiť rozmazanie (odporúčané)"</string>
<string name="display_vr_pref_off" msgid="2190091757123260989">"Znížiť blikanie"</string>
<string name="picture_in_picture_title" msgid="5824849294270017113">"Obraz v obraze"</string>
- <string name="picture_in_picture_empty_text" msgid="685224245260197779">"Žiadna z nainštalovaných aplikácií nepodporuje režim Obraz v obraze"</string>
+ <string name="picture_in_picture_empty_text" msgid="685224245260197779">"Žiadna z nainštalovaných aplikácií nepodporuje obraz v obraze"</string>
<string name="picture_in_picture_keywords" msgid="8361318686701764690">"pip, obraz v"</string>
<string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Obraz v obraze"</string>
<string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Povoliť obraz v obraze"</string>
@@ -3670,8 +3671,6 @@
<string name="storage_games" msgid="7703159201697117621">"Hry"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Ďalšie aplikácie"</string>
<string name="storage_files" msgid="8581083146777364063">"Súbory"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Úložisko tabletu"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Úložisko telefónu"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Využité z <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"využité"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index fa9bac8..1b2498a 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -2047,6 +2047,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Preveč šteta uporaba energije"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Trajanje uporabe: <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> uporablja <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> celotne napolnjenosti akumulatorja"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Razčlenitev od zadnje napol. akumulatorja"</string>
@@ -3100,7 +3102,7 @@
<string name="runtime_permissions_summary_no_permissions_requested" msgid="7655100570513818534">"Ni zahtevanih dovoljenj"</string>
<string name="filter_all_apps" msgid="1988403195820688644">"Vse aplikacije"</string>
<string name="filter_enabled_apps" msgid="5395727306799456250">"Nameščene aplikacije"</string>
- <string name="filter_instant_apps" msgid="574277769963965565">"Aplikacije brez nameščanja"</string>
+ <string name="filter_instant_apps" msgid="574277769963965565">"Nenamestljive aplikacije"</string>
<string name="filter_personal_apps" msgid="3277727374174355971">"Osebno"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Služba"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplikacije: vse"</string>
@@ -3569,10 +3571,10 @@
<string name="oem_unlock_enable_disabled_summary_connectivity_or_locked" msgid="5884723935668892613">"Povežite se z internetom ali se obrnite na operaterja"</string>
<string name="oem_unlock_enable_disabled_summary_sim_locked_device" msgid="4149387448213399630">"Ni na voljo v napravah, zaklenjenih na operaterja"</string>
<string name="automatic_storage_manager_freed_bytes" msgid="7517560170441007788">"Skupaj sproščeno: <xliff:g id="SIZE">%1$s</xliff:g>\n\nNazadnje zagnano: <xliff:g id="DATE">%2$s</xliff:g>"</string>
- <string name="web_action_enable_title" msgid="4051513950976670853">"Aplikacije brez nameščanja"</string>
+ <string name="web_action_enable_title" msgid="4051513950976670853">"Nenamestljive aplikacije"</string>
<string name="web_action_enable_summary" msgid="3108127559723396382">"Odpri povezave v aplikacijah, tudi če niso nameščene"</string>
- <string name="web_action_section_title" msgid="7364647086538399136">"Aplikacije brez nameščanja"</string>
- <string name="instant_apps_account" msgid="1433620209791992528">"Račun za aplikacije brez nameščanja"</string>
+ <string name="web_action_section_title" msgid="7364647086538399136">"Nenamestljive aplikacije"</string>
+ <string name="instant_apps_account" msgid="1433620209791992528">"Račun za nenamestljive aplikacije"</string>
<string name="domain_url_section_title" msgid="7046835219056428883">"Nameščene aplikacije"</string>
<string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Shrambo zdaj upravlja upravitelj shrambe"</string>
<string name="account_for_section_header" msgid="5356566418548737121">"Računi uporabnika <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -3669,13 +3671,11 @@
<string name="storage_games" msgid="7703159201697117621">"Igre"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Druge aplikacije"</string>
<string name="storage_files" msgid="8581083146777364063">"Datoteke"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Shramba tabl. računalnika"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Pomnilnik telefona"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Uporabljeno od <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"uporab."</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Počisti aplikacijo"</string>
- <string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Ali želite odstraniti to aplikacijo brez nameščanja?"</string>
+ <string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Ali želite odstraniti to nenamestljivo aplikacijo?"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Igre"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Zvočne datoteke"</string>
<string name="webview_uninstalled_for_user" msgid="1819903169194420983">"(odstranjeno za uporabnika <xliff:g id="USER">%s</xliff:g>)"</string>
@@ -3688,7 +3688,7 @@
<string name="storage_manager_indicator" msgid="1516810749625915020">"Upravitelj shrambe: <xliff:g id="STATUS">^1</xliff:g>"</string>
<string name="storage_manager_indicator_off" msgid="7488057587180724388">"Izklopljeno"</string>
<string name="storage_manager_indicator_on" msgid="8625551710194584733">"Vklopljeno"</string>
- <string name="install_type_instant" msgid="3174425974536078647">"Aplikacija brez nameščanja"</string>
+ <string name="install_type_instant" msgid="3174425974536078647">"Nenamestljiva aplikacija"</string>
<string name="automatic_storage_manager_deactivation_warning" msgid="5605210730828410482">"Želite izklopiti upravitelja shrambe?"</string>
<string name="storage_movies_tv" msgid="5498394447562086890">"Aplikacije za filme in TV"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Uporabljen prostor"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index b02f64a..e283ba2 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Përdorimi i energjisë i numëruar më shumë sa duhet"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Përdorur për <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> përdorur nga <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> nga e gjithë bateria"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Analiza që nga ngarkimi i fundit i plotë"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Lojëra"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Aplikacionet e tjera"</string>
<string name="storage_files" msgid="8581083146777364063">"Skedarët"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Hapësira ruajtëse e tabletit"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Hapësira ruajtëse e telefonit"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Përdorur nga <xliff:g id="TOTAL">%1$s</xliff:g> gjithsej"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"e përdorur"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 5de847b..25267af 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -34,7 +34,7 @@
<string name="header_category_wireless_networks" msgid="5110914332313954940">"Бежична веза и мреже"</string>
<string name="header_category_connections" msgid="6471513040815680662">"Везе"</string>
<string name="header_category_device" msgid="4544026001618307754">"Уређај"</string>
- <string name="header_category_personal" msgid="3310195187905720823">"Лично"</string>
+ <string name="header_category_personal" msgid="3310195187905720823">"Лични"</string>
<string name="header_category_access" msgid="7580499097416970962">"Приступ"</string>
<string name="header_category_system" msgid="2816866961183068977">"Систем"</string>
<string name="radio_info_data_connection_enable" msgid="8656750679353982712">"Омогући везу за пренос података"</string>
@@ -584,7 +584,7 @@
<item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> активне апликације</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> активних апликација</item>
</plurals>
- <string name="manage_trust_agents" msgid="4629279457536987768">"Trust agents"</string>
+ <string name="manage_trust_agents" msgid="4629279457536987768">"Поуздани агенти"</string>
<string name="disabled_because_no_backup_security" msgid="6877660253409580377">"Да бисте га користили, прво подесите закључавање екрана"</string>
<string name="manage_trust_agents_summary" msgid="1475819820389620546">"Ништа"</string>
<plurals name="manage_trust_agents_summary_on" formatted="false" msgid="3935182396726101824">
@@ -962,7 +962,7 @@
<string name="search_settings" msgid="1910951467596035063">"Претрага"</string>
<string name="search_settings_summary" msgid="9205656546570654169">"Управљање подешавањима претраге и историјом"</string>
<string name="search_settings_no_results" msgid="8799027492641230999">"Нема резултата"</string>
- <string name="display_settings" msgid="7965901687241669598">"Приказ"</string>
+ <string name="display_settings" msgid="7965901687241669598">"Екран"</string>
<string name="accelerometer_title" msgid="7854608399547349157">"Аутоматско ротирање екрана"</string>
<string name="accelerometer_summary_on" product="tablet" msgid="429982132339828942">"Промени положај аутоматски приликом ротирања таблета"</string>
<string name="accelerometer_summary_on" product="default" msgid="1133737282813048021">"Аутоматска промена положаја приликом ротације телефона"</string>
@@ -2026,6 +2026,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Прекомерно израчуната потрошња енергије"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Користи се <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> користи <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> укупног капацитета батерије"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Преглед од последњег потпуног пуњења"</string>
@@ -2190,7 +2192,7 @@
<string name="no_device_admins" msgid="4846602835339095768">"Нема доступних апликација за администратора уређаја"</string>
<string name="personal_device_admin_title" msgid="2849617316347669861">"Лични"</string>
<string name="managed_device_admin_title" msgid="7853955652864478435">"Посао"</string>
- <string name="no_trust_agents" msgid="7450273545568977523">"Trust agents - Недоступно"</string>
+ <string name="no_trust_agents" msgid="7450273545568977523">"Нема доступних поузданих агената"</string>
<string name="add_device_admin_msg" msgid="1501847129819382149">"Активирај апликацију за администраторе?"</string>
<string name="add_device_admin" msgid="4192055385312215731">"Активирај ову апликацију за администраторе уређаја"</string>
<string name="device_admin_add_title" msgid="3140663753671809044">"Администратор уређаја"</string>
@@ -3035,7 +3037,7 @@
<string name="storage_used" msgid="7128074132917008743">"Меморијски простор у употреби"</string>
<string name="change" msgid="6657848623929839991">"Промени"</string>
<string name="change_storage" msgid="600475265207060436">"Промените меморију"</string>
- <string name="notifications_label" msgid="8543457911148619898">"Обавештења апликације"</string>
+ <string name="notifications_label" msgid="8543457911148619898">"Обавештења о апликацији"</string>
<string name="notifications_enabled" msgid="6983396130566021385">"Укључена"</string>
<string name="notifications_disabled" msgid="334416731283131597">"Све је искључено"</string>
<string name="notifications_partly_blocked" msgid="592071133950126656">"Укључених категорија: <xliff:g id="COUNT_0">%1$d</xliff:g> од <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
@@ -3155,12 +3157,12 @@
<string name="usb_use_power_only" msgid="6426550616883919530">"Напајање"</string>
<string name="usb_use_power_only_desc" msgid="3461232831015575152">"Пуните повезани уређај. Ради само са уређајима који подржавају пуњење преко USB-а."</string>
<string name="usb_use_file_transfers" msgid="7409600791007250137">"Пренос датотека"</string>
- <string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"Преноси датотеке на други уређај"</string>
+ <string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"Преносите датотеке на други уређај"</string>
<string name="usb_use_photo_transfers" msgid="7794775645350330454">"Пренос слика (PTP)"</string>
- <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"Преноси слике или датотеке ако MTP није подржан (PTP)"</string>
+ <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"Преносите слике или датотеке ако MTP није подржан (PTP)"</string>
<string name="usb_use_MIDI" msgid="870922185938298263">"Коришћење уређаја у MIDI режиму"</string>
- <string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Користи овај уређај као MIDI"</string>
- <string name="usb_use" msgid="3256040963685055320">"Употребите USB за:"</string>
+ <string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Користите овај уређај као MIDI"</string>
+ <string name="usb_use" msgid="3256040963685055320">"Користите USB за:"</string>
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Пуњење уређаја"</string>
<string name="usb_summary_power_only" msgid="3629517713817003738">"Напајање"</string>
@@ -3264,7 +3266,7 @@
<string name="screen_zoom_conversation_timestamp_3" msgid="3785674344762707688">"Уто 18:02"</string>
<string name="screen_zoom_conversation_timestamp_4" msgid="2511469395448561259">"Уто 18:03"</string>
<string name="disconnected" msgid="4836600637485526329">"Није повезано"</string>
- <string name="data_usage_summary_format" msgid="7507047900192160585">"Користи се <xliff:g id="AMOUNT">%1$s</xliff:g> података"</string>
+ <string name="data_usage_summary_format" msgid="7507047900192160585">"Искоришћено је <xliff:g id="AMOUNT">%1$s</xliff:g> података"</string>
<plurals name="notification_summary" formatted="false" msgid="3941492005316143599">
<item quantity="one">Искључено за <xliff:g id="COUNT">%d</xliff:g> апликацију</item>
<item quantity="few">Искључено за <xliff:g id="COUNT">%d</xliff:g> апликације</item>
@@ -3618,8 +3620,6 @@
<string name="storage_games" msgid="7703159201697117621">"Игре"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Друге апликације"</string>
<string name="storage_files" msgid="8581083146777364063">"Датотеке"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Меморија таблета"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Меморија телефона"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Искоришћено од укупно <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"у упот."</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 38ac080..aa3ecb1 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"För högt räknad strömförbrukning"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Har använts i <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> har använts av <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> av den totala batterianvändningen"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Fördelning sedan senaste fulladdningen"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Spel"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Andra appar"</string>
<string name="storage_files" msgid="8581083146777364063">"Filer"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Surfplattans lagringsutrymme"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Mobilens lagringsutrymme"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"av <xliff:g id="TOTAL">%1$s</xliff:g> används"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"används"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 633ac45..07688af 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -1688,7 +1688,7 @@
<string name="keyboard_shortcuts_helper" msgid="4839453720463798145">"Kisaidizi cha njia za mkato"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5871299901459743288">"Onyesha njia za mkato zilizoko"</string>
<string name="default_keyboard_layout" msgid="4172606673510531271">"Chaguo-msingi"</string>
- <string name="pointer_speed" msgid="1221342330217861616">"Kasi ya pointa"</string>
+ <string name="pointer_speed" msgid="1221342330217861616">"Kasi ya kiashiria"</string>
<string name="game_controller_settings_category" msgid="8794508575329923718">"Kidhibiti cha Mchezo"</string>
<string name="vibrate_input_devices" msgid="2599591466928793082">"Tumia kitetemeshaji"</string>
<string name="vibrate_input_devices_summary" msgid="4595570516865299153">"Elekeza upya kitetemeshaji kwa kidhibiti cha mchezo wakati umeunganishwa."</string>
@@ -1791,7 +1791,7 @@
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Muda wa kugusa na kushikilia"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Ugeuzaji rangi"</string>
<string name="accessibility_display_inversion_preference_subtitle" msgid="7052959202195368109">"Huenda ikaathiri utendaji"</string>
- <string name="accessibility_autoclick_preference_title" msgid="7014499339068449623">"Bofya kishale kikiacha kusonga"</string>
+ <string name="accessibility_autoclick_preference_title" msgid="7014499339068449623">"Bofya kiashiria kikiacha kusonga"</string>
<string name="accessibility_autoclick_delay_preference_title" msgid="3962261178385106006">"Muda wa kusubiri kabla ya kubofya"</string>
<string name="accessibility_summary_default_combination" msgid="90096949592817459">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
<string name="accessibility_summary_state_enabled" msgid="8359913912320966304">"IMEWASHWA"</string>
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Hesabu ya matumizi ya nishati iliyopitiliza"</string>
<string name="mah" msgid="95245196971239711">"mAh <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Imetumika kwa <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> imetumiwa na <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"Imetumia <xliff:g id="PERCENT">%1$s</xliff:g> ya chaji ya betri"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Uchanganuzi tangu mara ya mwisho ilipojaa chaji"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Michezo"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Programu zingine"</string>
<string name="storage_files" msgid="8581083146777364063">"Faili"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Hifadhi ya kompyuta kibao"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Hifadhi ya simu"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"kati ya <xliff:g id="TOTAL">%1$s</xliff:g> zimetumika"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"imetumika"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 4beb770..a69c722 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"ஆற்றல் பயன்பாடு அதிகமாகப் பயன்படுத்தப்பட்டது"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g>க்குப் பயன்படுத்தியது"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> பயன்படுத்துவது: <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"ஒட்டுமொத்த பேட்டரியில் <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"கடைசியாக முழுவதும் சார்ஜ் ஆனதிலிருந்து பிரேக் டவுன்"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"கேம்கள்"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"பிற பயன்பாடுகள்"</string>
<string name="storage_files" msgid="8581083146777364063">"கோப்புகள்"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"டேப்லெட் சேமிப்பகம்"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"மொபைல் சேமிப்பகம்"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g> இல் பயன்படுத்தியது:"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"உபயோகம்"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index d300f72..f15edcf 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"అధిక గణన విద్యుత్ శక్తి వినియోగం"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> పాటు ఉపయోగించబడింది"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> <xliff:g id="PERCENT">%1$s</xliff:g> ఉపయోగించింది"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"మొత్తం బ్యాటరీలో <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"చివరిసారి పూర్తిగా ఛార్జ్ చేసినప్పటి నుండి వినియోగ వివరాలు"</string>
@@ -2777,8 +2779,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"నోటిఫికేషన్లు"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"అధునాతనం"</string>
<string name="profile_section_header" msgid="2320848161066912001">"కార్యాలయ నోటిఫికేషన్లు"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"చిహ్నం బ్యాడ్జ్లను అనుమతించండి"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"కాంతి మిణుకుమిణుకు అనేలా ఉంచు"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"లాక్ స్క్రీన్పై"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"మొత్తం నోటిఫికేషన్ కంటెంట్ను చూపు"</string>
@@ -3570,8 +3571,6 @@
<string name="storage_games" msgid="7703159201697117621">"గేమ్లు"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"ఇతర అనువర్తనాలు"</string>
<string name="storage_files" msgid="8581083146777364063">"ఫైల్లు"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"టాబ్లెట్ నిల్వ"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"ఫోన్ నిల్వ"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g>లో ఉపయోగించబడింది"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"ఉపయోగించబడింది"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index f598aa9..2fb7cbb 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"การใช้พลังงานที่คำนวณมากเกินไป"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"ใช้ไป <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> ใช้ไป <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ของแบตเตอรี่ทั้งหมด"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"รายละเอียดนับตั้งแต่ชาร์จจนเต็มครั้งล่าสุด"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"เกม"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"แอปอื่นๆ"</string>
<string name="storage_files" msgid="8581083146777364063">"ไฟล์"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"พื้นที่จัดเก็บในแท็บเล็ต"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"พื้นที่เก็บข้อมูลโทรศัพท์"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"ที่ใช้ไปจากทั้งหมด <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"ใช้อยู่"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 311fb2b..1ae5114 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Sobrang nakalkulang paggamit ng power"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> (na) mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Ginamit nang <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> ang ginagamit ng <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ng kabuuang baterya"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Breakdown mula noong huling napuno ang baterya"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Mga Laro"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Iba pang mga app"</string>
<string name="storage_files" msgid="8581083146777364063">"Mga File"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Storage ng tablet"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Storage ng telepono"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Nagamit sa <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"nagamit"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 25e11f3..4b7c4bb 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Fazla hesaplanan güç kullanımı"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> süreyle kullanıldı"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> kadarı <xliff:g id="APP">%2$s</xliff:g> tarafından kullanılıyor"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"Toplam pilin <xliff:g id="PERCENT">%1$s</xliff:g> kadarı"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Son tam şarj sonrası kullanım dökümü"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Oyunlar"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Diğer uygulamalar"</string>
<string name="storage_files" msgid="8581083146777364063">"Dosyalar"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Tablet depolama alanı"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Telefon depolama alanı"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Toplam <xliff:g id="TOTAL">%1$s</xliff:g> alanın kullanılan kısmı"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"kullanılan"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index fbcc3b8..fafc756 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -2047,6 +2047,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Переоцінене енергоспоживання"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> мА/год"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Час використання: <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> заряду використовує додаток <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> усього заряду"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Використання після повного заряджання"</string>
@@ -3669,8 +3671,6 @@
<string name="storage_games" msgid="7703159201697117621">"Ігри"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Інші додатки"</string>
<string name="storage_files" msgid="8581083146777364063">"Файли"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Пам’ять планшета"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Пам’ять телефона"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Використовується з <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"зайнято"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 199bf64..182ae57 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"پاور کا ضرورت سے زیادہ استعمال"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"<xliff:g id="TIME">^1</xliff:g> کیلئے استعمال کیا گیا"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> کے ذریعے <xliff:g id="PERCENT">%1$s</xliff:g> استعمال کیا گیا"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"مجموعی بیٹری میں سے <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"پچھلے مکمل چارج کے بعد سے تجزیہ"</string>
@@ -2775,8 +2777,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"اطلاعات"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"جدید ترین"</string>
<string name="profile_section_header" msgid="2320848161066912001">"دفتری اطلاعات"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"آئیکن بیجز کی اجازت دیں"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"بلنک لائٹ"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"قفل اسکرین پر"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"سبھی اطلاعی مواد دکھائیں"</string>
@@ -3566,8 +3567,6 @@
<string name="storage_games" msgid="7703159201697117621">"گیمز"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"دیگر ایپس"</string>
<string name="storage_files" msgid="8581083146777364063">"فائلز"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"ٹیبلیٹ اسٹوریج"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"فون اسٹوریج"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g> میں سے استعمال ہو گئی"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"مستعمل"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index ae073d7..e82b166 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -2009,6 +2009,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Orttirib hisoblangan quvvat sarfi"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mA/s"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Ishlatilgan vaqti: <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g> – <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> batareya quvvati"</string>
<!-- String.format failed for translation -->
@@ -3577,8 +3579,6 @@
<string name="storage_games" msgid="7703159201697117621">"O‘yinlar"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Boshqa ilovalar"</string>
<string name="storage_files" msgid="8581083146777364063">"Fayllar"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Planshet xotirasi"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Telefon xotirasi"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Jami: <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"band"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index a120fce..4063326 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Sử dụng nguồn vượt mức"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Được sử dụng cho <xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> được sử dụng bởi <xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> trong tổng số thời lượng pin"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Chi tiết từ lần sạc đầy gần đây nhất"</string>
@@ -3567,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"Trò chơi"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Ứng dụng khác"</string>
<string name="storage_files" msgid="8581083146777364063">"Tệp"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Bộ nhớ máy tính bảng"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Bộ nhớ điện thoại"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Đã sử dụng <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"đã dùng"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index b179ffa..0eb4cdd 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -1735,9 +1735,9 @@
<string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"物理键盘"</string>
<string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"物理键盘设置"</string>
<string name="gadget_picker_title" msgid="98374951396755811">"选择小工具"</string>
- <string name="widget_picker_title" msgid="9130684134213467557">"选择小部件"</string>
- <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"是否允许该应用创建小部件并查看其数据?"</string>
- <string name="allow_bind_app_widget_activity_allow_bind" msgid="1584388129273282080">"当您创建小部件后,“<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>”将能查看其显示的所有数据。"</string>
+ <string name="widget_picker_title" msgid="9130684134213467557">"选择微件"</string>
+ <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"是否允许该应用创建微件并查看其数据?"</string>
+ <string name="allow_bind_app_widget_activity_allow_bind" msgid="1584388129273282080">"当您创建微件后,“<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>”将能查看其显示的所有数据。"</string>
<string name="allow_bind_app_widget_activity_always_allow_bind" msgid="7037503685859688034">"始终允许“<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>”创建微件并查看其数据"</string>
<string name="battery_history_days" msgid="7110262897769622564">"<xliff:g id="DAYS">%1$d</xliff:g>天<xliff:g id="HOURS">%2$d</xliff:g>小时<xliff:g id="MINUTES">%3$d</xliff:g>分<xliff:g id="SECONDS">%4$d</xliff:g>秒"</string>
<string name="battery_history_hours" msgid="7525170329826274999">"<xliff:g id="HOURS">%1$d</xliff:g>小时<xliff:g id="MINUTES">%2$d</xliff:g>分<xliff:g id="SECONDS">%3$d</xliff:g>秒"</string>
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"多算了的用电量"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g>毫安时"</string>
<string name="battery_used_for" msgid="2690821851327075443">"使用时间:<xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g>用电量占 <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"整体用电量的 <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"自上次充满电后的用电明细"</string>
@@ -2777,8 +2779,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"通知"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"高级"</string>
<string name="profile_section_header" msgid="2320848161066912001">"工作通知"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"允许在图标上显示标记"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"闪烁指示灯"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"屏幕锁定时"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"显示所有通知内容"</string>
@@ -3568,8 +3569,6 @@
<string name="storage_games" msgid="7703159201697117621">"游戏"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"其他应用"</string>
<string name="storage_files" msgid="8581083146777364063">"文件"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"平板电脑存储空间"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"手机存储空间使用情况"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"(总共 <xliff:g id="TOTAL">%1$s</xliff:g>)"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"已使用"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index f511e6a..56a8df5 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -2006,6 +2006,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"計算過高的用電量"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"使用時間:<xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g>用量佔 <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"整體電量的 <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"上次充滿電後的詳細用量"</string>
@@ -3570,8 +3572,6 @@
<string name="storage_games" msgid="7703159201697117621">"遊戲"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"其他應用程式"</string>
<string name="storage_files" msgid="8581083146777364063">"檔案"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"平板電腦的儲存空間"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"手機儲存空間"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"使用量:<xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"已使用"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index d4e5657..38a59e3 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -2005,6 +2005,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"估計過高的用電量"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"使用時間:<xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="APP">%2$s</xliff:g>用量佔 <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"整體電量的 <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"上次充飽後的詳細用量資訊"</string>
@@ -2781,7 +2783,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"通知"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"進階"</string>
<string name="profile_section_header" msgid="2320848161066912001">"Work 通知"</string>
- <string name="notification_badging_title" msgid="5125022693565388760">"允許使用圖示徽章"</string>
+ <string name="notification_badging_title" msgid="5125022693565388760">"允許在圖示上顯示標記"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"閃爍燈光"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"螢幕鎖定時"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"顯示所有通知內容"</string>
@@ -3571,8 +3573,6 @@
<string name="storage_games" msgid="7703159201697117621">"遊戲"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"其他應用程式"</string>
<string name="storage_files" msgid="8581083146777364063">"檔案"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"平板電腦儲存空間"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"手機儲存空間"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"總儲存空間:<xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"已使用"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index f37f407..422c1e2 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -2006,6 +2006,8 @@
<string name="battery_desc_overcounted" msgid="5481865509489228603">"Ukusetshenziswa kwamandla okubalwe ngaphezulu"</string>
<string name="mah" msgid="95245196971239711">"<xliff:g id="NUMBER">%d</xliff:g> mAh"</string>
<string name="battery_used_for" msgid="2690821851327075443">"Kusetshenziswe nge-<xliff:g id="TIME">^1</xliff:g>"</string>
+ <!-- no translation found for battery_screen_usage (6537658662149713585) -->
+ <skip />
<string name="battery_used_by" msgid="1135316757755282999">"<xliff:g id="PERCENT">%1$s</xliff:g> kusetshenziswe yi-<xliff:g id="APP">%2$s</xliff:g>"</string>
<string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> kwalo lonke ibhethri"</string>
<string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Ukwaphuka kusuka ekushajeni okuphelele"</string>
@@ -3568,8 +3570,6 @@
<string name="storage_games" msgid="7703159201697117621">"Amageyimu"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"Ezinye izinhlelo zokusebenza"</string>
<string name="storage_files" msgid="8581083146777364063">"Amafayela"</string>
- <string name="storage_settings_2" product="tablet" msgid="1939009096334525216">"Isitoreji sethebulethi"</string>
- <string name="storage_settings_2" product="default" msgid="4306047711760327031">"Isitoreji sefoni"</string>
<string name="storage_size_large_alternate" msgid="3550744227788333060">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" <xliff:g id="UNIT">^2</xliff:g>"</small>""</string>
<string name="storage_volume_total" msgid="3499221850532701342">"Kusetshenziswe okungu-<xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"okusetshenzisiwe"</string>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 4a09594..ef85925 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -104,9 +104,6 @@
<color name="status_bar_color">#3c3c3c</color>
- <!-- Color for the background of the donut graph.-->
- <color name="donut_background_grey">#ffd7d7d7</color>
-
<!-- Color for the background of the shortcut icons.-->
<color name="shortcut_background">#fff5f5f5</color>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8e3fbe2..89be8c7 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4307,11 +4307,6 @@
can't verify user consent. [CHAR LIMIT=NONE] -->
<string name="touch_filtered_warning">Because an app is obscuring a permission request, Settings
can’t verify your response.</string>
- <!-- Warning shown when user input has been blocked due to another app overlaying screen
- content. Since we don't know what the app is showing on top of the input target, we
- can't verify user consent. [CHAR LIMIT=NONE] -->
- <string name="window_obscured_warning">Because another app is displaying on top of these options,
- Settings can\u2019t respond to your action.</string>
<!-- Warning that the device data will not be encrypted with password or PIN if
enabling an accessibility service and there is a secure lock setup. [CHAR LIMIT=NONE] -->
<string name="enable_service_encryption_warning">If you turn on <xliff:g id="service"
@@ -4486,6 +4481,8 @@
<string name="power_last_full_charge_summary"><xliff:g id="time">^1</xliff:g> ago</string>
<!-- Label for list of apps using battery in power use UI. Note: ^1 should be used in all translations[CHAR_LIMIT=120] -->
<string name="power_usage_list_summary">App usage since full charge (<xliff:g id="time">^1</xliff:g> ago)</string>
+ <!-- Label for device components using battery in power use UI. Note: ^1 should be used in all translations[CHAR_LIMIT=120] -->
+ <string name="power_usage_list_summary_device">Device usage since full charge (<xliff:g id="time">^1</xliff:g> ago)</string>
<!-- Description for the screen usage item [CHAR_LIMIT=120] -->
<string name="screen_usage_summary">Amount of time screen has been on since full charge</string>
<!-- Label for list of different types using battery in power use UI [CHAR_LIMIT=60] -->
@@ -4686,6 +4683,8 @@
<!-- Description for battery usage time for an app, i.e. Used for 30min. Note: ^1 should be used in all translations [CHAR LIMIT=60] -->
<string name="battery_used_for">Used for <xliff:g id="time">^1</xliff:g></string>
+ <!-- Description for battery screen usage time for an app, i.e. Screen usage 30min. Note: ^1 should be used in all translations [CHAR LIMIT=60] -->
+ <string name="battery_screen_usage">Screen usage <xliff:g id="time">^1</xliff:g></string>
<!-- Description for battery usage info for an app, i.e. 60% used by facebook. [CHAR LIMIT=60] -->
<string name="battery_used_by"><xliff:g id="percent">%1$s</xliff:g> used by <xliff:g id="app">%2$s</xliff:g></string>
<!-- Description for percentage of battery usage for an app, i.e. Screen: 30% of overall battery. [CHAR LIMIT=60] -->
@@ -6515,8 +6514,8 @@
<!-- Configure Notifications: Work profile section header [CHAR LIMIT=30] -->
<string name="profile_section_header">Work notifications</string>
- <!-- Configure Notifications: Title for the notification badging option. [CHAR LIMIT=30] -->
- <string name="notification_badging_title">Allow icon badges</string>
+ <!-- Configure Notifications: Title for the notification badging option. [CHAR LIMIT=30 BACKUP_MESSAGE_ID=5125022693565388760] -->
+ <string name="notification_badging_title">Allow notification dots</string>
<!-- Configure Notifications: Title for the pulse notification light option. [CHAR LIMIT=30] -->
<string name="notification_pulse_title">Blink light</string>
@@ -6751,9 +6750,6 @@
<item quantity="other"><xliff:g id="count" example="10">%d</xliff:g> categories deleted</item>
</plurals>
- <!-- [CHAR LIMIT=45\ Global notification badge setting -->
- <string name="notification_badges">Notification badges</string>
-
<!-- [CHAR LIMIT=NONE] App notification settings: notifications enabled-->
<string name="notification_toggle_on">On</string>
@@ -6772,8 +6768,11 @@
<!-- [CHAR LIMIT=NONE] Channel notification settings: Block option description-->
<string name="notification_content_block_summary">Never show notifications in the shade or on peripheral devices</string>
- <!-- [CHAR LIMIT=NONE] [BACKUP_MESSAGE_ID:7166470350070693657] Channel notification settings: Badging option title -->
- <string name="notification_badge_title">Allow icon badge</string>
+ <!-- [CHAR LIMIT=NONE BACKUP_MESSAGE_ID:7166470350070693657] App notification settings: Badging option title -->
+ <string name="notification_badge_title">Allow notification dot</string>
+
+ <!-- [CHAR LIMIT=NONE BACKUP_MESSAGE_ID:7166470350070693657] Channel notification settings: Badging option title -->
+ <string name="notification_channel_badge_title">Show notification dot</string>
<!-- [CHAR LIMIT=NONE] App notification settings: Override DND option title -->
<string name="app_notification_override_dnd_title">Override Do Not Disturb</string>
@@ -7397,11 +7396,11 @@
<!-- Label for menu to launch a screen showing usage alerts for battery [CHAR LIMIT=30] -->
<string name="additional_battery_info">Usage alerts</string>
- <!-- Label for menu to show all apps in battery settings [CHAR LIMIT=30] -->
- <string name="show_all_apps">Show all apps</string>
+ <!-- Label for menu to show battery usage in the device [CHAR LIMIT=45] -->
+ <string name="show_all_apps">Show full device usage</string>
- <!-- Label for menu to hide extra apps in battery settings [CHAR LIMIT=30] -->
- <string name="hide_extra_apps">Hide extra apps</string>
+ <!-- Label for menu to show app usage [CHAR LIMIT=30] -->
+ <string name="hide_extra_apps">Show app usage</string>
<!-- Filter for apps allowed to use a lot of power [CHAR LIMIT=25] -->
<string name="high_power_filter_on">Not optimized</string>
@@ -8618,10 +8617,6 @@
<!-- Preference label for the Files storage section. [CHAR LIMIT=50] -->
<string name="storage_files">Files</string>
- <!-- Main settings screen item's title to go into the storage settings screen [CHAR LIMIT=25] -->
- <string name="storage_settings_2" product="tablet">Tablet storage</string>
- <string name="storage_settings_2" product="default">Phone storage</string>
-
<!-- Summary of a single storage volume used space. [CHAR LIMIT=24] -->
<string name="storage_size_large_alternate"><xliff:g id="number" example="128">^1</xliff:g><small> <xliff:g id="unit" example="KB">^2</xliff:g></small></string>
<!-- Summary of a single storage volume total space. [CHAR LIMIT=48]-->
diff --git a/res/xml/about_legal.xml b/res/xml/about_legal.xml
index 596effe..55faad3 100644
--- a/res/xml/about_legal.xml
+++ b/res/xml/about_legal.xml
@@ -15,7 +15,8 @@
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- android:title="@string/legal_information">
+ android:title="@string/legal_information"
+ android:key="legal_screen">
<!-- Note: The titles given here probably won't be used. Instead, we programmatically
fill the title with the label of the activity with the corresponding action.
diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml
index bed3aa6..718bb23 100644
--- a/res/xml/configure_notification_settings.xml
+++ b/res/xml/configure_notification_settings.xml
@@ -39,7 +39,7 @@
android:summary="@string/summary_placeholder"/>
<SwitchPreference
- android:key="gesture_swipe_down_fingerprint"
+ android:key="gesture_swipe_down_fingerprint_notifications"
android:title="@string/fingerprint_swipe_for_notifications_title"
android:summary="@string/fingerprint_swipe_for_notifications_summary"/>
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index 0089ed7..a60276c 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -423,6 +423,11 @@
android:title="@string/show_all_anrs"
android:summary="@string/show_all_anrs_summary"/>
+ <SwitchPreference
+ android:key="show_notification_channel_warnings"
+ android:title="@string/show_notification_channel_warnings"
+ android:summary="@string/show_notification_channel_warnings_summary"/>
+
<Preference
android:key="inactive_apps"
android:title="@string/inactive_apps_title"
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index 7f740f3..50e6891 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -97,12 +97,12 @@
android:title="@string/lift_to_wake_title" />
<Preference
- android:key="gesture_double_tap_screen"
+ android:key="gesture_double_tap_screen_display_summary"
android:title="@string/ambient_display_title"
android:fragment="com.android.settings.gestures.DoubleTapScreenSettings" />
<Preference
- android:key="gesture_pick_up"
+ android:key="gesture_pick_up_display_summary"
android:title="@string/ambient_display_pickup_title"
android:fragment="com.android.settings.gestures.PickupGestureSettings" />
diff --git a/res/xml/encryption_and_credential.xml b/res/xml/encryption_and_credential.xml
index a84c2a1..be643b1 100644
--- a/res/xml/encryption_and_credential.xml
+++ b/res/xml/encryption_and_credential.xml
@@ -15,7 +15,8 @@
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- android:title="@string/encryption_and_credential_settings_title">
+ android:title="@string/encryption_and_credential_settings_title"
+ android:key="encryption_and_credentials_screen">
<PreferenceCategory android:key="credentials_management"
android:title="@string/credentials_title"
diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml
index ca5ce45..6e65da6 100644
--- a/res/xml/language_and_input.xml
+++ b/res/xml/language_and_input.xml
@@ -66,32 +66,32 @@
android:title="@string/gesture_preference_title">
<Preference
- android:key="gesture_assist"
+ android:key="gesture_assist_input_summary"
android:title="@string/assist_gesture_title"
android:fragment="com.android.settings.gestures.AssistGestureSettings"/>
<Preference
- android:key="gesture_swipe_down_fingerprint"
+ android:key="gesture_swipe_down_fingerprint_input_summary"
android:title="@string/fingerprint_swipe_for_notifications_title"
android:fragment="com.android.settings.gestures.SwipeToNotificationSettings"/>
<Preference
- android:key="gesture_double_tap_power"
+ android:key="gesture_double_tap_power_input_summary"
android:title="@string/double_tap_power_for_camera_title"
android:fragment="com.android.settings.gestures.DoubleTapPowerSettings"/>
<Preference
- android:key="gesture_double_twist"
+ android:key="gesture_double_twist_input_summary"
android:title="@string/double_twist_for_camera_mode_title"
android:fragment="com.android.settings.gestures.DoubleTwistGestureSettings"/>
<Preference
- android:key="gesture_double_tap_screen"
+ android:key="gesture_double_tap_screen_input_summary"
android:title="@string/ambient_display_title"
android:fragment="com.android.settings.gestures.DoubleTapScreenSettings"/>
<Preference
- android:key="gesture_pick_up"
+ android:key="gesture_pick_up_input_summary"
android:title="@string/ambient_display_pickup_title"
android:fragment="com.android.settings.gestures.PickupGestureSettings"/>
@@ -105,7 +105,7 @@
android:dialogTitle="@string/pointer_speed"/>
<Preference
- android:key="tts_settings"
+ android:key="tts_settings_summary"
android:title="@string/tts_settings_title"
android:fragment="com.android.settings.tts.TextToSpeechSettings"/>
diff --git a/res/xml/location_scanning.xml b/res/xml/location_scanning.xml
index f82500b..5e7bd24 100644
--- a/res/xml/location_scanning.xml
+++ b/res/xml/location_scanning.xml
@@ -15,7 +15,8 @@
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- android:title="@string/location_scanning_screen_title">
+ android:title="@string/location_scanning_screen_title"
+ android:key="scanning_screen">
<SwitchPreference
android:title="@string/location_scanning_wifi_always_scanning_title"
diff --git a/res/xml/manage_assist.xml b/res/xml/manage_assist.xml
index eadf45f..a96fb6b 100644
--- a/res/xml/manage_assist.xml
+++ b/res/xml/manage_assist.xml
@@ -26,7 +26,7 @@
android:fragment="com.android.settings.applications.assist.DefaultAssistPicker"/>
<Preference
- android:key="gesture_assist"
+ android:key="gesture_assist_application"
android:title="@string/assist_gesture_title"
android:fragment="com.android.settings.gestures.AssistGestureSettings"/>
diff --git a/res/xml/reset_dashboard_fragment.xml b/res/xml/reset_dashboard_fragment.xml
index c769d5d..1fd45db 100644
--- a/res/xml/reset_dashboard_fragment.xml
+++ b/res/xml/reset_dashboard_fragment.xml
@@ -18,7 +18,8 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
- android:title="@string/reset_dashboard_title">
+ android:title="@string/reset_dashboard_title"
+ android:key="reset_dashboard_fragment_screen">
<!-- Network reset -->
<com.android.settingslib.RestrictedPreference
diff --git a/res/xml/security_lockscreen_settings.xml b/res/xml/security_lockscreen_settings.xml
index 2a4416e..d10440e 100644
--- a/res/xml/security_lockscreen_settings.xml
+++ b/res/xml/security_lockscreen_settings.xml
@@ -15,21 +15,32 @@
-->
<PreferenceScreen
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:title="@string/lockscreen_settings_title">
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:title="@string/lockscreen_settings_title">
+
+ <com.android.settings.notification.RestrictedDropDownPreference
+ android:key="security_setting_lock_screen_notif"
+ android:title="@string/lock_screen_notifications_title"
+ android:summary="@string/summary_placeholder" />
+
+ <com.android.settingslib.RestrictedSwitchPreference
+ android:key="add_users_when_locked"
+ android:title="@string/user_add_on_lockscreen_menu" />
+
+ <com.android.settingslib.RestrictedPreference
+ android:key="owner_info_settings"
+ android:title="@string/owner_info_settings_title"
+ android:summary="@string/owner_info_settings_summary" />
+
+ <PreferenceCategory
+ android:key="security_setting_lock_screen_notif_work_header"
+ android:title="@string/profile_section_header">
<com.android.settings.notification.RestrictedDropDownPreference
- android:key="lock_screen_notifications"
+ android:key="security_setting_lock_screen_notif_work"
android:title="@string/lock_screen_notifications_title"
- android:summary="@string/summary_placeholder"/>
+ android:summary="@string/summary_placeholder" />
- <com.android.settingslib.RestrictedSwitchPreference
- android:key="add_users_when_locked"
- android:title="@string/user_add_on_lockscreen_menu"/>
-
- <com.android.settingslib.RestrictedPreference
- android:key="owner_info_settings"
- android:title="@string/owner_info_settings_title"
- android:summary="@string/owner_info_settings_summary"/>
+ </PreferenceCategory>
</PreferenceScreen>
diff --git a/res/xml/tether_prefs.xml b/res/xml/tether_prefs.xml
index 22a4747..a936a50 100644
--- a/res/xml/tether_prefs.xml
+++ b/res/xml/tether_prefs.xml
@@ -15,7 +15,7 @@
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res-auto">
+ xmlns:settings="http://schemas.android.com/apk/res-auto">
<SwitchPreference
android:key="usb_tether_settings"
@@ -23,7 +23,8 @@
<SwitchPreference
android:key="enable_wifi_ap"
- android:title="@string/wifi_tether_checkbox_text" />
+ android:title="@string/wifi_tether_checkbox_text"
+ android:summary="@string/summary_two_lines_placeholder" />
<Preference
android:key="wifi_ap_ssid_and_security"
@@ -34,9 +35,9 @@
android:key="enable_bluetooth_tethering"
android:title="@string/bluetooth_tether_checkbox_text" />
- <com.android.settings.DividerPreference
- android:key="disabled_on_data_saver"
- android:summary="@string/tether_settings_disabled_on_data_saver"
- android:selectable="false"
- settings:allowDividerAbove="true" />
+ <Preference
+ android:key="disabled_on_data_saver"
+ android:summary="@string/tether_settings_disabled_on_data_saver"
+ android:selectable="false"
+ settings:allowDividerAbove="true" />
</PreferenceScreen>
diff --git a/res/xml/upgraded_channel_notification_settings.xml b/res/xml/upgraded_channel_notification_settings.xml
index 4cf171f..7925bb7 100644
--- a/res/xml/upgraded_channel_notification_settings.xml
+++ b/res/xml/upgraded_channel_notification_settings.xml
@@ -40,7 +40,7 @@
<!-- Show badge -->
<com.android.settingslib.RestrictedSwitchPreference
android:key="badge"
- android:title="@string/notification_badge_title"
+ android:title="@string/notification_channel_badge_title"
settings:useAdditionalSummary="true"
settings:restrictedSwitchSummary="@string/enabled_by_admin" />
diff --git a/res/xml/zen_mode_visual_interruptions_settings.xml b/res/xml/zen_mode_visual_interruptions_settings.xml
index 012dd95..64c79ec 100644
--- a/res/xml/zen_mode_visual_interruptions_settings.xml
+++ b/res/xml/zen_mode_visual_interruptions_settings.xml
@@ -16,7 +16,8 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
- android:title="@string/zen_mode_visual_interruptions_settings_title" >
+ android:title="@string/zen_mode_visual_interruptions_settings_title"
+ android:key="zen_mode_visual_interruptions_screen">
<SwitchPreference android:key="screenOn"
android:title="@string/zen_mode_screen_on"
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index 546b11e..49784f6 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -722,15 +722,16 @@
@Override
public void onRemovalError(Fingerprint fp, int errMsgId,
CharSequence errString) {
- Log.v(TAG, "Fingerprint removed: " + fp.getFingerId());
- if (fp.getFingerId() == 0) {
- removeManagedProfileFingerprintsAndFinishIfNecessary(userId);
- }
+ Log.e(TAG, String.format(
+ "Can't remove fingerprint %d in group %d. Reason: %s",
+ fp.getFingerId(), fp.getGroupId(), errString));
+ // TODO: need to proceed with the removal of managed profile
+ // fingerprints and finish() gracefully.
}
@Override
- public void onRemovalSucceeded(Fingerprint fingerprint) {
- if (fingerprint.getFingerId() == 0) {
+ public void onRemovalSucceeded(Fingerprint fp, int remaining) {
+ if (remaining == 0) {
removeManagedProfileFingerprintsAndFinishIfNecessary(userId);
}
}
diff --git a/src/com/android/settings/DeviceAdminAdd.java b/src/com/android/settings/DeviceAdminAdd.java
index 3bb82cf..fb2f29f 100644
--- a/src/com/android/settings/DeviceAdminAdd.java
+++ b/src/com/android/settings/DeviceAdminAdd.java
@@ -65,8 +65,6 @@
import com.android.settings.users.UserDialogs;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-import com.android.settingslib.SecureTouchListener;
-
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
@@ -352,8 +350,6 @@
final View restrictedAction = findViewById(R.id.restricted_action);
restrictedAction.setFilterTouchesWhenObscured(true);
- restrictedAction.setOnTouchListener(
- new SecureTouchListener(getString(R.string.window_obscured_warning)));
restrictedAction.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (mAdding) {
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java
index 109fb0e..8dfb02b 100644
--- a/src/com/android/settings/DeviceInfoSettings.java
+++ b/src/com/android/settings/DeviceInfoSettings.java
@@ -51,6 +51,8 @@
private static final String LOG_TAG = "DeviceInfoSettings";
+ private static final String KEY_LEGAL_CONTAINER = "legal_container";
+
@Override
public int getMetricsCategory() {
return MetricsEvent.DEVICEINFO;
@@ -151,5 +153,12 @@
return buildPreferenceControllers(context, null /*activity */,
null /* fragment */, null /* lifecycle */);
}
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ List<String> keys = super.getNonIndexableKeys(context);
+ keys.add(KEY_LEGAL_CONTAINER);
+ return keys;
+ }
};
}
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 98844fa..b70a133 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -54,6 +54,8 @@
private static final String KEY_AUTO_BRIGHTNESS = "auto_brightness";
private static final String KEY_SCREEN_TIMEOUT = "screen_timeout";
+ private static final String KEY_PICK_UP = "gesture_pick_up_display_summary";
+ private static final String KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen_display_summary";
@Override
public int getMetricsCategory() {
@@ -100,9 +102,10 @@
controllers.add(new ScreenSaverPreferenceController(context));
AmbientDisplayConfiguration ambientDisplayConfig = new AmbientDisplayConfiguration(context);
controllers.add(new PickupGesturePreferenceController(
- context, lifecycle, ambientDisplayConfig, UserHandle.myUserId()));
+ context, lifecycle, ambientDisplayConfig, UserHandle.myUserId(), KEY_PICK_UP));
controllers.add(new DoubleTapScreenPreferenceController(
- context, lifecycle, ambientDisplayConfig, UserHandle.myUserId()));
+ context, lifecycle, ambientDisplayConfig, UserHandle.myUserId(),
+ KEY_DOUBLE_TAP_SCREEN));
controllers.add(new TapToWakePreferenceController(context));
controllers.add(new TimeoutPreferenceController(context, KEY_SCREEN_TIMEOUT));
controllers.add(new VrDisplayPreferenceController(context));
diff --git a/src/com/android/settings/LegalSettings.java b/src/com/android/settings/LegalSettings.java
index e40152a..d5b9988 100644
--- a/src/com/android/settings/LegalSettings.java
+++ b/src/com/android/settings/LegalSettings.java
@@ -40,6 +40,7 @@
private static final String KEY_LICENSE = "license";
private static final String KEY_COPYRIGHT = "copyright";
private static final String KEY_WEBVIEW_LICENSE = "webview_license";
+ private static final String KEY_WALLPAPER_ATTRIBUTIONS = "wallpaper_attributions";
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -76,7 +77,7 @@
@Override
public List<String> getNonIndexableKeys(Context context) {
- final List<String> keys = new ArrayList<String>();
+ final List<String> keys = super.getNonIndexableKeys(context);
if (!checkIntentAction(context, "android.settings.TERMS")) {
keys.add(KEY_TERMS);
}
@@ -89,6 +90,7 @@
if (!checkIntentAction(context, "android.settings.WEBVIEW_LICENSE")) {
keys.add(KEY_WEBVIEW_LICENSE);
}
+ keys.add(KEY_WALLPAPER_ATTRIBUTIONS);
return keys;
}
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 9a149c3..678a63b 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -102,6 +102,8 @@
private static final String KEY_UNIFICATION = "unification";
@VisibleForTesting
static final String KEY_LOCKSCREEN_PREFERENCES = "lockscreen_preferences";
+ private static final String KEY_ENCRYPTION_AND_CREDENTIALS = "encryption_and_credential";
+ private static final String KEY_LOCATION_SCANNING = "location_scanning";
private static final int SET_OR_CHANGE_LOCK_METHOD_REQUEST = 123;
private static final int CHANGE_TRUST_AGENT_SETTINGS = 126;
@@ -930,7 +932,7 @@
@Override
public List<String> getNonIndexableKeys(Context context) {
- final List<String> keys = new ArrayList<String>();
+ final List<String> keys = super.getNonIndexableKeys(context);
LockPatternUtils lockPatternUtils = new LockPatternUtils(context);
@@ -952,6 +954,14 @@
keys.add(KEY_ENTERPRISE_PRIVACY);
}
+ // Duplicate in special app access
+ keys.add(KEY_MANAGE_DEVICE_ADMIN);
+ // Duplicates between parent-child
+ keys.add((new LocationPreferenceController(context)).getPreferenceKey());
+ keys.add(KEY_ENCRYPTION_AND_CREDENTIALS);
+ keys.add(KEY_SCREEN_PINNING);
+ keys.add(KEY_LOCATION_SCANNING);
+
return keys;
}
}
diff --git a/src/com/android/settings/SettingsInitialize.java b/src/com/android/settings/SettingsInitialize.java
index 66fc4d6..6b15770 100644
--- a/src/com/android/settings/SettingsInitialize.java
+++ b/src/com/android/settings/SettingsInitialize.java
@@ -35,7 +35,7 @@
import static android.content.pm.PackageManager.MATCH_DISABLED_COMPONENTS;
/**
- * Listens to {@link Intent.ACTION_BOOT_COMPLETED} and {@link Intent.ACTION_PRE_BOOT_COMPLETED}
+ * Listens to {@link Intent.ACTION_PRE_BOOT_COMPLETED} and {@link Intent.ACTION_USER_INITIALIZED}
* performs setup steps for a managed profile (disables the launcher icon of the Settings app,
* adds cross-profile intent filters for the appropriate Settings activities), and disables the
* webview setting for non-admin users.
@@ -89,11 +89,13 @@
}
// Disable launcher icon
- // Note: This needs to happen after forwarding intents, otherwise the main Settings
- // intent gets lost
ComponentName settingsComponentName = new ComponentName(context, Settings.class);
pm.setComponentEnabledSetting(settingsComponentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
+ // Disable shortcut picker.
+ ComponentName shortcutComponentName = new ComponentName(context, CreateShortcut.class);
+ pm.setComponentEnabledSetting(shortcutComponentName,
+ PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}
// Disable WebView Setting if the current user is not an admin
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 761e8cf..b4ca6a6 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -26,6 +26,7 @@
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
+import android.support.annotation.VisibleForTesting;
import android.support.annotation.XmlRes;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
@@ -423,11 +424,28 @@
return -1;
}
- protected void removePreference(String key) {
- Preference pref = findPreference(key);
- if (pref != null) {
- getPreferenceScreen().removePreference(pref);
+ protected boolean removePreference(String key) {
+ return removePreference(getPreferenceScreen(), key);
+ }
+
+ @VisibleForTesting
+ boolean removePreference(PreferenceGroup group, String key) {
+ final int preferenceCount = group.getPreferenceCount();
+ for (int i = 0; i < preferenceCount; i++) {
+ final Preference preference = group.getPreference(i);
+ final String curKey = preference.getKey();
+
+ if (TextUtils.equals(curKey, key)) {
+ return group.removePreference(preference);
+ }
+
+ if (preference instanceof PreferenceGroup) {
+ if (removePreference((PreferenceGroup) preference, key)) {
+ return true;
+ }
+ }
}
+ return false;
}
/**
diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index 5d797a7..9475f45 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -37,7 +37,6 @@
import android.os.UserManager;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceScreen;
import android.util.Log;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java
index 1b6829b..4820161 100644
--- a/src/com/android/settings/accounts/AccountPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountPreferenceController.java
@@ -123,9 +123,9 @@
*/
public boolean pendingRemoval;
/**
- * The map from account name to account preference
+ * The map from account key to account preference
*/
- public ArrayMap<CharSequence, AccountTypePreference> accountPreferences = new ArrayMap<>();
+ public ArrayMap<String, AccountTypePreference> accountPreferences = new ArrayMap<>();
}
public AccountPreferenceController(Context context, SettingsPreferenceFragment parent,
@@ -431,7 +431,7 @@
return;
}
if (profileData.userInfo.isEnabled()) {
- final ArrayMap<CharSequence, AccountTypePreference> preferenceToRemove =
+ final ArrayMap<String, AccountTypePreference> preferenceToRemove =
new ArrayMap<>(profileData.accountPreferences);
final ArrayList<AccountTypePreference> preferences = getAccountTypePreferences(
profileData.authenticatorHelper, profileData.userInfo.getUserHandle(),
@@ -440,18 +440,19 @@
for (int i = 0; i < count; i++) {
final AccountTypePreference preference = preferences.get(i);
preference.setOrder(i);
- if (!profileData.accountPreferences.containsValue(preference)) {
- profileData.preferenceGroup.addPreference(preferences.get(i));
- profileData.accountPreferences.put(preference.getTitle(), preference);
+ final String key = preference.getKey();
+ if (!profileData.accountPreferences.containsKey(key)) {
+ profileData.preferenceGroup.addPreference(preference);
+ profileData.accountPreferences.put(key, preference);
}
}
if (profileData.addAccountPreference != null) {
profileData.preferenceGroup.addPreference(profileData.addAccountPreference);
}
- for (CharSequence name : preferenceToRemove.keySet()) {
+ for (String key : preferenceToRemove.keySet()) {
profileData.preferenceGroup.removePreference(
- profileData.accountPreferences.get(name));
- profileData.accountPreferences.remove(name);
+ profileData.accountPreferences.get(key));
+ profileData.accountPreferences.remove(key);
}
} else {
profileData.preferenceGroup.removeAll();
@@ -476,8 +477,7 @@
}
private ArrayList<AccountTypePreference> getAccountTypePreferences(AuthenticatorHelper helper,
- UserHandle userHandle,
- ArrayMap<CharSequence, AccountTypePreference> preferenceToRemove) {
+ UserHandle userHandle, ArrayMap<String, AccountTypePreference> preferenceToRemove) {
final String[] accountTypes = helper.getEnabledAccountTypes();
final ArrayList<AccountTypePreference> accountTypePreferences =
new ArrayList<>(accountTypes.length);
@@ -502,7 +502,8 @@
// Add a preference row for each individual account
for (Account account : accounts) {
- final AccountTypePreference preference = preferenceToRemove.remove(account.name);
+ final AccountTypePreference preference =
+ preferenceToRemove.remove(AccountTypePreference.buildKey(account));
if (preference != null) {
accountTypePreferences.add(preference);
continue;
@@ -526,7 +527,7 @@
fragmentArguments.putParcelable(EXTRA_USER, userHandle);
accountTypePreferences.add(new AccountTypePreference(
prefContext, mMetricsFeatureProvider.getMetricsCategory(mParent),
- account.name, titleResPackageName, titleResId, label,
+ account, titleResPackageName, titleResId, label,
AccountDetailDashboardFragment.class.getName(), fragmentArguments, icon));
}
helper.preloadDrawableForType(mContext, accountType);
diff --git a/src/com/android/settings/accounts/AccountTypePreference.java b/src/com/android/settings/accounts/AccountTypePreference.java
index 0abfb50..4f92829 100644
--- a/src/com/android/settings/accounts/AccountTypePreference.java
+++ b/src/com/android/settings/accounts/AccountTypePreference.java
@@ -16,6 +16,7 @@
package com.android.settings.accounts;
+import android.accounts.Account;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
@@ -67,18 +68,11 @@
private final int mMetricsCategory;
- public AccountTypePreference(Context context, int metricsCategory, CharSequence title,
- String titleResPackageName, int titleResId, String fragment, Bundle fragmentArguments,
- Drawable icon) {
- this(context, metricsCategory, title, titleResPackageName, titleResId, null, fragment,
- fragmentArguments, icon);
- }
-
- public AccountTypePreference(Context context, int metricsCategory, CharSequence title,
+ public AccountTypePreference(Context context, int metricsCategory, Account account,
String titleResPackageName, int titleResId, CharSequence summary, String fragment,
Bundle fragmentArguments, Drawable icon) {
super(context);
- mTitle = title;
+ mTitle = account.name;
mTitleResPackageName = titleResPackageName;
mTitleResId = titleResId;
mSummary = summary;
@@ -87,7 +81,8 @@
mMetricsCategory = metricsCategory;
setWidgetLayoutResource(R.layout.account_type_preference);
- setTitle(title);
+ setKey(buildKey(account));
+ setTitle(mTitle);
setSummary(summary);
setIcon(icon);
@@ -115,6 +110,13 @@
return false;
}
+ /**
+ * Build a unique preference key based on account.
+ */
+ public static String buildKey(Account account) {
+ return String.valueOf(account.hashCode());
+ }
+
public CharSequence getTitle() {
return mTitle;
}
@@ -122,5 +124,4 @@
public CharSequence getSummary() {
return mSummary;
}
-
}
diff --git a/src/com/android/settings/applications/AdvancedAppSettings.java b/src/com/android/settings/applications/AdvancedAppSettings.java
index caa9da1..cce8b7d 100644
--- a/src/com/android/settings/applications/AdvancedAppSettings.java
+++ b/src/com/android/settings/applications/AdvancedAppSettings.java
@@ -43,6 +43,8 @@
static final String TAG = "AdvancedAppSettings";
+ private static final String KEY_ASSIST_VOICE_INPUT = "assist_and_voice_input";
+
@Override
protected String getLogTag() {
return TAG;
@@ -80,6 +82,18 @@
sir.xmlResId = R.xml.app_default_settings;
return Arrays.asList(sir);
}
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ List<String> keys = super.getNonIndexableKeys(context);
+ keys.add(KEY_ASSIST_VOICE_INPUT);
+ // TODO (b/38230148) Remove these keys when we can differentiate work results
+ keys.add((new DefaultWorkPhonePreferenceController(context))
+ .getPreferenceKey());
+ keys.add((new DefaultWorkBrowserPreferenceController(context))
+ .getPreferenceKey());
+ return keys;
+ }
};
static class SummaryProvider implements SummaryLoader.SummaryProvider {
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index e9b7481..e88e3ba 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -93,6 +93,7 @@
import com.android.settings.datausage.DataUsageSummary;
import com.android.settings.fuelgauge.AdvancedPowerUsageDetail;
import com.android.settings.fuelgauge.BatteryEntry;
+import com.android.settings.fuelgauge.BatteryStatsHelperLoader;
import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.notification.AppNotificationSettings;
import com.android.settings.notification.NotificationBackend;
@@ -143,6 +144,7 @@
private static final int LOADER_CHART_DATA = 2;
private static final int LOADER_STORAGE = 3;
+ private static final int LOADER_BATTERY = 4;
private static final int DLG_FORCE_STOP = DLG_BASE + 1;
private static final int DLG_DISABLE = DLG_BASE + 2;
@@ -194,6 +196,8 @@
BatterySipper mSipper;
@VisibleForTesting
BatteryStatsHelper mBatteryHelper;
+ @VisibleForTesting
+ BatteryUtils mBatteryUtils;
protected ProcStatsData mStatsManager;
protected ProcStatsPackageEntry mStats;
@@ -202,7 +206,31 @@
private AppStorageStats mLastResult;
private String mBatteryPercent;
- private BatteryUtils mBatteryUtils;
+
+ private final LoaderCallbacks<BatteryStatsHelper> mBatteryCallbacks =
+ new LoaderCallbacks<BatteryStatsHelper>() {
+
+ @Override
+ public Loader<BatteryStatsHelper> onCreateLoader(int id, Bundle args) {
+ return new BatteryStatsHelperLoader(getContext(), args);
+ }
+
+ @Override
+ public void onLoadFinished(Loader<BatteryStatsHelper> loader,
+ BatteryStatsHelper batteryHelper) {
+ mBatteryHelper = batteryHelper;
+ if (mPackageInfo != null) {
+ mSipper = findTargetSipper(batteryHelper, mPackageInfo.applicationInfo.uid);
+ if (getActivity() != null) {
+ updateBattery();
+ }
+ }
+ }
+
+ @Override
+ public void onLoaderReset(Loader<BatteryStatsHelper> loader) {
+ }
+ };
private boolean handleDisableable(Button button) {
boolean disableable = false;
@@ -362,7 +390,6 @@
} else {
removePreference(KEY_DATA);
}
- mBatteryHelper = new BatteryStatsHelper(getActivity(), true);
mBatteryUtils = BatteryUtils.getInstance(getContext());
}
@@ -386,7 +413,7 @@
mDataCallbacks);
loaderManager.restartLoader(LOADER_STORAGE, Bundle.EMPTY, this);
}
- new BatteryUpdater().execute();
+ getLoaderManager().initLoader(LOADER_BATTERY, Bundle.EMPTY, mBatteryCallbacks);
new MemoryUpdater().execute();
updateDynamicPrefs();
}
@@ -625,6 +652,19 @@
return showIt;
}
+ @VisibleForTesting
+ BatterySipper findTargetSipper(BatteryStatsHelper batteryHelper, int uid) {
+ List<BatterySipper> usageList = batteryHelper.getUsageList();
+ for (int i = 0, size = usageList.size(); i < size; i++) {
+ BatterySipper sipper = usageList.get(i);
+ if (sipper.getUid() == uid) {
+ return sipper;
+ }
+ }
+
+ return null;
+ }
+
private boolean signaturesMatch(String pkg1, String pkg2) {
if (pkg1 != null && pkg2 != null) {
try {
@@ -690,8 +730,6 @@
mDataPreference.setSummary(getDataSummary());
}
- updateBattery();
-
if (!mInitialized) {
// First time init: are we displaying an uninstalled app?
mInitialized = true;
@@ -718,9 +756,10 @@
return true;
}
- private void updateBattery() {
- if (mSipper != null) {
- mBatteryPreference.setEnabled(true);
+ @VisibleForTesting
+ void updateBattery() {
+ mBatteryPreference.setEnabled(true);
+ if (isBatteryStatsAvailable()) {
final int dischargeAmount = mBatteryHelper.getStats().getDischargeAmount(
BatteryStats.STATS_SINCE_CHARGED);
@@ -732,7 +771,6 @@
mBatteryPercent = Utils.formatPercentage(percentOfMax);
mBatteryPreference.setSummary(getString(R.string.battery_summary, mBatteryPercent));
} else {
- mBatteryPreference.setEnabled(false);
mBatteryPreference.setSummary(getString(R.string.no_battery_summary));
}
}
@@ -766,6 +804,11 @@
}
}
+ @VisibleForTesting
+ boolean isBatteryStatsAvailable() {
+ return mBatteryHelper != null && mSipper != null;
+ }
+
private static CharSequence getSize(Context context, AppStorageStats stats) {
return Formatter.formatFileSize(context, stats.getTotalBytes());
}
@@ -1004,9 +1047,15 @@
} else if (preference == mDataPreference) {
startAppInfoFragment(AppDataUsage.class, getString(R.string.app_data_usage));
} else if (preference == mBatteryPreference) {
- BatteryEntry entry = new BatteryEntry(getContext(), null, mUserManager, mSipper);
- AdvancedPowerUsageDetail.startBatteryDetailPage((SettingsActivity) getActivity(), this,
- mBatteryHelper, BatteryStats.STATS_SINCE_CHARGED, entry, mBatteryPercent);
+ if (isBatteryStatsAvailable()) {
+ BatteryEntry entry = new BatteryEntry(getContext(), null, mUserManager, mSipper);
+ AdvancedPowerUsageDetail.startBatteryDetailPage((SettingsActivity) getActivity(),
+ this, mBatteryHelper, BatteryStats.STATS_SINCE_CHARGED, entry,
+ mBatteryPercent);
+ } else {
+ AdvancedPowerUsageDetail.startBatteryDetailPage((SettingsActivity) getActivity(),
+ this, mPackageName);
+ }
} else {
return false;
}
@@ -1343,33 +1392,6 @@
}
- private class BatteryUpdater extends AsyncTask<Void, Void, Void> {
- @Override
- protected Void doInBackground(Void... params) {
- mBatteryHelper.create((Bundle) null);
- mBatteryHelper.refreshStats(BatteryStats.STATS_SINCE_CHARGED,
- mUserManager.getUserProfiles());
- List<BatterySipper> usageList = mBatteryHelper.getUsageList();
- final int N = usageList.size();
- for (int i = 0; i < N; i++) {
- BatterySipper sipper = usageList.get(i);
- if (sipper.getUid() == mPackageInfo.applicationInfo.uid) {
- mSipper = sipper;
- break;
- }
- }
- return null;
- }
-
- @Override
- protected void onPostExecute(Void result) {
- if (getActivity() == null) {
- return;
- }
- refreshUi();
- }
- }
-
/**
* Elicit this class for testing. Test cannot be done in robolectric because it
* invokes the new API.
diff --git a/src/com/android/settings/applications/assist/ManageAssist.java b/src/com/android/settings/applications/assist/ManageAssist.java
index 824c0b1..aa71c9a 100644
--- a/src/com/android/settings/applications/assist/ManageAssist.java
+++ b/src/com/android/settings/applications/assist/ManageAssist.java
@@ -38,6 +38,7 @@
public class ManageAssist extends DashboardFragment {
private static final String TAG = "ManageAssist";
+ private static final String KEY_ASSIST = "gesture_assist_application";
@Override
protected String getLogTag() {
@@ -71,7 +72,7 @@
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
controllers.add(new DefaultAssistPreferenceController(context));
- controllers.add(new AssistGesturePreferenceController(context, lifecycle));
+ controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST));
controllers.add(new AssistContextPreferenceController(context, lifecycle));
controllers.add(new AssistScreenshotPreferenceController(context, lifecycle));
controllers.add(new AssistFlashScreenPreferenceController(context, lifecycle));
@@ -94,5 +95,13 @@
public List<PreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context, null /* lifecycle */);
}
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ List<String> keys = super.getNonIndexableKeys(context);
+ keys.add(KEY_ASSIST);
+ return keys;
+ }
+
};
}
diff --git a/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java b/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
index 73f4bbe..a08711c 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
@@ -23,6 +23,7 @@
import android.app.Fragment;
import android.content.Context;
import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.text.TextUtils;
@@ -76,7 +77,9 @@
protected ConfirmationDialogFragment newConfirmationDialogFragment(String selectedKey,
CharSequence confirmationMessage) {
- return ConfirmationDialogFragment.newInstance(this, selectedKey, confirmationMessage);
+ final ConfirmationDialogFragment fragment = new ConfirmationDialogFragment();
+ fragment.init(this, selectedKey, confirmationMessage);
+ return fragment;
}
protected CharSequence getConfirmationMessage(CandidateInfo info) {
@@ -90,33 +93,29 @@
public static final String EXTRA_KEY = "extra_key";
public static final String EXTRA_MESSAGE = "extra_message";
- private final DialogInterface.OnClickListener mCancelListener;
-
- private ConfirmationDialogFragment(DialogInterface.OnClickListener cancelListener) {
- mCancelListener = cancelListener;
- }
+ private DialogInterface.OnClickListener mCancelListener;
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.DEFAULT_APP_PICKER_CONFIRMATION_DIALOG;
}
- public static ConfirmationDialogFragment newInstance(DefaultAppPickerFragment parent,
- String key, CharSequence message) {
- return newInstance(parent, key, message, null);
- }
-
- // TODO: add test case for cancelListener
- public static ConfirmationDialogFragment newInstance(DefaultAppPickerFragment parent,
- String key, CharSequence message, DialogInterface.OnClickListener cancelListener) {
- final ConfirmationDialogFragment fragment = new ConfirmationDialogFragment(
- cancelListener);
+ /**
+ * Initializes the fragment.
+ *
+ * <p>Should be called after it's constructed.
+ */
+ public void init(DefaultAppPickerFragment parent, String key, CharSequence message) {
final Bundle argument = new Bundle();
argument.putString(EXTRA_KEY, key);
argument.putCharSequence(EXTRA_MESSAGE, message);
- fragment.setArguments(argument);
- fragment.setTargetFragment(parent, 0);
- return fragment;
+ setArguments(argument);
+ setTargetFragment(parent, 0);
+ }
+
+ // TODO: add test case for cancelListener
+ public void setCancelListener(DialogInterface.OnClickListener cancelListener) {
+ this.mCancelListener = cancelListener;
}
@Override
diff --git a/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java b/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java
index 6dcf7b8..d674522 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java
@@ -18,6 +18,7 @@
import android.Manifest;
import android.app.Activity;
+import android.app.Dialog;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
@@ -60,7 +61,7 @@
/**
* Set when the fragment is implementing ACTION_REQUEST_SET_AUTOFILL_SERVICE.
*/
- public DialogInterface.OnClickListener mCancelListener;
+ private DialogInterface.OnClickListener mCancelListener;
private final Handler mHandler = new Handler();
@Override
@@ -75,15 +76,33 @@
};
}
- mSettingsPackageMonitor.register(getActivity(), getActivity().getMainLooper(), false);
+ mSettingsPackageMonitor.register(activity, activity.getMainLooper(), false);
update();
}
@Override
protected ConfirmationDialogFragment newConfirmationDialogFragment(String selectedKey,
CharSequence confirmationMessage) {
- return ConfirmationDialogFragment.newInstance(this, selectedKey, confirmationMessage,
- mCancelListener);
+ final AutofillPickerConfirmationDialogFragment fragment =
+ new AutofillPickerConfirmationDialogFragment();
+ fragment.init(this, selectedKey, confirmationMessage);
+ return fragment;
+ }
+
+ /**
+ * Custom dialog fragment that has a cancel listener used to propagate the result back to
+ * caller (for the cases where the picker is launched by
+ * {@code android.settings.REQUEST_SET_AUTOFILL_SERVICE}.
+ */
+ public static class AutofillPickerConfirmationDialogFragment
+ extends ConfirmationDialogFragment {
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ final DefaultAutofillPicker target = (DefaultAutofillPicker) getTargetFragment();
+ setCancelListener(target.mCancelListener);
+ super.onCreate(savedInstanceState);
+ }
}
@Override
diff --git a/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java b/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
index 7eb7fdd..59496dd 100644
--- a/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
+++ b/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
@@ -17,6 +17,7 @@
package com.android.settings.bluetooth;
import android.app.Notification;
+import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.bluetooth.BluetoothDevice;
@@ -45,6 +46,12 @@
private static final String NOTIFICATION_TAG_PBAP = "Phonebook Access" ;
private static final String NOTIFICATION_TAG_MAP = "Message Access";
private static final String NOTIFICATION_TAG_SAP = "SIM Access";
+ /* TODO: Consolidate this multiple defined but common channel ID with other
+ * handlers that declare and use the same channel ID */
+ private static final String BLUETOOTH_NOTIFICATION_CHANNEL =
+ "bluetooth_notification_channel";
+
+ private NotificationChannel mNotificationChannel = null;
Context mContext;
int mRequestType;
@@ -151,7 +158,16 @@
deviceAlias, deviceAlias);
break;
}
- Notification notification = new Notification.Builder(context)
+ NotificationManager notificationManager =
+ (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+ if (mNotificationChannel == null) {
+ mNotificationChannel = new NotificationChannel(BLUETOOTH_NOTIFICATION_CHANNEL,
+ context.getString(R.string.bluetooth),
+ NotificationManager.IMPORTANCE_HIGH);
+ notificationManager.createNotificationChannel(mNotificationChannel);
+ }
+ Notification notification = new Notification.Builder(context,
+ BLUETOOTH_NOTIFICATION_CHANNEL)
.setContentTitle(title)
.setTicker(message)
.setContentText(message)
@@ -169,9 +185,6 @@
notification.flags |= Notification.FLAG_NO_CLEAR; // Cannot be set with the builder.
- NotificationManager notificationManager =
- (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
-
notificationManager.notify(getNotificationTag(mRequestType), NOTIFICATION_ID,
notification);
}
diff --git a/src/com/android/settings/bluetooth/DeviceProfilesSettings.java b/src/com/android/settings/bluetooth/DeviceProfilesSettings.java
index a6dfa9b..a76ed46 100755
--- a/src/com/android/settings/bluetooth/DeviceProfilesSettings.java
+++ b/src/com/android/settings/bluetooth/DeviceProfilesSettings.java
@@ -23,6 +23,7 @@
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
+import android.support.annotation.VisibleForTesting;
import android.text.Html;
import android.text.TextUtils;
import android.util.Log;
@@ -37,6 +38,7 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.bluetooth.A2dpProfile;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -55,6 +57,8 @@
private static final String KEY_PROFILE_CONTAINER = "profile_container";
private static final String KEY_UNPAIR = "unpair";
private static final String KEY_PBAP_SERVER = "PBAP Server";
+ @VisibleForTesting
+ static final String HIGH_QUALITY_AUDIO_PREF_TAG = "A2dpProfileHighQualityAudio";
private CachedBluetoothDevice mCachedDevice;
private LocalBluetoothManager mManager;
@@ -169,6 +173,21 @@
for (LocalBluetoothProfile profile : mCachedDevice.getConnectableProfiles()) {
CheckBox pref = createProfilePreference(profile);
mProfileContainer.addView(pref);
+
+ if (profile instanceof A2dpProfile) {
+ BluetoothDevice device = mCachedDevice.getDevice();
+ A2dpProfile a2dpProfile = (A2dpProfile) profile;
+ if (a2dpProfile.supportsHighQualityAudio(device)) {
+ CheckBox highQualityPref = new CheckBox(getActivity());
+ highQualityPref.setTag(HIGH_QUALITY_AUDIO_PREF_TAG);
+ highQualityPref.setOnClickListener(v -> {
+ a2dpProfile.setHighQualityAudioEnabled(device, highQualityPref.isChecked());
+ });
+ highQualityPref.setVisibility(View.GONE);
+ mProfileContainer.addView(highQualityPref);
+ }
+ refreshProfilePreference(pref, profile);
+ }
}
final int pbapPermission = mCachedDevice.getPhonebookPermissionChoice();
@@ -356,6 +375,22 @@
} else {
profilePref.setChecked(profile.isPreferred(device));
}
+ if (profile instanceof A2dpProfile) {
+ A2dpProfile a2dpProfile = (A2dpProfile) profile;
+ View v = mProfileContainer.findViewWithTag(HIGH_QUALITY_AUDIO_PREF_TAG);
+ if (v instanceof CheckBox) {
+ CheckBox highQualityPref = (CheckBox) v;
+ highQualityPref.setText(a2dpProfile.getHighQualityAudioOptionLabel(device));
+ highQualityPref.setChecked(a2dpProfile.isHighQualityAudioEnabled(device));
+
+ if (a2dpProfile.isPreferred(device)) {
+ v.setVisibility(View.VISIBLE);
+ v.setEnabled(!mCachedDevice.isBusy());
+ } else {
+ v.setVisibility(View.GONE);
+ }
+ }
+ }
}
private LocalBluetoothProfile getProfileOf(View v) {
diff --git a/src/com/android/settings/core/instrumentation/SharedPreferencesLogger.java b/src/com/android/settings/core/instrumentation/SharedPreferencesLogger.java
index 69f174b..d1c7c7a 100644
--- a/src/com/android/settings/core/instrumentation/SharedPreferencesLogger.java
+++ b/src/com/android/settings/core/instrumentation/SharedPreferencesLogger.java
@@ -111,6 +111,9 @@
mPreferenceKeySet.add(prefKey);
return;
}
+ // TODO: Remove count logging to save some resource.
+ mMetricsFeature.count(mContext, prefKey + "|" + value, 1);
+
// Pref key exists in set, log it's change in metrics.
mMetricsFeature.action(mContext, MetricsEvent.ACTION_SETTINGS_PREFERENCE_CHANGE,
Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME, prefKey),
diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java
index 16172bd..5a84d13 100644
--- a/src/com/android/settings/datausage/DataUsageSummary.java
+++ b/src/com/android/settings/datausage/DataUsageSummary.java
@@ -71,10 +71,11 @@
public static final boolean TEST_RADIOS = false;
public static final String TEST_RADIOS_PROP = "test.radios";
+ public static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
+ public static final String KEY_NETWORK_RESTRICTIONS = "network_restrictions";
+
private static final String KEY_STATUS_HEADER = "status_header";
private static final String KEY_LIMIT_SUMMARY = "limit_summary";
- private static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
- private static final String KEY_NETWORK_RESTRICTIONS = "network_restrictions";
private static final String KEY_WIFI_USAGE_TITLE = "wifi_category";
private DataUsageController mDataUsageController;
@@ -465,7 +466,7 @@
@Override
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
boolean enabled) {
- ArrayList<SearchIndexableResource> resources = new ArrayList<>();
+ List<SearchIndexableResource> resources = new ArrayList<>();
SearchIndexableResource resource = new SearchIndexableResource(context);
resource.xmlResId = R.xml.data_usage;
resources.add(resource);
@@ -485,13 +486,14 @@
@Override
public List<String> getNonIndexableKeys(Context context) {
- ArrayList<String> keys = new ArrayList<>();
- boolean hasMobileData = ConnectivityManager.from(context).isNetworkSupported(
- ConnectivityManager.TYPE_MOBILE);
+ List<String> keys = super.getNonIndexableKeys(context);
- if (hasMobileData) {
+ if (hasMobileData(context)) {
keys.add(KEY_RESTRICT_BACKGROUND);
}
+ if (hasWifiRadio(context)) {
+ keys.add(KEY_NETWORK_RESTRICTIONS);
+ }
keys.add(KEY_WIFI_USAGE_TITLE);
return keys;
diff --git a/src/com/android/settings/development/DevelopmentSettings.java b/src/com/android/settings/development/DevelopmentSettings.java
index e06c869..74a6091 100644
--- a/src/com/android/settings/development/DevelopmentSettings.java
+++ b/src/com/android/settings/development/DevelopmentSettings.java
@@ -226,6 +226,8 @@
private static final String SHOW_ALL_ANRS_KEY = "show_all_anrs";
+ private static final String SHOW_NOTIFICATION_CHANNEL_WARNINGS_KEY = "show_notification_channel_warnings";
+
private static final String TERMINAL_APP_PACKAGE = "com.android.terminal";
private static final String KEY_CONVERT_FBE = "convert_to_file_encryption";
@@ -326,6 +328,8 @@
private SwitchPreference mShowAllANRs;
+ private SwitchPreference mShowNotificationChannelWarnings;
+
private ColorModePreference mColorModePreference;
private SwitchPreference mForceResizable;
@@ -523,6 +527,11 @@
mAllPrefs.add(mShowAllANRs);
mResetSwitchPrefs.add(mShowAllANRs);
+ mShowNotificationChannelWarnings = (SwitchPreference) findPreference(
+ SHOW_NOTIFICATION_CHANNEL_WARNINGS_KEY);
+ mAllPrefs.add(mShowNotificationChannelWarnings);
+ mResetSwitchPrefs.add(mShowNotificationChannelWarnings);
+
Preference hdcpChecking = findPreference(HDCP_CHECKING_KEY);
if (hdcpChecking != null) {
mAllPrefs.add(hdcpChecking);
@@ -788,6 +797,7 @@
updateImmediatelyDestroyActivitiesOptions();
updateAppProcessLimitOptions();
updateShowAllANRsOptions();
+ updateShowNotificationChannelWarningsOptions();
mVerifyAppsOverUsbController.updatePreference();
updateOtaDisableAutomaticUpdateOptions();
updateBugreportOptions();
@@ -2268,6 +2278,19 @@
getActivity().getContentResolver(), Settings.Secure.ANR_SHOW_BACKGROUND, 0) != 0);
}
+ private void writeShowNotificationChannelWarningsOptions() {
+ Settings.Global.putInt(getActivity().getContentResolver(),
+ Settings.Global.SHOW_NOTIFICATION_CHANNEL_WARNINGS,
+ mShowNotificationChannelWarnings.isChecked() ? 1 : 0);
+ }
+
+ private void updateShowNotificationChannelWarningsOptions() {
+ final int defaultWarningEnabled = Build.IS_DEBUGGABLE ? 1 : 0;
+ updateSwitchPreference(mShowNotificationChannelWarnings, Settings.Global.getInt(
+ getActivity().getContentResolver(),
+ Settings.Global.SHOW_NOTIFICATION_CHANNEL_WARNINGS, defaultWarningEnabled) != 0);
+ }
+
private void confirmEnableOemUnlock() {
DialogInterface.OnClickListener onClickListener = new DialogInterface.OnClickListener() {
@Override
@@ -2454,6 +2477,8 @@
writeImmediatelyDestroyActivitiesOptions();
} else if (preference == mShowAllANRs) {
writeShowAllANRsOptions();
+ } else if (preference == mShowNotificationChannelWarnings) {
+ writeShowNotificationChannelWarningsOptions();
} else if (preference == mForceHardwareUi) {
writeHardwareUiOptions();
} else if (preference == mForceMsaa) {
diff --git a/src/com/android/settings/development/TelephonyMonitorPreferenceController.java b/src/com/android/settings/development/TelephonyMonitorPreferenceController.java
index 135af7d..c21ccda 100644
--- a/src/com/android/settings/development/TelephonyMonitorPreferenceController.java
+++ b/src/com/android/settings/development/TelephonyMonitorPreferenceController.java
@@ -23,15 +23,27 @@
import android.support.v7.preference.PreferenceScreen;
import android.widget.Toast;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.core.PreferenceController;
import com.android.settings.R;
public class TelephonyMonitorPreferenceController extends PreferenceController {
private static final String KEY_TELEPHONY_MONITOR_SWITCH = "telephony_monitor_switch";
+ @VisibleForTesting
static final String BUILD_TYPE = "ro.build.type";
+ @VisibleForTesting
static final String PROPERTY_TELEPHONY_MONITOR = "persist.radio.enable_tel_mon";
+ @VisibleForTesting
+ static final String ENABLED_STATUS = "enabled";
+ @VisibleForTesting
+ static final String DISABLED_STATUS = "disabled";
+ @VisibleForTesting
+ static final String USER_ENABLED_STATUS = "user_enabled";
+ @VisibleForTesting
+ static final String USER_DISABLED_STATUS = "user_disabled";
+
private SwitchPreference mPreference;
public TelephonyMonitorPreferenceController(Context context) {
@@ -43,7 +55,7 @@
super.displayPreference(screen);
if (isAvailable()) {
mPreference = (SwitchPreference) screen.findPreference(KEY_TELEPHONY_MONITOR_SWITCH);
- mPreference.setChecked(SystemProperties.getBoolean(PROPERTY_TELEPHONY_MONITOR, false));
+ mPreference.setChecked(isTelephonyMonitorEnabled());
}
}
@@ -69,7 +81,7 @@
if (KEY_TELEPHONY_MONITOR_SWITCH.equals(preference.getKey())) {
final SwitchPreference switchPreference = (SwitchPreference) preference;
SystemProperties.set(PROPERTY_TELEPHONY_MONITOR,
- switchPreference.isChecked() ? "true" : "false");
+ switchPreference.isChecked() ? USER_ENABLED_STATUS : USER_DISABLED_STATUS);
Toast.makeText(mContext, R.string.telephony_monitor_toast,
Toast.LENGTH_LONG).show();
return true;
@@ -87,9 +99,14 @@
if (!isAvailable()) {
return false;
}
- final boolean enabled = SystemProperties.getBoolean(PROPERTY_TELEPHONY_MONITOR, false);
+ final boolean enabled = isTelephonyMonitorEnabled();
mPreference.setChecked(enabled);
return enabled;
}
+ private boolean isTelephonyMonitorEnabled() {
+ final String tmStatus = SystemProperties.get(PROPERTY_TELEPHONY_MONITOR, DISABLED_STATUS);
+ return ENABLED_STATUS.equals(tmStatus) || USER_ENABLED_STATUS.equals(tmStatus);
+ }
+
}
diff --git a/src/com/android/settings/deviceinfo/StorageSettings.java b/src/com/android/settings/deviceinfo/StorageSettings.java
index b2bad3a..ce9ea9b 100644
--- a/src/com/android/settings/deviceinfo/StorageSettings.java
+++ b/src/com/android/settings/deviceinfo/StorageSettings.java
@@ -235,7 +235,7 @@
args.putString(VolumeInfo.EXTRA_VOLUME_ID, VolumeInfo.ID_PRIVATE_INTERNAL);
Intent intent = Utils.onBuildStartFragmentIntent(getActivity(),
StorageDashboardFragment.class.getName(), args, null,
- R.string.storage_settings_2, null, false, getMetricsCategory());
+ R.string.storage_settings, null, false, getMetricsCategory());
intent.putExtra(SettingsDrawerActivity.EXTRA_SHOW_MENU, true);
getActivity().startActivity(intent);
finish();
@@ -280,7 +280,7 @@
if (VolumeInfo.ID_PRIVATE_INTERNAL.equals(vol.getId())) {
startFragment(this, StorageDashboardFragment.class.getCanonicalName(),
- R.string.storage_settings_2, 0, args);
+ R.string.storage_settings, 0, args);
} else {
// TODO: Go to the StorageDashboardFragment once it fully handles all of the
// SD card cases and other private internal storage cases.
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java
index e6e6bcd..8078ad6 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java
@@ -159,6 +159,14 @@
startIconAnimation();
}
+ @Override
+ protected void onPause() {
+ super.onPause();
+ if (mSidecar != null) {
+ mSidecar.setListener(null);
+ }
+ }
+
private void startIconAnimation() {
mIconAnimationDrawable.start();
}
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
index 107838c..5152d31 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
@@ -134,7 +134,7 @@
return;
}
}
- getFragmentManager().beginTransaction().remove(mSidecar).commit();
+ getFragmentManager().beginTransaction().remove(mSidecar).commitAllowingStateLoss();
mSidecar = null;
startActivityForResult(getEnrollingIntent(), ENROLLING);
}
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
index 7fc7a04..cbfec0c 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
@@ -31,6 +31,8 @@
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.password.IFingerprintManager;
+import java.util.ArrayList;
+
/**
* Sidecar fragment to handle the state around fingerprint enrollment.
*/
@@ -46,6 +48,57 @@
private boolean mDone;
private int mUserId;
private IFingerprintManager mFingerprintManager;
+ private ArrayList<QueuedEvent> mQueuedEvents;
+
+ private abstract class QueuedEvent {
+ public abstract void send(Listener listener);
+ }
+
+ private class QueuedEnrollmentProgress extends QueuedEvent {
+ int enrollmentSteps;
+ int remaining;
+ public QueuedEnrollmentProgress(int enrollmentSteps, int remaining) {
+ this.enrollmentSteps = enrollmentSteps;
+ this.remaining = remaining;
+ }
+
+ @Override
+ public void send(Listener listener) {
+ listener.onEnrollmentProgressChange(enrollmentSteps, remaining);
+ }
+ }
+
+ private class QueuedEnrollmentHelp extends QueuedEvent {
+ int helpMsgId;
+ CharSequence helpString;
+ public QueuedEnrollmentHelp(int helpMsgId, CharSequence helpString) {
+ this.helpMsgId = helpMsgId;
+ this.helpString = helpString;
+ }
+
+ @Override
+ public void send(Listener listener) {
+ listener.onEnrollmentHelp(helpString);
+ }
+ }
+
+ private class QueuedEnrollmentError extends QueuedEvent {
+ int errMsgId;
+ CharSequence errString;
+ public QueuedEnrollmentError(int errMsgId, CharSequence errString) {
+ this.errMsgId = errMsgId;
+ this.errString = errString;
+ }
+
+ @Override
+ public void send(Listener listener) {
+ listener.onEnrollmentError(errMsgId, errString);
+ }
+ }
+
+ public FingerprintEnrollSidecar() {
+ mQueuedEvents = new ArrayList<>();
+ }
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
@@ -103,6 +156,13 @@
public void setListener(Listener listener) {
mListener = listener;
+ if (mListener != null) {
+ for (int i=0; i<mQueuedEvents.size(); i++) {
+ QueuedEvent event = mQueuedEvents.get(i);
+ event.send(mListener);
+ }
+ mQueuedEvents.clear();
+ }
}
public int getEnrollmentSteps() {
@@ -129,6 +189,8 @@
mDone = remaining == 0;
if (mListener != null) {
mListener.onEnrollmentProgressChange(mEnrollmentSteps, remaining);
+ } else {
+ mQueuedEvents.add(new QueuedEnrollmentProgress(mEnrollmentSteps, remaining));
}
}
@@ -136,6 +198,8 @@
public void onEnrollmentHelp(int helpMsgId, CharSequence helpString) {
if (mListener != null) {
mListener.onEnrollmentHelp(helpString);
+ } else {
+ mQueuedEvents.add(new QueuedEnrollmentHelp(helpMsgId, helpString));
}
}
@@ -143,6 +207,8 @@
public void onEnrollmentError(int errMsgId, CharSequence errString) {
if (mListener != null) {
mListener.onEnrollmentError(errMsgId, errString);
+ } else {
+ mQueuedEvents.add(new QueuedEnrollmentError(errMsgId, errString));
}
mEnrolling = false;
}
diff --git a/src/com/android/settings/fingerprint/FingerprintRemoveSidecar.java b/src/com/android/settings/fingerprint/FingerprintRemoveSidecar.java
index eda4c82..462d09e 100644
--- a/src/com/android/settings/fingerprint/FingerprintRemoveSidecar.java
+++ b/src/com/android/settings/fingerprint/FingerprintRemoveSidecar.java
@@ -53,7 +53,7 @@
private FingerprintManager.RemovalCallback
mRemoveCallback = new FingerprintManager.RemovalCallback() {
@Override
- public void onRemovalSucceeded(Fingerprint fingerprint) {
+ public void onRemovalSucceeded(Fingerprint fingerprint, int remaining) {
if (mListener != null) {
mListener.onRemovalSucceeded(fingerprint);
} else {
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index 7a2e4c0..580eb1b 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
@@ -129,6 +129,17 @@
args.putInt(EXTRA_POWER_USAGE_AMOUNT, (int) sipper.totalPowerMah);
caller.startPreferencePanelAsUser(fragment, AdvancedPowerUsageDetail.class.getName(), args,
+ R.string.battery_details_title, null,
+ new UserHandle(UserHandle.getUserId(sipper.getUid())));
+ }
+
+ public static void startBatteryDetailPage(SettingsActivity caller, PreferenceFragment fragment,
+ String packageName) {
+ final Bundle args = new Bundle(2);
+ args.putString(EXTRA_PACKAGE_NAME, packageName);
+ args.putString(EXTRA_POWER_USAGE_PERCENT, Utils.formatPercentage(0));
+
+ caller.startPreferencePanelAsUser(fragment, AdvancedPowerUsageDetail.class.getName(), args,
R.string.battery_details_title, null, new UserHandle(UserHandle.myUserId()));
}
diff --git a/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java b/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
index 49a0179..89f03b3 100644
--- a/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
@@ -98,6 +98,8 @@
@VisibleForTesting
Button mUninstallButton;
@VisibleForTesting
+ String mPackageName;
+ @VisibleForTesting
boolean mDisableAfterUninstall = false;
private final int mRequestUninstall;
@@ -113,7 +115,6 @@
private MetricsFeatureProvider mMetricsFeatureProvider;
private LayoutPreference mButtonsPref;
- private String mPackageName;
private int mUserId;
private boolean mUpdatedSysApp = false;
private boolean mListeningToPackageRemove = false;
@@ -134,7 +135,6 @@
mMetricsFeatureProvider = FeatureFactory.getFactory(activity).getMetricsFeatureProvider();
mState = state;
- mSession = mState.newSession(this);
mDpm = dpm;
mUserManager = userManager;
mPm = packageManager;
@@ -145,10 +145,10 @@
mRequestUninstall = requestUninstall;
mRequestRemoveDeviceAdmin = requestRemoveDeviceAdmin;
- lifecycle.addObserver(this);
-
if (packageName != null) {
mAppEntry = mState.getEntry(packageName, mUserId);
+ mSession = mState.newSession(this);
+ lifecycle.addObserver(this);
} else {
mFinishing = true;
}
@@ -620,7 +620,11 @@
return false;
}
- private boolean refreshUi() {
+ @VisibleForTesting
+ boolean refreshUi() {
+ if (mPackageName == null) {
+ return false;
+ }
retrieveAppEntry();
if (mAppEntry == null || mPackageInfo == null) {
return false;
diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
new file mode 100644
index 0000000..04e2c7a
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2017 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.settings.fuelgauge;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.support.annotation.VisibleForTesting;
+import android.support.v7.preference.PreferenceScreen;
+import android.widget.TextView;
+
+import com.android.settings.R;
+import com.android.settings.applications.LayoutPreference;
+import com.android.settings.core.PreferenceController;
+import com.android.settingslib.BatteryInfo;
+import com.android.settingslib.Utils;
+
+/**
+ * Controller that update the battery header view
+ */
+public class BatteryHeaderPreferenceController extends PreferenceController {
+ @VisibleForTesting
+ static final String KEY_BATTERY_HEADER = "battery_header";
+ @VisibleForTesting
+ BatteryMeterView mBatteryMeterView;
+ @VisibleForTesting
+ TextView mTimeText;
+ @VisibleForTesting
+ TextView mSummary;
+
+ private LayoutPreference mBatteryLayoutPref;
+
+ public BatteryHeaderPreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+
+ mBatteryLayoutPref = (LayoutPreference) screen.findPreference(KEY_BATTERY_HEADER);
+ mBatteryMeterView = (BatteryMeterView) mBatteryLayoutPref
+ .findViewById(R.id.battery_header_icon);
+ mTimeText = (TextView) mBatteryLayoutPref.findViewById(R.id.battery_percent);
+ mSummary = (TextView) mBatteryLayoutPref.findViewById(R.id.summary1);
+
+ Intent batteryBroadcast = mContext.registerReceiver(null,
+ new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+ final int batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
+
+ mBatteryMeterView.setBatteryLevel(batteryLevel);
+ mTimeText.setText(Utils.formatPercentage(batteryLevel));
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_BATTERY_HEADER;
+ }
+
+ public void updateHeaderPreference(BatteryInfo info) {
+ mTimeText.setText(Utils.formatPercentage(info.batteryLevel));
+ if (info.remainingLabel == null) {
+ mSummary.setText(info.statusLabel);
+ } else {
+ mSummary.setText(info.remainingLabel);
+ }
+
+ mBatteryMeterView.setBatteryLevel(info.batteryLevel);
+ mBatteryMeterView.setCharging(!info.discharging);
+ }
+}
diff --git a/src/com/android/settings/fuelgauge/BatteryMeterView.java b/src/com/android/settings/fuelgauge/BatteryMeterView.java
index 969f886..09f7c7a 100644
--- a/src/com/android/settings/fuelgauge/BatteryMeterView.java
+++ b/src/com/android/settings/fuelgauge/BatteryMeterView.java
@@ -38,8 +38,6 @@
@VisibleForTesting
ColorFilter mAccentColorFilter;
- private int mLevel;
-
public BatteryMeterView(Context context) {
this(context, null, 0);
}
@@ -51,7 +49,7 @@
public BatteryMeterView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
- final int frameColor = context.getColor(R.color.batterymeter_frame_color);
+ final int frameColor = context.getColor(R.color.meter_background_color);
mAccentColorFilter = new PorterDuffColorFilter(
Utils.getColorAttr(context, android.R.attr.colorAccent), PorterDuff.Mode.SRC_IN);
mErrorColorFilter = new PorterDuffColorFilter(
@@ -66,7 +64,6 @@
}
public void setBatteryLevel(int level) {
- mLevel = level;
mDrawable.setBatteryLevel(level);
if (level < mDrawable.getCriticalLevel()) {
mDrawable.setBatteryColorFilter(mErrorColorFilter);
@@ -76,7 +73,7 @@
}
public int getBatteryLevel() {
- return mLevel;
+ return mDrawable.getBatteryLevel();
}
public void setCharging(boolean charging) {
diff --git a/src/com/android/settings/fuelgauge/BatteryUtils.java b/src/com/android/settings/fuelgauge/BatteryUtils.java
index 86cb203..3d9dbb6 100644
--- a/src/com/android/settings/fuelgauge/BatteryUtils.java
+++ b/src/com/android/settings/fuelgauge/BatteryUtils.java
@@ -22,13 +22,17 @@
import android.support.annotation.IntDef;
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
+import android.text.format.DateUtils;
import android.util.Log;
+import android.util.SparseLongArray;
import com.android.internal.os.BatterySipper;
import com.android.settings.overlay.FeatureFactory;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
/**
@@ -115,25 +119,64 @@
}
/**
- * Remove the {@link BatterySipper} that we should hide.
+ * Remove the {@link BatterySipper} that we should hide and smear the screen usage based on
+ * foreground activity time.
*
* @param sippers sipper list that need to check and remove
* @return the total power of the hidden items of {@link BatterySipper}
+ * for proportional smearing
*/
public double removeHiddenBatterySippers(List<BatterySipper> sippers) {
- double totalPowerMah = 0;
+ double proportionalSmearPowerMah = 0;
+ BatterySipper screenSipper = null;
for (int i = sippers.size() - 1; i >= 0; i--) {
final BatterySipper sipper = sippers.get(i);
if (shouldHideSipper(sipper)) {
sippers.remove(i);
- if (sipper.drainType != BatterySipper.DrainType.OVERCOUNTED) {
- // Don't add it if it is overcounted
- totalPowerMah += sipper.totalPowerMah;
+ if (sipper.drainType != BatterySipper.DrainType.OVERCOUNTED
+ && sipper.drainType != BatterySipper.DrainType.SCREEN
+ && sipper.drainType != BatterySipper.DrainType.UNACCOUNTED) {
+ // Don't add it if it is overcounted, unaccounted or screen
+ proportionalSmearPowerMah += sipper.totalPowerMah;
}
}
+
+ if (sipper.drainType == BatterySipper.DrainType.SCREEN) {
+ screenSipper = sipper;
+ }
}
- return totalPowerMah;
+ smearScreenBatterySipper(sippers, screenSipper);
+
+ return proportionalSmearPowerMah;
+ }
+
+ /**
+ * Smear the screen on power usage among {@code sippers}, based on ratio of foreground activity
+ * time.
+ */
+ @VisibleForTesting
+ void smearScreenBatterySipper(List<BatterySipper> sippers, BatterySipper screenSipper) {
+ final long rawRealtimeMs = SystemClock.elapsedRealtime();
+ long totalActivityTimeMs = 0;
+ final SparseLongArray activityTimeArray = new SparseLongArray();
+ for (int i = 0, size = sippers.size(); i < size; i++) {
+ final BatteryStats.Uid uid = sippers.get(i).uidObj;
+ if (uid != null) {
+ final long timeMs = getForegroundActivityTotalTimeMs(uid, rawRealtimeMs);
+ activityTimeArray.put(uid.getUid(), timeMs);
+ totalActivityTimeMs += timeMs;
+ }
+ }
+
+ if (totalActivityTimeMs >= 10 * DateUtils.MINUTE_IN_MILLIS) {
+ final double screenPowerMah = screenSipper.totalPowerMah;
+ for (int i = 0, size = sippers.size(); i < size; i++) {
+ final BatterySipper sipper = sippers.get(i);
+ sipper.totalPowerMah += screenPowerMah * activityTimeArray.get(sipper.getUid(), 0)
+ / totalActivityTimeMs;
+ }
+ }
}
/**
@@ -144,9 +187,7 @@
return drainType == BatterySipper.DrainType.IDLE
|| drainType == BatterySipper.DrainType.CELL
- || drainType == BatterySipper.DrainType.WIFI
|| drainType == BatterySipper.DrainType.SCREEN
- || drainType == BatterySipper.DrainType.BLUETOOTH
|| drainType == BatterySipper.DrainType.UNACCOUNTED
|| drainType == BatterySipper.DrainType.OVERCOUNTED
|| (sipper.totalPowerMah * SECONDS_IN_HOUR) < MIN_POWER_THRESHOLD_MILLI_AMP
@@ -174,6 +215,19 @@
return (powerUsageMah / (totalPowerMah - hiddenPowerMah)) * dischargeAmount;
}
+ /**
+ * Sort the {@code usageList} based on {@link BatterySipper#totalPowerMah}
+ * @param usageList
+ */
+ public void sortUsageList(List<BatterySipper> usageList) {
+ Collections.sort(usageList, new Comparator<BatterySipper>() {
+ @Override
+ public int compare(BatterySipper a, BatterySipper b) {
+ return Double.compare(b.totalPowerMah, a.totalPowerMah);
+ }
+ });
+ }
+
private long convertUsToMs(long timeUs) {
return timeUs / 1000;
}
@@ -186,5 +240,15 @@
return mPackageManager == null;
}
+ @VisibleForTesting
+ long getForegroundActivityTotalTimeMs(BatteryStats.Uid uid, long rawRealtimeMs) {
+ final BatteryStats.Timer timer = uid.getForegroundActivityTimer();
+ if (timer != null) {
+ return timer.getTotalTimeLocked(rawRealtimeMs, BatteryStats.STATS_SINCE_CHARGED);
+ }
+
+ return 0;
+ }
+
}
diff --git a/src/com/android/settings/fuelgauge/FakeUid.java b/src/com/android/settings/fuelgauge/FakeUid.java
index 6f92b3d..6cb5c64 100644
--- a/src/com/android/settings/fuelgauge/FakeUid.java
+++ b/src/com/android/settings/fuelgauge/FakeUid.java
@@ -45,6 +45,11 @@
}
@Override
+ public Timer getAggregatedPartialWakelockTimer() {
+ return null;
+ }
+
+ @Override
public ArrayMap<String, ? extends Timer> getSyncStats() {
return null;
}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageBase.java b/src/com/android/settings/fuelgauge/PowerUsageBase.java
index aee55d6..060abdd 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageBase.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageBase.java
@@ -57,7 +57,7 @@
mBatteryBroadcastReceiver = new BatteryBroadcastReceiver(getContext());
mBatteryBroadcastReceiver.setBatteryChangedListener(() -> {
- getLoaderManager().restartLoader(0, null, this);
+ restartBatteryStatsLoader();
});
getLoaderManager().initLoader(0, icicle, this);
@@ -95,6 +95,10 @@
}
}
+ protected void restartBatteryStatsLoader() {
+ getLoaderManager().restartLoader(0, Bundle.EMPTY, this);
+ }
+
protected abstract void refreshUi();
protected void updatePreference(BatteryHistoryPreference historyPref) {
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
index 10ffc49..be38855 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
@@ -77,11 +77,11 @@
@Override
public boolean isAdvancedUiEnabled() {
- return false;
+ return true;
}
@Override
public boolean isPowerAccountingToggleEnabled() {
- return false;
+ return true;
}
}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 0309296..8b4257b 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -16,8 +16,6 @@
package com.android.settings.fuelgauge;
-import android.animation.Animator;
-import android.animation.ValueAnimator;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
@@ -43,7 +41,6 @@
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
-import android.view.animation.AnimationUtils;
import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -69,8 +66,6 @@
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
/**
@@ -87,10 +82,6 @@
private static final String KEY_BATTERY_HEADER = "battery_header";
private static final int MAX_ITEMS_TO_LIST = USE_FAKE_DATA ? 30 : 10;
private static final int MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP = 10;
- private static final int BATTERY_ANIMATION_DURATION_MS_PER_LEVEL = 30;
-
- @VisibleForTesting
- static final String ARG_BATTERY_LEVEL = "key_battery_level";
private static final String KEY_SCREEN_USAGE = "screen_usage";
private static final String KEY_TIME_SINCE_LAST_FULL_CHARGE = "last_full_charge";
@@ -112,8 +103,6 @@
new FooterPreferenceMixin(this, getLifecycle());
@VisibleForTesting
- int mBatteryLevel;
- @VisibleForTesting
boolean mShowAllApps = false;
@VisibleForTesting
PowerGaugePreference mScreenUsagePref;
@@ -124,6 +113,7 @@
@VisibleForTesting
BatteryUtils mBatteryUtils;
+ private BatteryHeaderPreferenceController mBatteryHeaderPreferenceController;
private LayoutPreference mBatteryLayoutPref;
private PreferenceGroup mAppListGroup;
private int mStatsType = BatteryStats.STATS_SINCE_CHARGED;
@@ -133,8 +123,6 @@
super.onCreate(icicle);
setAnimationAllowed(true);
- mBatteryLevel = getContext().getResources().getInteger(
- com.android.internal.R.integer.config_criticalBatteryWarningLevel) + 1;
mBatteryLayoutPref = (LayoutPreference) findPreference(KEY_BATTERY_HEADER);
mAppListGroup = (PreferenceGroup) findPreference(KEY_APP_LIST);
mScreenUsagePref = (PowerGaugePreference) findPreference(KEY_SCREEN_USAGE);
@@ -148,26 +136,11 @@
}
@Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- if (savedInstanceState != null) {
- mBatteryLevel = savedInstanceState.getInt(ARG_BATTERY_LEVEL);
- }
- }
-
- @Override
public int getMetricsCategory() {
return MetricsEvent.FUELGAUGE_POWER_USAGE_SUMMARY;
}
@Override
- public void onResume() {
- super.onResume();
-
- initHeaderPreference();
- }
-
- @Override
public void onPause() {
BatteryEntry.stopRequestQueue();
mHandler.removeMessages(BatteryEntry.MSG_UPDATE_NAME_ICON);
@@ -183,12 +156,6 @@
}
@Override
- public void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putInt(ARG_BATTERY_LEVEL, mBatteryLevel);
- }
-
- @Override
public boolean onPreferenceTreeClick(Preference preference) {
if (KEY_BATTERY_HEADER.equals(preference.getKey())) {
performBatteryHeaderClick();
@@ -216,6 +183,8 @@
@Override
protected List<PreferenceController> getPreferenceControllers(Context context) {
final List<PreferenceController> controllers = new ArrayList<>();
+ mBatteryHeaderPreferenceController = new BatteryHeaderPreferenceController(context);
+ controllers.add(mBatteryHeaderPreferenceController);
controllers.add(new AutoBrightnessPreferenceController(context, KEY_AUTO_BRIGHTNESS));
controllers.add(new TimeoutPreferenceController(context, KEY_SCREEN_TIMEOUT));
controllers.add(new BatterySaverController(context, getLifecycle()));
@@ -287,7 +256,7 @@
item.setTitle(mShowAllApps ? R.string.hide_extra_apps : R.string.show_all_apps);
metricsFeatureProvider.action(context,
MetricsEvent.ACTION_SETTINGS_MENU_BATTERY_APPS_TOGGLE, mShowAllApps);
- refreshUi();
+ restartBatteryStatsLoader();
return true;
default:
return super.onOptionsItemSelected(item);
@@ -340,7 +309,7 @@
*
* @return A sorted list of apps using power.
*/
- private static List<BatterySipper> getCoalescedUsageList(final List<BatterySipper> sippers) {
+ private List<BatterySipper> getCoalescedUsageList(final List<BatterySipper> sippers) {
final SparseArray<BatterySipper> uidList = new SparseArray<>();
final ArrayList<BatterySipper> results = new ArrayList<>();
@@ -415,12 +384,7 @@
}
// The sort order must have changed, so re-sort based on total power use.
- Collections.sort(results, new Comparator<BatterySipper>() {
- @Override
- public int compare(BatterySipper a, BatterySipper b) {
- return Double.compare(b.totalPowerMah, a.totalPowerMah);
- }
- });
+ mBatteryUtils.sortUsageList(results);
return results;
}
@@ -443,7 +407,7 @@
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
BatteryInfo batteryInfo = BatteryInfo.getBatteryInfo(context, batteryBroadcast,
mStatsHelper.getStats(), elapsedRealtimeUs, false);
- updateHeaderPreference(batteryInfo);
+ mBatteryHeaderPreferenceController.updateHeaderPreference(batteryInfo);
final TypedValue value = new TypedValue();
context.getTheme().resolveAttribute(android.R.attr.colorControlNormal, value, true);
@@ -456,15 +420,16 @@
updateLastFullChargePreference(runningTime);
final CharSequence timeSequence = Utils.formatElapsedTime(context, runningTime, false);
- mAppListGroup.setTitle(
- TextUtils.expandTemplate(getText(R.string.power_usage_list_summary), timeSequence));
+ final int resId = mShowAllApps ? R.string.power_usage_list_summary_device
+ : R.string.power_usage_list_summary;
+ mAppListGroup.setTitle(TextUtils.expandTemplate(getText(resId), timeSequence));
if (averagePower >= MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP || USE_FAKE_DATA) {
final List<BatterySipper> usageList = getCoalescedUsageList(
USE_FAKE_DATA ? getFakeStats() : mStatsHelper.getUsageList());
-
double hiddenPowerMah = mShowAllApps ? 0 :
mBatteryUtils.removeHiddenBatterySippers(usageList);
+ mBatteryUtils.sortUsageList(usageList);
final int numSippers = usageList.size();
for (int i = 0; i < numSippers; i++) {
@@ -587,58 +552,6 @@
}
@VisibleForTesting
- void updateHeaderPreference(BatteryInfo info) {
- final Context context = getContext();
- if (context == null) {
- return;
- }
- final BatteryMeterView batteryView = (BatteryMeterView) mBatteryLayoutPref
- .findViewById(R.id.battery_header_icon);
- final TextView timeText = (TextView) mBatteryLayoutPref.findViewById(R.id.battery_percent);
- final TextView summary1 = (TextView) mBatteryLayoutPref.findViewById(R.id.summary1);
- if (info.remainingLabel == null ) {
- summary1.setText(info.statusLabel);
- } else {
- summary1.setText(info.remainingLabel);
- }
- batteryView.setCharging(!info.discharging);
- startBatteryHeaderAnimationIfNecessary(batteryView, timeText, mBatteryLevel,
- info.batteryLevel);
- }
-
- @VisibleForTesting
- void initHeaderPreference() {
- final BatteryMeterView batteryView = (BatteryMeterView) mBatteryLayoutPref
- .findViewById(R.id.battery_header_icon);
- final TextView timeText = (TextView) mBatteryLayoutPref.findViewById(R.id.battery_percent);
-
- batteryView.setBatteryLevel(mBatteryLevel);
- timeText.setText(Utils.formatPercentage(mBatteryLevel));
- }
-
- @VisibleForTesting
- void startBatteryHeaderAnimationIfNecessary(BatteryMeterView batteryView, TextView timeTextView,
- int prevLevel, int currentLevel) {
- mBatteryLevel = currentLevel;
- final int diff = Math.abs(prevLevel - currentLevel);
- if (diff != 0) {
- final ValueAnimator animator = ValueAnimator.ofInt(prevLevel, currentLevel);
- animator.setDuration(BATTERY_ANIMATION_DURATION_MS_PER_LEVEL * diff);
- animator.setInterpolator(AnimationUtils.loadInterpolator(getContext(),
- android.R.interpolator.fast_out_slow_in));
- animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
- @Override
- public void onAnimationUpdate(ValueAnimator animation) {
- final Integer level = (Integer) animation.getAnimatedValue();
- batteryView.setBatteryLevel(level);
- timeTextView.setText(Utils.formatPercentage(level));
- }
- });
- animator.start();
- }
- }
-
- @VisibleForTesting
double calculatePercentage(double powerUsage, double dischargeAmount) {
final double totalPower = mStatsHelper.getTotalPower();
return totalPower == 0 ? 0 :
@@ -652,7 +565,7 @@
final CharSequence timeSequence = Utils.formatElapsedTime(getContext(), usageTimeMs,
false);
preference.setSummary(
- TextUtils.expandTemplate(getText(R.string.battery_used_for), timeSequence));
+ TextUtils.expandTemplate(getText(R.string.battery_screen_usage), timeSequence));
}
}
diff --git a/src/com/android/settings/gestures/AssistGesturePreferenceController.java b/src/com/android/settings/gestures/AssistGesturePreferenceController.java
index f0ba888..c858511 100644
--- a/src/com/android/settings/gestures/AssistGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/AssistGesturePreferenceController.java
@@ -35,7 +35,7 @@
implements OnPause, OnResume {
private static final String PREF_KEY_VIDEO = "gesture_assist_video";
- private static final String PREF_KEY_ASSIST_GESTURE = "gesture_assist";
+ private final String mAssistGesturePrefKey;
private final AssistGestureFeatureProvider mFeatureProvider;
private final SettingObserver mSettingObserver;
@@ -44,11 +44,12 @@
private PreferenceScreen mScreen;
private Preference mPreference;
- public AssistGesturePreferenceController(Context context, Lifecycle lifecycle) {
+ public AssistGesturePreferenceController(Context context, Lifecycle lifecycle, String key) {
super(context, lifecycle);
mFeatureProvider = FeatureFactory.getFactory(context).getAssistGestureFeatureProvider();
mSettingObserver = new SettingObserver();
mWasAvailable = isAvailable();
+ mAssistGesturePrefKey = key;
}
@Override
@@ -110,7 +111,7 @@
@Override
public String getPreferenceKey() {
- return PREF_KEY_ASSIST_GESTURE;
+ return mAssistGesturePrefKey;
}
@Override
diff --git a/src/com/android/settings/gestures/AssistGestureSettings.java b/src/com/android/settings/gestures/AssistGestureSettings.java
index 238b8b6..0c4f278 100644
--- a/src/com/android/settings/gestures/AssistGestureSettings.java
+++ b/src/com/android/settings/gestures/AssistGestureSettings.java
@@ -34,6 +34,8 @@
private static final String TAG = "AssistGesture";
+ private static final String KEY_ASSIST = "gesture_assist";
+
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.VIEW_UNKNOWN;
@@ -57,7 +59,7 @@
private static List<PreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
- controllers.add(new AssistGesturePreferenceController(context, lifecycle));
+ controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST));
controllers.add(new AssistGestureSensitivityPreferenceController(context, lifecycle));
return controllers;
}
diff --git a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
index d38902e..ba1d0f6 100644
--- a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
@@ -20,18 +20,16 @@
import android.provider.Settings;
import android.support.v7.preference.Preference;
-import android.util.ArrayMap;
import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
public class DoubleTapPowerPreferenceController extends GesturePreferenceController {
private static final String PREF_KEY_VIDEO = "gesture_double_tap_power_video";
- private static final String PREF_KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power";
+ private final String mDoubleTapPowerKey;
- public DoubleTapPowerPreferenceController(Context context, Lifecycle lifecycle) {
+ public DoubleTapPowerPreferenceController(Context context, Lifecycle lifecycle, String key) {
super(context, lifecycle);
+ mDoubleTapPowerKey = key;
}
@Override
@@ -47,7 +45,7 @@
@Override
public String getPreferenceKey() {
- return PREF_KEY_DOUBLE_TAP_POWER;
+ return mDoubleTapPowerKey;
}
@Override
diff --git a/src/com/android/settings/gestures/DoubleTapPowerSettings.java b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
index 467cec8..a880c32 100644
--- a/src/com/android/settings/gestures/DoubleTapPowerSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
@@ -33,6 +33,7 @@
public class DoubleTapPowerSettings extends DashboardFragment {
private static final String TAG = "DoubleTapPower";
+ private static final String KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power";
@Override
public int getMetricsCategory() {
@@ -57,7 +58,8 @@
private static List<PreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
- controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle));
+ controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle,
+ KEY_DOUBLE_TAP_POWER));
return controllers;
}
diff --git a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
index 49e8f51..5f8dfb4 100644
--- a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
@@ -21,26 +21,24 @@
import android.provider.Settings;
import android.support.v7.preference.Preference;
-import android.util.ArrayMap;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
public class DoubleTapScreenPreferenceController extends GesturePreferenceController {
private static final String PREF_KEY_VIDEO = "gesture_double_tap_screen_video";
- private static final String PREF_KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen";
+ private final String mDoubleTapScreenPrefKey;
private final AmbientDisplayConfiguration mAmbientConfig;
@UserIdInt
private final int mUserId;
public DoubleTapScreenPreferenceController(Context context, Lifecycle lifecycle,
- AmbientDisplayConfiguration config, @UserIdInt int userId) {
+ AmbientDisplayConfiguration config, @UserIdInt int userId, String key) {
super(context, lifecycle);
mAmbientConfig = config;
mUserId = userId;
+ mDoubleTapScreenPrefKey = key;
}
@Override
@@ -50,7 +48,7 @@
@Override
public String getPreferenceKey() {
- return PREF_KEY_DOUBLE_TAP_SCREEN;
+ return mDoubleTapScreenPrefKey;
}
@Override
diff --git a/src/com/android/settings/gestures/DoubleTapScreenSettings.java b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
index 887ac80..0804e7b 100644
--- a/src/com/android/settings/gestures/DoubleTapScreenSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
@@ -35,6 +35,7 @@
public class DoubleTapScreenSettings extends DashboardFragment {
private static final String TAG = "DoubleTapScreen";
+ private static final String KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen";
@Override
public int getMetricsCategory() {
@@ -60,7 +61,8 @@
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
controllers.add(new DoubleTapScreenPreferenceController(context, lifecycle,
- new AmbientDisplayConfiguration(context), UserHandle.myUserId()));
+ new AmbientDisplayConfiguration(context), UserHandle.myUserId(),
+ KEY_DOUBLE_TAP_SCREEN));
return controllers;
}
diff --git a/src/com/android/settings/gestures/DoubleTwistGestureSettings.java b/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
index 46a8cbb..cf5cfab 100644
--- a/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
+++ b/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
@@ -33,6 +33,7 @@
public class DoubleTwistGestureSettings extends DashboardFragment {
private static final String TAG = "DoubleTwistGesture";
+ private static final String KEY_DOUBLE_TWIST = "gesture_double_twist";
@Override
public int getMetricsCategory() {
@@ -57,7 +58,7 @@
private static List<PreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
- controllers.add(new DoubleTwistPreferenceController(context, lifecycle));
+ controllers.add(new DoubleTwistPreferenceController(context, lifecycle, KEY_DOUBLE_TWIST));
return controllers;
}
diff --git a/src/com/android/settings/gestures/DoubleTwistPreferenceController.java b/src/com/android/settings/gestures/DoubleTwistPreferenceController.java
index c5174fd..f1c7455 100644
--- a/src/com/android/settings/gestures/DoubleTwistPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTwistPreferenceController.java
@@ -24,19 +24,17 @@
import android.support.v7.preference.Preference;
import android.text.TextUtils;
-import android.util.ArrayMap;
import com.android.settings.R;
import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
public class DoubleTwistPreferenceController extends GesturePreferenceController {
private static final String PREF_KEY_VIDEO = "gesture_double_twist_video";
- private static final String PREF_KEY_DOUBLE_TWIST = "gesture_double_twist";
+ private final String mDoubleTwistPrefKey;
- public DoubleTwistPreferenceController(Context context, Lifecycle lifecycle) {
+ public DoubleTwistPreferenceController(Context context, Lifecycle lifecycle, String key) {
super(context, lifecycle);
+ mDoubleTwistPrefKey = key;
}
@Override
@@ -52,7 +50,7 @@
@Override
public String getPreferenceKey() {
- return PREF_KEY_DOUBLE_TWIST;
+ return mDoubleTwistPrefKey;
}
@Override
diff --git a/src/com/android/settings/gestures/PickupGesturePreferenceController.java b/src/com/android/settings/gestures/PickupGesturePreferenceController.java
index ce20f15..c0e6009 100644
--- a/src/com/android/settings/gestures/PickupGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/PickupGesturePreferenceController.java
@@ -21,26 +21,24 @@
import android.provider.Settings;
import android.support.v7.preference.Preference;
-import android.util.ArrayMap;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
public class PickupGesturePreferenceController extends GesturePreferenceController {
private static final String PREF_VIDEO_KEY = "gesture_pick_up_video";
- private static final String PREF_KEY_PICK_UP = "gesture_pick_up";
+ private final String mPickUpPrefKey;
private final AmbientDisplayConfiguration mAmbientConfig;
@UserIdInt
private final int mUserId;
public PickupGesturePreferenceController(Context context, Lifecycle lifecycle,
- AmbientDisplayConfiguration config, @UserIdInt int userId) {
+ AmbientDisplayConfiguration config, @UserIdInt int userId, String key) {
super(context, lifecycle);
mAmbientConfig = config;
mUserId = userId;
+ mPickUpPrefKey = key;
}
@Override
@@ -60,7 +58,7 @@
@Override
public String getPreferenceKey() {
- return PREF_KEY_PICK_UP;
+ return mPickUpPrefKey;
}
@Override
diff --git a/src/com/android/settings/gestures/PickupGestureSettings.java b/src/com/android/settings/gestures/PickupGestureSettings.java
index 0fe6097..874f690 100644
--- a/src/com/android/settings/gestures/PickupGestureSettings.java
+++ b/src/com/android/settings/gestures/PickupGestureSettings.java
@@ -35,6 +35,7 @@
public class PickupGestureSettings extends DashboardFragment {
private static final String TAG = "PickupGestureSettings";
+ private static final String KEY_PICK_UP = "gesture_pick_up";
@Override
public int getMetricsCategory() {
@@ -60,7 +61,7 @@
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
controllers.add(new PickupGesturePreferenceController(context, lifecycle,
- new AmbientDisplayConfiguration(context), UserHandle.myUserId()));
+ new AmbientDisplayConfiguration(context), UserHandle.myUserId(), KEY_PICK_UP));
return controllers;
}
diff --git a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
index 22b88fc..2a62674 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
@@ -20,23 +20,22 @@
import android.provider.Settings;
import android.support.v7.preference.Preference;
-import android.util.ArrayMap;
import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
public class SwipeToNotificationPreferenceController extends GesturePreferenceController {
private static final String PREF_KEY_VIDEO = "gesture_swipe_down_fingerprint_video";
- private static final String PREF_KEY_SWIPE_DOWN_FINGERPRINT = "gesture_swipe_down_fingerprint";
+ private final String mSwipeDownFingerPrefKey;
- public SwipeToNotificationPreferenceController(Context context, Lifecycle lifecycle) {
+ public SwipeToNotificationPreferenceController(Context context, Lifecycle lifecycle,
+ String key) {
super(context, lifecycle);
+ mSwipeDownFingerPrefKey = key;
}
@Override
public String getPreferenceKey() {
- return PREF_KEY_SWIPE_DOWN_FINGERPRINT;
+ return mSwipeDownFingerPrefKey;
}
@Override
diff --git a/src/com/android/settings/gestures/SwipeToNotificationSettings.java b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
index 6c136c2..f19565a 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationSettings.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
@@ -34,6 +34,8 @@
private static final String TAG = "SwipeToNotifSettings";
+ private static final String KEY = "gesture_swipe_down_fingerprint";
+
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.SETTINGS_GESTURE_SWIPE_TO_NOTIFICATION;
@@ -57,7 +59,7 @@
private static List<PreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
- controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle));
+ controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle, KEY));
return controllers;
}
diff --git a/src/com/android/settings/language/LanguageAndInputSettings.java b/src/com/android/settings/language/LanguageAndInputSettings.java
index 1999970..1c4d642 100644
--- a/src/com/android/settings/language/LanguageAndInputSettings.java
+++ b/src/com/android/settings/language/LanguageAndInputSettings.java
@@ -58,6 +58,14 @@
private static final String TAG = "LangAndInputSettings";
+ private static final String KEY_TEXT_TO_SPEECH = "tts_settings_summary";
+ private static final String KEY_ASSIST = "gesture_assist_input_summary";
+ private static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint_input_summary";
+ private static final String KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power_input_summary";
+ private static final String KEY_DOUBLE_TWIST = "gesture_double_twist_input_summary";
+ private static final String KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen_input_summary";
+ private static final String KEY_PICK_UP = "gesture_pick_up_input_summary";
+
private AmbientDisplayConfiguration mAmbientDisplayConfig;
@Override
@@ -110,14 +118,16 @@
controllers.add(gameControllerPreferenceController);
// Gestures
- controllers.add(new AssistGesturePreferenceController(context, lifecycle));
- controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle));
- controllers.add(new DoubleTwistPreferenceController(context, lifecycle));
- controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle));
- controllers.add(new PickupGesturePreferenceController(
- context, lifecycle, ambientDisplayConfiguration, UserHandle.myUserId()));
- controllers.add(new DoubleTapScreenPreferenceController(
- context, lifecycle, ambientDisplayConfiguration, UserHandle.myUserId()));
+ controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST));
+ controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle,
+ KEY_SWIPE_DOWN));
+ controllers.add(new DoubleTwistPreferenceController(context, lifecycle, KEY_DOUBLE_TWIST));
+ controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle,
+ KEY_DOUBLE_TAP_POWER));
+ controllers.add(new PickupGesturePreferenceController(context, lifecycle,
+ ambientDisplayConfiguration, UserHandle.myUserId(), KEY_PICK_UP));
+ controllers.add(new DoubleTapScreenPreferenceController(context, lifecycle,
+ ambientDisplayConfiguration, UserHandle.myUserId(), KEY_DOUBLE_TAP_SCREEN));
controllers.add(new DefaultAutofillPreferenceController(context));
return controllers;
}
@@ -179,5 +189,20 @@
return buildPreferenceControllers(context, null,
new AmbientDisplayConfiguration(context));
}
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ List<String> keys = super.getNonIndexableKeys(context);
+ // Duplicates in summary and details pages.
+ keys.add(KEY_TEXT_TO_SPEECH);
+ keys.add(KEY_ASSIST);
+ keys.add(KEY_SWIPE_DOWN);
+ keys.add(KEY_DOUBLE_TAP_POWER);
+ keys.add(KEY_DOUBLE_TWIST);
+ keys.add(KEY_DOUBLE_TAP_SCREEN);
+ keys.add(KEY_PICK_UP);
+
+ return keys;
+ }
};
}
diff --git a/src/com/android/settings/language/TtsPreferenceController.java b/src/com/android/settings/language/TtsPreferenceController.java
index 0d1c753..a734e4b 100644
--- a/src/com/android/settings/language/TtsPreferenceController.java
+++ b/src/com/android/settings/language/TtsPreferenceController.java
@@ -23,7 +23,8 @@
public class TtsPreferenceController extends PreferenceController {
- private static final String KEY_TTS_SETTINGS = "tts_settings";
+ private static final String KEY_VOICE_CATEGORY = "voice_category";
+ private static final String KEY_TTS_SETTINGS = "tts_settings_summary";
private final TtsEngines mTtsEngines;
diff --git a/src/com/android/settings/network/TetherPreferenceController.java b/src/com/android/settings/network/TetherPreferenceController.java
index 19a22ba..fab700b 100644
--- a/src/com/android/settings/network/TetherPreferenceController.java
+++ b/src/com/android/settings/network/TetherPreferenceController.java
@@ -18,7 +18,10 @@
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothPan;
import android.bluetooth.BluetoothProfile;
+import android.content.BroadcastReceiver;
import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.database.ContentObserver;
import android.net.ConnectivityManager;
import android.net.Uri;
@@ -67,6 +70,7 @@
private SettingObserver mAirplaneModeObserver;
private Preference mPreference;
+ private TetherBroadcastReceiver mTetherReceiver;
@VisibleForTesting(otherwise = VisibleForTesting.NONE)
TetherPreferenceController() {
@@ -131,6 +135,11 @@
if (mAirplaneModeObserver == null) {
mAirplaneModeObserver = new SettingObserver();
}
+ if (mTetherReceiver == null) {
+ mTetherReceiver = new TetherBroadcastReceiver();
+ }
+ mContext.registerReceiver(
+ mTetherReceiver, new IntentFilter(ConnectivityManager.ACTION_TETHER_STATE_CHANGED));
mContext.getContentResolver()
.registerContentObserver(mAirplaneModeObserver.uri, false, mAirplaneModeObserver);
}
@@ -140,6 +149,9 @@
if (mAirplaneModeObserver != null) {
mContext.getContentResolver().unregisterContentObserver(mAirplaneModeObserver);
}
+ if (mTetherReceiver != null) {
+ mContext.unregisterReceiver(mTetherReceiver);
+ }
}
@Override
@@ -238,4 +250,14 @@
}
}
}
+
+ @VisibleForTesting
+ class TetherBroadcastReceiver extends BroadcastReceiver {
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ updateSummary();
+ }
+
+ }
}
diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java
index 2035cd2..efcb5a1 100644
--- a/src/com/android/settings/notification/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/AppNotificationSettings.java
@@ -203,7 +203,8 @@
final NotificationChannel channel) {
MasterSwitchPreference channelPref = new MasterSwitchPreference(
getPrefContext());
- channelPref.setSwitchEnabled(mSuspendedAppsAdmin == null && !mAppRow.systemApp);
+ channelPref.setSwitchEnabled(mSuspendedAppsAdmin == null
+ && isChannelBlockable(mAppRow.systemApp, channel));
channelPref.setKey(channel.getId());
channelPref.setTitle(channel.getName());
channelPref.setChecked(channel.getImportance() != IMPORTANCE_NONE);
diff --git a/src/com/android/settings/notification/ChannelNotificationSettings.java b/src/com/android/settings/notification/ChannelNotificationSettings.java
index 27e60c7..8c43a3f 100644
--- a/src/com/android/settings/notification/ChannelNotificationSettings.java
+++ b/src/com/android/settings/notification/ChannelNotificationSettings.java
@@ -232,7 +232,7 @@
mBlockBar.setKey(KEY_BLOCK);
getPreferenceScreen().addPreference(mBlockBar);
- if (mAppRow.systemApp && mChannel.getImportance() != NotificationManager.IMPORTANCE_NONE) {
+ if (!isChannelBlockable(mAppRow.systemApp, mChannel)) {
setVisible(mBlockBar, false);
}
diff --git a/src/com/android/settings/notification/ConfigureNotificationSettings.java b/src/com/android/settings/notification/ConfigureNotificationSettings.java
index a1c5263..a06d069 100644
--- a/src/com/android/settings/notification/ConfigureNotificationSettings.java
+++ b/src/com/android/settings/notification/ConfigureNotificationSettings.java
@@ -35,6 +35,8 @@
public class ConfigureNotificationSettings extends DashboardFragment {
private static final String TAG = "ConfigNotiSettings";
+ private static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint_notifications";
+
@Override
public int getMetricsCategory() {
return MetricsEvent.CONFIGURE_NOTIFICATION;
@@ -63,12 +65,16 @@
final PulseNotificationPreferenceController pulseController =
new PulseNotificationPreferenceController(context);
final LockScreenNotificationPreferenceController lockScreenNotificationController =
- new LockScreenNotificationPreferenceController(context);
+ new LockScreenNotificationPreferenceController(context,
+ "lock_screen_notifications",
+ "lock_screen_notifications_profile_header",
+ "lock_screen_notifications_profile");
if (lifecycle != null) {
lifecycle.addObserver(pulseController);
lifecycle.addObserver(lockScreenNotificationController);
}
- controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle));
+ controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle,
+ KEY_SWIPE_DOWN));
controllers.add(badgeController);
controllers.add(pulseController);
controllers.add(lockScreenNotificationController);
diff --git a/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java b/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
index 73469b0..1f0c4a8 100644
--- a/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
@@ -26,6 +26,7 @@
import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
+import android.text.TextUtils;
import android.util.Log;
import com.android.internal.widget.LockPatternUtils;
@@ -46,11 +47,10 @@
Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause {
private static final String TAG = "LockScreenNotifPref";
- private static final String KEY_LOCK_SCREEN_NOTIFICATIONS = "lock_screen_notifications";
- private static final String KEY_LOCK_SCREEN_PROFILE_HEADER =
- "lock_screen_notifications_profile_header";
- private static final String KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS =
- "lock_screen_notifications_profile";
+
+ private final String mSettingKey;
+ private final String mWorkSettingCategoryKey;
+ private final String mWorkSettingKey;
private RestrictedDropDownPreference mLockscreen;
private RestrictedDropDownPreference mLockscreenProfile;
@@ -64,7 +64,16 @@
private int mLockscreenSelectedValueProfile;
public LockScreenNotificationPreferenceController(Context context) {
+ this(context, null, null, null);
+ }
+
+ public LockScreenNotificationPreferenceController(Context context,
+ String settingKey, String workSettingCategoryKey, String workSettingKey) {
super(context);
+ mSettingKey = settingKey;
+ mWorkSettingCategoryKey = workSettingCategoryKey;
+ mWorkSettingKey = workSettingKey;
+
mProfileChallengeUserId = Utils.getManagedProfileId(
UserManager.get(context), UserHandle.myUserId());
final LockPatternUtils utils = new LockPatternUtils(context);
@@ -79,17 +88,17 @@
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mLockscreen =
- (RestrictedDropDownPreference) screen.findPreference(KEY_LOCK_SCREEN_NOTIFICATIONS);
+ (RestrictedDropDownPreference) screen.findPreference(mSettingKey);
if (mLockscreen == null) {
- Log.i(TAG, "Preference not found: " + KEY_LOCK_SCREEN_NOTIFICATIONS);
+ Log.i(TAG, "Preference not found: " + mSettingKey);
return;
}
if (mProfileChallengeUserId != UserHandle.USER_NULL) {
mLockscreenProfile = (RestrictedDropDownPreference) screen.findPreference(
- KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS);
+ mWorkSettingKey);
} else {
- removePreference(screen, KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS);
- removePreference(screen, KEY_LOCK_SCREEN_PROFILE_HEADER);
+ removePreference(screen, mWorkSettingKey);
+ removePreference(screen, mWorkSettingCategoryKey);
}
mSettingObserver = new SettingObserver();
initLockScreenNotificationPrefDisplay();
@@ -136,7 +145,7 @@
private void initLockscreenNotificationPrefForProfile() {
if (mLockscreenProfile == null) {
- Log.i(TAG, "Preference not found: " + KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS);
+ Log.i(TAG, "Preference not found: " + mWorkSettingKey);
return;
}
ArrayList<CharSequence> entries = new ArrayList<>();
@@ -205,8 +214,8 @@
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
- switch (preference.getKey()) {
- case KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS: {
+ final String key = preference.getKey();
+ if (TextUtils.equals(mWorkSettingKey, key)) {
final int val = Integer.parseInt((String) newValue);
if (val == mLockscreenSelectedValueProfile) {
return false;
@@ -223,8 +232,7 @@
enabled ? 1 : 0, mProfileChallengeUserId);
mLockscreenSelectedValueProfile = val;
return true;
- }
- case KEY_LOCK_SCREEN_NOTIFICATIONS: {
+ } else if (TextUtils.equals(mSettingKey, key)) {
final int val = Integer.parseInt((String) newValue);
if (val == mLockscreenSelectedValue) {
return false;
@@ -238,10 +246,8 @@
Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, enabled ? 1 : 0);
mLockscreenSelectedValue = val;
return true;
- }
- default:
- return false;
}
+ return false;
}
private void setRestrictedIfNotificationFeaturesDisabled(CharSequence entry,
@@ -295,6 +301,7 @@
final boolean enabled = getLockscreenNotificationsEnabled(mProfileChallengeUserId);
final boolean allowPrivate = !mSecureProfile
|| getLockscreenAllowPrivateNotifications(mProfileChallengeUserId);
+ mLockscreenProfile.setSummary("%s");
mLockscreenSelectedValueProfile = !enabled
? R.string.lock_screen_notifications_summary_disable_profile
: (allowPrivate ? R.string.lock_screen_notifications_summary_show_profile
diff --git a/src/com/android/settings/notification/NotificationSettingsBase.java b/src/com/android/settings/notification/NotificationSettingsBase.java
index 695c796..bfa9355 100644
--- a/src/com/android/settings/notification/NotificationSettingsBase.java
+++ b/src/com/android/settings/notification/NotificationSettingsBase.java
@@ -443,4 +443,12 @@
return lockscreenSecure;
}
+
+ protected boolean isChannelBlockable(boolean systemApp, NotificationChannel channel) {
+ if (!mAppRow.systemApp) {
+ return true;
+ }
+ return channel.isBlockableSystem()
+ || channel.getImportance() == NotificationManager.IMPORTANCE_NONE;
+ }
}
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index a92c5dd..ec7351a 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -43,6 +43,7 @@
public class SoundSettings extends DashboardFragment {
private static final String TAG = "SoundSettings";
+ private static final String KEY_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
private static final String SELECTED_PREFERENCE_KEY = "selected_preference";
private static final int REQUEST_CODE = 200;
@@ -187,7 +188,7 @@
final List<PreferenceController> controllers = new ArrayList<>();
controllers.add(new ZenModePreferenceController(context));
controllers.add(new EmergencyBroadcastPreferenceController(
- context, "cell_broadcast_settings"));
+ context, KEY_CELL_BROADCAST_SETTINGS));
controllers.add(new VibrateWhenRingPreferenceController(context));
// === Volumes ===
@@ -236,6 +237,16 @@
return buildPreferenceControllers(context, null /* fragment */,
null /* callback */, null /* lifecycle */);
}
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ List<String> keys = super.getNonIndexableKeys(context);
+ // Duplicate results
+ keys.add((new ZenModePreferenceController(context)).getPreferenceKey());
+ keys.add(ZenModeSettings.KEY_VISUAL_SETTINGS);
+ keys.add(KEY_CELL_BROADCAST_SETTINGS);
+ return keys;
+ }
};
// === Work Sound Settings ===
diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java
index bbcaa9c..854857a 100644
--- a/src/com/android/settings/notification/ZenModeSettings.java
+++ b/src/com/android/settings/notification/ZenModeSettings.java
@@ -53,8 +53,10 @@
import java.util.Map.Entry;
public class ZenModeSettings extends ZenModeSettingsBase {
+
+ public static final String KEY_VISUAL_SETTINGS = "visual_interruptions_settings";
+
private static final String KEY_PRIORITY_SETTINGS = "priority_settings";
- private static final String KEY_VISUAL_SETTINGS = "visual_interruptions_settings";
private static final String KEY_AUTOMATIC_RULES = "automatic_rules";
static final ManagedServiceSettings.Config CONFIG = getConditionProviderConfig();
diff --git a/src/com/android/settings/search/BaseSearchIndexProvider.java b/src/com/android/settings/search/BaseSearchIndexProvider.java
index 8732227..f5e06ca 100644
--- a/src/com/android/settings/search/BaseSearchIndexProvider.java
+++ b/src/com/android/settings/search/BaseSearchIndexProvider.java
@@ -72,7 +72,7 @@
}
return nonIndexableKeys;
} else {
- return EMPTY_LIST;
+ return new ArrayList<>();
}
}
diff --git a/src/com/android/settings/security/LockscreenDashboardFragment.java b/src/com/android/settings/security/LockscreenDashboardFragment.java
index b781fbb..3137863 100644
--- a/src/com/android/settings/security/LockscreenDashboardFragment.java
+++ b/src/com/android/settings/security/LockscreenDashboardFragment.java
@@ -18,6 +18,8 @@
import android.content.Context;
import android.provider.SearchIndexableResource;
+import android.support.annotation.VisibleForTesting;
+
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.accounts.AddUserWhenLockedPreferenceController;
@@ -26,6 +28,7 @@
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.notification.LockScreenNotificationPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -38,6 +41,15 @@
private static final String TAG = "LockscreenDashboardFragment";
+ @VisibleForTesting
+ static final String KEY_LOCK_SCREEN_NOTIFICATON = "security_setting_lock_screen_notif";
+ @VisibleForTesting
+ static final String KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE_HEADER =
+ "security_setting_lock_screen_notif_work_header";
+ @VisibleForTesting
+ static final String KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE =
+ "security_setting_lock_screen_notif_work";
+
private OwnerInfoPreferenceController mOwnerInfoPreferenceController;
@Override
@@ -60,7 +72,10 @@
final List<PreferenceController> controllers = new ArrayList<>();
final Lifecycle lifecycle = getLifecycle();
final LockScreenNotificationPreferenceController notificationController =
- new LockScreenNotificationPreferenceController(context);
+ new LockScreenNotificationPreferenceController(context,
+ KEY_LOCK_SCREEN_NOTIFICATON,
+ KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE_HEADER,
+ KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE);
lifecycle.addObserver(notificationController);
controllers.add(notificationController);
final AddUserWhenLockedPreferenceController addUserWhenLockedController =
diff --git a/src/com/android/settings/system/SystemDashboardFragment.java b/src/com/android/settings/system/SystemDashboardFragment.java
index 4c4ed21..1a5a182 100644
--- a/src/com/android/settings/system/SystemDashboardFragment.java
+++ b/src/com/android/settings/system/SystemDashboardFragment.java
@@ -37,6 +37,8 @@
private static final String TAG = "SystemDashboardFrag";
+ private static final String KEY_RESET = "reset_dashboard";
+
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.SETTINGS_SYSTEM_CATEGORY;
@@ -82,5 +84,14 @@
public List<PreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context);
}
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ List<String> keys = super.getNonIndexableKeys(context);
+ keys.add((new BackupSettingsActivityPreferenceController(context)
+ .getPreferenceKey()));
+ keys.add(KEY_RESET);
+ return keys;
+ }
};
}
diff --git a/src/com/android/settings/widget/DonutView.java b/src/com/android/settings/widget/DonutView.java
index 0feaa07..7a13a0e 100644
--- a/src/com/android/settings/widget/DonutView.java
+++ b/src/com/android/settings/widget/DonutView.java
@@ -17,12 +17,14 @@
import android.content.Context;
import android.graphics.Canvas;
+import android.graphics.ColorFilter;
import android.graphics.Paint;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffColorFilter;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.view.View;
-import com.android.internal.util.Preconditions;
import com.android.settings.R;
import com.android.settings.Utils;
@@ -50,20 +52,26 @@
super(context, attrs);
mDeviceDensity = getResources().getDisplayMetrics().density;
mStrokeWidth = 6f * mDeviceDensity;
+ final ColorFilter mAccentColorFilter =
+ new PorterDuffColorFilter(
+ Utils.getColorAttr(context, android.R.attr.colorAccent),
+ PorterDuff.Mode.SRC_IN);
mBackgroundCircle = new Paint();
mBackgroundCircle.setAntiAlias(true);
mBackgroundCircle.setStrokeCap(Paint.Cap.BUTT);
mBackgroundCircle.setStyle(Paint.Style.STROKE);
mBackgroundCircle.setStrokeWidth(mStrokeWidth);
- mBackgroundCircle.setColor(getResources().getColor(R.color.donut_background_grey));
+ mBackgroundCircle.setColorFilter(mAccentColorFilter);
+ mBackgroundCircle.setColor(context.getColor(R.color.meter_background_color));
mFilledArc = new Paint();
mFilledArc.setAntiAlias(true);
mFilledArc.setStrokeCap(Paint.Cap.BUTT);
mFilledArc.setStyle(Paint.Style.STROKE);
mFilledArc.setStrokeWidth(mStrokeWidth);
- mFilledArc.setColor(Utils.getColorAccent(getContext()));
+ mFilledArc.setColor(Utils.getDefaultColor(mContext, R.color.meter_consumed_color));
+ mFilledArc.setColorFilter(mAccentColorFilter);
mTextPaint = new TextPaint();
mTextPaint.setColor(Utils.getColorAccent(getContext()));
@@ -86,11 +94,25 @@
}
private void drawDonut(Canvas canvas) {
- canvas.drawArc(0 + mStrokeWidth, 0 + mStrokeWidth, getWidth() - mStrokeWidth,
- getHeight() - mStrokeWidth, TOP, 360, false, mBackgroundCircle);
+ canvas.drawArc(
+ 0 + mStrokeWidth,
+ 0 + mStrokeWidth,
+ getWidth() - mStrokeWidth,
+ getHeight() - mStrokeWidth,
+ TOP,
+ 360,
+ false,
+ mBackgroundCircle);
- canvas.drawArc(0 + mStrokeWidth, 0 + mStrokeWidth, getWidth() - mStrokeWidth,
- getHeight() - mStrokeWidth, TOP, (360 * mPercent / 100), false, mFilledArc);
+ canvas.drawArc(
+ 0 + mStrokeWidth,
+ 0 + mStrokeWidth,
+ getWidth() - mStrokeWidth,
+ getHeight() - mStrokeWidth,
+ TOP,
+ (360 * mPercent / 100),
+ false,
+ mFilledArc);
}
private void drawInnerText(Canvas canvas) {
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index dd1e4a4..a5d922d 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -225,7 +225,7 @@
mButtonsPref = (LayoutPreference) screen.findPreference(KEY_BUTTONS_PREF);
mSignInButton = (Button) mButtonsPref.findViewById(R.id.right_button);
- mSignInButton.setText(com.android.internal.R.string.network_available_sign_in);
+ mSignInButton.setText(R.string.support_sign_in_button_text);
mSignInButton.setOnClickListener(
view -> mConnectivityManagerWrapper.startCaptivePortalApp(mNetwork));
diff --git a/tests/robotests/assets/whitelist_duplicate_index_key b/tests/robotests/assets/whitelist_duplicate_index_key
index 5b5153c..020957e 100644
--- a/tests/robotests/assets/whitelist_duplicate_index_key
+++ b/tests/robotests/assets/whitelist_duplicate_index_key
@@ -1,12 +1,5 @@
add_users_when_locked
additional_system_update_settings
dashboard_tile_placeholder
-gesture_assist
-gesture_double_tap_power
-gesture_double_tap_screen
-gesture_double_twist
-gesture_pick_up
-gesture_swipe_down_fingerprint
-lock_screen_notifications
screen_zoom
usage_access
\ No newline at end of file
diff --git a/tests/robotests/src/android/bluetooth/BluetoothCodecConfig.java b/tests/robotests/src/android/bluetooth/BluetoothCodecConfig.java
new file mode 100644
index 0000000..40b76df
--- /dev/null
+++ b/tests/robotests/src/android/bluetooth/BluetoothCodecConfig.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2017 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 android.bluetooth;
+
+/**
+ * A placeholder class to prevent ClassNotFound exceptions caused by lack of visibility.
+ */
+public class BluetoothCodecConfig {
+}
diff --git a/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java b/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java
index c43ad3c..c64e582 100644
--- a/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java
@@ -28,6 +28,8 @@
import android.support.v7.preference.PreferenceScreen;
import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.testutils.XmlTestUtils;
+import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settingslib.DeviceInfoUtils;
import org.junit.Before;
@@ -36,8 +38,11 @@
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import java.util.List;
+
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DeviceInfoSettingsTest {
@@ -75,4 +80,17 @@
verify(mSummaryLoader).setSummary(mProvider, Build.MODEL + DeviceInfoUtils.getMsvSuffix());
}
+
+ @Test
+ @Config(shadows = ShadowUtils.class)
+ public void testNonIndexableKeys_existInXmlLayout() {
+ final Context context = RuntimeEnvironment.application;
+ final List<String> niks = DeviceInfoSettings.SEARCH_INDEX_DATA_PROVIDER
+ .getNonIndexableKeys(context);
+ final int xmlId = (new DeviceInfoSettings()).getPreferenceScreenResId();
+
+ final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
+
+ assertThat(keys).containsAllIn(niks);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/DisplaySettingsTest.java b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
new file mode 100644
index 0000000..f0c87cf
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
@@ -0,0 +1,36 @@
+package com.android.settings;
+
+import android.content.Context;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.testutils.XmlTestUtils;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DisplaySettingsTest {
+
+ @Test
+ public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() {
+ final Context context = RuntimeEnvironment.application;
+ final DisplaySettings fragment = new DisplaySettings();
+ final List<String> preferenceScreenKeys = XmlTestUtils.getKeysFromPreferenceXml(context,
+ fragment.getPreferenceScreenResId());
+ final List<String> preferenceKeys = new ArrayList<>();
+
+ for (PreferenceController controller : fragment.getPreferenceControllers(context)) {
+ preferenceKeys.add(controller.getPreferenceKey());
+ }
+ // Nightmode is currently hidden
+ preferenceKeys.remove("night_mode");
+
+ assertThat(preferenceScreenKeys).containsAllIn(preferenceKeys);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/LegalSettingsTest.java b/tests/robotests/src/com/android/settings/LegalSettingsTest.java
new file mode 100644
index 0000000..6cfe211
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/LegalSettingsTest.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2017 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.settings;
+
+import android.content.Context;
+
+import com.android.settings.testutils.XmlTestUtils;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.spy;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class LegalSettingsTest {
+
+ @Test
+ public void testNonIndexableKeys_existInXmlLayout() {
+ final Context context = RuntimeEnvironment.application;
+ final List<String> niks = LegalSettings.SEARCH_INDEX_DATA_PROVIDER
+ .getNonIndexableKeys(context);
+
+ final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context,
+ R.xml.about_legal);
+
+ assertThat(keys).containsAllIn(niks);
+ }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/SecuritySettingsTest.java b/tests/robotests/src/com/android/settings/SecuritySettingsTest.java
index c636748..e28a594 100644
--- a/tests/robotests/src/com/android/settings/SecuritySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/SecuritySettingsTest.java
@@ -21,8 +21,7 @@
import android.content.IContentProvider;
import android.content.pm.PackageManager;
import android.hardware.fingerprint.FingerprintManager;
-import android.os.Bundle;
-import android.provider.Settings;
+import android.os.UserManager;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceScreen;
@@ -31,33 +30,30 @@
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.notification.LockScreenNotificationPreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.shadow.ShadowSecureSettings;
+import com.android.settings.testutils.XmlTestUtils;
+import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
import com.android.settingslib.drawer.DashboardCategory;
-import com.android.settingslib.drawer.Tile;
-import com.android.settingslib.drawer.TileUtils;
-
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
+import java.util.List;
import java.util.Map;
-import org.robolectric.util.ReflectionHelpers;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.isNull;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
@@ -182,4 +178,26 @@
securitySettings.setLockscreenPreferencesSummary(group);
verify(preference).setSummary(1234);
}
+
+ @Test
+ @Config (shadows = {
+ ShadowLockPatternUtils.class,
+ })
+ public void testNonIndexableKeys_existInXmlLayout() {
+ final Context context = spy(RuntimeEnvironment.application);
+ UserManager manager = mock(UserManager.class);
+ when(manager.isAdminUser()).thenReturn(false);
+ doReturn(manager).when(context).getSystemService(Context.USER_SERVICE);
+ final List<String> niks = SecuritySettings.SEARCH_INDEX_DATA_PROVIDER
+ .getNonIndexableKeys(context);
+
+ final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context,
+ R.xml.security_settings_misc);
+ keys.addAll(XmlTestUtils.getKeysFromPreferenceXml(context,
+ R.xml.location_settings));
+ keys.addAll(XmlTestUtils.getKeysFromPreferenceXml(context,
+ R.xml.encryption_and_credential));
+
+ assertThat(keys).containsAllIn(niks);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java
new file mode 100644
index 0000000..cd48da3
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2017 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.settings;
+
+
+import android.content.Context;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceCategory;
+import android.support.v7.preference.PreferenceManager;
+import android.support.v7.preference.PreferenceScreen;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class SettingsPreferenceFragmentTest {
+
+ @Mock
+ private PreferenceManager mPreferenceManager;
+ private Context mContext;
+ private TestFragment mFragment;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ mFragment = new TestFragment();
+ }
+
+ @Test
+ public void removePreference_nested_shouldRemove() {
+ final String key = "test_key";
+ final PreferenceScreen mScreen = spy(new PreferenceScreen(mContext, null));
+ when(mScreen.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
+
+ final PreferenceCategory nestedCategory = new ProgressCategory(mContext);
+ final Preference preference = new Preference(mContext);
+ preference.setKey(key);
+ preference.setPersistent(false);
+
+ mScreen.addPreference(nestedCategory);
+ nestedCategory.addPreference(preference);
+
+ assertThat(mFragment.removePreference(mScreen, key)).isTrue();
+ assertThat(nestedCategory.getPreferenceCount()).isEqualTo(0);
+ }
+
+ @Test
+ public void removePreference_flat_shouldRemove() {
+ final String key = "test_key";
+ final PreferenceScreen mScreen = spy(new PreferenceScreen(mContext, null));
+ when(mScreen.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
+
+ final Preference preference = mock(Preference.class);
+ when(preference.getKey()).thenReturn(key);
+
+ mScreen.addPreference(preference);
+
+ assertThat(mFragment.removePreference(mScreen, key)).isTrue();
+ assertThat(mScreen.getPreferenceCount()).isEqualTo(0);
+ }
+
+ @Test
+ public void removePreference_doNotExist_shouldNotRemove() {
+ final String key = "test_key";
+ final PreferenceScreen mScreen = spy(new PreferenceScreen(mContext, null));
+ when(mScreen.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
+
+ final Preference preference = mock(Preference.class);
+ when(preference.getKey()).thenReturn(key);
+
+ mScreen.addPreference(preference);
+
+ assertThat(mFragment.removePreference(mScreen, "not" + key)).isFalse();
+ assertThat(mScreen.getPreferenceCount()).isEqualTo(1);
+ }
+
+ public static final class TestFragment extends SettingsPreferenceFragment {
+
+ @Override
+ public int getMetricsCategory() {
+ return 0;
+ }
+ }
+
+
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
index 17f1ab4..f1ad142 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
@@ -26,8 +26,8 @@
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceManager;
import android.support.v7.preference.PreferenceScreen;
-
import android.text.TextUtils;
+
import com.android.settings.AccessiblePreferenceCategory;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
@@ -92,7 +92,7 @@
when(mFragment.getPreferenceScreen()).thenReturn(mScreen);
when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(
- new AuthenticatorDescription[0]);
+ new AuthenticatorDescription[0]);
when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(new Account[0]);
mController = new AccountPreferenceController(mContext, mFragment, null, mAccountHelper);
}
@@ -367,6 +367,51 @@
@Test
@Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
+ public void onResume_twoAccountsOfSameName_shouldAddFivePreferences() {
+ final List<UserInfo> infos = new ArrayList<>();
+ infos.add(new UserInfo(1, "user 1", 0));
+ when(mUserManager.isManagedProfile()).thenReturn(false);
+ when(mUserManager.isLinkedUser()).thenReturn(false);
+ when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
+
+ final Account[] accountType1 = new Account[2];
+ accountType1[0] = new Account("Account1", "com.acct1");
+ accountType1[1] = new Account("Account2", "com.acct1");
+ final Account[] accountType2 = new Account[2];
+ accountType2[0] = new Account("Account1", "com.acct2");
+ accountType2[1] = new Account("Account2", "com.acct2");
+ final Account[] allAccounts = new Account[4];
+ allAccounts[0] = accountType1[0];
+ allAccounts[1] = accountType1[1];
+ allAccounts[2] = accountType2[0];
+ allAccounts[3] = accountType2[1];
+ final AuthenticatorDescription[] authDescs = {
+ new AuthenticatorDescription("com.acct1", "com.android.settings",
+ R.string.account_settings_title, 0, 0, 0, false),
+ new AuthenticatorDescription("com.acct2", "com.android.settings",
+ R.string.account_settings_title, 0, 0, 0, false)
+ };
+
+ when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(allAccounts);
+ when(mAccountManager.getAccountsByTypeAsUser(eq("com.acct1"), any(UserHandle.class)))
+ .thenReturn(accountType1);
+ when(mAccountManager.getAccountsByTypeAsUser(eq("com.acct2"), any(UserHandle.class)))
+ .thenReturn(accountType2);
+ when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(authDescs);
+
+ AccessiblePreferenceCategory preferenceGroup = mock(AccessiblePreferenceCategory.class);
+ when(preferenceGroup.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
+ when(mAccountHelper.createAccessiblePreferenceCategory(any(Context.class))).thenReturn(
+ preferenceGroup);
+
+ mController.onResume();
+
+ // should add 4 individual account and the Add account preference
+ verify(preferenceGroup, times(5)).addPreference(any(Preference.class));
+ }
+
+ @Test
+ @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
public void onResume_noAccountChange_shouldNotAddAccountPreference() {
final List<UserInfo> infos = new ArrayList<>();
infos.add(new UserInfo(1, "user 1", 0));
diff --git a/tests/robotests/src/com/android/settings/applications/AdvancedAppSettingsTest.java b/tests/robotests/src/com/android/settings/applications/AdvancedAppSettingsTest.java
index bedb0a5..0c3c160 100644
--- a/tests/robotests/src/com/android/settings/applications/AdvancedAppSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AdvancedAppSettingsTest.java
@@ -26,6 +26,7 @@
import com.android.settings.applications.defaultapps.DefaultPhonePreferenceController;
import com.android.settings.applications.defaultapps.DefaultSmsPreferenceController;
import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.testutils.XmlTestUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -34,11 +35,14 @@
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
+import java.util.List;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -136,4 +140,16 @@
}
+
+ @Test
+ public void testNonIndexableKeys_existInXmlLayout() {
+ final Context context = spy(RuntimeEnvironment.application);
+ final List<String> niks = AdvancedAppSettings.SEARCH_INDEX_DATA_PROVIDER
+ .getNonIndexableKeys(context);
+ final int xmlId = (new AdvancedAppSettings()).getPreferenceScreenResId();
+
+ final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
+
+ assertThat(keys).containsAllIn(niks);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java b/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java
index 17910bf..f602236 100644
--- a/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java
@@ -18,7 +18,10 @@
import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyDouble;
+import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
@@ -45,10 +48,12 @@
import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatteryStatsHelper;
+import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.applications.instantapps.InstantAppButtonsController;
+import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.applications.AppUtils;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
@@ -65,12 +70,19 @@
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
+import java.util.ArrayList;
+import java.util.List;
+
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public final class InstalledAppDetailsTest {
private static final String PACKAGE_NAME = "test_package_name";
+ private static final int TARGET_UID = 111;
+ private static final int OTHER_UID = 222;
+ private static final double BATTERY_LEVEL = 60;
+ private static final String BATTERY_LEVEL_STRING = "60%";
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext;
@@ -83,18 +95,21 @@
@Mock
private DevicePolicyManager mDevicePolicyManager;
@Mock
- private Preference mBatteryPreference;
- @Mock
private BatterySipper mBatterySipper;
@Mock
+ private BatterySipper mOtherBatterySipper;
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private BatteryStatsHelper mBatteryStatsHelper;
@Mock
private BatteryStats.Uid mUid;
@Mock
private PackageManager mPackageManager;
+ @Mock
+ private BatteryUtils mBatteryUtils;
private InstalledAppDetails mAppDetail;
private Context mShadowContext;
+ private Preference mBatteryPreference;
@Before
public void setUp() {
@@ -102,9 +117,15 @@
mShadowContext = RuntimeEnvironment.application;
mAppDetail = spy(new InstalledAppDetails());
+ mAppDetail.mBatteryUtils = mBatteryUtils;
+
+ mBatteryPreference = new Preference(mShadowContext);
+ mAppDetail.mBatteryPreference = mBatteryPreference;
mBatterySipper.drainType = BatterySipper.DrainType.IDLE;
mBatterySipper.uidObj = mUid;
+ doReturn(TARGET_UID).when(mBatterySipper).getUid();
+ doReturn(OTHER_UID).when(mOtherBatterySipper).getUid();
doReturn(mActivity).when(mAppDetail).getActivity();
doReturn(mShadowContext).when(mAppDetail).getContext();
doReturn(mPackageManager).when(mActivity).getPackageManager();
@@ -388,4 +409,53 @@
verify(mActivity).invalidateOptionsMenu();
}
+
+ @Test
+ public void findTargetSipper_findCorrectSipper() {
+ List<BatterySipper> usageList = new ArrayList<>();
+ usageList.add(mBatterySipper);
+ usageList.add(mOtherBatterySipper);
+ doReturn(usageList).when(mBatteryStatsHelper).getUsageList();
+
+ assertThat(mAppDetail.findTargetSipper(mBatteryStatsHelper, TARGET_UID)).isEqualTo(
+ mBatterySipper);
+ }
+
+ @Test
+ public void updateBattery_noBatteryStats_summaryNo() {
+ doReturn(mShadowContext.getString(R.string.no_battery_summary)).when(mAppDetail).getString(
+ R.string.no_battery_summary);
+ mAppDetail.updateBattery();
+
+ assertThat(mBatteryPreference.getSummary()).isEqualTo(
+ "No battery use since last full charge");
+ }
+
+ @Test
+ public void updateBattery_hasBatteryStats_summaryPercent() {
+ mAppDetail.mBatteryHelper = mBatteryStatsHelper;
+ mAppDetail.mSipper = mBatterySipper;
+ doReturn(BATTERY_LEVEL).when(mBatteryUtils).calculateBatteryPercent(anyDouble(),
+ anyDouble(), anyDouble(), anyInt());
+ doReturn(mShadowContext.getString(R.string.battery_summary, BATTERY_LEVEL_STRING)).when(
+ mAppDetail).getString(R.string.battery_summary, BATTERY_LEVEL_STRING);
+ doReturn(new ArrayList<>()).when(mBatteryStatsHelper).getUsageList();
+
+ mAppDetail.updateBattery();
+
+ assertThat(mBatteryPreference.getSummary()).isEqualTo("60% use since last full charge");
+ }
+
+ @Test
+ public void isBatteryStatsAvailable_hasBatteryStatsHelperAndSipper_returnTrue() {
+ mAppDetail.mBatteryHelper = mBatteryStatsHelper;
+ mAppDetail.mSipper = mBatterySipper;
+
+ assertThat(mAppDetail.isBatteryStatsAvailable()).isTrue();
+ }
+
+ @Test
+ public void isBatteryStatsAvailable_parametersNull_returnFalse() {
+ assertThat(mAppDetail.isBatteryStatsAvailable()).isFalse();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/DeviceProfilesSettingsTest.java b/tests/robotests/src/com/android/settings/bluetooth/DeviceProfilesSettingsTest.java
new file mode 100644
index 0000000..c61823c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/DeviceProfilesSettingsTest.java
@@ -0,0 +1,206 @@
+/*
+ * Copyright (C) 2017 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.settings.bluetooth;
+
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.CheckBox;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.shadow.ShadowEventLogWriter;
+import com.android.settingslib.R;
+import com.android.settingslib.bluetooth.A2dpProfile;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
+import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfile;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+import org.robolectric.util.FragmentTestUtil;
+import org.robolectric.util.ReflectionHelpers;
+import org.robolectric.RuntimeEnvironment;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+
+import java.util.ArrayList;
+
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = {
+ ShadowEventLogWriter.class
+})
+public class DeviceProfilesSettingsTest {
+ Context mContext;
+ @Mock Activity mActivity;
+ @Mock LocalBluetoothManager mManager;
+ @Mock LocalBluetoothAdapter mAdapter;
+ @Mock LocalBluetoothProfileManager mProfileManager;
+ @Mock CachedBluetoothDeviceManager mDeviceManager;
+ @Mock CachedBluetoothDevice mCachedDevice;
+ @Mock A2dpProfile mProfile;
+
+ ArrayList<LocalBluetoothProfile> mProfiles;
+ DeviceProfilesSettings mFragment;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+
+ when(mProfile.getNameResource(any())).thenReturn(R.string.bluetooth_profile_a2dp);
+ mProfiles = new ArrayList<>();
+ mProfiles.add(mProfile);
+ when(mCachedDevice.getConnectableProfiles()).thenReturn(mProfiles);
+
+ mFragment = new DeviceProfilesSettings();
+ mFragment.setArguments(new Bundle());
+
+ ReflectionHelpers.setStaticField(LocalBluetoothManager.class, "sInstance", mManager);
+ when(mManager.getCachedDeviceManager()).thenReturn(mDeviceManager);
+ when(mManager.getBluetoothAdapter()).thenReturn(mAdapter);
+ when(mManager.getProfileManager()).thenReturn(mProfileManager);
+ when(mProfileManager.getMapProfile()).thenReturn(null);
+ when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
+ }
+
+ @Test
+ public void deviceHasHighQualityAudio() {
+ when(mProfile.supportsHighQualityAudio(any())).thenReturn(true);
+ when(mProfile.isHighQualityAudioEnabled(any())).thenReturn(true);
+ when(mProfile.isPreferred(any())).thenReturn(true);
+ FragmentTestUtil.startFragment(mFragment);
+
+ ViewGroup profilesGroup = mFragment.getDialog().findViewById(R.id.profiles_section);
+ CheckBox box = (CheckBox) profilesGroup.findViewWithTag(
+ DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+ assertThat(box).isNotNull();
+ assertThat(box.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(box.isEnabled()).isTrue();
+ assertThat(box.isChecked()).isTrue();
+
+ box.performClick();
+ verify(mProfile).setHighQualityAudioEnabled(any(), eq(false));
+ box.performClick();
+ verify(mProfile).setHighQualityAudioEnabled(any(), eq(true));
+ }
+
+ @Test
+ public void busyDeviceDisablesControl() {
+ when(mProfile.supportsHighQualityAudio(any())).thenReturn(true);
+ when(mProfile.isHighQualityAudioEnabled(any())).thenReturn(true);
+ when(mProfile.isPreferred(any())).thenReturn(true);
+ when(mCachedDevice.isBusy()).thenReturn(true);
+ FragmentTestUtil.startFragment(mFragment);
+
+ // Make sure that the high quality audio option is present but disabled when the device
+ // is busy.
+ ViewGroup profilesGroup = mFragment.getDialog().findViewById(R.id.profiles_section);
+ CheckBox box = (CheckBox) profilesGroup.findViewWithTag(
+ DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+ assertThat(box).isNotNull();
+ assertThat(box.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(box.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void mediaAudioGetsDisabledAndReEnabled() {
+ when(mProfile.supportsHighQualityAudio(any())).thenReturn(true);
+ when(mProfile.isHighQualityAudioEnabled(any())).thenReturn(true);
+ when(mProfile.isPreferred(any())).thenReturn(true);
+ FragmentTestUtil.startFragment(mFragment);
+
+ ViewGroup profilesGroup = mFragment.getDialog().findViewById(R.id.profiles_section);
+ CheckBox audioBox = profilesGroup.findViewWithTag(mProfile.toString());
+ CheckBox highQualityAudioBox = profilesGroup.findViewWithTag(
+ DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+ assertThat(audioBox).isNotNull();
+ assertThat(audioBox.isChecked()).isTrue();
+ assertThat(highQualityAudioBox).isNotNull();
+ assertThat(highQualityAudioBox.isChecked()).isTrue();
+
+ // Disabling media audio should cause the high quality audio box to disappear.
+ when(mProfile.isPreferred(any())).thenReturn(false);
+ mFragment.onDeviceAttributesChanged();
+ audioBox = profilesGroup.findViewWithTag(mProfile.toString());
+ highQualityAudioBox = profilesGroup.findViewWithTag(
+ DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+ assertThat(audioBox).isNotNull();
+ assertThat(audioBox.isChecked()).isFalse();
+ assertThat(highQualityAudioBox).isNotNull();
+ assertThat(highQualityAudioBox.getVisibility()).isEqualTo(View.GONE);
+
+ // And re-enabling media audio should make it reappear.
+ when(mProfile.isPreferred(any())).thenReturn(true);
+ mFragment.onDeviceAttributesChanged();
+ audioBox = profilesGroup.findViewWithTag(mProfile.toString());
+ highQualityAudioBox = profilesGroup.findViewWithTag(
+ DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+ assertThat(audioBox).isNotNull();
+ assertThat(audioBox.isChecked()).isTrue();
+ assertThat(highQualityAudioBox).isNotNull();
+ assertThat(highQualityAudioBox.isChecked()).isTrue();
+ }
+
+ @Test
+ public void mediaAudioStartsDisabled() {
+ when(mProfile.supportsHighQualityAudio(any())).thenReturn(true);
+ when(mProfile.isHighQualityAudioEnabled(any())).thenReturn(true);
+ when(mProfile.isPreferred(any())).thenReturn(false);
+
+ FragmentTestUtil.startFragment(mFragment);
+ ViewGroup profilesGroup = mFragment.getDialog().findViewById(R.id.profiles_section);
+ CheckBox audioBox = profilesGroup.findViewWithTag(mProfile.toString());
+ CheckBox highQualityAudioBox = profilesGroup.findViewWithTag(
+ DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+
+ assertThat(audioBox).isNotNull();
+ assertThat(audioBox.isChecked()).isFalse();
+ assertThat(highQualityAudioBox).isNotNull();
+ assertThat(highQualityAudioBox.getVisibility()).isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void deviceDoesntHaveHighQualityAudio() {
+ when(mProfile.supportsHighQualityAudio(any())).thenReturn(false);
+ when(mProfile.isPreferred(any())).thenReturn(true);
+ FragmentTestUtil.startFragment(mFragment);
+
+ // A device that doesn't support high quality audio shouldn't have the checkbox for
+ // high quality audio support.
+ ViewGroup profilesGroup = mFragment.getDialog().findViewById(R.id.profiles_section);
+ CheckBox box = (CheckBox) profilesGroup.findViewWithTag(
+ DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+ assertThat(box).isNull();
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
index e1572ab..92ded0d 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
@@ -25,8 +25,8 @@
import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
-import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
import com.android.settings.testutils.XmlTestUtils;
+import com.android.settings.testutils.shadow.ShadowConnectivityManager;
import com.android.settingslib.NetworkPolicyEditor;
import org.junit.Before;
@@ -160,4 +160,16 @@
assertThat(keys).containsAllIn(niks);
}
+
+ @Test
+ @Config(shadows = ShadowConnectivityManager.class)
+ public void testNonIndexableKeys_hasMobileData_restrictedAccessesAdded() {
+ ShadowConnectivityManager.setIsNetworkSupported(true);
+ List<String> keys = DataUsageSummary.SEARCH_INDEX_DATA_PROVIDER
+ .getNonIndexableKeys(mContext);
+
+ assertThat(keys).contains(DataUsageSummary.KEY_RESTRICT_BACKGROUND);
+ assertThat(keys).contains(DataUsageSummary.KEY_NETWORK_RESTRICTIONS);
+ ShadowConnectivityManager.setIsNetworkSupported(false);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/development/TelephonyMonitorPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/TelephonyMonitorPreferenceControllerTest.java
index 5167c68..9a1a3b6 100644
--- a/tests/robotests/src/com/android/settings/development/TelephonyMonitorPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/TelephonyMonitorPreferenceControllerTest.java
@@ -134,7 +134,24 @@
when(mContext.getResources().getBoolean(R.bool.config_show_telephony_monitor))
.thenReturn(true);
SettingsShadowSystemProperties.set(
- TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR, "true");
+ TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR,
+ TelephonyMonitorPreferenceController.ENABLED_STATUS);
+ SettingsShadowSystemProperties.set(
+ TelephonyMonitorPreferenceController.BUILD_TYPE, "userdebug");
+
+ mController.displayPreference(mScreen);
+
+ verify(mPreference).setChecked(true);
+ }
+
+ @Config(shadows = {SettingsShadowSystemProperties.class})
+ @Test
+ public void displayPreference_telephonyMonitorUserEnabled_shouldCheckedPreference() {
+ when(mContext.getResources().getBoolean(R.bool.config_show_telephony_monitor))
+ .thenReturn(true);
+ SettingsShadowSystemProperties.set(
+ TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR,
+ TelephonyMonitorPreferenceController.USER_ENABLED_STATUS);
SettingsShadowSystemProperties.set(
TelephonyMonitorPreferenceController.BUILD_TYPE, "userdebug");
@@ -149,7 +166,24 @@
when(mContext.getResources().getBoolean(R.bool.config_show_telephony_monitor))
.thenReturn(true);
SettingsShadowSystemProperties.set(
- TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR, "false");
+ TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR,
+ TelephonyMonitorPreferenceController.DISABLED_STATUS);
+ SettingsShadowSystemProperties.set(
+ TelephonyMonitorPreferenceController.BUILD_TYPE, "userdebug");
+
+ mController.displayPreference(mScreen);
+
+ verify(mPreference).setChecked(false);
+ }
+
+ @Config(shadows = {SettingsShadowSystemProperties.class})
+ @Test
+ public void displayPreference_telephonyMonitorUserDisabled_shouldUncheckedPreference() {
+ when(mContext.getResources().getBoolean(R.bool.config_show_telephony_monitor))
+ .thenReturn(true);
+ SettingsShadowSystemProperties.set(
+ TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR,
+ TelephonyMonitorPreferenceController.USER_DISABLED_STATUS);
SettingsShadowSystemProperties.set(
TelephonyMonitorPreferenceController.BUILD_TYPE, "userdebug");
@@ -168,8 +202,10 @@
mController.handlePreferenceTreeClick(mPreference);
- assertThat(SystemProperties.getBoolean(
- TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR, false)).isTrue();
+ assertThat(TelephonyMonitorPreferenceController.USER_ENABLED_STATUS.equals(
+ SystemProperties.get(
+ TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR,
+ TelephonyMonitorPreferenceController.DISABLED_STATUS))).isTrue();
}
@Config(shadows = {SettingsShadowSystemProperties.class})
@@ -182,8 +218,10 @@
mController.handlePreferenceTreeClick(mPreference);
- assertThat(SystemProperties.getBoolean(
- TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR, false)).isFalse();
+ assertThat(TelephonyMonitorPreferenceController.USER_DISABLED_STATUS.equals(
+ SystemProperties.get(
+ TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR,
+ TelephonyMonitorPreferenceController.DISABLED_STATUS))).isTrue();
}
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
index 69bd767..d6b758c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
@@ -28,6 +28,7 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import android.app.Activity;
import android.app.Fragment;
@@ -37,6 +38,7 @@
import android.graphics.drawable.Drawable;
import android.os.BatteryStats;
import android.os.Bundle;
+import android.os.UserHandle;
import android.view.View;
import com.android.internal.os.BatterySipper;
@@ -62,6 +64,8 @@
import org.mockito.stubbing.Answer;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -261,4 +265,37 @@
assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_ICON_ID)).isEqualTo(ICON_ID);
assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_PACKAGE_NAME)).isEqualTo(null);
}
+
+ @Test
+ public void testStartBatteryDetailPage_WorkApp() {
+ final int appUid = 1010019;
+ mBatterySipper.mPackages = PACKAGE_NAME;
+ doReturn(appUid).when(mBatterySipper).getUid();
+ AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, mBatteryStatsHelper, 0,
+ mBatteryEntry, USAGE_PERCENT);
+
+ verify(mTestActivity).startPreferencePanelAsUser(
+ any(), anyString(), any(), anyInt(), any(), eq(new UserHandle(10)));
+ }
+
+ @Test
+ public void testStartBatteryDetailPage_noBatteryUsage_hasBasicData() {
+ final ArgumentCaptor<Bundle> captor = ArgumentCaptor.forClass(Bundle.class);
+ Answer<Void> callable = new Answer<Void>() {
+ @Override
+ public Void answer(InvocationOnMock invocation) throws Exception {
+ mBundle = captor.getValue();
+ return null;
+ }
+ };
+ doAnswer(callable).when(mTestActivity).startPreferencePanelAsUser(any(), anyString(),
+ captor.capture(), anyInt(), any(), any());
+
+ AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, PACKAGE_NAME[0]);
+
+ assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_PACKAGE_NAME)).isEqualTo(
+ PACKAGE_NAME[0]);
+ assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_POWER_USAGE_PERCENT)).isEqualTo(
+ "0%");
+ }
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AppButtonsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AppButtonsPreferenceControllerTest.java
index a341d83..b40cb9e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AppButtonsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AppButtonsPreferenceControllerTest.java
@@ -344,6 +344,14 @@
assertThat(controllable).isTrue();
}
+ @Test
+ public void testRefreshUi_packageNull_shouldNotCrash() {
+ mController.mPackageName = null;
+
+ // Should not crash in this method
+ assertThat(mController.refreshUi()).isFalse();
+ }
+
/**
* The test fragment which implements
* {@link ButtonActionDialogFragment.AppButtonsDialogListener}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
new file mode 100644
index 0000000..04bb2cf
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
@@ -0,0 +1,141 @@
+/*
+ * Copyright (C) 2017 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.settings.fuelgauge;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.BatteryManager;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+import android.widget.TextView;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.applications.LayoutPreference;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor;
+import com.android.settingslib.BatteryInfo;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH,
+ sdk = TestConfig.SDK_VERSION,
+ shadows = {
+ SettingsShadowResources.class,
+ SettingsShadowResources.SettingsShadowTheme.class,
+ ShadowDynamicIndexableContentMonitor.class
+ })
+public class BatteryHeaderPreferenceControllerTest {
+ private static final int BATTERY_LEVEL = 60;
+ private static final String TIME_LEFT = "2h30min";
+ private static final String BATTERY_STATUS = "Charging";
+
+ @Mock
+ private PreferenceScreen mPreferenceScreen;
+ @Mock
+ private BatteryInfo mBatteryInfo;
+ private BatteryHeaderPreferenceController mController;
+ private Context mContext;
+ private BatteryMeterView mBatteryMeterView;
+ private TextView mTimeText;
+ private TextView mSummary;
+ private LayoutPreference mBatteryLayoutPref;
+ private Intent mBatteryIntent;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ mBatteryMeterView = new BatteryMeterView(mContext);
+ mTimeText = new TextView(mContext);
+ mSummary = new TextView(mContext);
+
+ mBatteryIntent = new Intent();
+ mBatteryIntent.putExtra(BatteryManager.EXTRA_LEVEL, BATTERY_LEVEL);
+ mBatteryIntent.putExtra(BatteryManager.EXTRA_SCALE, 100);
+ doReturn(mBatteryIntent).when(mContext).registerReceiver(any(), any());
+
+ mBatteryLayoutPref = new LayoutPreference(mContext, R.layout.battery_header);
+ doReturn(mBatteryLayoutPref).when(mPreferenceScreen).findPreference(
+ BatteryHeaderPreferenceController.KEY_BATTERY_HEADER);
+
+ mBatteryInfo.batteryLevel = BATTERY_LEVEL;
+
+ mController = new BatteryHeaderPreferenceController(mContext);
+ mController.mBatteryMeterView = mBatteryMeterView;
+ mController.mTimeText = mTimeText;
+ mController.mSummary = mSummary;
+ }
+
+ @Test
+ public void testDisplayPreference_displayBatteryLevel() {
+ mController.displayPreference(mPreferenceScreen);
+
+ assertThat(((BatteryMeterView) mBatteryLayoutPref.findViewById(
+ R.id.battery_header_icon)).getBatteryLevel()).isEqualTo(BATTERY_LEVEL);
+ assertThat(((TextView) mBatteryLayoutPref.findViewById(
+ R.id.battery_percent)).getText()).isEqualTo("60%");
+ }
+
+ @Test
+ public void testUpdatePreference_hasRemainingTime_showRemainingLabel() {
+ mBatteryInfo.remainingLabel = TIME_LEFT;
+
+ mController.updateHeaderPreference(mBatteryInfo);
+
+ assertThat(mSummary.getText()).isEqualTo(mBatteryInfo.remainingLabel);
+ }
+
+ @Test
+ public void testUpdatePreference_updateBatteryInfo() {
+ mBatteryInfo.remainingLabel = TIME_LEFT;
+ mBatteryInfo.batteryLevel = BATTERY_LEVEL;
+ mBatteryInfo.discharging = true;
+
+ mController.updateHeaderPreference(mBatteryInfo);
+
+ assertThat(mBatteryMeterView.mDrawable.getBatteryLevel()).isEqualTo(BATTERY_LEVEL);
+ assertThat(mBatteryMeterView.mDrawable.getCharging()).isEqualTo(false);
+ }
+
+ @Test
+ public void testUpdatePreference_noRemainingTime_showStatusLabel() {
+ mBatteryInfo.remainingLabel = null;
+ mBatteryInfo.statusLabel = BATTERY_STATUS;
+
+ mController.updateHeaderPreference(mBatteryInfo);
+
+ assertThat(mSummary.getText()).isEqualTo(BATTERY_STATUS);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
index fd89558..009a91c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
@@ -18,6 +18,7 @@
import android.content.Context;
import android.os.BatteryStats;
import android.os.Process;
+import android.text.format.DateUtils;
import com.android.internal.os.BatterySipper;
import com.android.settings.SettingsRobolectricTestRunner;
@@ -47,8 +48,11 @@
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyLong;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.spy;
@@ -62,6 +66,8 @@
private static final long TIME_STATE_TOP_SLEEPING = 2500 * UNIT;
private static final long TIME_STATE_FOREGROUND = 3000 * UNIT;
private static final long TIME_STATE_BACKGROUND = 6000 * UNIT;
+ private static final long TIME_FOREGROUND_ACTIVITY_ZERO = 0;
+ private static final long TIME_FOREGROUND_ACTIVITY = 100 * DateUtils.MINUTE_IN_MILLIS;
private static final int UID = 123;
private static final long TIME_EXPECTED_FOREGROUND = 1500;
@@ -71,6 +77,7 @@
private static final double BATTERY_SYSTEM_USAGE = 600;
private static final double BATTERY_OVERACCOUNTED_USAGE = 500;
private static final double BATTERY_UNACCOUNTED_USAGE = 700;
+ private static final double BATTERY_APP_USAGE = 100;
private static final double TOTAL_BATTERY_USAGE = 1000;
private static final double HIDDEN_USAGE = 200;
private static final int DISCHARGE_AMOUNT = 80;
@@ -180,11 +187,12 @@
sippers.add(mUnaccountedBatterySipper);
when(mProvider.isTypeSystem(mSystemBatterySipper))
.thenReturn(true);
+ doNothing().when(mBatteryUtils).smearScreenBatterySipper(any(), any());
final double totalUsage = mBatteryUtils.removeHiddenBatterySippers(sippers);
+
assertThat(sippers).containsExactly(mNormalBatterySipper);
- assertThat(totalUsage).isWithin(PRECISION).of(
- BATTERY_SCREEN_USAGE + BATTERY_SYSTEM_USAGE + BATTERY_UNACCOUNTED_USAGE);
+ assertThat(totalUsage).isWithin(PRECISION).of(BATTERY_SYSTEM_USAGE);
}
@Test
@@ -206,12 +214,6 @@
}
@Test
- public void testShouldHideSipper_TypeWifi_ReturnTrue() {
- mNormalBatterySipper.drainType = BatterySipper.DrainType.WIFI;
- assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue();
- }
-
- @Test
public void testShouldHideSipper_TypeCell_ReturnTrue() {
mNormalBatterySipper.drainType = BatterySipper.DrainType.CELL;
assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue();
@@ -224,12 +226,6 @@
}
@Test
- public void testShouldHideSipper_TypeBluetooth_ReturnTrue() {
- mNormalBatterySipper.drainType = BatterySipper.DrainType.BLUETOOTH;
- assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue();
- }
-
- @Test
public void testShouldHideSipper_TypeSystem_ReturnTrue() {
mNormalBatterySipper.drainType = BatterySipper.DrainType.APP;
when(mNormalBatterySipper.getUid()).thenReturn(Process.ROOT_UID);
@@ -259,4 +255,56 @@
HIDDEN_USAGE, DISCHARGE_AMOUNT))
.isWithin(PRECISION).of(PERCENT_SYSTEM_USAGE);
}
+
+ @Test
+ public void testSmearScreenBatterySipper() {
+ final BatterySipper sipperNull = createTestSmearBatterySipper(TIME_FOREGROUND_ACTIVITY_ZERO,
+ BATTERY_APP_USAGE, 0 /* uid */, true /* isUidNull */);
+ final BatterySipper sipperBg = createTestSmearBatterySipper(TIME_FOREGROUND_ACTIVITY_ZERO,
+ BATTERY_APP_USAGE, 1 /* uid */, false /* isUidNull */);
+ final BatterySipper sipperFg = createTestSmearBatterySipper(TIME_FOREGROUND_ACTIVITY,
+ BATTERY_APP_USAGE, 2 /* uid */, false /* isUidNull */);
+
+ final List<BatterySipper> sippers = new ArrayList<>();
+ sippers.add(sipperNull);
+ sippers.add(sipperBg);
+ sippers.add(sipperFg);
+
+ mBatteryUtils.smearScreenBatterySipper(sippers, mScreenBatterySipper);
+
+ assertThat(sipperNull.totalPowerMah).isWithin(PRECISION).of(BATTERY_APP_USAGE);
+ assertThat(sipperBg.totalPowerMah).isWithin(PRECISION).of(BATTERY_APP_USAGE);
+ assertThat(sipperFg.totalPowerMah).isWithin(PRECISION).of(
+ BATTERY_APP_USAGE + BATTERY_SCREEN_USAGE);
+ }
+
+ @Test
+ public void testSortUsageList() {
+ final List<BatterySipper> sippers = new ArrayList<>();
+ sippers.add(mNormalBatterySipper);
+ sippers.add(mScreenBatterySipper);
+ sippers.add(mSystemBatterySipper);
+
+ mBatteryUtils.sortUsageList(sippers);
+
+ assertThat(sippers).containsExactly(mNormalBatterySipper, mSystemBatterySipper,
+ mScreenBatterySipper);
+ }
+
+ private BatterySipper createTestSmearBatterySipper(long activityTime, double totalPowerMah,
+ int uidCode, boolean isUidNull) {
+ final BatterySipper sipper = mock(BatterySipper.class);
+ sipper.drainType = BatterySipper.DrainType.APP;
+ sipper.totalPowerMah = totalPowerMah;
+ doReturn(uidCode).when(sipper).getUid();
+ if (!isUidNull) {
+ final BatteryStats.Uid uid = mock(BatteryStats.Uid.class, RETURNS_DEEP_STUBS);
+ doReturn(activityTime).when(mBatteryUtils).getForegroundActivityTotalTimeMs(eq(uid),
+ anyLong());
+ doReturn(uidCode).when(uid).getUid();
+ sipper.uidObj = uid;
+ }
+
+ return sipper;
+ }
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java
index f32ea7a..8e9febe 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java
@@ -125,4 +125,14 @@
assertThat(mPowerFeatureProvider.isTypeSystem(mBatterySipper)).isFalse();
}
+
+ @Test
+ public void testIsAdvancedUiEnabled_returnTrue() {
+ assertThat(mPowerFeatureProvider.isAdvancedUiEnabled()).isTrue();
+ }
+
+ @Test
+ public void testIsPowerAccountingToggleEnabled_returnTrue() {
+ assertThat(mPowerFeatureProvider.isPowerAccountingToggleEnabled()).isTrue();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
index 3d5d5dc..ea6c7e6 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
@@ -17,7 +17,6 @@
import android.content.Context;
import android.content.Intent;
-import android.os.Bundle;
import android.os.PowerManager;
import android.os.Process;
import android.text.TextUtils;
@@ -68,6 +67,7 @@
import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
@@ -88,12 +88,9 @@
})
public class PowerUsageSummaryTest {
private static final String[] PACKAGE_NAMES = {"com.app1", "com.app2"};
- private static final String TIME_LEFT = "2h30min";
private static final String STUB_STRING = "stub_string";
- private static final int BATTERY_LEVEL = 55;
private static final int UID = 123;
private static final int POWER_MAH = 100;
- private static final long REMAINING_TIME_US = 100000;
private static final long TIME_SINCE_LAST_FULL_CHARGE_MS = 120 * 60 * 1000;
private static final long TIME_SINCE_LAST_FULL_CHARGE_US =
TIME_SINCE_LAST_FULL_CHARGE_MS * 1000;
@@ -129,9 +126,9 @@
@Mock
private LayoutPreference mBatteryLayoutPref;
@Mock
- private TextView mSummary1;
+ private TextView mBatteryPercentText;
@Mock
- private BatteryInfo mBatteryInfo;
+ private TextView mSummary1;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private BatteryStatsHelper mBatteryHelper;
@Mock
@@ -139,7 +136,6 @@
@Mock
private SettingsActivity mSettingsActivity;
- private TextView mBatteryPercentText;
private List<BatterySipper> mUsageList;
private Context mRealContext;
private TestFragment mFragment;
@@ -163,8 +159,9 @@
mLastFullChargePref = new PowerGaugePreference(mRealContext);
mFragment = spy(new TestFragment(mContext));
mFragment.initFeatureProvider();
- mBatteryMeterView = spy(new BatteryMeterView(mRealContext));
+ mBatteryMeterView = new BatteryMeterView(mRealContext);
mBatteryMeterView.mDrawable = new BatteryMeterView.BatteryMeterDrawable(mRealContext, 0);
+ doNothing().when(mFragment).restartBatteryStatsLoader();
when(mFragment.getActivity()).thenReturn(mSettingsActivity);
when(mAdditionalBatteryInfoMenu.getItemId())
@@ -185,7 +182,6 @@
mCellBatterySipper.drainType = BatterySipper.DrainType.CELL;
mCellBatterySipper.totalPowerMah = POWER_MAH;
- mBatteryPercentText = new TextView(mRealContext);
when(mBatteryLayoutPref.findViewById(R.id.summary1)).thenReturn(mSummary1);
when(mBatteryLayoutPref.findViewById(R.id.battery_percent)).thenReturn(mBatteryPercentText);
when(mBatteryLayoutPref.findViewById(R.id.battery_header_icon))
@@ -205,8 +201,6 @@
mFragment.mScreenUsagePref = mScreenUsagePref;
mFragment.mLastFullChargePref = mLastFullChargePref;
mFragment.mBatteryUtils = spy(new BatteryUtils(mRealContext));
-
- mBatteryInfo.batteryLevel = BATTERY_LEVEL;
}
@Test
@@ -279,50 +273,6 @@
}
@Test
- public void testInitHeaderPreference_initCorrectly() {
- mFragment.mBatteryLevel = 100;
-
- mFragment.initHeaderPreference();
-
- assertThat(mBatteryMeterView.getBatteryLevel()).isEqualTo(100);
- assertThat(mBatteryPercentText.getText().toString()).isEqualTo("100%");
- }
-
- @Test
- public void testStartBatteryHeaderAnimationIfNecessary_batteryLevelChanged_animationStarted() {
- final int prevLevel = 100;
- final int curLevel = 80;
-
- mFragment.startBatteryHeaderAnimationIfNecessary(mBatteryMeterView, mBatteryPercentText,
- prevLevel, curLevel);
-
- assertThat(mBatteryMeterView.getBatteryLevel()).isEqualTo(curLevel);
- assertThat(mBatteryPercentText.getText().toString()).isEqualTo("80%");
- }
-
- @Test
- public void testOnSaveInstanceState_saveBatteryLevel() {
- Bundle bundle = new Bundle();
- mFragment.mBatteryLevel = BATTERY_LEVEL;
- // mock it to stop crash in getPreferenceScreen
- doReturn(null).when(mFragment).getPreferenceScreen();
-
- mFragment.onSaveInstanceState(bundle);
-
- assertThat(bundle.getInt(PowerUsageSummary.ARG_BATTERY_LEVEL)).isEqualTo(BATTERY_LEVEL);
- }
-
- @Test
- public void testOnActivityCreated_setBatteryLevel() {
- Bundle bundle = new Bundle();
- bundle.putInt(PowerUsageSummary.ARG_BATTERY_LEVEL, BATTERY_LEVEL);
-
- mFragment.onActivityCreated(bundle);
-
- assertThat(mFragment.mBatteryLevel).isEqualTo(BATTERY_LEVEL);
- }
-
- @Test
public void testExtractKeyFromSipper_typeAPPUidObjectNull_returnPackageNames() {
mNormalBatterySipper.uidObj = null;
mNormalBatterySipper.drainType = BatterySipper.DrainType.APP;
@@ -360,55 +310,16 @@
@Test
public void testSetUsageSummary_timeMoreThanOneMinute_setSummary() {
final long usageTimeMs = 2 * DateUtils.MINUTE_IN_MILLIS;
- doReturn(mRealContext.getText(R.string.battery_used_for)).when(mFragment).getText(
- R.string.battery_used_for);
+ doReturn(mRealContext.getText(R.string.battery_screen_usage)).when(mFragment).getText(
+ R.string.battery_screen_usage);
doReturn(mRealContext).when(mFragment).getContext();
- final String expectedSummary = "Used for 2m";
+ final String expectedSummary = "Screen usage 2m";
mFragment.setUsageSummary(mPreference, usageTimeMs);
assertThat(mPreference.getSummary().toString()).isEqualTo(expectedSummary);
}
- @Test
- public void testUpdatePreference_hasRemainingTime_showRemainingLabel() {
- mBatteryInfo.remainingLabel = TIME_LEFT;
-
- mFragment.updateHeaderPreference(mBatteryInfo);
-
- verify(mSummary1).setText(mBatteryInfo.remainingLabel);
- }
-
- @Test
- public void testUpdatePreference_updateBatteryInfo() {
- mBatteryInfo.remainingLabel = TIME_LEFT;
- mBatteryInfo.batteryLevel = BATTERY_LEVEL;
- mBatteryInfo.discharging = true;
-
- mFragment.updateHeaderPreference(mBatteryInfo);
-
- assertThat(mBatteryMeterView.mDrawable.getBatteryLevel()).isEqualTo(BATTERY_LEVEL);
- assertThat(mBatteryMeterView.mDrawable.getCharging()).isEqualTo(false);
- }
-
- @Test
- public void testUpdatePreference_noRemainingTime_showStatusLabel() {
- mBatteryInfo.remainingLabel = null;
-
- mFragment.updateHeaderPreference(mBatteryInfo);
-
- verify(mSummary1).setText(mBatteryInfo.statusLabel);
- }
-
- @Test
- public void testUpdateHeaderPreference_asyncUpdate_shouldNotCrash() {
- when(mFragment.getContext()).thenReturn(null);
- mBatteryInfo.remainingTimeUs = REMAINING_TIME_US;
-
- //Should not crash
- mFragment.updateHeaderPreference(mBatteryInfo);
- }
-
private void testToggleAllApps(final boolean isShowApps) {
mFragment.mShowAllApps = isShowApps;
diff --git a/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java
index 9862f83..e83e237 100644
--- a/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java
@@ -52,12 +52,14 @@
private FakeFeatureFactory mFactory;
private AssistGesturePreferenceController mController;
+ private static final String KEY_ASSIST = "gesture_assist";
+
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
FakeFeatureFactory.setupForTest(mContext);
mFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
- mController = new AssistGesturePreferenceController(mContext, null);
+ mController = new AssistGesturePreferenceController(mContext, null, KEY_ASSIST);
}
@Test
@@ -77,7 +79,7 @@
// Set the setting to be enabled.
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(), ASSIST_GESTURE_ENABLED, 1);
- mController = new AssistGesturePreferenceController(context, null);
+ mController = new AssistGesturePreferenceController(context, null, KEY_ASSIST);
assertThat(mController.isSwitchPrefEnabled()).isTrue();
}
@@ -87,7 +89,7 @@
// Set the setting to be disabled.
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(), ASSIST_GESTURE_ENABLED, 0);
- mController = new AssistGesturePreferenceController(context, null);
+ mController = new AssistGesturePreferenceController(context, null, KEY_ASSIST);
assertThat(mController.isSwitchPrefEnabled()).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
index bdb3522..d7961e3 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
@@ -47,11 +47,12 @@
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private PreferenceScreen mScreen;
private DoubleTapPowerPreferenceController mController;
+ private static final String KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power";
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mController = new DoubleTapPowerPreferenceController(mContext, null);
+ mController = new DoubleTapPowerPreferenceController(mContext, null, KEY_DOUBLE_TAP_POWER);
}
@Test
@@ -78,7 +79,7 @@
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(),
CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0);
- mController = new DoubleTapPowerPreferenceController(context, null);
+ mController = new DoubleTapPowerPreferenceController(context, null, KEY_DOUBLE_TAP_POWER);
assertThat(mController.isSwitchPrefEnabled()).isTrue();
}
@@ -89,7 +90,7 @@
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(),
CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 1);
- mController = new DoubleTapPowerPreferenceController(context, null);
+ mController = new DoubleTapPowerPreferenceController(context, null, KEY_DOUBLE_TAP_POWER);
assertThat(mController.isSwitchPrefEnabled()).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java
index adf8b75..442d11d 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java
@@ -46,11 +46,13 @@
private AmbientDisplayConfiguration mAmbientDisplayConfiguration;
private DoubleTapScreenPreferenceController mController;
+ private static final String KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen";
+
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mController = new DoubleTapScreenPreferenceController(
- mContext, null, mAmbientDisplayConfiguration, 0);
+ mContext, null, mAmbientDisplayConfiguration, 0, KEY_DOUBLE_TAP_SCREEN);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
index 9bf6655..8393fc3 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
@@ -53,11 +53,12 @@
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private SensorManager mSensorManager;
private DoubleTwistPreferenceController mController;
+ private static final String KEY_DOUBLE_TWIST = "gesture_double_twist";
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mController = new DoubleTwistPreferenceController(mContext, null);
+ mController = new DoubleTwistPreferenceController(mContext, null, KEY_DOUBLE_TWIST);
}
@Test
@@ -98,7 +99,7 @@
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(),
CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 1);
- mController = new DoubleTwistPreferenceController(context, null);
+ mController = new DoubleTwistPreferenceController(context, null, KEY_DOUBLE_TWIST);
assertThat(mController.isSwitchPrefEnabled()).isTrue();
}
@@ -109,7 +110,7 @@
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(),
CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 0);
- mController = new DoubleTwistPreferenceController(context, null);
+ mController = new DoubleTwistPreferenceController(context, null, KEY_DOUBLE_TWIST);
assertThat(mController.isSwitchPrefEnabled()).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java
index 9dce074..46c0f65 100644
--- a/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java
@@ -47,11 +47,13 @@
private PickupGesturePreferenceController mController;
+ private static final String KEY_PICK_UP = "gesture_pick_up";
+
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mController = new PickupGesturePreferenceController(
- mContext, null, mAmbientDisplayConfiguration, 0);
+ mContext, null, mAmbientDisplayConfiguration, 0, KEY_PICK_UP);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
index e909667..cf26cb2 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
@@ -45,11 +45,12 @@
private Context mContext;
private SwipeToNotificationPreferenceController mController;
+ private static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint";
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mController = new SwipeToNotificationPreferenceController(mContext, null);
+ mController = new SwipeToNotificationPreferenceController(mContext, null, KEY_SWIPE_DOWN);
}
@Test
@@ -75,7 +76,7 @@
// Set the setting to be enabled.
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 1);
- mController = new SwipeToNotificationPreferenceController(context, null);
+ mController = new SwipeToNotificationPreferenceController(context, null, KEY_SWIPE_DOWN);
assertThat(mController.isSwitchPrefEnabled()).isTrue();
}
@@ -85,7 +86,7 @@
// Set the setting to be disabled.
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 0);
- mController = new SwipeToNotificationPreferenceController(context, null);
+ mController = new SwipeToNotificationPreferenceController(context, null, KEY_SWIPE_DOWN);
assertThat(mController.isSwitchPrefEnabled()).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java b/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
index 8c23cbf..527b1cd 100644
--- a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
@@ -18,7 +18,9 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -44,6 +46,8 @@
import com.android.settings.core.lifecycle.Lifecycle;
import com.android.settings.core.lifecycle.LifecycleObserver;
import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.fuelgauge.PowerUsageSummary;
+import com.android.settings.testutils.XmlTestUtils;
import com.android.settings.testutils.shadow.ShadowSecureSettings;
import org.junit.Before;
@@ -52,6 +56,7 @@
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import java.util.ArrayList;
@@ -144,6 +149,37 @@
verify(loader).setSummary(provider, null);
}
+ @Test
+ public void testNonIndexableKeys_existInXmlLayout() {
+ final Context context = spy(RuntimeEnvironment.application);
+ //(InputManager) context.getSystemService(Context.INPUT_SERVICE);
+ InputManager manager = mock(InputManager.class);
+ when(manager.getInputDeviceIds()).thenReturn(new int[]{});
+ doReturn(manager).when(context).getSystemService(Context.INPUT_SERVICE);
+ final List<String> niks = LanguageAndInputSettings.SEARCH_INDEX_DATA_PROVIDER
+ .getNonIndexableKeys(context);
+ final int xmlId = (new LanguageAndInputSettings()).getPreferenceScreenResId();
+
+ final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
+
+ assertThat(keys).containsAllIn(niks);
+ }
+
+ @Test
+ public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() {
+ final Context context = RuntimeEnvironment.application;
+ final LanguageAndInputSettings fragment = new LanguageAndInputSettings();
+ final List<String> preferenceScreenKeys = XmlTestUtils.getKeysFromPreferenceXml(context,
+ fragment.getPreferenceScreenResId());
+ final List<String> preferenceKeys = new ArrayList<>();
+
+ for (PreferenceController controller : fragment.getPreferenceControllers(context)) {
+ preferenceKeys.add(controller.getPreferenceKey());
+ }
+
+ assertThat(preferenceScreenKeys).containsAllIn(preferenceKeys);
+ }
+
/**
* Test fragment to expose lifecycle and context so we can verify behavior for observables.
*/
diff --git a/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java
index 7e92bc5..cecc910 100644
--- a/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java
@@ -20,7 +20,10 @@
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothPan;
import android.bluetooth.BluetoothProfile;
+import android.content.ContentResolver;
import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.database.ContentObserver;
import android.net.ConnectivityManager;
import android.provider.Settings;
@@ -41,6 +44,7 @@
import java.util.concurrent.atomic.AtomicReference;
+import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -150,4 +154,36 @@
verify(mPreference).setSummary(R.string.switch_off_text);
}
+ @Test
+ public void onResume_shouldRegisterTetherReceiver() {
+ when(mContext.getContentResolver()).thenReturn(mock(ContentResolver.class));
+
+ mController.onResume();
+
+ verify(mContext).registerReceiver(
+ any(TetherPreferenceController.TetherBroadcastReceiver.class), any(IntentFilter.class));
+ }
+
+ @Test
+ public void onPause_shouldUnregisterTetherReceiver() {
+ when(mContext.getContentResolver()).thenReturn(mock(ContentResolver.class));
+ mController.onResume();
+
+ mController.onPause();
+
+ verify(mContext).unregisterReceiver(
+ any(TetherPreferenceController.TetherBroadcastReceiver.class));
+ }
+
+ @Test
+ public void tetherStatesChanged_shouldUpdateSummary() {
+ final Context context = RuntimeEnvironment.application;
+ ReflectionHelpers.setField(mController, "mContext", context);
+ mController.onResume();
+
+ context.sendBroadcast(new Intent(ConnectivityManager.ACTION_TETHER_STATE_CHANGED));
+
+ verify(mController).updateSummary();
+ }
+
}
diff --git a/tests/robotests/src/com/android/settings/notification/SoundSettingsTest.java b/tests/robotests/src/com/android/settings/notification/SoundSettingsTest.java
new file mode 100644
index 0000000..547117b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/SoundSettingsTest.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2017 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.settings.notification;
+
+import android.content.Context;
+
+import android.media.AudioManager;
+import android.os.UserManager;
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.XmlTestUtils;
+import com.android.settings.testutils.shadow.ShadowAudioHelper;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class SoundSettingsTest {
+
+ @Test
+ @Config( shadows = {
+ ShadowUserManager.class,
+ ShadowAudioHelper.class,
+ })
+ public void testNonIndexableKeys_existInXmlLayout() {
+ final Context context = spy(RuntimeEnvironment.application);
+ AudioManager audioManager = mock(AudioManager.class);
+ doReturn(audioManager).when(context).getSystemService(Context.AUDIO_SERVICE);
+
+ UserManager userManager = mock(UserManager.class);
+ when(userManager.isAdminUser()).thenReturn(false);
+ doReturn(userManager).when(context).getSystemService(Context.USER_SERVICE);
+
+ final List<String> niks = SoundSettings.SEARCH_INDEX_DATA_PROVIDER
+ .getNonIndexableKeys(context);
+ final int xmlId = (new SoundSettings()).getPreferenceScreenResId();
+ final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
+ keys.addAll(XmlTestUtils.getKeysFromPreferenceXml(context,
+ R.xml.zen_mode_settings));
+ // Add keys with hidden resources
+ keys.add("alarm_volume");
+ keys.add("ring_volume");
+ keys.add("notification_volume");
+
+ assertThat(keys).containsAllIn(niks);
+ }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java b/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java
index 6175093..42c5301 100644
--- a/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java
+++ b/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java
@@ -108,7 +108,7 @@
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
boolean enabled) {
final SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = R.xml.language_and_input;
+ sir.xmlResId = R.xml.data_usage;
return Arrays.asList(sir);
}
@@ -121,13 +121,7 @@
final List<String> nonIndexableKeys = provider
.getNonIndexableKeys(RuntimeEnvironment.application);
- assertThat(nonIndexableKeys).containsAllOf("phone_language", "spellcheckers_settings",
- "key_user_dictionary_settings", "gesture_settings_category", "gesture_assist",
- "gesture_swipe_down_fingerprint", "gesture_double_tap_power",
- "gesture_double_twist", "gesture_double_tap_screen", "gesture_pick_up",
- "pointer_speed", "tts_settings",
- "game_controller_settings_category", "vibrate_input_devices");
+ assertThat(nonIndexableKeys).containsAllOf("status_header", "limit_summary",
+ "restrict_background");
}
-
-
}
diff --git a/tests/robotests/src/com/android/settings/search2/DatabaseIndexingManagerTest.java b/tests/robotests/src/com/android/settings/search2/DatabaseIndexingManagerTest.java
index b76feff1..6844be5 100644
--- a/tests/robotests/src/com/android/settings/search2/DatabaseIndexingManagerTest.java
+++ b/tests/robotests/src/com/android/settings/search2/DatabaseIndexingManagerTest.java
@@ -671,9 +671,9 @@
new HashMap<String, Set<String>>());
Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 1", null);
- assertThat(cursor.getCount()).isEqualTo(2);
+ assertThat(cursor.getCount()).isEqualTo(1);
cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 0", null);
- assertThat(cursor.getCount()).isEqualTo(4);
+ assertThat(cursor.getCount()).isEqualTo(5);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/security/LockscreenDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/security/LockscreenDashboardFragmentTest.java
new file mode 100644
index 0000000..c6a0e53
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/security/LockscreenDashboardFragmentTest.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2017 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.settings.security;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.XmlTestUtils;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class LockscreenDashboardFragmentTest {
+
+ private LockscreenDashboardFragment mFragment;
+
+ @Test
+ public void containsNotificationSettingsForPrimaryUserAndWorkProfile() {
+ mFragment = new LockscreenDashboardFragment();
+
+ List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(RuntimeEnvironment.application,
+ mFragment.getPreferenceScreenResId());
+
+ assertThat(keys).containsAllOf(LockscreenDashboardFragment.KEY_LOCK_SCREEN_NOTIFICATON,
+ LockscreenDashboardFragment.KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE,
+ LockscreenDashboardFragment.KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE_HEADER);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
new file mode 100644
index 0000000..483dee7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2017 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.settings.system;
+
+import android.content.Context;
+import android.os.UserManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.XmlTestUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
+ shadows = {
+ ShadowUserManager.class
+ })
+public class SystemDashboardFragmentTest {
+
+ @Test
+ public void testNonIndexableKeys_existInXmlLayout() {
+ final Context context = spy(RuntimeEnvironment.application);
+ UserManager manager = mock(UserManager.class);
+ when(manager.isAdminUser()).thenReturn(false);
+ doReturn(manager).when(context).getSystemService(Context.USER_SERVICE);
+ final List<String> niks = SystemDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
+ .getNonIndexableKeys(context);
+ final int xmlId = (new SystemDashboardFragment()).getPreferenceScreenResId();
+
+ final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
+
+ assertThat(keys).containsAllIn(niks);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioHelper.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioHelper.java
new file mode 100644
index 0000000..886f941
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioHelper.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2017 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.settings.testutils.shadow;
+
+import android.os.UserHandle;
+import android.os.UserManager;
+import com.android.settings.notification.AudioHelper;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+@Implements(AudioHelper.class)
+public class ShadowAudioHelper {
+
+ @Implementation
+ public boolean isSingleVolume() {
+ return true;
+ }
+
+ @Implementation
+ public int getManagedProfileId(UserManager um) {
+ return UserHandle.USER_CURRENT;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
index dbf1a65..4c05665 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
@@ -24,9 +24,14 @@
@Implements(ConnectivityManager.class)
public class ShadowConnectivityManager extends org.robolectric.shadows.ShadowConnectivityManager {
+ private static boolean mIsNetworkSupported;
+
@Implementation
public boolean isNetworkSupported(int networkType) {
- return false;
+ return mIsNetworkSupported;
}
+ public static void setIsNetworkSupported(boolean isNetworkSupported) {
+ mIsNetworkSupported = isNetworkSupported;
+ }
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowLockPatternUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowLockPatternUtils.java
new file mode 100644
index 0000000..b1419ba
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowLockPatternUtils.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2017 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.settings.testutils.shadow;
+
+import com.android.internal.widget.LockPatternUtils;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+@Implements(LockPatternUtils.class)
+public class ShadowLockPatternUtils {
+
+ @Implementation
+ public boolean isSecure(int id) {
+ return true;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
index eb82362..87b9103 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
@@ -46,4 +46,9 @@
public static void reset() {
sFingerprintManager = null;
}
+
+ @Implementation
+ public static boolean isWifiOnly(Context context) {
+ return true;
+ }
}