Merge "Add BROWSABLE for most Settings Activities" into tm-qpr-dev
diff --git a/res/drawable/ic_ring_volume.xml b/res/drawable/ic_ring_volume.xml
new file mode 100644
index 0000000..343fe5d
--- /dev/null
+++ b/res/drawable/ic_ring_volume.xml
@@ -0,0 +1,26 @@
+<!--
+ Copyright (C) 2022 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 xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24"
+ android:tint="?android:attr/colorControlNormal">
+ <path
+ android:pathData="M11,7V2H13V7ZM17.6,9.85 L16.2,8.4 19.75,4.85 21.15,6.3ZM6.4,9.85 L2.85,6.3 4.25,4.85 7.8,8.4ZM12,12Q14.95,12 17.812,13.188Q20.675,14.375 22.9,16.75Q23.2,17.05 23.2,17.45Q23.2,17.85 22.9,18.15L20.6,20.4Q20.325,20.675 19.963,20.7Q19.6,20.725 19.3,20.5L16.4,18.3Q16.2,18.15 16.1,17.95Q16,17.75 16,17.5V14.65Q15.05,14.35 14.05,14.175Q13.05,14 12,14Q10.95,14 9.95,14.175Q8.95,14.35 8,14.65V17.5Q8,17.75 7.9,17.95Q7.8,18.15 7.6,18.3L4.7,20.5Q4.4,20.725 4.038,20.7Q3.675,20.675 3.4,20.4L1.1,18.15Q0.8,17.85 0.8,17.45Q0.8,17.05 1.1,16.75Q3.3,14.375 6.175,13.188Q9.05,12 12,12ZM6,15.35Q5.275,15.725 4.6,16.212Q3.925,16.7 3.2,17.3L4.2,18.3L6,16.9ZM18,15.4V16.9L19.8,18.3L20.8,17.35Q20.075,16.7 19.4,16.225Q18.725,15.75 18,15.4ZM6,15.35Q6,15.35 6,15.35Q6,15.35 6,15.35ZM18,15.4Q18,15.4 18,15.4Q18,15.4 18,15.4Z"
+ android:fillColor="?android:attr/colorPrimary"/>
+
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_ring_volume_off.xml b/res/drawable/ic_ring_volume_off.xml
new file mode 100644
index 0000000..74f30d1
--- /dev/null
+++ b/res/drawable/ic_ring_volume_off.xml
@@ -0,0 +1,34 @@
+<!--
+ Copyright (C) 2022 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 xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24"
+ android:tint="?android:attr/colorControlNormal">
+<path
+ android:pathData="M0.8,4.2l8.1,8.1c-2.2,0.5 -5.2,1.6 -7.8,4.4c-0.4,0.4 -0.4,1 0,1.4l2.3,2.3c0.3,0.3 0.9,0.4 1.3,0.1l2.9,-2.2C7.8,18.1 8,17.8 8,17.5v-2.9c0.9,-0.3 1.7,-0.5 2.7,-0.6l8.5,8.5l1.4,-1.4L2.2,2.8L0.8,4.2z"
+ android:fillColor="?android:attr/colorPrimary"/>
+ <path
+ android:pathData="M11,2h2v5h-2z"
+ android:fillColor="?android:attr/colorPrimary"/>
+ <path
+ android:pathData="M21.2,6.3l-1.4,-1.4l-3.6,3.6l1.4,1.4C17.6,9.8 21,6.3 21.2,6.3z"
+ android:fillColor="?android:attr/colorPrimary"/>
+ <path
+ android:pathData="M22.9,16.7c-2.8,-3 -6.2,-4.1 -8.4,-4.5l7.2,7.2l1.3,-1.3C23.3,17.7 23.3,17.1 22.9,16.7z"
+ android:fillColor="?android:attr/colorPrimary"/>
+</vector>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index e91c948..c75dbf0 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Probeer verskillende style, muurpapiere, en meer"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Sluimerskerm"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"sluimerskerm"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Gebruik sluimerskerm"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Terwyl dit laai of gedok is"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Terwyl dit laai"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Oproepvolume"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Wekkervolume"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Lui- en kennisgewingvolume"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Luivolume"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Kennisgewingvolume"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Foonluitoon"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Verstekkennisgewingklank"</string>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index b5ff80d..30d6fb3 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -260,17 +260,17 @@
<item msgid="346101114322879720">"ማሳወቂያዎችን ድረስ"</item>
<item msgid="4760681822601767255">"ካሜራ"</item>
<item msgid="2172823594140104317">"ኦዲዮ ቅረጽ"</item>
- <item msgid="5612873260709742213">"ድምጽ አጫውት"</item>
+ <item msgid="5612873260709742213">"ድምፅ አጫውት"</item>
<item msgid="2027206403725749996">"ቅንጥብ መለያ አንብብ"</item>
<item msgid="5643742956725663156">"ቅንጥብ መለያ ቀይር"</item>
<item msgid="7362845549479684378">"የሚዲያ አዝራሮች"</item>
<item msgid="3843484466100107397">"የድምጽ ትኩረት"</item>
- <item msgid="617344340943430125">"ዋናው ድምጽ መቆጣጠሪያ"</item>
+ <item msgid="617344340943430125">"ዋናው ድምፅ መቆጣጠሪያ"</item>
<item msgid="1249691739381713634">"የድምጽ መጠን"</item>
- <item msgid="6485000384018554920">"የጥሪ ድምጽ መጠን"</item>
+ <item msgid="6485000384018554920">"የጥሪ ድምፅ መጠን"</item>
<item msgid="3378000878531336372">"የማህደረ መረጃ መጠን"</item>
<item msgid="5272927168355895681">"የማንቂያ ድምፅ መጠን"</item>
- <item msgid="4422070755065530548">"የማሳወቂያ ድምጽ መጠን"</item>
+ <item msgid="4422070755065530548">"የማሳወቂያ ድምፅ መጠን"</item>
<item msgid="3250654589277825306">"የብሉቱዝ ድምፅ መጠን"</item>
<item msgid="4212187233638382465">"እንደነቃ አቆይ"</item>
<item msgid="5099026183238335900">"አካባቢን ይቆጣጠሩ"</item>
@@ -327,7 +327,7 @@
<item msgid="8267704990417682222">"ማሳወቂያዎችን ይድረሱ"</item>
<item msgid="3180676986290096851">"ካሜራ"</item>
<item msgid="9174072114281872917">"ኦዲዮ ቅረጽ"</item>
- <item msgid="1444183972646890539">"ድምጽ አጫውት"</item>
+ <item msgid="1444183972646890539">"ድምፅ አጫውት"</item>
<item msgid="4337542044275236638">"ቅንጥብ ሰሌዳ አንብብ"</item>
<item msgid="2681224211796661809">"ቅንጥብ መለያ ቀይር"</item>
<item msgid="4479361062226474111">"የሚዲያ አዝራሮች"</item>
@@ -337,7 +337,7 @@
<item msgid="6749550886745567276">"የጥሪ መጠን"</item>
<item msgid="2218685029915863168">"የማህደረ መረጃ ክፍልፍል"</item>
<item msgid="4266577290496513640">"የማንቂያ ድምፅ መጠን"</item>
- <item msgid="8608084169623998854">"የማሳወቂያ ድምጽ መጠን"</item>
+ <item msgid="8608084169623998854">"የማሳወቂያ ድምፅ መጠን"</item>
<item msgid="7948784184567841794">"የብሉቱዝ ድምፅ መጠን"</item>
<item msgid="1148968792599973150">"እንደነቃ አቆይ"</item>
<item msgid="8482874682804856549">"አካባቢ"</item>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 88a7b2b..4e6ea4f 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -141,7 +141,7 @@
<string name="bluetooth_map_request" msgid="8664081227240707479">"የመልዕክት መዳረሻ ጥያቄ"</string>
<string name="bluetooth_map_acceptance_dialog_text" msgid="2647611490952377156">"%1$s የእርስዎን መልዕክቶች ሊደርስበት ይፈልጋል። መዳረሻ ለ%2$s ይሰጥ?"</string>
<string name="bluetooth_sap_request" msgid="473439406287008397">"የሲም መዳረሻ ጥያቄ"</string>
- <string name="bluetooth_sap_acceptance_dialog_text" msgid="2849083276356078655">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> የእርስዎ ሲም ካርድ ላይ መድረስ ይፈልጋል። ወደ ሲም ካርዱ መዳረሻ መስጠት በእርስዎ መሣሪያ ላይ ግንኙነቱ ላይ በሚቆይበት ጊዜ ያክል የውሂብ ተገኚነትን ያሰናክላል። ለ<xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> መዳረሻ ስጥ"</string>
+ <string name="bluetooth_sap_acceptance_dialog_text" msgid="2849083276356078655">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> የእርስዎ ሲም ካርድ ላይ መድረስ ይፈልጋል። ወደ ሲም ካርዱ መዳረሻ መስጠት በእርስዎ መሣሪያ ላይ ግንኙነቱ ላይ በሚቆይበት ጊዜ ያህል የውሂብ ተገኚነትን ያሰናክላል። ለ<xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> መዳረሻ ስጥ"</string>
<string name="bluetooth_device_name_summary" msgid="8678342689845439583">"ለሌሎች መሣሪያዎች እንደ «<xliff:g id="DEVICE_NAME">^1</xliff:g>» ሆኖ ይታያል"</string>
<string name="bluetooth_off_footer" msgid="76578735660216295">"ወደ ሌላ መሣሪያዎች ለማገናኘት ብሉቱዝ ያብሩ"</string>
<string name="bluetooth_paired_device_title" msgid="3240639218362342026">"የእርስዎ መሣሪያዎች"</string>
@@ -1327,17 +1327,17 @@
<string name="wifi_disconnected_from" msgid="5249576734324159708">"ከ<xliff:g id="SSID">%1$s</xliff:g> ጋር ያለው ግንኙነት ተቋርጧል"</string>
<string name="carrier" msgid="1755020806290963951">"አገልግሎት አቅራቢ"</string>
<string name="display_settings_title" msgid="626835071804834218">"አሳይ"</string>
- <string name="sound_settings" msgid="7622986039384531304">"ድምጽ እና ንዝረት"</string>
+ <string name="sound_settings" msgid="7622986039384531304">"ድምፅ እና ንዝረት"</string>
<string name="all_volume_title" msgid="6196367642878437513">"ድምፆች"</string>
<string name="musicfx_title" msgid="5458574743312283473">"የሙዚቃ ማሳመሪያዎች"</string>
- <string name="ring_volume_title" msgid="4869034595079914541">"የጥሪ ድምጽ እና ማሳወቂያ ድምጽ መጠን"</string>
+ <string name="ring_volume_title" msgid="4869034595079914541">"የጥሪ ድምፅ እና ማሳወቂያ ድምፅ መጠን"</string>
<string name="vibrate_in_silent_title" msgid="5076579100685867363">"ፀጥ ሲል ንዘር"</string>
- <string name="notification_sound_title" msgid="8747567935870133157">"ነባሪ የማሳወቂያ ድምጽ"</string>
+ <string name="notification_sound_title" msgid="8747567935870133157">"ነባሪ የማሳወቂያ ድምፅ"</string>
<string name="incoming_call_volume_title" msgid="8445408274513654261">"የስልክ ጥሪ ድምፅ"</string>
<string name="notification_volume_title" msgid="328053763590888609">"ማሳወቂያ"</string>
<string name="checkbox_notification_same_as_incoming_call" msgid="1798481722572489141">"ለማሳወቂያዎች የገቢ ጥሪ ድምፅን ተጠቀም"</string>
<string name="home_work_profile_not_supported" msgid="2605589489324241338">"የስራ መገለጫዎችን አይደግፍም"</string>
- <string name="notification_sound_dialog_title" msgid="7431891669251806266">"ነባሪ የማሳወቂያ ድምጽ"</string>
+ <string name="notification_sound_dialog_title" msgid="7431891669251806266">"ነባሪ የማሳወቂያ ድምፅ"</string>
<string name="media_volume_title" msgid="5209147840160985178">"ማህደረ መረጃ"</string>
<string name="media_volume_summary" msgid="4671324482655564873">"ለሙዚቃ እና ቪዲዮዎች የድምፅመጠን አዘጋጅ"</string>
<string name="alarm_volume_title" msgid="706302621191735343">"ማንቂያ ደውል"</string>
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"የተለያዩ ቅጦችን፣ ልጣፎችን እና ተጨማሪ ነገሮችን ይሞክሩ"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"የማያ ገጽ ማቆያ"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"የማያ ገጽ ማቆያ"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"የማያ ገጽ አዳኝን ይጠቀሙ"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"ኃይል እየሞላ ወይም ተተክሎ ሳለ"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"ባትሪ በመሙላት ላይ ሳለ"</string>
@@ -1615,7 +1617,7 @@
<string name="status_meid_number" msgid="6040380838489162650">"MEID"</string>
<string name="status_icc_id" msgid="7995690631650006970">"ICCID"</string>
<string name="status_data_network_type" msgid="3689772955330665876">"የተንቀሳቃሽ ስልክ ውሂብ አውታረ መረብ አይነት"</string>
- <string name="status_voice_network_type" msgid="8700356693062562884">"የተንቀሳቃሽ ድምጽ ውሂብ አውታረ መረብ አይነት"</string>
+ <string name="status_voice_network_type" msgid="8700356693062562884">"የተንቀሳቃሽ ድምፅ ውሂብ አውታረ መረብ አይነት"</string>
<string name="status_latest_area_info" msgid="8288488664620741734">"የድምጸ ተያያዥ ሞደም መረጃ"</string>
<string name="status_data_state" msgid="525196229491743487">"የተንቀሳቃሽ አውታረ መረብክልል"</string>
<string name="status_esim_id" msgid="5158916796362809133">"EID"</string>
@@ -1671,7 +1673,7 @@
<string name="sd_ejecting_title" msgid="1641122369013595273">"በመንቀል ላይ"</string>
<string name="sd_ejecting_summary" msgid="861928572729341132">"ንቀል በሂደት ላይ"</string>
<string name="storage_low_title" msgid="8002650511493419567">"የማከማቻ ቦታ እያለቀ ነው"</string>
- <string name="storage_low_summary" msgid="7341022293583384506">"እንደማመሳሰል ያሉ አንዳንድ የስርዓት ተግባራት በትክክል ላይሰሩ ይችላሉ። እንደመተግበሪያዎች ወይም የሚዲያ ይዘቶች ያሉ ንጥሎች በመሰረዝ ወይም ባለመሰካት ነጻ ቦታ ለመጨመር ሞክር።"</string>
+ <string name="storage_low_summary" msgid="7341022293583384506">"እንደማመሳሰል ያሉ አንዳንድ የስርዓት ተግባራት በትክክል ላይሰሩ ይችላሉ። እንደመተግበሪያዎች ወይም የሚዲያ ይዘቶች ያሉ ንጥሎች በመሰረዝ ወይም ባለመሰካት ነፃ ቦታ ለመጨመር ሞክር።"</string>
<string name="storage_menu_rename" msgid="8549835371429159336">"እንደገና ሰይም"</string>
<string name="storage_menu_mount" msgid="4760531872302820569">"አፈናጥ"</string>
<string name="storage_menu_unmount" msgid="8171552487742912282">"አስወጣ"</string>
@@ -1686,7 +1688,7 @@
<string name="storage_menu_manage" msgid="7465522758801346408">"ማከማቻን ያቀናብሩ"</string>
<string name="keywords_storage_menu_free" msgid="2275406357317597106">"ንጹሕ፣ ማከማቻ"</string>
<string name="storage_free_up_space_title" msgid="281047807372131975">"ቦታ ያስለቅቁ"</string>
- <string name="storage_free_up_space_summary" msgid="6650027929735481350">"ቦታ ለማስተዳደር እና ነጻ ለማድረግ ወደ ፋይሎች መተግበሪያ ይሂዱ"</string>
+ <string name="storage_free_up_space_summary" msgid="6650027929735481350">"ቦታ ለማስተዳደር እና ነፃ ለማድረግ ወደ ፋይሎች መተግበሪያ ይሂዱ"</string>
<string name="storage_title_usb" msgid="1332488715547400452">"የUSB ኮምፒዩተር ትይይዝ"</string>
<string name="usb_connection_category" msgid="2288543238378907242">"እንደ.... ያግኙን"</string>
<string name="usb_mtp_title" msgid="9068009584556422314">"የማህደረ መረጃ መሣሪያ (MTP)"</string>
@@ -1728,7 +1730,7 @@
<string name="storage_wizard_format_progress_title" msgid="9170393018855949774">"የ<xliff:g id="NAME">^1</xliff:g>ን ቅርጸት በመስራት ላይ…"</string>
<string name="storage_wizard_format_progress_body" msgid="1044024044955390417">"<xliff:g id="NAME">^1</xliff:g> ቅርጸት እየተሠራለት ሳለ አያስወግዱት።"</string>
<string name="storage_wizard_migrate_title" msgid="3013711737005104623">"ውሂብን ወደ አዲስ ማከማቻ ውሰድ"</string>
- <string name="storage_wizard_migrate_body" msgid="1630853797296198275">"የእርስዎን ፎቶዎች፣ ፋይሎች፣ እና አንዳንድ መተግበሪያዎች ወደዚህ አዲስ <xliff:g id="NAME">^1</xliff:g> ማንቀሳቀስ ይችላሉ። \n\nእንቅስቃሴው <xliff:g id="TIME">^2</xliff:g> ያህል ይወስዳል እና <xliff:g id="SIZE">^3</xliff:g> በውስጣዊ ማከማቻው ላይ ነጻ ያደርጋል። ይህ በሚከናወንበት ጊዜ አንዳንድ መተግበሪያዎች አይሰሩም።"</string>
+ <string name="storage_wizard_migrate_body" msgid="1630853797296198275">"የእርስዎን ፎቶዎች፣ ፋይሎች፣ እና አንዳንድ መተግበሪያዎች ወደዚህ አዲስ <xliff:g id="NAME">^1</xliff:g> ማንቀሳቀስ ይችላሉ። \n\nእንቅስቃሴው <xliff:g id="TIME">^2</xliff:g> ያህል ይወስዳል እና <xliff:g id="SIZE">^3</xliff:g> በውስጣዊ ማከማቻው ላይ ነፃ ያደርጋል። ይህ በሚከናወንበት ጊዜ አንዳንድ መተግበሪያዎች አይሰሩም።"</string>
<string name="storage_wizard_migrate_now" msgid="175023718337037181">"አሁን ይውሰዱ"</string>
<string name="storage_wizard_migrate_later" msgid="6573789572520980112">"በኋላ ይውሰዱ"</string>
<string name="storage_wizard_migrate_confirm_title" msgid="255346780598924540">"ውሂብ አሁን ይውሰዱ"</string>
@@ -1763,8 +1765,8 @@
<string name="storage_wizard_format_confirm_v2_body_external" msgid="5810296966099830035">"ይህ <xliff:g id="NAME_0">^1</xliff:g> ፎቶዎችን፣ ቪድዮዎችን፣ ሙዚቃን እና ሌሎችንም ለማከማቸት ቅርጸት መሰራት አለበት። \n\nቅርጸት መስራት ማንኛውንም ነባር ይዘት ይደመስሳል<xliff:g id="NAME_1">^2</xliff:g>። ይዘት ማጣትን ለማስቀረት ምትኬውን በሌላ <xliff:g id="NAME_2">^3</xliff:g> ወይም መሣሪያ ላይ ያስቀምጡለት።"</string>
<string name="storage_wizard_format_confirm_v2_action" msgid="5718254101386377126">"ቅርጸት <xliff:g id="NAME">^1</xliff:g>"</string>
<string name="storage_wizard_migrate_v2_title" msgid="3471564531564756698">"ይዘት ወደ <xliff:g id="NAME">^1</xliff:g> ይንቀሳቀስ?"</string>
- <string name="storage_wizard_migrate_v2_body" product="tablet" msgid="4541523202790415721">"ፋይሎችን፣ ማህደረ መረጃን እና የተወሰኑ መተግበሪያዎችን ወደዚህ <xliff:g id="NAME">^1</xliff:g> ማንቀሳቀስ ይችላሉ። \n\nይህ እንቅስቃሴ ከእርስዎ ጡባዊ ማከማቻ <xliff:g id="SIZE">^2</xliff:g> ነጻ ያደርጋል እና ወደ <xliff:g id="DURATION">^3</xliff:g> ገደማ መውሰድ አለበት።"</string>
- <string name="storage_wizard_migrate_v2_body" product="default" msgid="809730501314645325">"ፋይሎችን፣ ማህደረ መረጃን እና የተወሰኑ መተግበሪያዎችን ወደዚህ <xliff:g id="NAME">^1</xliff:g> ማንቀሳቀስ ይችላሉ። \n\nይህ እንቅስቃሴ ከእርስዎ ስልክ ማከማቻ <xliff:g id="SIZE">^2</xliff:g> ነጻ ያደርጋል እና ወደ <xliff:g id="DURATION">^3</xliff:g> ገደማ መውሰድ አለበት።"</string>
+ <string name="storage_wizard_migrate_v2_body" product="tablet" msgid="4541523202790415721">"ፋይሎችን፣ ማህደረ መረጃን እና የተወሰኑ መተግበሪያዎችን ወደዚህ <xliff:g id="NAME">^1</xliff:g> ማንቀሳቀስ ይችላሉ። \n\nይህ እንቅስቃሴ ከእርስዎ ጡባዊ ማከማቻ <xliff:g id="SIZE">^2</xliff:g> ነፃ ያደርጋል እና ወደ <xliff:g id="DURATION">^3</xliff:g> ገደማ መውሰድ አለበት።"</string>
+ <string name="storage_wizard_migrate_v2_body" product="default" msgid="809730501314645325">"ፋይሎችን፣ ማህደረ መረጃን እና የተወሰኑ መተግበሪያዎችን ወደዚህ <xliff:g id="NAME">^1</xliff:g> ማንቀሳቀስ ይችላሉ። \n\nይህ እንቅስቃሴ ከእርስዎ ስልክ ማከማቻ <xliff:g id="SIZE">^2</xliff:g> ነፃ ያደርጋል እና ወደ <xliff:g id="DURATION">^3</xliff:g> ገደማ መውሰድ አለበት።"</string>
<string name="storage_wizard_migrate_v2_checklist" msgid="2618258869444553060">"በማንቀሳቀሱ ጊዜ ላይ፦"</string>
<string name="storage_wizard_migrate_v2_checklist_media" msgid="5867134681730723744">"<xliff:g id="NAME">^1</xliff:g>ን አታስወግድ"</string>
<string name="storage_wizard_migrate_v2_checklist_apps" msgid="1882077445750580783">"አንዳንድ መተግበሪያዎች አይሠሩም"</string>
@@ -1917,7 +1919,7 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"በእርስዎ Wi-Fi ወይም የተንቀሳቃሽ ስልክ ውሂብ ግንኙነት በኩል በይነመረቡ ለሌሎች መሣሪያዎች ለማቅረብ የመገናኛ ነጥብን እና እንደ ሞደም መሰካትን ይጠቀሙ። መተግበሪያዎች እንዲሁም ይዘቶችን በአቅራቢያ ላሉ መሣሪያዎች ለማጋራት መገናኛ ነጥብን መፍጠር ይችላሉ።"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"እገዛ"</string>
<string name="network_settings_title" msgid="4663717899931613176">"የተንቀሳቃሽ ስልክ አውታረ መረብ"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"የሞባይል እቅድ"</string>
+ <string name="manage_mobile_plan_title" msgid="5616930513733409064">"የሞባይል ዕቅድ"</string>
<string name="sms_application_title" msgid="4791107002724108809">"የኤስኤምኤስ መተግበሪያ"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"የኤስ ኤም ኤስ መተግበሪያ ይለወጥ?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"ከ<xliff:g id="CURRENT_APP">%2$s</xliff:g> ይልቅ <xliff:g id="NEW_APP">%1$s</xliff:g> እንደ እርስዎ ኤስኤምኤስ መተግበሪያ ይጠቀሙበት?"</string>
@@ -3713,7 +3715,7 @@
<string name="keywords_battery_saver" msgid="6289682844453234359">"የባትሪ ኃይል ቆጣቢ፣ ኃይል ቆጣቢ፣ ቆጣቢ"</string>
<string name="keywords_battery_adaptive_preferences" msgid="1774870663426502938">"ተለማማጅ ምርጫዎች፣ ተለማማጅ ባትሪ"</string>
<string name="keywords_spell_checker" msgid="5148906820603481657">"የፊደል አጻጻፍ፣ መዝገበ-ቃላት፣ ፊደል ማረሚያ፣ ራስ-እርማት"</string>
- <string name="keywords_voice_input" msgid="7534900094659358971">"ማወቂያ፣ ግቤት፣ ንግግር፣ ይናገሩ፣ ቋንቋ፣ ነጻ-እጅ፣ ነጻ እጅ፣ ማወቂያ፣ አስከፊ ቃል፣ የኦዲዮ ታሪክ፣ ብሉቱዝ፣ የጆሮ ማዳመጫ"</string>
+ <string name="keywords_voice_input" msgid="7534900094659358971">"ማወቂያ፣ ግቤት፣ ንግግር፣ ይናገሩ፣ ቋንቋ፣ ነፃ-እጅ፣ ነፃ እጅ፣ ማወቂያ፣ አስከፊ ቃል፣ የኦዲዮ ታሪክ፣ ብሉቱዝ፣ የጆሮ ማዳመጫ"</string>
<string name="keywords_text_to_speech_output" msgid="6728080502619011668">"ደረጃ፣ ቋንቋ፣ ነባሪ፣ ተናገር፣ መናገር፣ tts፣ ተደራሽነት፣ ማያ ገጽ አንባቢ፣ ማየት የተሳናቸው"</string>
<string name="keywords_date_and_time" msgid="4402136313104901312">"ሰዓት፣ ወታደራዊ"</string>
<string name="keywords_network_reset" msgid="4075670452112218042">"ዳግም አስጀምር፣ ወደነበረበት መልስ፣ ፋብሪካ"</string>
@@ -3763,7 +3765,7 @@
<string name="keywords_system_update_settings" msgid="5769003488814164931">"ደረጃ አሻሽል፣ android"</string>
<string name="keywords_zen_mode_settings" msgid="7810203406522669584">"dnd፣ መርሐ ግብር፣ ማሳወቂያዎች፣ አግድ፣ ጸጥታ፣ ንዘር፣ አንቀላፋ፣ ሥራ፣ አተኩር፣ ድምፅ፣ ድምፀ ከል አድርግ፣ ቀን፣ የሳምንቱ ቀን፣ የሳምንቱ ዕረፍት ቀናት፣ የሳምንቱ ሌሊት፣ ክስተት"</string>
<string name="keywords_screen_timeout" msgid="8921857020437540572">"ማያ ገጽ፣ የመቆለፊያ ጊዜ፣ እረፍት ጊዜ፣ የቆልፍ ማያ ገጽ"</string>
- <string name="keywords_storage_settings" msgid="6018856193950281898">"ማህደረ ትውስታ፣ ውሂብ፣ ሰርዝ፣ አፅዳ፣ ነጻ፣ ባዶ ቦታ"</string>
+ <string name="keywords_storage_settings" msgid="6018856193950281898">"ማህደረ ትውስታ፣ ውሂብ፣ ሰርዝ፣ አፅዳ፣ ነፃ፣ ባዶ ቦታ"</string>
<string name="keywords_bluetooth_settings" msgid="2588159530959868188">"ተገናኝቷል፣ መሣሪያ፣ የጆሮ ማዳመጫዎች፣ ማዳመጫዎች፣ ስፒከር፣ ገመድ አልባ፣ አጣምር፣ ጆሮ ተሰኪዎች፣ ሙዚቃ፣ ማህደረ መረጃ"</string>
<string name="keywords_wallpaper" msgid="7332890404629446192">"ዳራ፣ ገጽታ፣ ፍርግርግ፣ አብጅ፣ ግላዊነት ማላበስ"</string>
<string name="keywords_styles" msgid="5291614313348476068">"አዶ፣ ትእምርት፣ ቀለም"</string>
@@ -3787,22 +3789,23 @@
<string name="keywords_font_size" msgid="1643198841815006447">"የጽሁፍ መጠን፣ ትልቅ ህትመት፣ ትልቅ ቅርጸ-ቁምፊ፣ ትልቅ ጽሁፍ፣ ዝቅተኛ-ዕይታ፣ ጽሁፍን ያተልቁ መጠን፣ ትልቅ ህትመት፣ ትልቅ ቅርጸ-ቁምፊ፣ ትልቅ ጽሁፍ፣ ዝቅተኛ-ዕይታ፣ ጽሁፍን ያተልቁ፣ ቅርጸ-ቁምፊ ማተለቂያ፣ ቅርጸ-ቁምፊ ማተለቅ"</string>
<string name="keywords_always_show_time_info" msgid="9120590185763264666">"ሁልጊዜ የሚበራ ማሳያ"</string>
<string name="default_sound" msgid="6604374495015245195">"ነባሪ ድምፅ"</string>
- <string name="sound_settings_summary" msgid="944761906531715109">"የጥሪ ድምጽ እና ማሳወቂያ ድምጽ መጠን <xliff:g id="PERCENTAGE">%1$s</xliff:g> ላይ"</string>
+ <string name="sound_settings_summary" msgid="944761906531715109">"የጥሪ ድምፅ እና ማሳወቂያ ድምፅ መጠን <xliff:g id="PERCENTAGE">%1$s</xliff:g> ላይ"</string>
<string name="sound_dashboard_summary" msgid="6574444810552643312">"ድምፅ፣ ንዝረት፣ አትረብሽ"</string>
<string name="sound_settings_summary_vibrate" msgid="7192223433295988890">"ደዋዩ ወደ ንዘር ተቀናብሯል"</string>
<string name="sound_settings_summary_silent" msgid="746662794579344761">"ደዋዩ ወደ ጸጥታ ተቀናብሯል"</string>
- <string name="sound_settings_example_summary" msgid="8125110691864707925">"የጥሪ ድምጽ እና ማሳወቂያ ድምጽ መጠን 80% ላይ"</string>
+ <string name="sound_settings_example_summary" msgid="8125110691864707925">"የጥሪ ድምፅ እና ማሳወቂያ ድምፅ መጠን 80% ላይ"</string>
<string name="media_volume_option_title" msgid="5966569685119475630">"የማህደረመረጃ ክፍልፍል"</string>
<string name="remote_media_volume_option_title" msgid="8760846743943305764">"ድምፅን Cast አድርግ"</string>
- <string name="call_volume_option_title" msgid="1461105986437268924">"የስልክ ጥሪ ድምጽ መጠን"</string>
+ <string name="call_volume_option_title" msgid="1461105986437268924">"የስልክ ጥሪ ድምፅ መጠን"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"የማንቂያ ድምፅ መጠን"</string>
- <string name="ring_volume_option_title" msgid="1520802026403038560">"የጥሪ ድምጽ እና ማሳወቂያ ድምጽ መጠን"</string>
- <string name="notification_volume_option_title" msgid="4838818791683615978">"የማሳወቂያ ድምጽ መጠን"</string>
+ <string name="ring_volume_option_title" msgid="1520802026403038560">"የጥሪ ድምፅ እና ማሳወቂያ ድምፅ መጠን"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"የጥሪ የድምጽ መጠን"</string>
+ <string name="notification_volume_option_title" msgid="4838818791683615978">"የማሳወቂያ ድምፅ መጠን"</string>
<string name="ringtone_title" msgid="3271453110387368088">"የስልክ ጥሪ ድምፅ"</string>
- <string name="notification_ringtone_title" msgid="6924501621312095512">"ነባሪ የማሳወቂያ ድምጽ"</string>
- <string name="notification_unknown_sound_title" msgid="1319708450698738980">"በመተግበሪያ የቀረበ ድምጽ"</string>
- <string name="notification_sound_default" msgid="8630353701915294299">"ነባሪ የማሳወቂያ ድምጽ"</string>
- <string name="alarm_ringtone_title" msgid="6680761007731764726">"ነባሪ የማንቂያ ድምጽ"</string>
+ <string name="notification_ringtone_title" msgid="6924501621312095512">"ነባሪ የማሳወቂያ ድምፅ"</string>
+ <string name="notification_unknown_sound_title" msgid="1319708450698738980">"በመተግበሪያ የቀረበ ድምፅ"</string>
+ <string name="notification_sound_default" msgid="8630353701915294299">"ነባሪ የማሳወቂያ ድምፅ"</string>
+ <string name="alarm_ringtone_title" msgid="6680761007731764726">"ነባሪ የማንቂያ ድምፅ"</string>
<string name="vibrate_when_ringing_title" msgid="3436203665622843196">"ለጥሪዎች ንዘር"</string>
<string name="keywords_vibrate_for_calls" msgid="1019870409730074899">"ንዝረት"</string>
<string name="vibrate_when_ringing_option_never_vibrate" msgid="6518980907289156517">"በጭራሽ አትንዘር"</string>
@@ -3811,12 +3814,12 @@
<string name="other_sound_settings" msgid="5468360269346162072">"ሌሎች ድምጾች"</string>
<string name="spatial_audio_title" msgid="6591051622375191603">"ከባቢያዊ ኦዲዮ"</string>
<string name="dial_pad_tones_title" msgid="3536945335367914892">"የመደወያ ሰሌዳ ድምጾች"</string>
- <string name="screen_locking_sounds_title" msgid="5695030983872787321">"የማያ ገጽ መቆለፊያ ድምጽ"</string>
+ <string name="screen_locking_sounds_title" msgid="5695030983872787321">"የማያ ገጽ መቆለፊያ ድምፅ"</string>
<string name="charging_sounds_title" msgid="5261683808537783668">"የኃይል መሙላት ድምፅ እና ንዝረት"</string>
<string name="docking_sounds_title" msgid="5341616179210436159">"የመትከል ድምጾች"</string>
<string name="touch_sounds_title" msgid="2200734041857425078">"ድምፆችን ይንኩ"</string>
<string name="vibrate_icon_title" msgid="1281100105045362530">"በንዝረት ሁነታ ላይ ሲሆኑ ሁልጊዜ አዶን አሳይ"</string>
- <string name="dock_audio_media_title" msgid="6474579339356398330">"የመትከያ ድምጽ ማጉያ ያጫውታል"</string>
+ <string name="dock_audio_media_title" msgid="6474579339356398330">"የመትከያ ድምፅ ማጉያ ያጫውታል"</string>
<string name="dock_audio_media_disabled" msgid="8499927008999532341">"ሁሉም ተሰሚ"</string>
<string name="dock_audio_media_enabled" msgid="4039126523653131281">"የማህደረመረጃ ተሰሚ ብቻ"</string>
<string name="emergency_tone_silent" msgid="5048069815418450902">"ጸጥታ"</string>
@@ -3825,7 +3828,7 @@
<string name="boot_sounds_title" msgid="5033062848948884111">"ድምፆችን ያብሩ"</string>
<string name="live_caption_title" msgid="8617086825712756983">"የቀጥታ ስርጭት መግለጫ ጽሁፍ"</string>
<string name="live_caption_summary" msgid="2898451867595161809">"ራስሰር የሥዕል መግለጫ ጽሑፍን ሚዲያ"</string>
- <string name="spatial_audio_speaker" msgid="9145233652433523302">"የስልክ ድምጽ ማጉያ"</string>
+ <string name="spatial_audio_speaker" msgid="9145233652433523302">"የስልክ ድምፅ ማጉያ"</string>
<string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"ባለገመድ የጆሮ ማዳመጫ"</string>
<string name="spatial_audio_text" msgid="8201387855375146000">"ከተኳኋኝ ሚዲያ የሚመጣ ኦዲዩ ይበልጥ መሳጭ ይሆናል"</string>
<string name="spatial_summary_off" msgid="8272678804629774378">"አጥፋ"</string>
@@ -3846,7 +3849,7 @@
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"መርሐግብሮች"</string>
<string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"መርሐግብር"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"መርሐግብር"</string>
- <string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"በተወሰኑ ሰዓታት ላይ የስልክ ድምጽ አጥፋ"</string>
+ <string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"በተወሰኑ ሰዓታት ላይ የስልክ ድምፅ አጥፋ"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"የአትረብሽ ደንቦችን ያቀናብሩ"</string>
<string name="zen_mode_schedule_title" msgid="7064866561892906613">"መርሐግብር"</string>
<string name="zen_mode_use_automatic_rule" msgid="733850322530002484">"መርሐግብር ይጠቀሙ"</string>
@@ -3856,18 +3859,18 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ምስላዊ ምልክቶችን ፍቀድ"</string>
<string name="zen_mode_restrict_notifications_title" msgid="4169952466106040297">"ለተደበቁ ማሳወቂያዎች የማሳያ አማራጮች"</string>
<string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"አትረብሽ ሲበራ"</string>
- <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"ከማሳወቂያዎች ምንም ድምጽ የለም"</string>
+ <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"ከማሳወቂያዎች ምንም ድምፅ የለም"</string>
<string name="zen_mode_restrict_notifications_mute_summary" msgid="966597459849580949">"ማሳወቂያዎችን በማያዎ ላይ ይመለከታሉ"</string>
- <string name="zen_mode_restrict_notifications_mute_footer" msgid="2152115038156049608">"ማሳወቂያዎች ሲመጡ ስልክዎ ድምጽ አያሰማም ወይም አይነዝርም።"</string>
- <string name="zen_mode_restrict_notifications_hide" msgid="5997930361607752541">"ማሳወቂያዎች ላይ ምንም ምስሎች ወይም ድምጽ የለም"</string>
+ <string name="zen_mode_restrict_notifications_mute_footer" msgid="2152115038156049608">"ማሳወቂያዎች ሲመጡ ስልክዎ ድምፅ አያሰማም ወይም አይነዝርም።"</string>
+ <string name="zen_mode_restrict_notifications_hide" msgid="5997930361607752541">"ማሳወቂያዎች ላይ ምንም ምስሎች ወይም ድምፅ የለም"</string>
<string name="zen_mode_restrict_notifications_hide_summary" msgid="6005445725686969583">"ማሳወቂያዎችን አያዩም ወይም አይሰሙም።"</string>
- <string name="zen_mode_restrict_notifications_hide_footer" msgid="4314772315731485747">"የእርስዎ ስልክ አዲስ ወይም ነባር ማሳወቂያዎችን አያሳይም፣ ለእነሱ አይነዝርም ወይም ድምጽ አያሰማም። ለስልክ እንቅስቃሴ ወሳኝ የሆኑ ማሳወቂያዎች እና ሁኔታ አሁንም እንደሚታዩ ከግምት ውስጥ ያስገቡ።\n\nአትረብሽን ሲያጠፉት ከማያዎ አናት ወደ ታች በማንሸራተት ያመለጡ ማሳወቂያዎችን ያግኙ።"</string>
+ <string name="zen_mode_restrict_notifications_hide_footer" msgid="4314772315731485747">"የእርስዎ ስልክ አዲስ ወይም ነባር ማሳወቂያዎችን አያሳይም፣ ለእነሱ አይነዝርም ወይም ድምፅ አያሰማም። ለስልክ እንቅስቃሴ ወሳኝ የሆኑ ማሳወቂያዎች እና ሁኔታ አሁንም እንደሚታዩ ከግምት ውስጥ ያስገቡ።\n\nአትረብሽን ሲያጠፉት ከማያዎ አናት ወደ ታች በማንሸራተት ያመለጡ ማሳወቂያዎችን ያግኙ።"</string>
<string name="zen_mode_restrict_notifications_custom" msgid="5469078057954463796">"ብጁ"</string>
<string name="zen_mode_restrict_notifications_enable_custom" msgid="4303255634151330401">"ብጁ ቅንብን አንቃ"</string>
<string name="zen_mode_restrict_notifications_disable_custom" msgid="5062332754972217218">"ብጁ ቅንብን አስወግድ"</string>
- <string name="zen_mode_restrict_notifications_summary_muted" msgid="4750213316794189968">"ከማሳወቂያዎች ምንም ድምጽ የለም"</string>
+ <string name="zen_mode_restrict_notifications_summary_muted" msgid="4750213316794189968">"ከማሳወቂያዎች ምንም ድምፅ የለም"</string>
<string name="zen_mode_restrict_notifications_summary_custom" msgid="3918461289557316364">"በከፊል ተደብቋል"</string>
- <string name="zen_mode_restrict_notifications_summary_hidden" msgid="636494600775773296">"ማሳወቂያዎች ላይ ምንም ምስሎች ወይም ድምጽ የለም"</string>
+ <string name="zen_mode_restrict_notifications_summary_hidden" msgid="636494600775773296">"ማሳወቂያዎች ላይ ምንም ምስሎች ወይም ድምፅ የለም"</string>
<string name="zen_mode_what_to_block_title" msgid="5692710098205334164">"ብጁ ገደቦች"</string>
<string name="zen_mode_block_effects_screen_on" msgid="8780668375194500987">"ማያ ገጹ ሲበራ"</string>
<string name="zen_mode_block_effects_screen_off" msgid="2291988790355612826">"ማያ ገጹ ሲጠፋ"</string>
@@ -3882,9 +3885,9 @@
<string name="zen_mode_block_effect_summary_none" msgid="6688519142395714659">"በጭራሽ"</string>
<string name="zen_mode_block_effect_summary_screen_off" msgid="6989818116297061488">"ማያ ገጹ ሲጠፋ"</string>
<string name="zen_mode_block_effect_summary_screen_on" msgid="4876016548834916087">"ማያ ገጹ ሲበራ"</string>
- <string name="zen_mode_block_effect_summary_sound" msgid="1559968890497946901">"ድምጽ እና ንዝረት"</string>
- <string name="zen_mode_block_effect_summary_some" msgid="2730383453754229650">"የማሳወቂያዎች ድምጽ፣ ንዝረት እና አንዳንድ ምስላዊ ምልክቶች"</string>
- <string name="zen_mode_block_effect_summary_all" msgid="3131918059492425222">"የማሳወቂያዎች ድምጽ፣ ንዝረት እና ምስላዊ ምልክቶች"</string>
+ <string name="zen_mode_block_effect_summary_sound" msgid="1559968890497946901">"ድምፅ እና ንዝረት"</string>
+ <string name="zen_mode_block_effect_summary_some" msgid="2730383453754229650">"የማሳወቂያዎች ድምፅ፣ ንዝረት እና አንዳንድ ምስላዊ ምልክቶች"</string>
+ <string name="zen_mode_block_effect_summary_all" msgid="3131918059492425222">"የማሳወቂያዎች ድምፅ፣ ንዝረት እና ምስላዊ ምልክቶች"</string>
<string name="zen_mode_blocked_effects_footer" msgid="1115914818435434668">"ማሳወቂያዎች ለመሠረታዊ የስልክ እንቅስቃሴ ያስፈልጋሉ፣ እና ሁኔታ በጭራሽ አይደበቅም።"</string>
<string name="zen_mode_no_exceptions" msgid="1580136061336585873">"ምንም"</string>
<string name="zen_mode_other_options" msgid="3399967231522580421">"ሌሎች አማራጮች"</string>
@@ -3914,7 +3917,7 @@
<string name="zen_category_schedule" msgid="2003707171924226212">"መርሐግብሮች"</string>
<string name="zen_category_duration" msgid="7515850842082631460">"የፈጣን ቅንብሮች የቆይታ ጊዜ"</string>
<string name="zen_settings_general" msgid="2704932194620124153">"አጠቃላይ"</string>
- <string name="zen_sound_footer" msgid="4090291351903631977">"አትረብሽ ሲበራ ከላይ ከሚፈቅዷቸው ንጥሎች በስተቀር ድምጽ እና ንዝረት ድምጸ-ከል ይደረግባቸዋል።"</string>
+ <string name="zen_sound_footer" msgid="4090291351903631977">"አትረብሽ ሲበራ ከላይ ከሚፈቅዷቸው ንጥሎች በስተቀር ድምፅ እና ንዝረት ድምጸ-ከል ይደረግባቸዋል።"</string>
<string name="zen_custom_settings_dialog_title" msgid="4613603772432720380">"ብጁ ቅንብሮች"</string>
<string name="zen_custom_settings_dialog_review_schedule" msgid="4674671820584759928">"መርሐግብር ይገምግሙ"</string>
<string name="zen_custom_settings_dialog_ok" msgid="8842373418878278246">"ገብቶኛል"</string>
@@ -3924,8 +3927,8 @@
<string name="zen_msg_event_reminder_footer" msgid="2700459146293750387">"አትረብሽ ሲበራ ከላይ ከሚፈቅዷቸው ንጥሎች በስተቀር መልዕክቶች፣ አስታዋሾች እና ክስተቶች ድምጸ-ከል ይደረግባቸዋል። የእርስዎ ጓደኛዎች፣ ቤተሰብ እና ሌሎች እውቂያዎች እርስዎን ማግኘት እንዲችሉ የመልዕክት ቅንብሮችን ማስተካከል ይችላሉ።"</string>
<string name="zen_onboarding_ok" msgid="8764248406533833392">"ተከናውኗል"</string>
<string name="zen_onboarding_settings" msgid="2815839576245114342">"ቅንብሮች"</string>
- <string name="zen_onboarding_new_setting_title" msgid="8813308612916316657">"ማሳወቂያዎች ላይ ምንም ምስሎች ወይም ድምጽ የለም"</string>
- <string name="zen_onboarding_current_setting_title" msgid="5024603685220407195">"ከማሳወቂያዎች ምንም ድምጽ የለም"</string>
+ <string name="zen_onboarding_new_setting_title" msgid="8813308612916316657">"ማሳወቂያዎች ላይ ምንም ምስሎች ወይም ድምፅ የለም"</string>
+ <string name="zen_onboarding_current_setting_title" msgid="5024603685220407195">"ከማሳወቂያዎች ምንም ድምፅ የለም"</string>
<string name="zen_onboarding_new_setting_summary" msgid="7695808354942143707">"ማሳወቂያዎችን አያዩም ወይም አይሰሙም። ኮከብ ከተደረገባቸው እውቂያዎች የሚመጡ ጥሪዎች እና ድጋሚ ደዋዮች ይፈቀዳሉ።"</string>
<string name="zen_onboarding_current_setting_summary" msgid="8864567406905990095">"(የአሁን ቅንብር)"</string>
<string name="zen_onboarding_dnd_visual_disturbances_header" msgid="8639698336231314609">"የአትረብሽ ማሳወቂያ ቅንብሮች ይቀየሩ?"</string>
@@ -4090,8 +4093,8 @@
<string name="notification_channel_summary_priority" msgid="7225362351439076913">"በውይይት ክፍል አናት ላይ ያሳያል፣ እንደ ተንሳፋፊ አረፋ ብቅ ይላል፣ በቆልፍ ማያ ገጽ ላይ የመገለጫ ሥዕልን ያሳያል"</string>
<string name="convo_not_supported_summary" msgid="4285471045268268048">"<xliff:g id="APP_NAME">%1$s</xliff:g> አብዛኛዎቹን የውይይት ባህሪያት አይደግፍም። አንድ ውይይትን እንደ ቅድሚያ ተሰጪ አድርገው ማቀናበር አይችሉም፣ እና ውይይቶች እንደ ተንሳፋፊ አረፋዎች ሆነው አይታዩም።"</string>
<string name="notification_channel_summary_min" msgid="8823399508450176842">"ወደ ታች ተጎታች ጥላው ላይ ማሳወቂያዎችን ወደ አንድ መስመር ሰብስብ"</string>
- <string name="notification_channel_summary_low" msgid="5549662596677692000">"ምንም ድምጽ ወይም ንዝረት የለም"</string>
- <string name="notification_conversation_summary_low" msgid="6352818857388412326">"ምንም ድምጽ ወይም ንዝረት የለም እና በውይይት ክፍል ላይ አይታይም"</string>
+ <string name="notification_channel_summary_low" msgid="5549662596677692000">"ምንም ድምፅ ወይም ንዝረት የለም"</string>
+ <string name="notification_conversation_summary_low" msgid="6352818857388412326">"ምንም ድምፅ ወይም ንዝረት የለም እና በውይይት ክፍል ላይ አይታይም"</string>
<string name="notification_channel_summary_default" msgid="3674057458265438896">"በእርስዎ የስልክ ቅንብሮች የሚወሰን ሆኖ ሊደውል ወይም ሊነዝር ይችላል"</string>
<string name="notification_channel_summary_high" msgid="3411637309360617621">"መሣሪያ ሲከፈት፣ ማሳወቂያዎችን እንደ ሰንደቅ በማያ ገጹ አናት ላይ እንዳለ አሳይ"</string>
<string name="notification_switch_label" msgid="8029371325967501557">"ሁሉም «<xliff:g id="APP_NAME">%1$s</xliff:g>» ማሳወቂያዎች"</string>
@@ -4289,7 +4292,7 @@
<string name="zen_mode_calls" msgid="7653245854493631095">"ጥሪዎች"</string>
<string name="zen_mode_calls_list" msgid="5044730950895749093">"ጥሪዎች"</string>
<string name="zen_mode_calls_header" msgid="8379225445095856726">"አቋርጠው መግባት የሚችሉ ጥሪዎች"</string>
- <string name="zen_mode_calls_footer" msgid="2008079711083701243">"የተፈቀደላቸው ጥሪዎች ድምጽ የሚያሰሙ መሆናቸውን ለማረጋገጥ መሣሪያው ወደ መደወል መቀናበሩን ይፈትሹ።"</string>
+ <string name="zen_mode_calls_footer" msgid="2008079711083701243">"የተፈቀደላቸው ጥሪዎች ድምፅ የሚያሰሙ መሆናቸውን ለማረጋገጥ መሣሪያው ወደ መደወል መቀናበሩን ይፈትሹ።"</string>
<string name="zen_mode_custom_calls_footer" msgid="6521283204577441053">"ለ ‘<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>’ ገቢ ጥሪዎች ታግደዋል። የእርስዎ ጓደኛዎች፣ ቤተሰብ ወይም ሌሎች እውቂያዎች እርስዎን ማግኘት እንዲችሉ ቅንብሮችን ማስተካከል ይችላሉ።"</string>
<string name="zen_mode_starred_contacts_title" msgid="630299631659575589">"ባለኮከብ ዕውቂያዎች"</string>
<string name="zen_mode_starred_contacts_summary_contacts" msgid="1629467178444895094">"{count,plural,offset:2 =0{ምንም}=1{{contact_1}}=2{{contact_1} እና {contact_2}}=3{{contact_1}፣ {contact_2} እና {contact_3}}one{{contact_1}፣ {contact_2} እና # ሌሎች}other{{contact_1}፣ {contact_2} እና # ሌሎች}}"</string>
@@ -4298,7 +4301,7 @@
<string name="zen_mode_messages_list" msgid="5431014101342361882">"መልዕክቶች"</string>
<string name="zen_mode_messages_title" msgid="1777598523485334405">"መልዕክቶች"</string>
<string name="zen_mode_messages_header" msgid="253721635061451577">"አቋርጠው መግባት የሚችሉ መልዕክቶች"</string>
- <string name="zen_mode_messages_footer" msgid="6002468050854126331">"የተፈቀደላቸው መልዕክቶች ድምጽ የሚያሰሙ መሆናቸውን ለማረጋገጥ መሣሪያው ወደ መደወል መቀናበሩን ይፈትሹ።"</string>
+ <string name="zen_mode_messages_footer" msgid="6002468050854126331">"የተፈቀደላቸው መልዕክቶች ድምፅ የሚያሰሙ መሆናቸውን ለማረጋገጥ መሣሪያው ወደ መደወል መቀናበሩን ይፈትሹ።"</string>
<string name="zen_mode_custom_messages_footer" msgid="7545180036949550830">"ለ«<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>» ገቢ መልዕክቶች ይታገዳሉ። የእርስዎ ጓደኛዎች፣ ቤተሰብ ወይም ሌሎች እውቂያዎች እርስዎን ማግኘት እንዲችሉ ቅንብሮችን ማስተካከል ይችላሉ።"</string>
<string name="zen_mode_all_messages_summary" msgid="3756267858343104554">"ሁሉም መልዕክቶች እርስዎን መድረስ ይችላሉ"</string>
<string name="zen_mode_all_calls_summary" msgid="7337907849083824698">"ሁሉም ጥሪዎች እርስዎን መድረስ ይችላሉ"</string>
@@ -4552,14 +4555,14 @@
<string name="open_supported_links_footer" msgid="3188808142432787933">"መተግበሪያ የሚከተሉትን አገናኞች እንደሚይዝ ይገልጻል፦"</string>
<string name="default_apps_title" msgid="6943471331817718664">"ነባሪ"</string>
<string name="default_for_work" msgid="537558180548617528">"ለሥራ ነባሪ"</string>
- <string name="assist_and_voice_input_title" msgid="6317935163145135914">"እገዛ እና ድምጽ ግቤት"</string>
+ <string name="assist_and_voice_input_title" msgid="6317935163145135914">"እገዛ እና ድምፅ ግቤት"</string>
<string name="default_assist_title" msgid="1182435129627493758">"የዲጂታል ረዳት መተግበሪያ"</string>
<string name="default_digital_assistant_title" msgid="5654663086385490838">"ነባሪ የዲጂታል ረዳት መተግበሪያ"</string>
<string name="assistant_security_warning_title" msgid="6444187332360938730">"<xliff:g id="ASSISTANT_APP_NAME">%s</xliff:g> የእርስዎ ረዳት ይደረግ?"</string>
<string name="assistant_security_warning" msgid="5623237187748811070">"ረዳቱ በእርስዎ ስርዓት ላይ በአገልግሎት ላይ ስለሚውሉ መተግበሪያዎች መረጃን ማንበብ ይችላል፣ ይህም በእርስዎ ማያ ገጽ ላይ የሚታይ ወይም በመተግበሪያዎች ውስጥ የሚደረስበት መረጃን ይጨምራል።"</string>
<string name="assistant_security_warning_agree" msgid="9013334158753473359">"እስማማለሁ"</string>
<string name="assistant_security_warning_disagree" msgid="1539182108068356410">"አትስማማ"</string>
- <string name="choose_voice_input_title" msgid="4855506199101586943">"ድምጽ ግቤት ይምረጡ"</string>
+ <string name="choose_voice_input_title" msgid="4855506199101586943">"ድምፅ ግቤት ይምረጡ"</string>
<string name="default_browser_title" msgid="8342074390782390458">"የአሳሽ መተግበሪያ"</string>
<string name="default_browser_title_none" msgid="4691907418284764833">"ምንም ነባሪ አሳሽ የለም"</string>
<string name="default_phone_title" msgid="7616730756650803827">"የስልክ መተግበሪያ"</string>
@@ -4671,7 +4674,7 @@
<string name="memory_performance" msgid="5448274293336927570">"አፈጻጸም"</string>
<string name="total_memory" msgid="5244174393008910567">"ጠቅላላ ማህደረ ትውስታ"</string>
<string name="average_used" msgid="690235917394070169">"ጥቅም ላይ የዋለ አማካይ (%)"</string>
- <string name="free_memory" msgid="439783742246854785">"ነጻ"</string>
+ <string name="free_memory" msgid="439783742246854785">"ነፃ"</string>
<string name="memory_usage_apps" msgid="5776108502569850579">"በመተግበሪያዎች ጥቅም ላይ የዋለ ማህደረ ትውስታ"</string>
<plurals name="memory_usage_apps_summary" formatted="false" msgid="1355637088533572208">
<item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> መተግበሪያዎች ባለፈው <xliff:g id="DURATION_1">%2$s</xliff:g> ጊዜ ውስጥ ማህደረ ትውስታን ተጠቅመዋል</item>
@@ -4758,8 +4761,8 @@
<string name="notification_summary_none" msgid="9179312319023988089">"ለሁሉም መተግበሪያዎች በርቷል"</string>
<string name="apps_summary" msgid="4007416751775414252">"<xliff:g id="COUNT">%1$d</xliff:g> መተግበሪያዎች ተጭነዋል"</string>
<string name="apps_summary_example" msgid="6034002063446955592">"24 መተግበሪያዎች ተጭነዋል"</string>
- <string name="storage_summary" msgid="5903562203143572768">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> ጥቅም ላይ ውሏል - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ነጻ"</string>
- <string name="storage_summary_with_sdcard" msgid="2063780050580228868">"ውስጣዊ ማከማቻ፦ <xliff:g id="PERCENTAGE">%1$s</xliff:g> ጥቅም ላይ ውሏል - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ነጻ"</string>
+ <string name="storage_summary" msgid="5903562203143572768">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> ጥቅም ላይ ውሏል - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ነፃ"</string>
+ <string name="storage_summary_with_sdcard" msgid="2063780050580228868">"ውስጣዊ ማከማቻ፦ <xliff:g id="PERCENTAGE">%1$s</xliff:g> ጥቅም ላይ ውሏል - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ነፃ"</string>
<string name="display_summary" msgid="5526061030874717172">"ከ<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> እንቅስቃሴ-አልባነት በኋላ ተኛ"</string>
<string name="display_dashboard_summary" msgid="1599453894989339454">"ጠቆር ያለ ገጽታ፣ የቅርጸ-ቁምፊ መጠን፣ ብሩህነት"</string>
<string name="display_summary_example" msgid="4275121979039344438">"ከ10 ደቂቃዎች እንቅስቃሴ-አልባነት በኋላ ተኛ"</string>
@@ -5006,7 +5009,7 @@
<item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> ሰከንዶች</item>
</plurals>
<string name="automatic_storage_manager_settings" msgid="519158151463974656">"ማከማቻን ያስተዳድሩ"</string>
- <string name="automatic_storage_manager_text" msgid="6900593059927987273">"የማከማቻ ባዶ ቦታን ነጻ ለማድረግ እንዲያግዝ የማከማቻ አስተዳዳሪ ከእርስዎ መሣሪያ ላይ በምትኬት የተቀመጡ ፎቶዎችን እና ቪዲዮዎችን አስወግዷል።"</string>
+ <string name="automatic_storage_manager_text" msgid="6900593059927987273">"የማከማቻ ባዶ ቦታን ነፃ ለማድረግ እንዲያግዝ የማከማቻ አስተዳዳሪ ከእርስዎ መሣሪያ ላይ በምትኬት የተቀመጡ ፎቶዎችን እና ቪዲዮዎችን አስወግዷል።"</string>
<string name="automatic_storage_manager_days_title" msgid="5077286114860539367">"ፎቶዎች እና ቪዲዮዎች አስወግድ"</string>
<string name="automatic_storage_manager_preference_title" msgid="3483357910142595444">"የማከማቻ አስተዳዳሪ"</string>
<string name="automatic_storage_manager_primary_switch_title" msgid="9131959126462101994">"የማከማቻ አስተዳዳሪን ተጠቀም"</string>
@@ -5085,7 +5088,7 @@
<string name="emergency_gesture_entrypoint_summary" msgid="4730874229911208834">"የሚቀናበረው በ<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="emergency_gesture_screen_summary" msgid="6640521030845132507">"ከዚህ በታች ያሉትን እርምጃዎች ለመጀመር የኃይል አዝራርን 5 ጊዜ ወይም ከዚያ በላይ በፍጥነት ይጫኑ"</string>
<string name="emergency_gesture_sound_setting_title" msgid="7153948164862156536">"የወደኋላ ቆጠራ ማንቂያን ያጫውቱ"</string>
- <string name="emergency_gesture_sound_setting_summary" msgid="6573377104470235173">"የነፍስ አድን ድንገተኛ ጥሪ ሲጀመር ጮክ ያለ ድምጽ አጫውት"</string>
+ <string name="emergency_gesture_sound_setting_summary" msgid="6573377104470235173">"የነፍስ አድን ድንገተኛ ጥሪ ሲጀመር ጮክ ያለ ድምፅ አጫውት"</string>
<string name="emergency_gesture_category_call_for_help_title" msgid="1680040129478289510">"ለእገዛ ያሳውቁ"</string>
<string name="emergency_gesture_call_for_help_title" msgid="4969340870836239982">"ለእገዛ ይደውሉ"</string>
<string name="emergency_gesture_call_for_help_dialog_title" msgid="8901271205171421201">"ለእርዳታ የሚደውሉበት ቁጥር"</string>
@@ -5343,7 +5346,7 @@
<string name="battery_suggestion_title" product="default" msgid="4811554469047272537">"የስልክ ባትሪ ህይወትን ያሻሽሉ"</string>
<string name="battery_suggestion_summary" msgid="8186720080540016197"></string>
<string name="gesture_prevent_ringing_screen_title" msgid="8293094715267769349">"የጥሪ ጩኸትን ተከላከል"</string>
- <string name="gesture_prevent_ringing_title" msgid="5978577898997523581">"ኃይልን እና ድምጽ ጨምርን አንድ ላይ ይጫኑ"</string>
+ <string name="gesture_prevent_ringing_title" msgid="5978577898997523581">"ኃይልን እና ድምፅ ጨምርን አንድ ላይ ይጫኑ"</string>
<string name="gesture_prevent_ringing_sound_title" msgid="4529077822282099235">"መደወልን ለመከላከል አቋራጭ"</string>
<string name="prevent_ringing_option_vibrate" msgid="5456962289649581737">"ንዘር"</string>
<string name="prevent_ringing_option_mute" msgid="7446121133560945051">"ድምጸ-ከል አድርግ"</string>
@@ -5574,7 +5577,7 @@
<string name="contextual_card_dismiss_confirm_message" msgid="6434344989238055188">"ይህ የአስተያየት ጥቆማ ይወገድ?"</string>
<string name="contextual_card_removed_message" msgid="5755438207494260867">"አስተያየት ተወግዷል"</string>
<string name="contextual_card_undo_dismissal_text" msgid="5200381837316691406">"ቀልብስ"</string>
- <string name="low_storage_summary" msgid="1979492757417779718">"ማከማቻ ዝቅተኛ ነው። <xliff:g id="PERCENTAGE">%1$s</xliff:g> ጥቅም ላይ ውሏል - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ነጻ"</string>
+ <string name="low_storage_summary" msgid="1979492757417779718">"ማከማቻ ዝቅተኛ ነው። <xliff:g id="PERCENTAGE">%1$s</xliff:g> ጥቅም ላይ ውሏል - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ነፃ"</string>
<string name="contextual_card_feedback_send" msgid="7409408664417908922">"ግብረመልስ ላክ"</string>
<string name="contextual_card_feedback_confirm_message" msgid="3186334562157665381">"በዚህ የአስተያየት ጥቆማ ላይ ግብረመልስ ሊሰጡን ይፈልጋሉ?"</string>
<string name="copyable_slice_toast" msgid="1008251852798990606">"<xliff:g id="COPY_CONTENT">%1$s</xliff:g> ወደ ቅንጥብ ሰሌዳ ተቀድቷል።"</string>
@@ -5875,9 +5878,9 @@
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ዳግም አስነሳ"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"በኋላ ዳግም አስነሳ"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"ከባቢያዊ ኦዲዮ"</string>
- <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ከተኳኋኝ ሚዲያ የሚመጣው ድምጽ ይበልጥ መሳጭ ይሆናል"</string>
+ <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ከተኳኋኝ ሚዲያ የሚመጣው ድምፅ ይበልጥ መሳጭ ይሆናል"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"የጭንቅላት ክትትል"</string>
- <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ጭንቅላትዎን ወደ ይበልጥ ተፈጥሯዊ ድምጽ ሲያንቀሳቅሱት ኦዲዮው ይቀየራል"</string>
+ <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ጭንቅላትዎን ወደ ይበልጥ ተፈጥሯዊ ድምፅ ሲያንቀሳቅሱት ኦዲዮው ይቀየራል"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"የአውታረ መረብ የማውረድ ፍጥነት ገደብ"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"የበይነመረብ ግንኙነትን በሚሰጡ ሁሉም አውታረ መረቦች ላይ የሚተገበረውን የአውታረ መረብ መተላለፊያ ይዘት ማስገቢያ ፍጥነት ገደብ ያዋቅሩ።"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"የአውታረ መረብ የማውረድ ፍጥነት ገደብን ያዋቅሩ"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 3695652..b862af6 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -144,8 +144,8 @@
<string name="bluetooth_pb_remember_choice" msgid="2080511174185036562">"لا تسألني مرة أخرى"</string>
<string name="bluetooth_map_request" msgid="8664081227240707479">"طلب الدخول إلى الرسائل"</string>
<string name="bluetooth_map_acceptance_dialog_text" msgid="2647611490952377156">"يريد %1$s الدخول إلى رسائلك. هل تريد منح %2$s حق الدخول؟"</string>
- <string name="bluetooth_sap_request" msgid="473439406287008397">"طلب حق الوصول إلى شريحة SIM"</string>
- <string name="bluetooth_sap_acceptance_dialog_text" msgid="2849083276356078655">"يريد <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> الوصول إلى شريحة SIM. ويؤدي منح حق الوصول إلى شريحة SIM إلى إيقاف اتصال البيانات على جهازك طوال مدة الاتصال. منح حق الوصول إلى <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+ <string name="bluetooth_sap_request" msgid="473439406287008397">"طلب الإذن بالوصول إلى شريحة SIM"</string>
+ <string name="bluetooth_sap_acceptance_dialog_text" msgid="2849083276356078655">"يريد <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> الوصول إلى شريحة SIM. ويؤدي منح الإذن بالوصول إلى شريحة SIM إلى إيقاف اتصال البيانات على جهازك طوال مدة الاتصال. منح الإذن بالوصول إلى <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
<string name="bluetooth_device_name_summary" msgid="8678342689845439583">"يظهر باسم \"<xliff:g id="DEVICE_NAME">^1</xliff:g>\" للأجهزة الأخرى."</string>
<string name="bluetooth_off_footer" msgid="76578735660216295">"يجب تفعيل بلوتوث للاتصال بالأجهزة الأخرى."</string>
<string name="bluetooth_paired_device_title" msgid="3240639218362342026">"أجهزتك"</string>
@@ -329,12 +329,12 @@
<string name="location_settings_primary_switch_title" msgid="8849081766644685127">"استخدام الموقع الجغرافي"</string>
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"خدمة الموقع الجغرافي غير مفعّلة."</string>
<plurals name="location_settings_summary_location_on" formatted="false" msgid="1019959038518185676">
- <item quantity="zero">خدمة \"الموقع الجغرافي\" مفعَّلة - يمتلك <xliff:g id="COUNT_1">%1$d</xliff:g> تطبيق حق الوصول إلى بيانات الموقع الجغرافي.</item>
- <item quantity="two">خدمة \"الموقع الجغرافي\" مفعَّلة - يمتلك تطبيقان (<xliff:g id="COUNT_1">%1$d</xliff:g>) حق الوصول إلى بيانات الموقع الجغرافي.</item>
- <item quantity="few">خدمة \"الموقع الجغرافي\" مفعَّلة - تمتلك <xliff:g id="COUNT_1">%1$d</xliff:g> تطبيقات حق الوصول إلى بيانات الموقع الجغرافي.</item>
- <item quantity="many">خدمة \"الموقع الجغرافي\" مفعَّلة - يمتلك <xliff:g id="COUNT_1">%1$d</xliff:g> تطبيقًا حق الوصول إلى بيانات الموقع الجغرافي.</item>
- <item quantity="other">خدمة \"الموقع الجغرافي\" مفعَّلة - يمتلك <xliff:g id="COUNT_1">%1$d</xliff:g> تطبيق حق الوصول إلى بيانات الموقع الجغرافي.</item>
- <item quantity="one">خدمة \"الموقع الجغرافي\" مفعَّلة - يمتلك تطبيق واحد (<xliff:g id="COUNT_0">%1$d</xliff:g>) حق الوصول إلى بيانات الموقع الجغرافي.</item>
+ <item quantity="zero">خدمة \"الموقع الجغرافي\" مفعَّلة - يمتلك <xliff:g id="COUNT_1">%1$d</xliff:g> تطبيق الإذن بالوصول إلى بيانات الموقع الجغرافي.</item>
+ <item quantity="two">خدمة \"الموقع الجغرافي\" مفعَّلة - يمتلك تطبيقان (<xliff:g id="COUNT_1">%1$d</xliff:g>) الإذن بالوصول إلى بيانات الموقع الجغرافي.</item>
+ <item quantity="few">خدمة \"الموقع الجغرافي\" مفعَّلة - تمتلك <xliff:g id="COUNT_1">%1$d</xliff:g> تطبيقات الإذن بالوصول إلى بيانات الموقع الجغرافي.</item>
+ <item quantity="many">خدمة \"الموقع الجغرافي\" مفعَّلة - يمتلك <xliff:g id="COUNT_1">%1$d</xliff:g> تطبيقًا الإذن بالوصول إلى بيانات الموقع الجغرافي.</item>
+ <item quantity="other">خدمة \"الموقع الجغرافي\" مفعَّلة - يمتلك <xliff:g id="COUNT_1">%1$d</xliff:g> تطبيق الإذن بالوصول إلى بيانات الموقع الجغرافي.</item>
+ <item quantity="one">خدمة \"الموقع الجغرافي\" مفعَّلة - يمتلك تطبيق واحد (<xliff:g id="COUNT_0">%1$d</xliff:g>) الإذن بالوصول إلى بيانات الموقع الجغرافي.</item>
</plurals>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"جارٍ التحميل..."</string>
<string name="location_settings_footer_general" msgid="1040507068701188821">"يمكن للتطبيقات التي لديها إذن بالوصول إلى الأجهزة المجاورة تحديد الموضع النسبي للأجهزة المتصلة بجهازك."</string>
@@ -1557,7 +1557,7 @@
<string name="dark_ui_activation_off_manual" msgid="2395333709291250065">"الإيقاف الآن"</string>
<string name="dark_ui_activation_on_auto" msgid="4824339634784765049">"تفعيل الوضع حتى الشروق"</string>
<string name="dark_ui_activation_off_auto" msgid="9136717444658505208">"إيقاف الوضع حتى الغروب"</string>
- <string name="dark_ui_title" msgid="3373976268671557416">"الوضع المُعتِم"</string>
+ <string name="dark_ui_title" msgid="3373976268671557416">"الوضع الداكن"</string>
<string name="dark_ui_auto_mode_title" msgid="9027528859262295099">"الجدول الزمني"</string>
<string name="dark_ui_auto_mode_never" msgid="3980412582267787662">"مطلقًا"</string>
<string name="dark_ui_auto_mode_auto" msgid="6658909029498623375">"التفعيل من غروب الشمس حتى شروقها"</string>
@@ -1592,6 +1592,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"يمكنك تجربة أنماط وخلفيات مختلفة، والمزيد."</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"شاشة الاستراحة"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"شاشة الاستراحة"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"استخدام شاشة الاستراحة"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"أثناء الشحن أو الإرساء"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"أثناء الشحن"</string>
@@ -1844,7 +1846,7 @@
<string name="storage_wizard_init_v2_later" msgid="5366815913892609285">"الإعداد لاحقًا"</string>
<string name="storage_wizard_format_confirm_v2_title" msgid="6294104100437326067">"هل تريد تهيئة <xliff:g id="NAME">^1</xliff:g>؟"</string>
<string name="storage_wizard_format_confirm_v2_body" msgid="635958708974709506">"يجب تنسيق <xliff:g id="NAME_0">^1</xliff:g> لتخزين التطبيقات والملفات والوسائط. \n\nسيؤدي التنسيق إلى محو المحتوى الحالي على <xliff:g id="NAME_1">^2</xliff:g>. ولتجنّب فقد المحتوى، يمكنك نسخه احتياطيًا إلى <xliff:g id="NAME_2">^3</xliff:g> أو جهاز آخر."</string>
- <string name="storage_wizard_format_confirm_v2_body_external" msgid="5810296966099830035">"يجب تهيئة \"<xliff:g id="NAME_0">^1</xliff:g>\" حتى تتمكن من تخزين الصور والفيديوهات والموسيقى وغير ذلك. \n\nستؤدي عملية التهيئة إلى محو المحتوى في \"<xliff:g id="NAME_1">^2</xliff:g>\". لتجنّب فقدان المحتوى، يمكنك نسخه احتياطيًا إلى \"<xliff:g id="NAME_2">^3</xliff:g>\" أو جهاز."</string>
+ <string name="storage_wizard_format_confirm_v2_body_external" msgid="5810296966099830035">"يجب تهيئة \"<xliff:g id="NAME_0">^1</xliff:g>\" حتى تتمكن من تخزين الصور والفيديوهات والموسيقى وغير ذلك. \n\nستؤدي عملية التهيئة إلى محو المحتوى الحالي في \"<xliff:g id="NAME_1">^2</xliff:g>\". لتجنّب فقدان المحتوى، يمكنك نسخه احتياطيًا إلى \"<xliff:g id="NAME_2">^3</xliff:g>\" أو جهاز آخر."</string>
<string name="storage_wizard_format_confirm_v2_action" msgid="5718254101386377126">"تنسيق <xliff:g id="NAME">^1</xliff:g>"</string>
<string name="storage_wizard_migrate_v2_title" msgid="3471564531564756698">"هل تريد نقل المحتوى إلى <xliff:g id="NAME">^1</xliff:g>؟"</string>
<string name="storage_wizard_migrate_v2_body" product="tablet" msgid="4541523202790415721">"يمكنك نقل الملفات والوسائط وتطبيقات معيّنة إلى <xliff:g id="NAME">^1</xliff:g>. \n\nإخلاء مساحة قدرها <xliff:g id="SIZE">^2</xliff:g> من مساحة التخزين بالجهاز اللوحي وتستغرق في الغالب <xliff:g id="DURATION">^3</xliff:g> تقريبًا."</string>
@@ -3969,6 +3971,8 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"مستوى صوت المكالمة"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"مستوى صوت المنبّه"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"مستوى صوت الرنين والإشعار"</string>
+ <!-- no translation found for separate_ring_volume_option_title (2212910223857375951) -->
+ <skip />
<string name="notification_volume_option_title" msgid="4838818791683615978">"مستوى صوت الإشعارات"</string>
<string name="ringtone_title" msgid="3271453110387368088">"نغمة رنين الهاتف"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"الصوت التلقائي للإشعارات"</string>
@@ -4305,7 +4309,7 @@
<string name="notification_assistant_title" msgid="5889201903272393099">"الإشعارات المحسّنة"</string>
<string name="notification_assistant_summary" msgid="1957783114840908887">"الحصول على الردود والإجراءات المقترحة والمزيد"</string>
<string name="no_notification_assistant" msgid="2533323397091834096">"بدون"</string>
- <string name="no_notification_listeners" msgid="2839354157349636000">"لم تطلب أي تطبيقات مثبّتة حق الوصول إلى الإشعارات."</string>
+ <string name="no_notification_listeners" msgid="2839354157349636000">"لم تطلب أي تطبيقات مثبّتة الإذن بالوصول إلى الإشعارات."</string>
<string name="notification_access_detail_switch" msgid="46386786409608330">"السماح بالوصول إلى الإشعارات"</string>
<string name="notification_assistant_security_warning_title" msgid="2972346436050925276">"هل تسمح بوصول خدمة <xliff:g id="SERVICE">%1$s</xliff:g> إلى الإشعارات؟"</string>
<string name="notification_assistant_security_warning_summary" msgid="4846559755787348129">"تم إبدال الإشعارات التكيُّفية لنظام التشغيل Android في الإصدار 12 منه بالإشعارات المحسّنة. تعرض هذه الميزة إجراءات وردودًا مقترحة وتنظِّم الإشعارات. \n\nيمكن للإشعارات المحسّنة الوصول إلى محتوى الإشعارات، بما في ذلك المعلومات الشخصية، مثلاً أسماء جهات الاتصال والرسائل. يمكن لهذه الميزة أيضًا إغلاق الإشعارات أو الاستجابة لها، مثلاً الردّ على مكالمات الهاتف والتحكّم في ميزة \"عدم الإزعاج\"."</string>
@@ -4380,7 +4384,7 @@
<string name="interact_across_profiles_install_app_summary" msgid="7715324358034968657">"انقر لتنزيل التطبيق."</string>
<string name="manage_zen_access_title" msgid="1562322900340107269">"الوصول إلى إعداد \"عدم الإزعاج\""</string>
<string name="zen_access_detail_switch" msgid="4183681772666138993">"السماح بميزة \"عدم الإزعاج\""</string>
- <string name="zen_access_empty_text" msgid="3779921853282293080">"لم تطلّب أي تطبيقات مثبّتة حق الوصول إلى إعداد \"عدم الإزعاج\""</string>
+ <string name="zen_access_empty_text" msgid="3779921853282293080">"لم تطلّب أي تطبيقات مثبّتة الإذن بالوصول إلى إعداد \"عدم الإزعاج\""</string>
<string name="loading_notification_apps" msgid="5139471829295287945">"جارٍ تحميل التطبيقات…"</string>
<string name="app_notifications_off_desc" msgid="6691342160980435901">"بناءً على طلبك، يمنع Android ظهور إشعارات هذا التطبيق على هذا الجهاز."</string>
<string name="channel_notifications_off_desc" msgid="6202042207121633488">"بناءً على طلبك، يمنع Android ظهور هذه الفئة من الإشعارات على هذا الجهاز."</string>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index 02c8c51..3464b56 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -257,7 +257,7 @@
<item msgid="6394881108820762646">"আইচিচি এছএমএছ লিখক"</item>
<item msgid="3275060808384314406">"ছেটিং সংশোধন কৰক"</item>
<item msgid="8672921438869137431">"ওপৰত আঁকক"</item>
- <item msgid="346101114322879720">"জাননীত প্ৰৱেশ কৰক"</item>
+ <item msgid="346101114322879720">"জাননী এক্সেছ কৰক"</item>
<item msgid="4760681822601767255">"কেমেৰা"</item>
<item msgid="2172823594140104317">"ধ্বনি ৰেকৰ্ড কৰক"</item>
<item msgid="5612873260709742213">"অডিঅ’ প্লে কৰক"</item>
@@ -324,7 +324,7 @@
<item msgid="7921014514153395846">"SMS/MMS লিখক"</item>
<item msgid="8997371825401751421">"ছেটিং সংশোধন কৰক"</item>
<item msgid="7005755175240764443">"ওপৰত আঁকক"</item>
- <item msgid="8267704990417682222">"প্ৰৱেশৰ জাননীসমূহ"</item>
+ <item msgid="8267704990417682222">"এক্সেছৰ জাননীসমূহ"</item>
<item msgid="3180676986290096851">"কেমেৰা"</item>
<item msgid="9174072114281872917">"ধ্বনি ৰেকৰ্ড কৰক"</item>
<item msgid="1444183972646890539">"অডিঅ\' প্লে কৰক"</item>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index e24635a..d71a0dd 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -117,31 +117,31 @@
<string name="bluetooth_ask_discovery" product="default" msgid="7013223328571883275">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ আপোনাৰ ফ\'নটো<xliff:g id="TIMEOUT">%2$d</xliff:g> ছেকেণ্ডৰ বাবে অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে।"</string>
<string name="bluetooth_ask_discovery_no_name" product="tablet" msgid="3266007454914144057">"এটা এপে আপোনাৰ টেবলেটো <xliff:g id="TIMEOUT">%1$d</xliff:g> ছেকেণ্ডৰ বাবে অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে।"</string>
<string name="bluetooth_ask_discovery_no_name" product="default" msgid="7989444746980501116">"এটা এপে আপোনাৰ ফ\'নটো <xliff:g id="TIMEOUT">%1$d</xliff:g> ছেকেণ্ডৰ বাবে অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে।"</string>
- <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="6482084870735107773">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ আপোনাৰ টে\'বলেটটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পিছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
- <string name="bluetooth_ask_lasting_discovery" product="default" msgid="2352494279465502950">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ আপোনাৰ ফ\'নটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পিছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
- <string name="bluetooth_ask_lasting_discovery_no_name" product="tablet" msgid="2732992604509910896">"এটা এপে আপোনাৰ টে\'বলেটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পিছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
- <string name="bluetooth_ask_lasting_discovery_no_name" product="default" msgid="356982103612920264">"এটা এপে আপোনাৰ ফ\'নটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পিছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
+ <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="6482084870735107773">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ আপোনাৰ টে\'বলেটটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পাছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
+ <string name="bluetooth_ask_lasting_discovery" product="default" msgid="2352494279465502950">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ আপোনাৰ ফ\'নটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পাছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
+ <string name="bluetooth_ask_lasting_discovery_no_name" product="tablet" msgid="2732992604509910896">"এটা এপে আপোনাৰ টে\'বলেটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পাছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
+ <string name="bluetooth_ask_lasting_discovery_no_name" product="default" msgid="356982103612920264">"এটা এপে আপোনাৰ ফ\'নটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পাছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
<string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="6103655179509599427">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ <xliff:g id="TIMEOUT">%2$d</xliff:g> ছেকেণ্ডৰ বাবে ব্লুটুথ অন কৰি অন্য ডিভাইচে আপোনাৰ টে\'বলেটটো বিচাৰি পাব পৰা কৰিব বিচাৰিছে।"</string>
<string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="934276632311449337">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ আপোনাৰ ফ\'নটোৰ ব্লুটুথ অন কৰিব বিচাৰিছে আৰু <xliff:g id="TIMEOUT">%2$d</xliff:g> ছেকেণ্ডৰ বাবে অন্য ডিভাইচে ফ\'নটোক বিচাৰি পাব পৰা কৰিব বিচাৰিছে।"</string>
<string name="bluetooth_ask_enablement_and_discovery_no_name" product="tablet" msgid="1284048348024444485">"এটা এপে আপোনাৰ টে\'বলেটৰ ব্লুটুথ অন কৰিব বিচাৰিছে আৰু <xliff:g id="TIMEOUT">%1$d</xliff:g> ছেকেণ্ডৰ বাবে অন্য ব্লুটুথ ডিভাইচে টে\'বলেটটোক বিচাৰি পাব পৰা কৰিব বিচাৰিছে।"</string>
<string name="bluetooth_ask_enablement_and_discovery_no_name" product="default" msgid="2661614145022629454">"এটা এপে আপোনাৰ ফ\'নটো <xliff:g id="TIMEOUT">%1$d</xliff:g> ছেকেণ্ডৰ বাবে অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে।"</string>
- <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="8588317955400593623">"<xliff:g id="APP_NAME">%1$s</xliff:g> আপোনাৰ টে\'বলেটটোৰ ব্লুটুথ অন কৰিব বিচাৰিছে আৰু ইয়াক অন্য ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পিছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
- <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="4047444317445386579">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ আপোনাৰ ফ\'নটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পিছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
- <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="tablet" msgid="4922952478824372605">"এটা এপে আপোনাৰ টে\'বলেটটোৰ ব্লুটুথ অন কৰিব বিচাৰিছে আৰু টে\'বলেটটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পিছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
- <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="default" msgid="1381582950049639439">"এটা এপে আপোনাৰ ফ\'নটোৰ ব্লুটুথ অন কৰিব বিচাৰিছে আৰু ফ\'নটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পিছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
+ <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="8588317955400593623">"<xliff:g id="APP_NAME">%1$s</xliff:g> আপোনাৰ টে\'বলেটটোৰ ব্লুটুথ অন কৰিব বিচাৰিছে আৰু ইয়াক অন্য ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পাছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
+ <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="4047444317445386579">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ আপোনাৰ ফ\'নটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পাছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
+ <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="tablet" msgid="4922952478824372605">"এটা এপে আপোনাৰ টে\'বলেটটোৰ ব্লুটুথ অন কৰিব বিচাৰিছে আৰু টে\'বলেটটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পাছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
+ <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="default" msgid="1381582950049639439">"এটা এপে আপোনাৰ ফ\'নটোৰ ব্লুটুথ অন কৰিব বিচাৰিছে আৰু ফ\'নটো অন্য ব্লুটুথ ডিভাইচে বিচাৰি পাব পৰা কৰিব বিচাৰিছে। আপুনি ইয়াক পাছত ব্লুটুথ ছেটিঙত সলনি কৰিব পাৰিব।"</string>
<string name="bluetooth_turning_on" msgid="3842613808709024730">"ব্লুটুথ অন কৰি থকা হৈছে…"</string>
<string name="bluetooth_turning_off" msgid="7406309124247701148">"ব্লুটুথ অফ কৰি থকা হৈছে…"</string>
<string name="bluetooth_connection_permission_request" msgid="8793131019383198861">"ব্লুটুথ যোৰা লগোৱাৰ অনুৰোধ"</string>
<string name="bluetooth_connection_notif_message" msgid="6087344980352898209">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"ৰ সৈতে সংযোগ কৰিবলৈ টিপক৷"</string>
<string name="bluetooth_connection_dialog_text" msgid="2537152772549874391">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"ৰ লগত সংযোগ কৰিবলৈ বিচাৰে নেকি?"</string>
- <string name="bluetooth_phonebook_request" msgid="1085102844577089889">"আপোনাৰ ফ\'ন বুক চাবলৈ অনুমতি বিচাৰি অনুৰোধ কৰিছে"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="7153531868579789993">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>এ আপোনাৰ সম্পৰ্কসমূহ আৰু কলৰ ইতিহাস চাব বিচাৰিছে৷ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>ক প্ৰৱেশ কৰিবলৈ অনুমতি দিবনে?"</string>
+ <string name="bluetooth_phonebook_request" msgid="1085102844577089889">"ফ\'ন বুক এক্সেছৰ অনুৰোধ"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="7153531868579789993">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>এ আপোনাৰ সম্পৰ্কসমূহ আৰু কলৰ ইতিহাস এক্সেছ কৰিব বিচাৰিছে৷ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>ক এক্সেছ কৰিবলৈ অনুমতি দিবনে?"</string>
<string name="bluetooth_remember_choice" msgid="173821849670438110">"আকৌ নুসুধিব"</string>
<string name="bluetooth_pb_remember_choice" msgid="2080511174185036562">"পুনৰাই নুশুধিব"</string>
- <string name="bluetooth_map_request" msgid="8664081227240707479">"বাৰ্তা চোৱাৰ অনুৰোধ"</string>
+ <string name="bluetooth_map_request" msgid="8664081227240707479">"বাৰ্তা এক্সেছ কৰাৰ অনুৰোধ"</string>
<string name="bluetooth_map_acceptance_dialog_text" msgid="2647611490952377156">"%1$sএ আপোনাৰ বাৰ্তাসমূহ চাবলৈ বিচাৰিছে। %2$sক অনুমতি দিবনে?"</string>
- <string name="bluetooth_sap_request" msgid="473439406287008397">"ছিম প্ৰৱেশৰ অনুৰোধ"</string>
- <string name="bluetooth_sap_acceptance_dialog_text" msgid="2849083276356078655">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>এ আপোনাৰ ছিম কাৰ্ডখনত প্ৰৱেশ কৰিব বিচাৰিছে। এই অনুমতি দিলে ছিমত প্ৰৱেশ কৰি থকা সময়খিনিত ডিভাইচত ডেটা সংযোগ নাথাকিব। <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>ক অনুমতি দিয়ক"</string>
+ <string name="bluetooth_sap_request" msgid="473439406287008397">"ছিম এক্সেছৰ অনুৰোধ"</string>
+ <string name="bluetooth_sap_acceptance_dialog_text" msgid="2849083276356078655">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>এ আপোনাৰ ছিম কাৰ্ড এক্সেছ কৰিব বিচাৰিছে। এই অনুমতি দিলে ছিম এক্সেছ কৰি থকা সময়খিনিত ডিভাইচত ডেটা সংযোগ নাথাকিব। <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>ক অনুমতি দিয়ক"</string>
<string name="bluetooth_device_name_summary" msgid="8678342689845439583">"অন্য ডিভাইচে “<xliff:g id="DEVICE_NAME">^1</xliff:g>” হিচাপে দেখা পাব"</string>
<string name="bluetooth_off_footer" msgid="76578735660216295">"অইন ডিভাইচৰ সৈতে সংযোগ কৰিবলৈ ব্লুটুথ অন কৰক।"</string>
<string name="bluetooth_paired_device_title" msgid="3240639218362342026">"আপোনাৰ ডিভাইচসমূহ"</string>
@@ -302,10 +302,10 @@
<string name="zone_menu_by_offset" msgid="1257702747474426745">"UTC অফছেট অনুসৰি বাছনি কৰক"</string>
<string name="date_picker_title" msgid="646573308567782578">"তাৰিখ"</string>
<string name="time_picker_title" msgid="1784236407401743393">"সময়"</string>
- <string name="lock_after_timeout" msgid="8682769000437403444">"স্ক্ৰীনৰ সময় ওকলাৰ পিছত লক কৰক"</string>
- <string name="lock_after_timeout_summary" msgid="4869265514658147304">"সময় ওকলাৰ <xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> পিছত"</string>
+ <string name="lock_after_timeout" msgid="8682769000437403444">"স্ক্ৰীনৰ সময় ওকলাৰ পাছত লক কৰক"</string>
+ <string name="lock_after_timeout_summary" msgid="4869265514658147304">"সময় ওকলাৰ <xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> পাছত"</string>
<string name="lock_immediately_summary_with_exception" msgid="40819611828339044">"<xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g>এ আনলক কৰি ৰখা সময়ৰ বাহিৰে, সময় ওকলাৰ লগে লগে"</string>
- <string name="lock_after_timeout_summary_with_exception" msgid="3441806647509073124">"<xliff:g id="TRUST_AGENT_NAME">%2$s</xliff:g>এ আনলক কৰি ৰখা সময়ৰ বাহিৰে সময় ওকলাৰ <xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> পিছত"</string>
+ <string name="lock_after_timeout_summary_with_exception" msgid="3441806647509073124">"<xliff:g id="TRUST_AGENT_NAME">%2$s</xliff:g>এ আনলক কৰি ৰখা সময়ৰ বাহিৰে সময় ওকলাৰ <xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> পাছত"</string>
<string name="show_owner_info_on_lockscreen_label" msgid="197365342192696406">"লক স্ক্ৰীনত গৰাকী-বিষয়ক তথ্য দেখুৱাওক"</string>
<string name="owner_info_settings_title" msgid="3555626140700093017">"লক স্ক্ৰীনত পাঠ যোগ দিয়ক"</string>
<string name="security_enable_widgets_title" msgid="676199714313423099">"ৱিজেটসমূহ সক্ষম কৰক"</string>
@@ -565,7 +565,7 @@
<string name="security_settings_fingerprint_enroll_dialog_try_again" msgid="8117874972945407006">"পুনৰ চেষ্টা কৰক"</string>
<string name="security_settings_fingerprint_enroll_dialog_delete" msgid="6027141901007342389">"মচক"</string>
<string name="security_settings_fingerprint_enroll_start_title" msgid="7391368057800077604">"ছেন্সৰটো স্পৰ্শ কৰক"</string>
- <string name="security_settings_fingerprint_enroll_start_message" msgid="5010227772754175346">"আপোনাৰ আঙুলিটো ছেন্সৰটোত ৰাখক আৰু এটা কম্পন অনুভৱ কৰাৰ পিছত আঁতৰাওক"</string>
+ <string name="security_settings_fingerprint_enroll_start_message" msgid="5010227772754175346">"আপোনাৰ আঙুলিটো ছেন্সৰটোত ৰাখক আৰু এটা কম্পন অনুভৱ কৰাৰ পাছত আঁতৰাওক"</string>
<string name="security_settings_udfps_enroll_start_message" msgid="5032954588171487566">"আপুনি এটা কম্পন অনুভৱ নকৰালৈকে নিজৰ আঙুলিৰ সমান অংশটো ছেন্সৰটোত ৰাখক"</string>
<string name="security_settings_sfps_enroll_start_message" msgid="9054672627477685212">"বুটামটো নিটিপাকৈ, আপুনি এটা কম্পন অনুভৱ নকৰালৈকে আপোনাৰ ফিংগাৰপ্ৰিণ্টটো ছেন্সৰটোত ৰাখক।\n\nপ্ৰতিবাৰে আপোনাৰ আঙুলিটো অলপ লৰচৰ কৰক। এইটোৱে আপোনাৰ ফিংগাৰপ্ৰিণ্টৰ অধিক তথ্য কেপচাৰ কৰাত সহায় কৰে।"</string>
<string name="security_settings_fingerprint_enroll_udfps_title" msgid="6665610134560896895">"ফিংগাৰপ্ৰিণ্ট ছেন্সৰটোত স্পৰ্শ কৰি ধৰি ৰাখক"</string>
@@ -653,7 +653,7 @@
<string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="6068935528640241271">"ফিংগাৰপ্ৰিণ্ট যোগ দিব পৰা নগ\'ল। পুনৰ চেষ্টা কৰক বা বেলেগ এটা আঙুলি ব্যৱহাৰ কৰক।"</string>
<string name="fingerprint_enroll_button_add" msgid="6652490687672815760">"অইন এটা ফিংগাৰপ্ৰিণ্ট যোগ কৰক"</string>
<string name="fingerprint_enroll_button_next" msgid="1034110123277869532">"পৰৱৰ্তী"</string>
- <string name="security_settings_fingerprint_enroll_disclaimer" msgid="7875826823637114097">"আপুনি ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰি ফ\'নটো আনলক কৰাৰ উপৰি ক্ৰয় আৰু এপ্ প্ৰৱেশৰ অনুমতি দিব পাৰিব। "<annotation id="url">"অধিক জানক"</annotation></string>
+ <string name="security_settings_fingerprint_enroll_disclaimer" msgid="7875826823637114097">"আপোনাৰ ফ\'নটো আনলক কৰাৰ উপৰিও, আপুনি ক্ৰয় আৰু এপৰ এক্সেছৰ অনুমোদন জনাবলৈও আপোনাৰ ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰিব পাৰে। "<annotation id="url">"অধিক জানক"</annotation></string>
<string name="security_fingerprint_disclaimer_lockscreen_disabled_1" msgid="294529888220959309">"স্ক্ৰীন লকৰ বিকল্পটো অক্ষম কৰা আছে। অধিক জানিবলৈ আপোনাৰ প্ৰতিষ্ঠানৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।"</string>
<string name="security_fingerprint_disclaimer_lockscreen_disabled_2" msgid="8070829069640846543">"আপুনি তথাপি ক্ৰয় আৰু এপৰ এক্সেছৰ অনুমোদন জনাবলৈ আপোনাৰ ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰিব পাৰে।"</string>
<string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="2590665137265458789">"আঙুলিটো আঁতৰাওক আৰু ছেন্সৰটো আকৌ স্পৰ্শ কৰক"</string>
@@ -712,8 +712,8 @@
<string name="setup_lock_settings_options_button_label" msgid="6098297461618298505">"স্ক্ৰীন লক সম্পৰ্কীয় বিকল্প"</string>
<string name="setup_lock_settings_options_dialog_title" msgid="7985107300517468569">"স্ক্ৰীন লক সম্পৰ্কীয় বিকল্প"</string>
<string name="unlock_set_unlock_launch_picker_title" msgid="4981063601772605609">"স্ক্ৰীন লক"</string>
- <string name="unlock_set_unlock_launch_picker_summary_lock_immediately" msgid="5799070517574360310">"<xliff:g id="UNLOCK_METHOD">%1$s</xliff:g> / সুপ্ত হোৱাৰ তৎক্ষণাৎ পিছত"</string>
- <string name="unlock_set_unlock_launch_picker_summary_lock_after_timeout" msgid="4572132216801894216">"<xliff:g id="UNLOCK_METHOD">%1$s</xliff:g> / <xliff:g id="TIMEOUT_STRING">%2$s</xliff:g> নিদ্ৰাত পৰাৰ পিছত"</string>
+ <string name="unlock_set_unlock_launch_picker_summary_lock_immediately" msgid="5799070517574360310">"<xliff:g id="UNLOCK_METHOD">%1$s</xliff:g> / সুপ্ত হোৱাৰ তৎক্ষণাৎ পাছত"</string>
+ <string name="unlock_set_unlock_launch_picker_summary_lock_after_timeout" msgid="4572132216801894216">"<xliff:g id="UNLOCK_METHOD">%1$s</xliff:g> / <xliff:g id="TIMEOUT_STRING">%2$s</xliff:g> নিদ্ৰাত পৰাৰ পাছত"</string>
<string name="unlock_set_unlock_launch_picker_title_profile" msgid="7631371082326055429">"কৰ্মস্থানৰ প্ৰ’ফাইলৰ লক"</string>
<string name="unlock_set_unlock_launch_picker_change_title" msgid="4746783679112447948">"লক স্ক্ৰীন সলনি কৰক"</string>
<string name="unlock_set_unlock_launch_picker_change_summary" msgid="6023813780512501969">"আৰ্হি, পিন বা পাছৱৰ্ড সুৰক্ষা সলনি বা অক্ষম কৰক"</string>
@@ -894,7 +894,7 @@
<string name="bluetooth_settings_summary" msgid="6805458703566046784">"সংযোগসমূহ পৰিচালনা কৰক, ডিভাইচৰ নাম আৰু বিচাৰি পাব পৰা অৱস্থা ছেট কৰক"</string>
<string name="bluetooth_pairing_request" msgid="7762990650683525640">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ৰ সৈতে পেয়াৰ কৰিবনে?"</string>
<string name="bluetooth_pairing_key_msg" msgid="1329835708475701761">"ব্লুটুথ যোৰ কৰিবৰ বাবে সংকেত"</string>
- <string name="bluetooth_enter_passkey_msg" msgid="5806420933599368592">"যোৰা লগোৱা ক’ডটো টাইপ কৰক আৰু তাৰ পিছত ৰিটাৰ্ণ বা এণ্টাৰ হেঁচক"</string>
+ <string name="bluetooth_enter_passkey_msg" msgid="5806420933599368592">"যোৰা লগোৱা ক’ডটো টাইপ কৰক আৰু তাৰ পাছত ৰিটাৰ্ণ বা এণ্টাৰ হেঁচক"</string>
<string name="bluetooth_enable_alphanumeric_pin" msgid="7256286571636950635">"পিনত বৰ্ণ বা প্ৰতীকবোৰ থাকে"</string>
<string name="bluetooth_pin_values_hint" msgid="2753202519050044670">"সচৰাচৰতে ০০০০ বা ১২৩৪"</string>
<string name="bluetooth_pin_values_hint_16_digits" msgid="5603928271430883558">"১৬টা অংকযুক্ত হ\'ব লাগিব"</string>
@@ -904,7 +904,7 @@
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"সংগতিপূৰ্ণ ছেটৰ সৈতে পেয়াৰ কৰিবলৈ নিশ্চিত কৰক"</string>
<string name="bluetooth_incoming_pairing_msg" msgid="1068123527866596779">"ইয়াৰ পৰা:<br><b><xliff:g id="DEVICE_NAME">%1$s</xliff:g></b><br><br>এইটো ডিভাইচৰ সৈতে পেয়াৰ কৰিবনে?"</string>
<string name="bluetooth_display_passkey_pin_msg" msgid="8672803845151786521">"পেয়াৰ কৰিবলৈ:<xliff:g id="BOLD1_0"><br><b></xliff:g><xliff:g id="DEVICE_NAME">%1$s</xliff:g><xliff:g id="END_BOLD1"></b><br><br></xliff:g>তাত টাইপ কৰক:<xliff:g id="BOLD2_1"><br><b></xliff:g><xliff:g id="PASSKEY">%2$s</xliff:g><xliff:g id="END_BOLD2"></b></xliff:g>, তাৰ পাছত ৰিটাৰ্ন বা এণ্টাৰত টিপক।"</string>
- <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"আপোনাৰ সম্পৰ্কসূচী আৰু কলৰ ইতিহাসত প্ৰৱেশ কৰিবলৈ অনুমতি দিয়ক"</string>
+ <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"আপোনাৰ সম্পৰ্কসূচী আৰু কলৰ ইতিহাস এক্সেছ কৰিবলৈ অনুমতি দিয়ক"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰিব পৰা নগ\'ল।"</string>
<string name="bluetooth_preference_scan_title" msgid="3460316252463771851">"ডিভাইচৰ বাবে স্কেন কৰক"</string>
@@ -1011,14 +1011,14 @@
<string name="android_beam_off_summary" msgid="5693961375631325042">"অফ"</string>
<string name="nfc_disabled_summary" msgid="8737797364522502351">"NFC অফ হৈ থকাৰ কাৰণে অনুপলব্ধ"</string>
<string name="android_beam_label" msgid="7168565080321110094">"Android বীম"</string>
- <string name="android_beam_explained" msgid="5684416131846701256">"এই সুবিধাটো সক্ষম কৰিলে, আপুনি এপৰ সমল অইন এটা NFC-সক্ষম ডিভাইচলৈ দুয়োটা ডিভাইচ ওচৰা-ওচৰিকৈ ৰাখি বীম কৰিব পাৰিব। উদাহৰণস্বৰূপে, আপুনি ৱেব পৃষ্ঠা, YouTubeৰ ভিডিঅ\' আৰু সম্পৰ্ক সূচীকে আদি কৰি অইন বহুত সমল বীম কৰিব পাৰিব।\n\nদুয়োটা ডিভাইচ ওচৰা-ওচৰিকৈ ৰাখক (সাধাৰণতে, পিঠিয়া-পিঠিকৈ) আৰু তাৰ পিছত স্ক্ৰীনত টিপক। কি কি বীম কৰা হয় তাক এপ্টোৱে নিৰ্ধাৰিত কৰে।"</string>
+ <string name="android_beam_explained" msgid="5684416131846701256">"এই সুবিধাটো সক্ষম কৰিলে, আপুনি এপৰ সমল অইন এটা NFC-সক্ষম ডিভাইচলৈ দুয়োটা ডিভাইচ ওচৰা-ওচৰিকৈ ৰাখি বীম কৰিব পাৰিব। উদাহৰণস্বৰূপে, আপুনি ৱেব পৃষ্ঠা, YouTubeৰ ভিডিঅ\' আৰু সম্পৰ্ক সূচীকে আদি কৰি অইন বহুত সমল বীম কৰিব পাৰিব।\n\nদুয়োটা ডিভাইচ ওচৰা-ওচৰিকৈ ৰাখক (সাধাৰণতে, পিঠিয়া-পিঠিকৈ) আৰু তাৰ পাছত স্ক্ৰীনত টিপক। কি কি বীম কৰা হয় তাক এপ্টোৱে নিৰ্ধাৰিত কৰে।"</string>
<string name="wifi_quick_toggle_title" msgid="2737097538432862807">"ৱাই-ফাই"</string>
<string name="wifi_quick_toggle_summary" msgid="4957267477820468553">"বাই-ফাই অন কৰক"</string>
<string name="wifi_settings" msgid="8313301946393559700">"ৱাই-ফাই"</string>
<string name="wifi_settings_primary_switch_title" msgid="628360786662947258">"ৱাই-ফাই ব্যৱহাৰ কৰক"</string>
<string name="wifi_settings_category" msgid="3523464780563778321">"ৱাই-ফাই ছেটিং"</string>
<string name="wifi_settings_title" msgid="3879649725059512799">"ৱাই-ফাই"</string>
- <string name="wifi_settings_summary" msgid="784074686763572811">"ৱায়াৰলেচ একচেছ পইণ্টসমূহ ছেটআপ আৰু পৰিচালনা কৰক"</string>
+ <string name="wifi_settings_summary" msgid="784074686763572811">"ৱায়াৰলেছ এক্সেছ পইণ্টসমূহ ছেটআপ আৰু পৰিচালনা কৰক"</string>
<string name="wifi_select_network" msgid="6692897876718813259">"ৱাই-ফাই বাছনি কৰক"</string>
<string name="wifi_starting" msgid="6147022683967506341">"ৱাই-ফাই অন কৰি থকা হৈছে…"</string>
<string name="wifi_stopping" msgid="4471699665741299711">"ৱাই-ফাই অফ কৰি থকা হৈছে…"</string>
@@ -1258,7 +1258,7 @@
<string name="wifi_hotspot_off_subtext" msgid="2751383134504362078">"অন্য ডিভাইচৰ সৈতে ইণ্টাৰনেট বা সমল শ্বেয়াৰ কৰা হোৱা নাই"</string>
<string name="wifi_hotspot_tethering_on_subtext" product="tablet" msgid="5832429443898690152">"হটস্পটৰ মাধ্যমেৰে এই টে\'বলেটটোৰ ইণ্টাৰনেট সংযোগ শ্বেয়াৰ কৰা হৈছে"</string>
<string name="wifi_hotspot_tethering_on_subtext" product="default" msgid="5451921191609178326">"হটস্পটৰ মাধ্যমেৰে এই ফ\'নটোৰ ইণ্টাৰনেট সংযোগ শ্বেয়াৰ কৰা হৈছে"</string>
- <string name="wifi_hotspot_on_local_only_subtext" msgid="965051079784031636">"এপে সমল শ্বেয়াৰ কৰি আছে৷ ইণ্টাৰনেট সংযোগ শ্বেয়াৰ কৰিবলৈ, হটস্পট অফ কৰি পিছত আকৌ অন কৰক"</string>
+ <string name="wifi_hotspot_on_local_only_subtext" msgid="965051079784031636">"এপে সমল শ্বেয়াৰ কৰি আছে৷ ইণ্টাৰনেট সংযোগ শ্বেয়াৰ কৰিবলৈ, হটস্পট অফ কৰি পাছত আকৌ অন কৰক"</string>
<string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"কোনো পাছৱৰ্ড ছেট কৰা হোৱা নাই"</string>
<string name="wifi_hotspot_name_title" msgid="6633480190014369846">"হটস্পটৰ নাম"</string>
<string name="wifi_hotspot_name_summary_connecting" msgid="2094754115215428892">"<xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g> অন কৰি থকা হৈছে…"</string>
@@ -1400,10 +1400,10 @@
<string name="color_mode_option_automatic" msgid="2281217686509980870">"অভিযোজিত"</string>
<string name="color_mode_summary_natural" msgid="8298840714001791628">"মাত্ৰ সঠীক ৰংৰবোৰ ব্যৱহাৰ কৰক"</string>
<string name="color_mode_summary_automatic" msgid="8157885594041700275">"উজ্জ্বল আৰু সঠিক ৰঙৰ মাজত মিলাওক"</string>
- <string name="accelerometer_summary_on" product="tablet" msgid="6413384391658481700">"টে\'বলেটো ঘূৰালে স্বয়ংক্ৰিয়ভাৱে স্ক্ৰীণৰ দিশ সলনি কৰক"</string>
- <string name="accelerometer_summary_on" product="default" msgid="7117139542131700779">"ফোনটো ঘূৰালে স্বয়ংক্ৰিয়ভাৱে স্ক্ৰীণৰ দিশ সলনি কৰক"</string>
- <string name="accelerometer_summary_off" product="tablet" msgid="3747370091309939684">"টে\'বলেটো ঘূৰালে স্বয়ংক্ৰিয়ভাৱে স্ক্ৰীণৰ দিশ সলনি কৰক"</string>
- <string name="accelerometer_summary_off" product="default" msgid="4451125241783158763">"ফ\'নটো ঘূৰালে স্বয়ংক্ৰিয়ভাৱে স্ক্ৰীণৰ দিশ সলনি কৰক"</string>
+ <string name="accelerometer_summary_on" product="tablet" msgid="6413384391658481700">"টে\'বলেটো ঘূৰালে স্বয়ংক্ৰিয়ভাৱে স্ক্ৰীনৰ দিশ সলনি কৰক"</string>
+ <string name="accelerometer_summary_on" product="default" msgid="7117139542131700779">"ফোনটো ঘূৰালে স্বয়ংক্ৰিয়ভাৱে স্ক্ৰীনৰ দিশ সলনি কৰক"</string>
+ <string name="accelerometer_summary_off" product="tablet" msgid="3747370091309939684">"টে\'বলেটো ঘূৰালে স্বয়ংক্ৰিয়ভাৱে স্ক্ৰীনৰ দিশ সলনি কৰক"</string>
+ <string name="accelerometer_summary_off" product="default" msgid="4451125241783158763">"ফ\'নটো ঘূৰালে স্বয়ংক্ৰিয়ভাৱে স্ক্ৰীনৰ দিশ সলনি কৰক"</string>
<string name="brightness" msgid="6216871641021779698">"উজ্জ্বলতাৰ স্তৰ"</string>
<string name="brightness_title" msgid="5457874893085305155">"উজ্জ্বলতা"</string>
<string name="brightness_summary" msgid="6309641759293018049">"স্ক্ৰীনৰ উজ্জ্বলতা খাপ খুৱাওক"</string>
@@ -1411,11 +1411,11 @@
<string name="auto_brightness_summary" msgid="1737148869232725883">"স্ক্ৰীনৰ উজ্জ্বলতাই পৰিবেশ অনুসৰি খাপ খায়"</string>
<string name="auto_brightness_summary_on" msgid="2748088951224387004">"অন আছে"</string>
<string name="auto_brightness_summary_off" msgid="8077066192887677956">"অফ হৈ আছে"</string>
- <string name="auto_brightness_summary_very_low" msgid="2705445901659224330">"আপুনি স্ক্ৰীণৰ বাবে বাছনি কৰা উজ্জ্বলতা অতি কম হৈছে"</string>
- <string name="auto_brightness_summary_low" msgid="1606100911112851291">"আপুনি স্ক্ৰীণৰ বাবে বাছনি কৰা উজ্জ্বলতাটো কম"</string>
+ <string name="auto_brightness_summary_very_low" msgid="2705445901659224330">"আপুনি স্ক্ৰীনৰ বাবে বাছনি কৰা উজ্জ্বলতা অতি কম হৈছে"</string>
+ <string name="auto_brightness_summary_low" msgid="1606100911112851291">"আপুনি স্ক্ৰীনৰ বাবে বাছনি কৰা উজ্জ্বলতাটো কম"</string>
<string name="auto_brightness_summary_default" msgid="9038441148247815684">"উজ্জ্বলতাক অগ্ৰাধিকাৰ দিয়া ছেটিং ডিফ\'ল্ট হৈ আছে"</string>
- <string name="auto_brightness_summary_high" msgid="2886260311484349010">"আপুনি স্ক্ৰীণৰ বাবে বাছনি কৰা উজ্জ্বলতাটো অতি বেছি"</string>
- <string name="auto_brightness_summary_very_high" msgid="8294814315426024005">"আপুনি স্ক্ৰীণৰ বাবে বাছনি কৰা উজ্জ্বলতা অতি বেছি হৈছে"</string>
+ <string name="auto_brightness_summary_high" msgid="2886260311484349010">"আপুনি স্ক্ৰীনৰ বাবে বাছনি কৰা উজ্জ্বলতাটো অতি বেছি"</string>
+ <string name="auto_brightness_summary_very_high" msgid="8294814315426024005">"আপুনি স্ক্ৰীনৰ বাবে বাছনি কৰা উজ্জ্বলতা অতি বেছি হৈছে"</string>
<string name="auto_brightness_off_title" msgid="5156056957376839677">"অফ কৰক"</string>
<string name="auto_brightness_very_low_title" msgid="618973599332847430">"অতি কম"</string>
<string name="auto_brightness_low_title" msgid="4243763334776382492">"নিম্ন"</string>
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"বিভিন্ন শৈলী, ৱালপেপাৰ আৰু অধিক বস্তু ব্যৱহাৰ কৰি চাওক"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"স্ক্ৰীন ছেভাৰ"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"স্ক্ৰীনছেভাৰ"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"স্ক্ৰীন ছেভাৰ ব্যৱহাৰ কৰক"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"চাৰ্জ কৰোঁতে বা ডক কৰি থওঁতে"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"চাৰ্জ কৰি থকাৰ সময়ত"</string>
@@ -1665,7 +1667,7 @@
<string name="dlg_error_unmount_title" product="nosdcard" msgid="2205587942165199845"></string>
<string name="dlg_error_unmount_title" product="default" msgid="2205587942165199845"></string>
<string name="dlg_error_unmount_text" product="nosdcard" msgid="7876201891724279436">"ইউএছবি ষ্ট’ৰেজ অসংলগ্ন কৰিব পৰা নগ’ল। পাছত আকৌ চেষ্টা কৰক।"</string>
- <string name="dlg_error_unmount_text" product="default" msgid="2185659901137961711">"SD কাৰ্ড অসংলগ্ন কৰিব পৰা নগ\'ল। পিছত আকৌ চেষ্টা কৰক।"</string>
+ <string name="dlg_error_unmount_text" product="default" msgid="2185659901137961711">"SD কাৰ্ড অসংলগ্ন কৰিব পৰা নগ\'ল। পাছত আকৌ চেষ্টা কৰক।"</string>
<string name="unmount_inform_text" product="nosdcard" msgid="5932607205977999175">"ইউএছবি ষ্ট’ৰেজ অসংলগ্ন কৰা হ’ব।"</string>
<string name="unmount_inform_text" product="default" msgid="716578785262713312">"এছডি কাৰ্ড অসংলগ্ন কৰা হ\'ব।"</string>
<string name="sd_ejecting_title" msgid="1641122369013595273">"অসংলগ্ন কৰি থকা হৈছে"</string>
@@ -1730,7 +1732,7 @@
<string name="storage_wizard_migrate_title" msgid="3013711737005104623">"নতুন ষ্ট’ৰেজলৈ ডেটা স্থানান্তৰ কৰক"</string>
<string name="storage_wizard_migrate_body" msgid="1630853797296198275">"আপুনি আপোনাৰ ফট’, ফাইল আৰু কিছুমান এপ্ এই নতুন <xliff:g id="NAME">^1</xliff:g>লৈ নিব পাৰে। \n\nএই কামত প্ৰায় <xliff:g id="TIME">^2</xliff:g> সময় লাগে আৰু ই আভ্যন্তৰীণ ষ্ট’ৰেজৰ পৰা <xliff:g id="SIZE">^3</xliff:g> ঠাই খালী কৰিব। এই প্ৰক্ৰিয়া চলি থকা সময়ত কিছুমান এপে কাম নকৰিব।"</string>
<string name="storage_wizard_migrate_now" msgid="175023718337037181">"এতিয়াই স্থানান্তৰ কৰক"</string>
- <string name="storage_wizard_migrate_later" msgid="6573789572520980112">"পিছত স্থানান্তৰ কৰক"</string>
+ <string name="storage_wizard_migrate_later" msgid="6573789572520980112">"পাছত স্থানান্তৰ কৰক"</string>
<string name="storage_wizard_migrate_confirm_title" msgid="255346780598924540">"ডেটা এতিয়া স্থানান্তৰ কৰক"</string>
<string name="storage_wizard_migrate_confirm_body" msgid="5039938578355576124"><b>"ডেটা স্থানান্তৰণ কৰিবলৈ প্ৰায় <xliff:g id="TIME">^1</xliff:g> লাগিব। ইয়ে <xliff:g id="NAME">^3</xliff:g>ত <xliff:g id="SIZE">^2</xliff:g> খালী কৰিব।"</b></string>
<string name="storage_wizard_migrate_confirm_next" msgid="217478540562501692">"স্থানান্তৰ কৰক"</string>
@@ -1743,7 +1745,7 @@
<string name="storage_wizard_move_confirm_body" msgid="1713022828842263574">"<xliff:g id="APP">^1</xliff:g> আৰু ইয়াৰ ডেটা <xliff:g id="NAME_0">^2</xliff:g> স্থানান্তৰ কৰিবলৈ কিছু সময় মাত্ৰ লাগিব। স্থানান্তৰ কৰা কাৰ্য সম্পূৰ্ণ নোহোৱালৈকে আপুনি এপ ব্যৱহাৰ কৰিব নোৱাৰিব। \n\nস্থানান্তৰ কৰা সময়ত <xliff:g id="NAME_1">^2</xliff:g> আঁতৰাই নিদিব।"</string>
<string name="storage_wizard_move_unlock" msgid="14651384927767749">"ডেটা স্থানান্তৰ কৰিবলৈ আপুনি ব্যৱহাৰকাৰী <xliff:g id="APP">^1</xliff:g>ক আনলক কৰিব লাগিব৷"</string>
<string name="storage_wizard_move_progress_title" msgid="3912406225614672391">"<xliff:g id="APP">^1</xliff:g> স্থানান্তৰ কৰি থকা হৈছে…"</string>
- <string name="storage_wizard_move_progress_body" msgid="2396714553394935094">"স্থানান্তৰণ চলি থাকোতে <xliff:g id="NAME">^1</xliff:g> স্থানান্তৰ নকৰিব। \n\n স্থানান্তৰণ সম্পূৰ্ণ নোহোৱালৈকে <xliff:g id="APP">^2</xliff:g> এপটো ডিভাইচত উপলব্ধ নহ’ব।"</string>
+ <string name="storage_wizard_move_progress_body" msgid="2396714553394935094">"স্থানান্তৰণ চলি থাকোতে <xliff:g id="NAME">^1</xliff:g> স্থানান্তৰ নকৰিব। \n\n স্থানান্তৰণ সম্পূৰ্ণ নোহোৱালৈকে <xliff:g id="APP">^2</xliff:g> এপ্টো ডিভাইচত উপলব্ধ নহ’ব।"</string>
<string name="storage_wizard_move_progress_cancel" msgid="3494022998599718937">"স্থানান্তৰণ বাতিল কৰক"</string>
<string name="storage_wizard_slow_body" msgid="8293565076885232029">"<xliff:g id="NAME_0">^1</xliff:g> লেহেমীয়া যেন দেখা গৈছে। \n\nআপুনি অব্যাহত ৰাখিব পাৰে, কিন্তু এই অৱস্থানলৈ স্থানান্তৰ কৰা হোৱা এপসমূহ ভালকৈ নচলিব পাৰে আৰু ডেটা স্থানান্তৰণ হওতে প্ৰয়োজনতকৈ বেছি সময় লাগিব পাৰে। \n\nউত্তম ফলাফলৰ বাবে এটা দ্ৰুত <xliff:g id="NAME_1">^1</xliff:g> ব্যৱহাৰৰ কথা বিবেচনা কৰক।"</string>
<string name="storage_wizard_init_v2_title" msgid="2538630338392381113">"আপুনি এই <xliff:g id="NAME">^1</xliff:g> কেনেদৰে ব্যৱহাৰ কৰিব খোজে?"</string>
@@ -1757,7 +1759,7 @@
<string name="storage_wizard_init_v2_external_title" msgid="2786416384217054112">"প’ৰ্টেবল ষ্ট’ৰেজৰ বাবে SD কাৰ্ড ফৰ্মেট কৰক"</string>
<string name="storage_wizard_init_v2_external_summary" msgid="2002761631147966185">"ফট’, ভিডিঅ’, সংগীত আৰু অধিক ষ্ট’ৰ কৰক আৰু আন ডিভাইচৰ পৰা সেইবোৰ এক্সেছ কৰক। <a href=https://support.google.com/android/answer/12153449>এখন SD কাৰ্ড ছেট আপ কৰাৰ বিষয়ে অধিক জানক</a>।"</string>
<string name="storage_wizard_init_v2_external_action" msgid="6140058734875839081">"ফৰ্মেট কৰক"</string>
- <string name="storage_wizard_init_v2_later" msgid="5366815913892609285">"পিছত ছেট আপ কৰক"</string>
+ <string name="storage_wizard_init_v2_later" msgid="5366815913892609285">"পাছত ছেট আপ কৰক"</string>
<string name="storage_wizard_format_confirm_v2_title" msgid="6294104100437326067">"এই <xliff:g id="NAME">^1</xliff:g>খন ফৰ্মেট কৰিবনে?"</string>
<string name="storage_wizard_format_confirm_v2_body" msgid="635958708974709506">"এই <xliff:g id="NAME_0">^1</xliff:g> খনক এপ্, ফাইল আৰু মিডিয়া জমা কৰি ৰাখিবলৈ ফৰমেট কৰা প্ৰয়োজন। \n\nফৰমেট কৰিলে <xliff:g id="NAME_1">^2</xliff:g>ত ইতিমধ্যে থকা সকলো সমল মচা যাব। সমল হেৰুওৱাৰ পৰা হাত সাৰিবলৈ অইন এখন <xliff:g id="NAME_2">^3</xliff:g>ত বা অইন এটা ডিভাইচত সেইবোৰৰ বেক আপ লৈ থওক।"</string>
<string name="storage_wizard_format_confirm_v2_body_external" msgid="5810296966099830035">"ফট’, ভিডিঅ’, সংগীত আৰু অধিক ষ্ট’ৰ কৰিবলৈ এই <xliff:g id="NAME_0">^1</xliff:g> ফৰ্মেট কৰিব লাগিব। \n\nফৰ্মেট কৰা কাৰ্যই <xliff:g id="NAME_1">^2</xliff:g>ত পূৰ্বৰে পৰা থকা সমল মচি পেলাব। সমল হেৰুওৱাৰ পৰা হাত সাৰিবলৈ আন <xliff:g id="NAME_2">^3</xliff:g> অথবা ডিভাইচত তাৰ বেক আপ লওক।"</string>
@@ -1771,7 +1773,7 @@
<string name="storage_wizard_migrate_v2_checklist_battery" product="tablet" msgid="6111770421449869539">"এই টেবলেটটো চ্চাৰ্জ কৰি ৰাখক"</string>
<string name="storage_wizard_migrate_v2_checklist_battery" product="default" msgid="8826915870192535008">"এই ফ\'নটো চ্চাৰ্জ কৰি ৰাখক"</string>
<string name="storage_wizard_migrate_v2_now" msgid="3341460117088026966">"সমল স্থানান্তৰ কৰক"</string>
- <string name="storage_wizard_migrate_v2_later" msgid="6067756122853315642">"সমল পিছত স্থানান্তৰ কৰক"</string>
+ <string name="storage_wizard_migrate_v2_later" msgid="6067756122853315642">"সমল পাছত স্থানান্তৰ কৰক"</string>
<string name="storage_wizard_migrate_progress_v2_title" msgid="8791318509516968103">"সমল স্থানান্তৰ কৰি থকা হৈছে…"</string>
<string name="storage_wizard_slow_v2_title" msgid="3760766921170980221">"লেহেমীয়া <xliff:g id="NAME">^1</xliff:g>"</string>
<string name="storage_wizard_slow_v2_body" msgid="7604252106419016929">"আপুনি তথাপি <xliff:g id="NAME_0">^1</xliff:g> ব্যৱহাৰ কৰি থাকিব পাৰে, কিন্তু ই লেহেমীয়া হ’ব পাৰে। \n\n<xliff:g id="NAME_1">^2</xliff:g>ত ষ্ট’ৰ কৰি ৰখা এপ্সমূহে সঠিকভাৱে কাম নকৰিব পাৰে আৰু সমল স্থানান্তৰ কৰোঁতে বহুত সময় লাগিব পাৰে। \n\nএটা দ্ৰুত <xliff:g id="NAME_2">^3</xliff:g> ব্যৱহাৰ কৰি চাওক বা তাৰ সলনি <xliff:g id="NAME_3">^4</xliff:g>ক প’ৰ্টেবল ষ্ট’ৰেজ হিচাপে ব্যৱহাৰ কৰক।"</string>
@@ -1783,7 +1785,7 @@
<string name="battery_status_title" msgid="4661768220545945771">"বেটাৰীৰ স্থিতি"</string>
<string name="battery_level_title" msgid="1371765298786083448">"বেটাৰীৰ পৰিমাণ"</string>
<string name="apn_settings" msgid="4295467389400441299">"এপিএনসমূহ"</string>
- <string name="apn_edit" msgid="2003683641840248741">"একচেছ পইণ্ট সম্পাদনা কৰক"</string>
+ <string name="apn_edit" msgid="2003683641840248741">"এক্সেছ পইণ্ট সম্পাদনা কৰক"</string>
<string name="apn_not_set" msgid="8246646433109750293">"ছেট কৰা হোৱা নাই"</string>
<string name="apn_not_set_for_mvno" msgid="1141490067313964640">"ছেট কৰা হোৱা নাই"</string>
<string name="apn_name" msgid="6677695784108157953">"নাম"</string>
@@ -1976,7 +1978,7 @@
<string name="assisted_gps_disabled" msgid="1062496503892849">"জিপিএছক সহায় কৰিবলৈ ছাৰ্ভাৰ ব্যৱহাৰ কৰক (জিপিএছৰ কাৰ্যক্ষমতা বৃদ্ধি কৰিবলৈ টিক কৰি নাৰাখিব)"</string>
<string name="use_location_title" msgid="1345594777162897654">"অৱস্থান আৰু Google অনুসন্ধান"</string>
<string name="use_location_summary" msgid="377322574549729921">"Googleক অনুসন্ধানৰ ফলাফল আৰু অইন সেৱা উন্নত কৰিবলৈ আপোনাৰ অৱস্থান ব্যৱহাৰ কৰিবলৈ দিয়ক"</string>
- <string name="location_access_title" msgid="4052667453826272040">"মোৰ অৱস্থানত প্ৰৱেশ"</string>
+ <string name="location_access_title" msgid="4052667453826272040">"মোৰ অৱস্থান এক্সেছ"</string>
<string name="location_access_summary" msgid="8634100005481578143">"আপোনাৰ অনুমতি বিচৰা এপসমূহক আপোনাৰ অৱস্থানৰ তথ্য ব্যৱহাৰ কৰিবলৈ দিয়ক"</string>
<string name="location_sources_heading" msgid="6126965815860570524">"অৱস্থানৰ উৎসসমূহ"</string>
<string name="about_settings" product="tablet" msgid="2888705054709289693">"টে\'বলেটটোৰ বিষয়ে"</string>
@@ -2130,7 +2132,7 @@
<item quantity="one">%d টা বস্তু</item>
<item quantity="other">%d টা বস্তু</item>
</plurals>
- <string name="clear_uri_btn_text" msgid="4828117421162495134">"প্ৰৱেশৰ অনুমতি বাতিল কৰক"</string>
+ <string name="clear_uri_btn_text" msgid="4828117421162495134">"এক্সেছ আঁতৰাওক"</string>
<string name="controls_label" msgid="8671492254263626383">"নিয়ন্ত্ৰণ"</string>
<string name="force_stop" msgid="2681771622136916280">"বলেৰে ৰখাওক"</string>
<string name="total_size_label" msgid="2052185048749658866">"মুঠ"</string>
@@ -2148,7 +2150,7 @@
<string name="app_factory_reset" msgid="8974044931667015201">"আপডেইটবিলাক আঁতৰাওক"</string>
<string name="app_restricted_settings_lockscreen_title" msgid="5993061278264872648">"প্ৰতিবন্ধিত ছেটিঙৰ অনুমতি দিয়ক"</string>
<string name="auto_launch_enable_text" msgid="8912714475823807798">"আপুনি বাছনি কৰা কিছুমান কাৰ্যকলাপ ডিফ’ল্ট হিচাপে এই এপ্টোত খোল খায়।"</string>
- <string name="always_allow_bind_appwidgets_text" msgid="2069415023986858324">"আপুনি এই এপটোক ৱিজেট সৃষ্টি কৰিবলৈ আৰু সেইবিলাকৰ ডেটা চাবলৈ অনুমতি দিবলৈ বাছনি কৰিছে।"</string>
+ <string name="always_allow_bind_appwidgets_text" msgid="2069415023986858324">"আপুনি এই এপ্টোক ৱিজেট সৃষ্টি কৰিবলৈ আৰু সেইবিলাকৰ ডেটা চাবলৈ অনুমতি দিবলৈ বাছনি কৰিছে।"</string>
<string name="auto_launch_disable_text" msgid="502648841250936209">"কোনো ডিফ’ল্ট ছেট কৰা হোৱা নাই৷"</string>
<string name="clear_activities" msgid="488089228657585700">"ডিফ’ল্ট অগ্ৰাধিকাৰসমূহ মচক"</string>
<string name="screen_compatibility_text" msgid="5915767835411020274">"এই এপ্টো আপোনাৰ স্ক্ৰীনৰ উপযোগীকৈ তৈয়াৰ কৰা নহ’বও পাৰে। আপুনি ই কেনেকৈ আপোনাৰ স্ক্ৰীনত খাপ খায় তাক ইয়াত নিয়ন্ত্ৰণ কৰিব পাৰে।"</string>
@@ -2186,7 +2188,7 @@
<string name="dlg_cancel" msgid="5164705061530774899">"বাতিল কৰক"</string>
<string name="dlg_delete" msgid="1790919205039397659">"মচক"</string>
<string name="app_not_found_dlg_title" msgid="7122106240981109930"></string>
- <string name="app_not_found_dlg_text" msgid="8634675268730513704">"ইনষ্টলহৈ থকা এপৰ তালিকাত এপটো পোৱা নগ\'ল।"</string>
+ <string name="app_not_found_dlg_text" msgid="8634675268730513704">"ইনষ্টলহৈ থকা এপৰ তালিকাত এপ্টো পোৱা নগ\'ল।"</string>
<string name="clear_failed_dlg_text" msgid="6866741916836125732">"এপৰ ষ্ট’ৰেজ মচিব পৰা নগ\'ল।"</string>
<string name="join_two_items" msgid="7893073836681382429">"<xliff:g id="FIRST_ITEM">%1$s</xliff:g> আৰু <xliff:g id="SECOND_ITEM">%2$s</xliff:g>"</string>
<string name="join_two_unrelated_items" msgid="5301233410730513655">"<xliff:g id="FIRST_ITEM">%1$s</xliff:g>, <xliff:g id="SECOND_ITEM">%2$s</xliff:g>"</string>
@@ -2200,7 +2202,7 @@
<string name="move_app_to_sdcard" product="default" msgid="7161667212614143767">"এছডি কাৰ্ডলৈ স্থানান্তৰ কৰক"</string>
<string name="another_migration_already_in_progress" msgid="6550546307856052261">"অন্য এটা স্থানান্তৰণ কাৰ্য ইতিমধ্যে চলি আছে৷"</string>
<string name="insufficient_storage" msgid="8115088042669030558">"ষ্ট’ৰেজত পৰ্যাপ্ত খালী ঠাই নাই।"</string>
- <string name="does_not_exist" msgid="6499163879348776120">"এপটোৰ অস্তিত্ব নাই"</string>
+ <string name="does_not_exist" msgid="6499163879348776120">"এপ্টোৰ অস্তিত্ব নাই"</string>
<string name="invalid_location" msgid="8013853455355520557">"ইনষ্টল কৰা অৱস্থান মান্য নহয়৷"</string>
<string name="system_package" msgid="7559476279008519360">"বাহ্যিক মিডিয়াত ছিষ্টেমৰ আপডেইটসমূহ ইনষ্টল কৰিব নোৱাৰি৷"</string>
<string name="move_error_device_admin" msgid="1561502976834303626">"বাহ্যিক মিডিয়াত ডিভাইচৰ প্ৰশাসক এপ্ ইনষ্টল কৰিব নোৱাৰি"</string>
@@ -2251,8 +2253,8 @@
<string name="runningservicedetails_processes_title" msgid="5292271587797234038">"প্ৰক্ৰিয়াবোৰ"</string>
<string name="service_stop" msgid="5712522600201308795">"বন্ধ কৰক"</string>
<string name="service_manage" msgid="3896322986828332075">"ছেটিং"</string>
- <string name="service_stop_description" msgid="6327742632400026677">"এই সেৱাটো ইয়াৰ এপটোৱে আৰম্ভ কৰিছিল। ইয়াক বন্ধ কৰি দিলে এপটো অচল হৈ পৰিব পাৰে।"</string>
- <string name="heavy_weight_stop_description" msgid="3086419998820881290">"এই এপটো সুৰক্ষিতভাৱে বন্ধ কৰিব নোৱাৰি। যদি আপুনি ইয়াক বন্ধ কৰে, আপুনি আপোনাৰ বৰ্তমানৰ কিছুমান কাম হেৰুৱাব পাৰে।"</string>
+ <string name="service_stop_description" msgid="6327742632400026677">"এই সেৱাটো ইয়াৰ এপ্টোৱে আৰম্ভ কৰিছিল। ইয়াক বন্ধ কৰি দিলে এপ্টো অচল হৈ পৰিব পাৰে।"</string>
+ <string name="heavy_weight_stop_description" msgid="3086419998820881290">"এই এপ্টো সুৰক্ষিতভাৱে বন্ধ কৰিব নোৱাৰি। যদি আপুনি ইয়াক বন্ধ কৰে, আপুনি আপোনাৰ বৰ্তমানৰ কিছুমান কাম হেৰুৱাব পাৰে।"</string>
<string name="background_process_stop_description" msgid="4792038933517438037">"এইটো এটা পুৰণি এপ্ প্ৰক্ৰিয়া যিটো আকৌ দৰকাৰ হ\'ব পাৰে কাৰণে এতিয়াও চলি আছে। সাধাৰণতে, ইয়াক বন্ধ কৰাৰ কোনো কাৰণ নাথাকে।"</string>
<string name="service_manage_description" msgid="6615788996428486121">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: বৰ্তমান ব্যৱহৃত হৈ আছে। ইয়াক নিয়ন্ত্ৰণ কৰিবলৈ ছেটিঙত টিপক।"</string>
<string name="main_running_process_description" msgid="6685973937935027773">"ব্যৱহৃত মুখ্য প্ৰক্ৰিয়াটো।"</string>
@@ -2343,14 +2345,14 @@
<string name="input_method_settings_button" msgid="5145039044301426311">"ছেটিং"</string>
<string name="input_methods_settings_label_format" msgid="5809693308957109022">"<xliff:g id="IME_NAME">%1$s</xliff:g> ছেটিং"</string>
<string name="input_methods_and_subtype_enabler_title" msgid="8940326108334307057">"সক্ৰিয় ইনপুট পদ্ধতি বাছক"</string>
- <string name="onscreen_keyboard_settings_summary" msgid="3975358507879701606">"স্ক্ৰীণত দেখা পোৱা কীব’ৰ্ডৰ ছেটিং"</string>
+ <string name="onscreen_keyboard_settings_summary" msgid="3975358507879701606">"স্ক্ৰীনত দেখা পোৱা কীব’ৰ্ডৰ ছেটিং"</string>
<string name="builtin_keyboard_settings_title" msgid="5096171620714179661">"কায়িক কীব’ৰ্ড"</string>
<string name="builtin_keyboard_settings_summary" msgid="4332792334499933856">"কায়িক কীব’ৰ্ডৰ ছেটিং"</string>
<string name="gadget_picker_title" msgid="7615902510050731400">"গেজেট বাছনি কৰক"</string>
<string name="widget_picker_title" msgid="7641298325488989676">"ৱিজেট বাছনি কৰক"</string>
- <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="3537968409832846255">"ৱিজেট সৃষ্টি কৰি প্ৰৱেশৰ অনুমতি দিবনে?"</string>
+ <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="3537968409832846255">"ৱিজেট সৃষ্টি কৰি এক্সেছ দিবনে?"</string>
<string name="allow_bind_app_widget_activity_allow_bind" msgid="5825298768068148804">"আপুনি ৱিজেটটো সৃষ্টি কৰাৰ পাছত, প্ৰদৰ্শিত হোৱা আটাইবোৰ এপ্লিকেশ্বনটোৱে এক্সেছ কৰিব পাৰে.\n\nএপ্লিকেশ্বন: <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>\nৱিজেট: <xliff:g id="WIDGET_LABEL">%2$s</xliff:g>\n"</string>
- <string name="allow_bind_app_widget_activity_always_allow_bind" msgid="7268758525344468364">"সদায় <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>ক ৱিজেট সৃষ্টি কৰিবলৈ আৰু সেইবিলাকৰ ডেটা পঢ়িবলৈ অনুমতি দিয়ক"</string>
+ <string name="allow_bind_app_widget_activity_always_allow_bind" msgid="7268758525344468364">"সদায় <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>ক ৱিজেট সৃষ্টি কৰিবলৈ আৰু সেইবিলাকৰ ডেটা এক্সেছ কৰিবলৈ দিয়ক"</string>
<string name="usage_stats_label" msgid="6523644917803320085">"ব্যৱহাৰৰ পৰিসংখ্যা"</string>
<string name="testing_usage_stats" msgid="4660643799010906365">"ব্যৱহাৰৰ পৰিসংখ্যা"</string>
<string name="display_order_text" msgid="7120394778684605892">"ইয়াৰ দ্বাৰা ক্ৰম কৰক:"</string>
@@ -2465,7 +2467,7 @@
<string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"স্ক্রীনখনত তিনিবাৰ টিপক"</string>
<string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"স্ক্ৰীনখনত ক্ষিপ্ৰতাৰে {0,number,integer} বাৰ টিপক। এই শ্বৰ্টকাটটোৱে আপোনাৰ ডিভাইচটো লেহেমীয়া কৰিব পাৰে"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"উচ্চখাপৰ"</string>
- <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"দিব্যাংগসকলৰ সুবিধাৰ বুটামটো <xliff:g id="SERVICE">%1$s</xliff:g> হিচাপে ছেট কৰা হৈ আছে। বিবৰ্ধন ব্যৱহাৰ কৰিবলৈ বুটামটো হেঁচি ৰাখক আৰু তাৰ পিছত বিবৰ্ধন বাছনি কৰক।"</string>
+ <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"দিব্যাংগসকলৰ সুবিধাৰ বুটামটো <xliff:g id="SERVICE">%1$s</xliff:g> হিচাপে ছেট কৰা হৈ আছে। বিবৰ্ধন ব্যৱহাৰ কৰিবলৈ বুটামটো হেঁচি ৰাখক আৰু তাৰ পাছত বিবৰ্ধন বাছনি কৰক।"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"সাধ্য সুবিধাৰ নিৰ্দেশ <xliff:g id="SERVICE">%1$s</xliff:g>ত ছেট কৰা হৈছে। বিবৰ্ধন ব্যৱহাৰ কৰিবলৈ দুটা আঙুলিৰে স্ক্ৰীনৰ তলৰ পৰা ওপৰলৈ ছোৱাইপ কৰক আৰু ধৰি ৰাখক। তাৰপাছত বিবৰ্ধন বাছনি কৰক।"</string>
<string name="accessibility_global_gesture_preference_title" msgid="3713636732641882959">"ভলিউম চাবিৰ শ্বৰ্টকাট"</string>
<string name="accessibility_shortcut_service_title" msgid="6842883700702723355">"সেৱা শ্বৰ্টকাট"</string>
@@ -2760,12 +2762,12 @@
<string name="power_charge_remaining" msgid="7046064326172265116">"চাৰ্জ হ\'বলৈ <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
<string name="low_battery_summary" msgid="4458925347316501953">"বেটাৰী কমিছে"</string>
<string name="background_activity_title" msgid="8214332017349791380">"নেপথ্য়ৰ সীমিতকৰণ"</string>
- <string name="background_activity_summary" msgid="3817376868497046016">"এই এপটো নেপথ্যত চলিবলৈ অনুমতি দিয়ক"</string>
+ <string name="background_activity_summary" msgid="3817376868497046016">"এই এপ্টো নেপথ্যত চলিবলৈ অনুমতি দিয়ক"</string>
<string name="background_activity_summary_disabled" msgid="32459916080651444">"নেপথ্যত চলাবৰ বাবে এপক অনুমতি দিয়া হোৱা নাই"</string>
<string name="background_activity_summary_allowlisted" msgid="6240154358657454651">"পটভূমিত হোৱা ব্যৱহাৰ সীমিত কৰিব নোৱাৰি"</string>
<string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"নেপথ্যৰ কাৰ্যকলাপ সীমিত কৰিবনে?"</string>
<string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"আপুনি এটা এপৰ নেপথ্য কাৰ্যকলাপ সীমিত কৰিলে ই অস্বাভাৱিক আচৰণ কৰিব পাৰে"</string>
- <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"যিহেতু এই এপটো বেটাৰী অপ্টিমাইজ কৰিবলৈ ছেট কৰি থোৱা হোৱা নাই, সেয়ে ইয়াক আপুনি সীমিত কৰিব নোৱাৰে।\n\nএপটো সীমিত কৰিবলৈ প্ৰথমে বেটাৰী অপ্টিমাইজেশ্বন অন কৰক।"</string>
+ <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"যিহেতু এই এপ্টো বেটাৰী অপ্টিমাইজ কৰিবলৈ ছেট কৰি থোৱা হোৱা নাই, সেয়ে ইয়াক আপুনি সীমিত কৰিব নোৱাৰে।\n\nএপ্টো সীমিত কৰিবলৈ প্ৰথমে বেটাৰী অপ্টিমাইজেশ্বন অন কৰক।"</string>
<string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"বাধাহীন"</string>
<string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"অপ্টিমাইজ কৰা"</string>
<string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"সীমিত"</string>
@@ -2777,14 +2779,14 @@
<string name="manager_battery_usage_unrestricted_only" msgid="3646162131339418216">"বাধাহীন"</string>
<string name="manager_battery_usage_optimized_only" msgid="7121785281913056432">"অপ্টিমাইজ কৰা"</string>
<string name="manager_battery_usage_link_a11y" msgid="374918091821438564">"বেটাৰীৰ ব্যৱহাৰৰ বিকল্পৰ বিষয়ে অধিক জানক"</string>
- <string name="device_screen_usage" msgid="1011630249648289909">"সম্পূৰ্ণ চাৰ্জ হোৱাৰ পিছত স্ক্ৰীনৰ ব্যৱহাৰ"</string>
+ <string name="device_screen_usage" msgid="1011630249648289909">"সম্পূৰ্ণ চাৰ্জ হোৱাৰ পাছত স্ক্ৰীনৰ ব্যৱহাৰ"</string>
<string name="power_usage_list_summary" msgid="3237540201918492925">"সম্পূৰ্ণকৈ চাৰ্জ হোৱাৰ পাছত বেটাৰীৰ ব্যৱহাৰ"</string>
<string name="screen_usage_summary" msgid="1393184943010909471">"সম্পূৰ্ণকৈ চ্চাৰ্জ হোৱাৰ পাছত স্ক্ৰীন অন হৈ থকা সময়"</string>
- <string name="device_usage_list_summary" msgid="242243537371697285">"সম্পূৰ্ণ চ্চাৰ্জ হোৱাৰ পিছত ডিভাইচৰ ব্যৱহাৰ"</string>
+ <string name="device_usage_list_summary" msgid="242243537371697285">"সম্পূৰ্ণ চ্চাৰ্জ হোৱাৰ পাছত ডিভাইচৰ ব্যৱহাৰ"</string>
<string name="battery_since_unplugged" msgid="6991509383429936921">"আনপ্লাগ কৰাৰ পাছত বেটাৰীৰ ব্যৱহাৰ"</string>
<string name="battery_since_reset" msgid="2930376112877476562">"ৰিছেট কৰাৰ পাছত বেটাৰীৰ ব্যৱহাৰ"</string>
<string name="battery_stats_on_battery" msgid="1553011980384645514">"<xliff:g id="TIME">%1$s</xliff:g> বেটাৰীত"</string>
- <string name="battery_stats_duration" msgid="6918768703070999743">"<xliff:g id="TIME">%1$s</xliff:g> প্লাগৰ পৰা আঁতৰোৱাৰ পিছত"</string>
+ <string name="battery_stats_duration" msgid="6918768703070999743">"<xliff:g id="TIME">%1$s</xliff:g> প্লাগৰ পৰা আঁতৰোৱাৰ পাছত"</string>
<string name="battery_stats_charging_label" msgid="6204814386861342145">"চ্চাৰ্জ কৰি থকা হৈছে"</string>
<string name="battery_stats_screen_on_label" msgid="8989312180491200138">"স্ক্ৰীন অন"</string>
<string name="battery_stats_gps_on_label" msgid="5626424078405382686">"জিপিএছ অন আছে"</string>
@@ -2961,7 +2963,7 @@
<string name="battery_sugg_bluetooth_basic" msgid="8943564578546832037">"অব্যৱহৃত অৱস্থাত থাকোতে ব্লুটুথ অফ কৰি ৰাখক"</string>
<string name="battery_sugg_bluetooth_headset" msgid="6495519793211758353">"বেলেগ এটা ব্লুটুথ ডিভাইচৰ লগত সংযোগ কৰিবলৈ চেষ্টা কৰক"</string>
<string name="battery_desc_apps" msgid="4187483940383266017">"এপে ব্যৱহাৰ কৰা বেটাৰীৰ পৰিমাণ"</string>
- <string name="battery_sugg_apps_info" msgid="4796917242296658454">"এপটো বন্ধ কৰক বা আনইনষ্টল কৰক"</string>
+ <string name="battery_sugg_apps_info" msgid="4796917242296658454">"এপ্টো বন্ধ কৰক বা আনইনষ্টল কৰক"</string>
<string name="battery_sugg_apps_gps" msgid="7221335088647925110">"বেটাৰী সঞ্চয় ম’ড বাছনি কৰক"</string>
<string name="battery_sugg_apps_settings" msgid="6527223370162382166">"বেটাৰীৰ খৰচ কম কৰিবলৈ এই এপ্টোত ছেটিং থাকিব পাৰে"</string>
<string name="battery_desc_users" msgid="1959428568888686847">"ব্যৱহাৰকাৰীয়ে খৰচ কৰা বেটাৰীৰ পৰিমাণ"</string>
@@ -2974,14 +2976,14 @@
<string name="battery_screen_usage" msgid="90008745183187461">"স্ক্ৰীনৰ ব্যৱহাৰ <xliff:g id="TIME">^1</xliff:g>"</string>
<string name="battery_used_by" msgid="6457305178016189330">"<xliff:g id="APP">%2$s</xliff:g>ৰ দ্বাৰা <xliff:g id="PERCENT">%1$s</xliff:g> ব্যৱহাৰ হৈছে"</string>
<string name="battery_overall_usage" msgid="8940140259734182014">"সামগ্ৰিক বেটাৰীৰ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
- <string name="battery_detail_since_full_charge" msgid="5650946565524184582">"শেহতীয়াভাৱে পূৰ্ণ চাৰ্জ কৰাৰ পিছত হোৱা বেটাৰি ক্ষয়"</string>
+ <string name="battery_detail_since_full_charge" msgid="5650946565524184582">"শেহতীয়াভাৱে পূৰ্ণ চাৰ্জ কৰাৰ পাছত হোৱা বেটাৰি ক্ষয়"</string>
<string name="battery_last_full_charge" msgid="8308424441475063956">"অন্তিমটো সম্পূৰ্ণ চ্চাৰ্জ"</string>
- <string name="battery_full_charge_last" msgid="465146408601016923">"সম্পূৰ্ণ ৰূপে চ্চাৰ্জ কৰাৰ পিছত প্ৰায় ইমান সময় চলে"</string>
+ <string name="battery_full_charge_last" msgid="465146408601016923">"সম্পূৰ্ণ ৰূপে চ্চাৰ্জ কৰাৰ পাছত প্ৰায় ইমান সময় চলে"</string>
<string name="battery_footer_summary" msgid="8221691063048377342">"বেটাৰীৰ ব্যৱহাৰৰ ডেটা আনুমানিক আৰু ই ব্যৱহাৰৰ ওপৰত ভিত্তি কৰি সলনি হ’ব পাৰে।"</string>
<string name="battery_detail_foreground" msgid="3312280147931093967">"সক্ৰিয়ভাৱে ব্যৱহাৰ হৈ থাকোতে"</string>
<string name="battery_detail_background" msgid="3333915023706228000">"নেপথ্যত থাকোঁতে"</string>
<string name="battery_detail_power_usage" msgid="1492926471397355477">"বেটাৰীৰ ব্যৱহাৰ"</string>
- <string name="battery_detail_info_title" msgid="5896661833554333683">"সম্পূৰ্ণ চ্চাৰ্জ হোৱাৰ পিছত"</string>
+ <string name="battery_detail_info_title" msgid="5896661833554333683">"সম্পূৰ্ণ চ্চাৰ্জ হোৱাৰ পাছত"</string>
<string name="battery_detail_manage_title" msgid="7910805419446927887">"বেটাৰীৰ ব্যৱহাৰ পৰিচালনা কৰক"</string>
<string name="battery_total_and_bg_usage" msgid="8266478675516886819">"মুঠ <xliff:g id="TIME_0">^1</xliff:g> • শেষবাৰ সম্পূৰ্ণ চাৰ্জ হোৱাৰ পৰা মুঠ\n<xliff:g id="TIME_1">^2</xliff:g>"</string>
<string name="battery_total_and_bg_usage_24hr" msgid="2393832614028187281">"মুঠ <xliff:g id="TIME_0">^1</xliff:g> • যোৱা ২৪ ঘণ্টাত নেপথ্যত\n<xliff:g id="TIME_1">^2</xliff:g>"</string>
@@ -3009,7 +3011,7 @@
<string name="estimated_time_left" msgid="948717045180211777">"বাকী থকা মোটামুটি সময়"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"সম্পূৰ্ণৰূপে চ্চাৰ্জ নোহোৱা পৰ্যন্ত"</string>
<string name="estimated_time_description" msgid="211058785418596009">"ব্যৱহাৰক ভিত্তি কৰি আনুমানিক সময় সলনি হ’ব পাৰে"</string>
- <string name="menu_stats_unplugged" msgid="7125297366200634285">"আনপ্লাগ কৰাৰ পিছত<xliff:g id="UNPLUGGED">%1$s</xliff:g>"</string>
+ <string name="menu_stats_unplugged" msgid="7125297366200634285">"আনপ্লাগ কৰাৰ পাছত<xliff:g id="UNPLUGGED">%1$s</xliff:g>"</string>
<string name="menu_stats_last_unplugged" msgid="230678127178268655">"যেতিয়া <xliff:g id="UNPLUGGED">%1$s</xliff:g> অন্তিমবাৰ আনপ্লাগ কৰা হৈছিল"</string>
<string name="menu_stats_total" msgid="2713445396954503670">"ব্য়ৱহাৰৰ মুঠ"</string>
<string name="menu_stats_refresh" msgid="6727628139586938835">"ৰিফ্ৰেশ্ব"</string>
@@ -3062,7 +3064,7 @@
<string name="process_stats_summary_title" msgid="502683176231281732">"প্ৰক্ৰিয়া-বিষয়ক পৰিসংখ্যা"</string>
<string name="process_stats_summary" msgid="522842188571764699">"চলি থকা প্ৰক্ৰিয়াসমূহৰ বিষয়ে কাৰিকৰী পৰিসংখ্যা"</string>
<string name="app_memory_use" msgid="7559666138324410666">"মেম\'ৰিৰ ব্যৱহাৰ"</string>
- <string name="process_stats_total_duration" msgid="3898635541254636618">"<xliff:g id="TIMEDURATION">%3$s</xliff:g>ৰ পিছত <xliff:g id="TOTALRAM">%2$s</xliff:g>ৰ <xliff:g id="USEDRAM">%1$s</xliff:g> ব্যৱহাৰ কৰা হৈছে"</string>
+ <string name="process_stats_total_duration" msgid="3898635541254636618">"<xliff:g id="TIMEDURATION">%3$s</xliff:g>ৰ পাছত <xliff:g id="TOTALRAM">%2$s</xliff:g>ৰ <xliff:g id="USEDRAM">%1$s</xliff:g> ব্যৱহাৰ কৰা হৈছে"</string>
<string name="process_stats_total_duration_percentage" msgid="4391502694312709148">"<xliff:g id="PERCENT">%1$s</xliff:g>ৰ ভিতৰত <xliff:g id="TIMEDURATION">%2$s</xliff:g>তকৈ বেছি ৰেম ব্যৱহৃত হৈছে"</string>
<string name="process_stats_type_background" msgid="4094034441562453522">"নেপথ্য"</string>
<string name="process_stats_type_foreground" msgid="5043049335546793803">"অগ্ৰভাগ"</string>
@@ -3188,18 +3190,18 @@
<string name="fullbackup_data_summary" msgid="971587401251601473">"আপোনাৰ ডিভাইচৰ ডেটা (যেনে, ৱাই-ফাইৰ পাছৱৰ্ড আৰু কলৰ ইতিহাস) আৰু এপৰ ডেটা (যেনে, ছেটিং আৰু এপে জমা কৰা ফাইলসমূহ)ৰ নিলগৰ পৰা বেকআপ লওক।\n\nযেতিয়া আপুনি স্বয়ংক্ৰিয় বেকআপ অন কৰে, তেতিয়া ডিভাইচ আৰু এপৰ ডেটা সময়ে সময়ে নিলগৰ পৰা ছেভ কৰা হয়। এপ্ ডেটা যিকোনো এপে (ডেভেলপাৰ ছেটিং অনুসৰি) জমা কৰা ডেটা হ\'ব পাৰে, য\'ত সম্ভাব্য সংবেদনশীল ডেটা যেনে সম্পৰ্ক, বাৰ্তা আৰু ফট\' আদিসমূহ অন্তৰ্ভুক্ত হ\'ব পাৰে।"</string>
<string name="device_admin_settings_title" msgid="31392408594557070">"ডিভাইচ এডমিন ছেটিং"</string>
<string name="active_device_admin_msg" msgid="7744106305636543184">"ডিভাইচ প্ৰশাসকৰ এপ্"</string>
- <string name="remove_device_admin" msgid="3143059558744287259">"এই ডিভাইচ প্ৰশাসক এপটো অক্ষম কৰক"</string>
+ <string name="remove_device_admin" msgid="3143059558744287259">"এই ডিভাইচ প্ৰশাসক এপ্টো অক্ষম কৰক"</string>
<string name="uninstall_device_admin" msgid="4481095209503956916">"এপ্ আনইনষ্টল কৰক"</string>
<string name="remove_and_uninstall_device_admin" msgid="707912012681691559">"নিষ্ক্ৰিয় আৰু আনইনষ্টল কৰক"</string>
<string name="select_device_admin_msg" msgid="5501360309040114486">"ডিভাইচৰ প্ৰশাসকৰ এপসমূহ"</string>
<string name="no_device_admins" msgid="8888779888103079854">"কোনো ডিভাইচ প্ৰশাসকৰ এপ্ উপলব্ধ নাই"</string>
<string name="no_trust_agents" msgid="8659098725864191600">"কোনো বিশ্বাসী এজেণ্ট পোৱা নগ\'ল"</string>
- <string name="add_device_admin_msg" msgid="7730006568970042119">"এই ডিভাইচ প্ৰশাসক এপটো সক্ৰিয় কৰেনে?"</string>
- <string name="add_device_admin" msgid="6252128813507932519">"এই ডিভাইচ এডমিন এপটো সক্ৰিয় কৰক"</string>
+ <string name="add_device_admin_msg" msgid="7730006568970042119">"এই ডিভাইচ প্ৰশাসক এপ্টো সক্ৰিয় কৰেনে?"</string>
+ <string name="add_device_admin" msgid="6252128813507932519">"এই ডিভাইচ এডমিন এপ্টো সক্ৰিয় কৰক"</string>
<string name="device_admin_add_title" msgid="6087481040932322289">"ডিভাইচৰ প্ৰশাসক"</string>
- <string name="device_admin_warning" msgid="1889160106787280321">"এই এপটো সক্ৰিয় কৰিলে ই <xliff:g id="APP_NAME">%1$s</xliff:g> তলৰ কামবিলাক কৰিবলৈ সক্ষম হ\'ব:"</string>
+ <string name="device_admin_warning" msgid="1889160106787280321">"এই এপ্টো সক্ৰিয় কৰিলে ই <xliff:g id="APP_NAME">%1$s</xliff:g> তলৰ কামবিলাক কৰিবলৈ সক্ষম হ\'ব:"</string>
<string name="device_admin_warning_simplified" msgid="2715756519899116115">"এই ডিভাইচটো <xliff:g id="APP_NAME">%1$s</xliff:g>এ পৰিচালনা আৰু নিৰীক্ষণ কৰিব।"</string>
- <string name="device_admin_status" msgid="6332571781623084064">"এই প্ৰশাসক এপটো সক্ৰিয় হৈ আছে আৰু ই <xliff:g id="APP_NAME">%1$s</xliff:g> নিম্নলিখিত কাৰ্যকলাপসমূহ কৰিব পাৰে:"</string>
+ <string name="device_admin_status" msgid="6332571781623084064">"এই প্ৰশাসক এপ্টো সক্ৰিয় হৈ আছে আৰু ই <xliff:g id="APP_NAME">%1$s</xliff:g> নিম্নলিখিত কাৰ্যকলাপসমূহ কৰিব পাৰে:"</string>
<string name="profile_owner_add_title" msgid="2774489881662331549">"প্ৰ\'ফাইল পৰিচালকক সক্ৰিয় কৰেনে?"</string>
<string name="profile_owner_add_title_simplified" msgid="2320828996993774182">"তদাৰক কৰিবলৈ অনুমতি দিবনে?"</string>
<string name="adding_profile_owner_warning" msgid="6868275476058020513">"অব্যাহত ৰাখিলে, প্ৰশাসকে আপোনাৰ ব্যৱহাৰকাৰীক পৰিচালনা কৰিব আৰু তেওঁ সংলগ্ন ডেটাৰ লগতে আপোনাৰ ব্যক্তিগত ডেটাও জমা কৰিব পাৰিব।\n\nআপোনাৰ প্ৰশাসকে ছেটিং, এক্সেছ, এপ্, আৰু এই ব্যৱহাৰকাৰীৰৰ লগত জড়িত ডেটা যেনে নেটৱৰ্কৰ কাৰ্যকলাপ আৰু আপোনাৰ ডিভাইচৰ অৱস্থান বিষয়কৰ তথ্য আদি নিৰীক্ষণ কৰাৰ লগতে পৰিচালনা কৰিব পাৰিব।"</string>
@@ -3319,7 +3321,7 @@
<string name="data_usage_app_settings" msgid="5693524672522122485">"এপৰ ছেটিং"</string>
<string name="data_usage_app_restrict_background" msgid="5728840276368097276">"নেপথ্য ডেটা"</string>
<string name="data_usage_app_restrict_background_summary" msgid="2997942775999602794">"ম’বাইল ডেটাৰ নেপথ্য ব্যৱহাৰ সক্ষম কৰক"</string>
- <string name="data_usage_app_restrict_background_summary_disabled" msgid="8213268097024597864">"এই এপটোৰ বাবে নেপথ্য সীমিত কৰিবলৈ প্ৰথমে ম’বাইল ডেটাৰ সীমা ছেট কৰিব লাগিব।"</string>
+ <string name="data_usage_app_restrict_background_summary_disabled" msgid="8213268097024597864">"এই এপ্টোৰ বাবে নেপথ্য সীমিত কৰিবলৈ প্ৰথমে ম’বাইল ডেটাৰ সীমা ছেট কৰিব লাগিব।"</string>
<string name="data_usage_app_restrict_dialog_title" msgid="5383874438677899255">"নেপথ্য ডেটা সীমিত কৰে নে?"</string>
<string name="data_usage_app_restrict_dialog" msgid="5534272311979978297">"যেতিয়া কেৱল ম’বাইল নেটৱৰ্ক উপলব্ধ থাকে, এই সুবিধাই নেপথ্য ডেটাৰ উপৰত নিৰ্ভৰশীল এপ্বোৰ অচল কৰিব পাৰে।\n\nএপ্টোৰ ভিতৰত থকা ছেটিঙত আপুনি ডেটা ব্যৱহাৰ নিয়ন্ত্ৰণ কৰিবলৈ অধিক উপযুক্ত সুবিধা পাব।"</string>
<string name="data_usage_restrict_denied_dialog" msgid="8599940395497268584">"আপুনি ম’বাইল ডেটাৰ সীমা ছেট কৰাৰ পিছতহে কেৱল নেপথ্য ডেটাক প্ৰতিবন্ধিত কৰা সম্ভৱ৷"</string>
@@ -3334,7 +3336,7 @@
<string name="data_usage_warning_editor_title" msgid="5252748452973120016">"ডেটা ব্যৱহাৰৰ সকিয়নী ছেট কৰক"</string>
<string name="data_usage_limit_editor_title" msgid="8826855902435008518">"ডেটা ব্যৱহাৰৰ সীমা ছেট কৰক"</string>
<string name="data_usage_limit_dialog_title" msgid="2053134451707801439">"ডেটাৰ ব্যৱহাৰ সীমিত কৰি থকা হৈছে"</string>
- <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="6000062970083379466">"আপুনি ছেট কৰা ডেটা শেষ হোৱাৰ পিছত আপোনাৰ টে\'বলেটৰ ম’বাইল ডেটা অফ হ\'ব।\n\nযিহেতু, আপোনাৰ টে\'বলেটে ডেটাৰ ব্যৱহাৰ নিৰ্ধাৰণ কৰে আৰু আপোনাৰ বাহকে ব্যৱহাৰৰ ওপৰত ভিত্তি কৰি ডেটাৰ গণনা পৃথকভাৱে কৰিব পাৰে, সেয়েহে ভাবি চিন্তি ডেটাৰ সীমা নিৰ্ধাৰণ কৰক।"</string>
+ <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="6000062970083379466">"আপুনি ছেট কৰা ডেটা শেষ হোৱাৰ পাছত আপোনাৰ টে\'বলেটৰ ম’বাইল ডেটা অফ হ\'ব।\n\nযিহেতু, আপোনাৰ টে\'বলেটে ডেটাৰ ব্যৱহাৰ নিৰ্ধাৰণ কৰে আৰু আপোনাৰ বাহকে ব্যৱহাৰৰ ওপৰত ভিত্তি কৰি ডেটাৰ গণনা পৃথকভাৱে কৰিব পাৰে, সেয়েহে ভাবি চিন্তি ডেটাৰ সীমা নিৰ্ধাৰণ কৰক।"</string>
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4942895670789168024">"আপুনি ছেট কৰা সীমাত উপনীত হোৱাৰ লগে লগে ফ\'নটোৱে ম’বাইল ডেটা অফ কৰি দিব।\n\nযিহেতু ডেটাৰ ব্যৱহাৰ আপোনাৰ ফ\'নটোৱে গণনা কৰে যিটো আপোনাৰ বাহকৰ গণনাৰ সৈতে একে নহ\'বও পাৰে, গতিকে এক ৰক্ষণশীল সীমা বন্ধাৰ কথা বিবেচনা কৰক।"</string>
<string name="data_usage_restrict_background_title" msgid="2745551538820692821">"নেপথ্য ডেটা সীমিত কৰেনে?"</string>
<string name="data_usage_restrict_background" msgid="1893102079135282794">"যদিহে আপুনি নেপথ্য ম’বাইল ডেটা সীমিত কৰে, তেতিয়া আপুনি কোনো ৱাই-ফাই নেটৱৰ্কৰ লগত সংযোগ নকৰালৈকে কিছুমান এপ্ আৰু সেৱাই কাম নকৰিব।"</string>
@@ -3411,7 +3413,7 @@
<string name="vpn_menu_lockdown" msgid="5284041663859541007">"সদায় অন থকা ভিপিএন"</string>
<string name="vpn_no_vpns_added" msgid="7387080769821533728">"কোনো ভিপিএন যোগ কৰা হোৱা নাই"</string>
<string name="vpn_always_on_summary" msgid="2171252372476858166">"সকলো সময়তে VPNৰ সৈতে সংযুক্ত হৈ থাকক"</string>
- <string name="vpn_always_on_summary_not_supported" msgid="9084872130449368437">"এই এপটোৰ দ্বাৰা সমৰ্থিত নহয়"</string>
+ <string name="vpn_always_on_summary_not_supported" msgid="9084872130449368437">"এই এপ্টোৰ দ্বাৰা সমৰ্থিত নহয়"</string>
<string name="vpn_always_on_summary_active" msgid="175877594406330387">"সদায় অন"</string>
<string name="vpn_insecure_summary" msgid="4450920215186742859">"সুৰক্ষিত নহয়"</string>
<string name="vpn_require_connection" msgid="1027347404470060998">"ভিপিএন নোহোৱাকৈয়ে সংযোগবোৰ অৱৰোধ কৰক"</string>
@@ -3420,7 +3422,7 @@
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"যিকোনো সময়ত সংযোগ হৈ থাকিবলৈ ভিপিএন প্ৰ\'ফাইল বাছনি কৰক। এই ভিপিএনত সংযোগ হ\'লেহে ইণ্টাৰনেট ব্যৱহাৰ কৰিব পাৰিব।"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"নাই"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"সদা-সক্ৰিয় ভিপিএনৰ ক্ষেত্ৰত ছাৰ্ভাৰ আৰু ডিএনএছ দুয়োটাৰ বাবে আইপি ঠিকনা থকাটো দৰকাৰী।"</string>
- <string name="vpn_no_network" msgid="7187593680049843763">"ইণ্টাৰনেট সংযোগ নাই। অনুগ্ৰহ কৰি পিছত আকৌ চেষ্টা কৰক।"</string>
+ <string name="vpn_no_network" msgid="7187593680049843763">"ইণ্টাৰনেট সংযোগ নাই। অনুগ্ৰহ কৰি পাছত আকৌ চেষ্টা কৰক।"</string>
<string name="vpn_disconnected" msgid="7694522069957717501">"ভিপিএনৰ পৰা সংযোগ বিচ্ছিন্ন কৰক"</string>
<string name="vpn_disconnected_summary" msgid="721699709491697712">"নাই"</string>
<string name="vpn_missing_cert" msgid="5397309964971068272">"প্ৰমাণপত্ৰ উপলব্ধ নহয়। উক্ত প্ৰ\'ফাইল সম্পাদন কৰি চাওক।"</string>
@@ -3463,9 +3465,9 @@
<item quantity="other">প্ৰমাণপত্ৰ পৰীক্ষা কৰক</item>
</plurals>
<string name="user_settings_title" msgid="6550866465409807877">"একাধিক ব্যৱহাৰকাৰী"</string>
- <string name="user_settings_footer_text" product="device" msgid="7523914344521302179">"নতুন ব্য়ৱহাৰকাৰী যোগ কৰি নিজৰ ডিভাইচ শ্বেয়াৰ কৰক। আপোনাৰ ডিভাইচত সকলো ব্য়ৱহাৰকাৰীৰ নিজৰ উপযোগিতা অনুসৰি কৰা গৃহ স্ক্ৰীণ, একাউণ্ট, এপ্, ছেটিং আৰু বহুতো বস্তুৰ বাবে ব্য়ক্তিগত খালী ঠাই থাকে।"</string>
- <string name="user_settings_footer_text" product="tablet" msgid="3730074318510244552">"নতুন ব্য়ৱহাৰকাৰী যোগ কৰি নিজৰ টেবলেট শ্বেয়াৰ কৰক। আপোনাৰ টেবলেটতে সকলো ব্য়ৱহাৰকাৰীৰ নিজৰ উপযোগিতা অনুসৰি কৰা গৃহ স্ক্ৰীণ, একাউণ্ট, এপ্, ছেটিং আৰু বহুতো বস্তুৰ বাবে ব্য়ক্তিগত খালী ঠাই থাকে।"</string>
- <string name="user_settings_footer_text" product="default" msgid="4420915712050349125">"নতুন ব্য়ৱহাৰকাৰী যোগ কৰি নিজৰ ফ\'ন শ্বেয়াৰ কৰক। আপোনাৰ ফ\'নত সকলো ব্য়ৱহাৰকাৰীৰ নিজৰ উপযোগিতা অনুসৰি কৰা গৃহ স্ক্ৰীণ, একাউণ্ট, এপ্, ছেটিং আৰু বহুতো বস্তুৰ বাবে ব্য়ক্তিগত খালী ঠাই থাকে।"</string>
+ <string name="user_settings_footer_text" product="device" msgid="7523914344521302179">"নতুন ব্য়ৱহাৰকাৰী যোগ কৰি নিজৰ ডিভাইচ শ্বেয়াৰ কৰক। আপোনাৰ ডিভাইচত সকলো ব্য়ৱহাৰকাৰীৰ নিজৰ উপযোগিতা অনুসৰি কৰা গৃহ স্ক্ৰীন, একাউণ্ট, এপ্, ছেটিং আৰু বহুতো বস্তুৰ বাবে ব্য়ক্তিগত খালী ঠাই থাকে।"</string>
+ <string name="user_settings_footer_text" product="tablet" msgid="3730074318510244552">"নতুন ব্য়ৱহাৰকাৰী যোগ কৰি নিজৰ টেবলেট শ্বেয়াৰ কৰক। আপোনাৰ টেবলেটতে সকলো ব্য়ৱহাৰকাৰীৰ নিজৰ উপযোগিতা অনুসৰি কৰা গৃহ স্ক্ৰীন, একাউণ্ট, এপ্, ছেটিং আৰু বহুতো বস্তুৰ বাবে ব্য়ক্তিগত খালী ঠাই থাকে।"</string>
+ <string name="user_settings_footer_text" product="default" msgid="4420915712050349125">"নতুন ব্য়ৱহাৰকাৰী যোগ কৰি নিজৰ ফ\'ন শ্বেয়াৰ কৰক। আপোনাৰ ফ\'নত সকলো ব্য়ৱহাৰকাৰীৰ নিজৰ উপযোগিতা অনুসৰি কৰা গৃহ স্ক্ৰীন, একাউণ্ট, এপ্, ছেটিং আৰু বহুতো বস্তুৰ বাবে ব্য়ক্তিগত খালী ঠাই থাকে।"</string>
<string name="user_list_title" msgid="1387379079186123404">"ব্যৱহাৰকাৰী আৰু প্ৰ\'ফাইলসমূহ"</string>
<string name="user_add_user_or_profile_menu" msgid="305851380425838287">"ব্যৱহাৰকাৰী বা প্ৰ\'ফাইল যোগ কৰক"</string>
<string name="user_summary_restricted_profile" msgid="451650609582185813">"সীমিত প্ৰ’ফাইল"</string>
@@ -3486,8 +3488,8 @@
<string name="user_confirm_remove_title" msgid="3626559103278006002">"এই ব্যৱহাৰকাৰীজন মচিবনে?"</string>
<string name="user_profile_confirm_remove_title" msgid="3131574314149375354">"এই প্ৰ\'ফাইলটো আঁতৰাইনে?"</string>
<string name="work_profile_confirm_remove_title" msgid="6229618888167176036">"কৰ্মস্থানৰ প্ৰ\'ফাইল আঁতহৰাইনে?"</string>
- <string name="user_confirm_remove_self_message" product="tablet" msgid="439222554798995592">"আপুনি এই টেবলেটত আপোনাৰ বাবে সংৰক্ষিত ঠাই আৰু ডেটা হেৰুৱাব। আপুনি এই কাৰ্য পিছত শুধৰাব নোৱাৰিব।"</string>
- <string name="user_confirm_remove_self_message" product="default" msgid="5991495192044543230">"আপুনি এই ফ\'নত আপোনাৰ বাবে সংৰক্ষিত ঠাই আৰু ডেটা হেৰুৱাব। আপুনি এই কাৰ্য পিছত শুধৰাব নোৱাৰিব।"</string>
+ <string name="user_confirm_remove_self_message" product="tablet" msgid="439222554798995592">"আপুনি এই টেবলেটত আপোনাৰ বাবে সংৰক্ষিত ঠাই আৰু ডেটা হেৰুৱাব। আপুনি এই কাৰ্য পাছত শুধৰাব নোৱাৰিব।"</string>
+ <string name="user_confirm_remove_self_message" product="default" msgid="5991495192044543230">"আপুনি এই ফ\'নত আপোনাৰ বাবে সংৰক্ষিত ঠাই আৰু ডেটা হেৰুৱাব। আপুনি এই কাৰ্য পাছত শুধৰাব নোৱাৰিব।"</string>
<string name="user_confirm_remove_message" msgid="362545924965977597">"আটাইবোৰ এপ্ আৰু ডেটা মচা হ\'ব।"</string>
<string name="work_profile_confirm_remove_message" msgid="1037294114103024478">"যদি আপুনি অব্যাহত ৰাখে, তেন্তে এই প্ৰ\'ফাইলত থকা আটাইবোৰ এপ্ আৰু ডেটা মচা হ\'ব।"</string>
<string name="user_profile_confirm_remove_message" msgid="3641289528179850718">"আটাইবোৰ এপ্ আৰু ডেটা মচা হ\'ব।"</string>
@@ -3538,7 +3540,7 @@
<string name="nfc_payment_favor_open" msgid="8554643344050373346">"অন্য পৰিশোধ এপ্ খোল খাই থকাৰ বাদে"</string>
<string name="nfc_payment_pay_with" msgid="3001320460566523453">"এটা স্পৰ্শবিহীন টাৰ্মিনেলত ইয়াৰ জৰিয়তে পৰিশোধ কৰক:"</string>
<string name="nfc_how_it_works_title" msgid="1363791241625771084">"টাৰ্মিনেলত ধন পৰিশোধ কৰা"</string>
- <string name="nfc_how_it_works_content" msgid="1141382684788210772">"ধন পৰিশোধ কৰিবলৈ এটা এপ্ ছেট আপ কৰক। তাৰ পিছত পইচা পৰিশোধ কৰিবলৈ যিকোনো স্পৰ্শহীন প্ৰতীক অঁকা থকা টাৰ্মিনেলত ফ\'নটোৰ পিছফালটো ওচৰ চপাই ধৰক।"</string>
+ <string name="nfc_how_it_works_content" msgid="1141382684788210772">"ধন পৰিশোধ কৰিবলৈ এটা এপ্ ছেট আপ কৰক। তাৰ পাছত পইচা পৰিশোধ কৰিবলৈ যিকোনো স্পৰ্শহীন প্ৰতীক অঁকা থকা টাৰ্মিনেলত ফ\'নটোৰ পিছফালটো ওচৰ চপাই ধৰক।"</string>
<string name="nfc_how_it_works_got_it" msgid="4717868843368296630">"বুজি পালোঁ"</string>
<string name="nfc_more_title" msgid="1041094244767216498">"অধিক…"</string>
<string name="nfc_payment_set_default_label" msgid="7395939287766230293">"ডিফ’ল্ট পৰিশোধ এপ্ ছেট কৰক"</string>
@@ -3596,12 +3598,12 @@
<string name="data_during_calls_title" msgid="3940276893360429144">"কল চলি থকা সময়ত ডেটাৰ ব্যৱহাৰ"</string>
<string name="data_during_calls_summary" msgid="2289050189544214759">"কেৱল কল চলি থকা সময়তহে এই ছিমখন ম\'বাইল ডেটাৰ বাবে ব্যৱহাৰ কৰিবলৈ অনুমতি দিয়ক"</string>
<string name="work_sim_title" msgid="8999872928646924429">"কৰ্মস্থানৰ ছিম"</string>
- <string name="user_restrictions_title" msgid="4068914244980335993">"এপ্ আৰু সমলত প্ৰৱেশ"</string>
+ <string name="user_restrictions_title" msgid="4068914244980335993">"এপ্ আৰু সমলৰ এক্সেছ"</string>
<string name="user_rename" msgid="8735940847878484249">"নতুন নাম দিয়ক"</string>
<string name="app_restrictions_custom_label" msgid="6949268049087435132">"এপৰ সীমাবদ্ধতা ছেট কৰক"</string>
<string name="user_restrictions_controlled_by" msgid="2821526006742851624">"<xliff:g id="APP">%1$s</xliff:g>ৰ দ্বাৰা নিয়ন্ত্ৰিত"</string>
<string name="app_sees_restricted_accounts" msgid="3526008344222566318">"এই এপটোৱে আপোনাৰ একাউণ্টসমূহ চাব পাৰে"</string>
- <string name="app_sees_restricted_accounts_and_controlled_by" msgid="8338520379923447143">"এই এপ্টোৱে আপোনাৰ একাউণ্টসমূহত প্ৰৱেশ কৰিব পাৰে৷ <xliff:g id="APP">%1$s</xliff:g>ৰ দ্বাৰা নিয়ন্ত্ৰিত"</string>
+ <string name="app_sees_restricted_accounts_and_controlled_by" msgid="8338520379923447143">"এই এপ্টোৱে আপোনাৰ একাউণ্টসমূহ এক্সেছ কৰিব পাৰে৷ <xliff:g id="APP">%1$s</xliff:g>ৰ দ্বাৰা নিয়ন্ত্ৰিত"</string>
<string name="restriction_wifi_config_title" msgid="2630656989926554685">"ৱাই-ফাই আৰু ম’বাইল"</string>
<string name="restriction_wifi_config_summary" msgid="920419010472168694">"ৱাই-ফাই আৰু ম’বাইল ছেটিং সংশোধনৰ অনুমতি দিয়ক"</string>
<string name="restriction_bluetooth_config_title" msgid="220586273589093821">"ব্লুটুথ"</string>
@@ -3703,7 +3705,7 @@
<string name="keywords_wifi_calling" msgid="4319184318421027136">"ৱাইফাই, ৱাই-ফাই, কল, কলিং"</string>
<string name="keywords_display" msgid="874738809280751745">"স্ক্ৰীন, টাচ্চ স্ক্ৰীন"</string>
<string name="keywords_display_brightness_level" msgid="850742707616318056">"অনুজ্জ্বল স্ক্ৰীন, টাচ্চস্ক্ৰীন, বেটাৰী, উজ্জ্বল"</string>
- <string name="keywords_display_night_display" msgid="4711054330804250058">"অনুজ্জ্বল স্ক্ৰীন, ৰাতি, গাঢ়তা, নাইট শ্বিফট, উজ্জ্বলতা, স্ক্ৰীণৰ ৰং, ৰং"</string>
+ <string name="keywords_display_night_display" msgid="4711054330804250058">"অনুজ্জ্বল স্ক্ৰীন, ৰাতি, গাঢ়তা, নাইট শ্বিফট, উজ্জ্বলতা, স্ক্ৰীনৰ ৰং, ৰং"</string>
<string name="keywords_display_wallpaper" msgid="8478137541939526564">"বেকগ্ৰাউণ্ড, ব্যক্তিগত কৰক, ডিছপ্লে\' কাষ্টমাইজ কৰক"</string>
<string name="keywords_display_font_size" msgid="3593317215149813183">"ফণ্টৰ আকাৰ"</string>
<string name="keywords_display_cast_screen" msgid="2572331770299149370">"প্ৰজেক্ট, কাষ্ট, স্ক্ৰীন প্ৰতিবিম্বকৰণ, স্ক্ৰীন শ্বেয়াৰ, প্ৰতিবিম্বকৰণ, শ্বেয়াৰ কৰা স্ক্ৰীন, স্ক্ৰীন কাষ্টিং"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"কলৰ ভলিউম"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"এলাৰ্মৰ ভলিউম"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"ৰিং আৰু জাননীৰ ভলিউম"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"ৰিঙৰ ভলিউম"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"জাননী-ধ্বনিৰ ভলিউম"</string>
<string name="ringtone_title" msgid="3271453110387368088">"ফ\'নৰ ৰিংট\'ন"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"ডিফ\'ল্ট জাননী ধ্বনি"</string>
@@ -4108,7 +4111,7 @@
<string name="notifications_sent_never" msgid="9081278709126812062">"কেতিয়াও পঠোৱা নহয়"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"ডিভাইচ আৰু এপৰ জাননী"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"কোনসমূহ এপ আৰু ডিভাইচে জাননী পঢ়িব পাৰে সেইয়া নিয়ন্ত্ৰণ কৰক"</string>
- <string name="work_profile_notification_access_blocked_summary" msgid="8643809206612366067">"কৰ্মস্থানৰ প্ৰ\'ফাইলৰ জাননীসমূহত প্ৰৱেশ কৰাৰ অনুমতি অৱৰোধ কৰা হৈছে"</string>
+ <string name="work_profile_notification_access_blocked_summary" msgid="8643809206612366067">"কৰ্মস্থানৰ প্ৰ\'ফাইলৰ জাননীসমূহ এক্সেছ কৰাৰ অনুমতি অৱৰোধ কৰা হৈছে"</string>
<string name="manage_notification_access_summary_zero" msgid="7528633634628627431">"এপসমূহে জাননী পঢ়িব নোৱাৰে"</string>
<plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="3703008881487586312">
<item quantity="one">%dটা এপে জাননীসমূহ পঢ়িব পাৰে</item>
@@ -4117,7 +4120,7 @@
<string name="notification_assistant_title" msgid="5889201903272393099">"উন্নত জাননী"</string>
<string name="notification_assistant_summary" msgid="1957783114840908887">"পৰামৰ্শ দিয়া কাৰ্য, প্ৰত্যুত্তৰ আৰু বহুতো সুবিধা লাভ কৰক"</string>
<string name="no_notification_assistant" msgid="2533323397091834096">"নাই"</string>
- <string name="no_notification_listeners" msgid="2839354157349636000">"ইনষ্টল কৰা হোৱা কোনো এপে জাননী দেখুৱাবলৈ অনুৰোধ কৰা নাই।"</string>
+ <string name="no_notification_listeners" msgid="2839354157349636000">"ইনষ্টল কৰা হোৱা কোনো এপে জাননীৰ এক্সেছ অনুৰোধ কৰা নাই।"</string>
<string name="notification_access_detail_switch" msgid="46386786409608330">"জাননী এক্সেছ কৰাৰ অনুমতি দিয়ক"</string>
<string name="notification_assistant_security_warning_title" msgid="2972346436050925276">"<xliff:g id="SERVICE">%1$s</xliff:g>ক জাননী এক্সেছ কৰাৰ অনুমতি দিবনে?"</string>
<string name="notification_assistant_security_warning_summary" msgid="4846559755787348129">"Android 12ত Androidৰ অভিযোজিত জাননীক উন্নত জাননীৰ দ্বাৰা সলনি কৰা হৈছে। এই সুবিধাটোৱে পৰামৰ্শ দিয়া কাৰ্য আৰু প্ৰত্যুত্তৰ দেখুৱায় আৰু আপোনাৰ জাননীসমূহ শৃংখলাবদ্ধ কৰে। \n\nউন্নত জাননীয়ে সম্পৰ্কৰ নাম আৰু বাৰ্তাৰ দৰে ব্যক্তিগত তথ্যকে ধৰি জাননীৰ সমল এক্সেছ কৰিব পাৰে। এই সুবিধাটোৱে জাননী অগ্ৰাহ্য কৰিব অথবা জাননীৰ প্ৰতি সঁহাৰি জনাবও পাৰে, যেনে ফ’ন কলৰ উত্তৰ দিয়া আৰু অসুবিধা নিদিব সুবিধাটো নিয়ন্ত্ৰণ কৰা আদি।"</string>
@@ -4130,7 +4133,7 @@
<string name="nls_feature_reply_summary" msgid="4492543411395565556">"এইটোৱে বাৰ্তাৰ প্ৰত্যুত্তৰ দিব পাৰে আৰু জাননীত থকা বুটামসমূহৰ জৰিয়তে কাৰ্যব্যৱস্থা ল’ব পাৰে, য’ত জাননী স্নুজ কৰা অথবা অগ্ৰাহ্য কৰা আৰু কলৰ উত্তৰ দিয়া কাৰ্য অন্তৰ্ভুক্ত হয়।"</string>
<string name="nls_feature_settings_title" msgid="8208164329853194414">"ছেটিং সলনি কৰক"</string>
<string name="nls_feature_settings_summary" msgid="3770028705648985689">"এইটোৱে অসুবিধা নিদিব ম’ডটো অন অথবা অফ কৰিব আৰু তাৰ সৈতে জড়িত ছেটিং সলনি কৰিব পাৰে।"</string>
- <string name="notification_listener_disable_warning_summary" msgid="8373396293802088961">"আপুনি যদি <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>ক জাননী প্ৰৱেশৰ অনুমতি নিদিয়ে, তেন্তে অসুবিধা নিদিবও নিষ্ক্ৰিয় হ\'ব।"</string>
+ <string name="notification_listener_disable_warning_summary" msgid="8373396293802088961">"আপুনি যদি <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>ৰ বাবে জাননীৰ এক্সেছ অফ কৰে, তেন্তে অসুবিধা নিদিবৰ এক্সেছো অফ কৰা হ\'ব পাৰে।"</string>
<string name="notification_listener_disable_warning_confirm" msgid="841492108402184976">"অফ কৰক"</string>
<string name="notification_listener_disable_warning_cancel" msgid="8802784105045594324">"বাতিল কৰক"</string>
<string name="notification_listener_type_title" msgid="2791552789364336733">"অনুমতিপ্ৰাপ্ত জাননীৰ প্ৰকাৰ"</string>
@@ -4150,7 +4153,7 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"এই এপ্টোৱে উন্নত ছেটিং সমৰ্থন নকৰে"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"ভিআৰ সহায়ক সেৱা"</string>
<string name="no_vr_listeners" msgid="8442646085375949755">"ইনষ্টল কৰি থোৱা কোনো এপে ভিআৰ সহায়ক সেৱা হিচাপে চলাবলৈ অনুৰোধ কৰা নাই।"</string>
- <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"VR সেৱাক <xliff:g id="SERVICE">%1$s</xliff:g>ত প্ৰৱেশৰ অনুমতি দিয়ে নে?"</string>
+ <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"VR সেৱাক <xliff:g id="SERVICE">%1$s</xliff:g>ৰ এক্সেছ দিবনে?"</string>
<string name="vr_listener_security_warning_summary" msgid="1888843557687017791">"আপুনি এপ্লিকেশ্বন ভাৰ্শ্বুৱেল ৰিয়েলিটি ম\'ডত চলালে <xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> চলিবলৈ সক্ষম হ\'ব।"</string>
<string name="display_vr_pref_title" msgid="4850474436291113569">"যেতিয়া ডিভাইচটো ভিআৰত থাকে"</string>
<string name="display_vr_pref_low_persistence" msgid="7039841277157739871">"ধূসৰতা কম কৰক (চুপাৰিছ কৰা)"</string>
@@ -4160,7 +4163,7 @@
<string name="picture_in_picture_keywords" msgid="3605379820551656253">"চিত্ৰত পিপ"</string>
<string name="picture_in_picture_app_detail_title" msgid="4442235098255164650">"চিত্ৰৰ ভিতৰত চিত্ৰ"</string>
<string name="picture_in_picture_app_detail_switch" msgid="8544190716075624017">"চিত্ৰৰ ভিতৰত চিত্ৰৰ অনুমতি দিয়ক"</string>
- <string name="picture_in_picture_app_detail_summary" msgid="2503211101305358849">"আপুনি এই এপটো খুলি ৰখাৰ সময়ত বা ইয়াৰ পৰা আঁতৰি যোৱাৰ পিছত (উদাহৰণস্বৰূপে, ইতিমধ্যে চাই থকা ভিডিঅ\'টোলৈ উভতি যাবলৈ) ইয়াক চিত্ৰৰ ভিতৰত চিত্ৰ ৱিণ্ড সৃষ্টি কৰিবলৈ অনুমতি দিয়ক। আপুনি চলাই থকা অইন এপৰ ওপৰত এই ৱিণ্ডখন প্ৰদৰ্শিত হ\'ব।"</string>
+ <string name="picture_in_picture_app_detail_summary" msgid="2503211101305358849">"আপুনি এই এপ্টো খুলি ৰখাৰ সময়ত বা ইয়াৰ পৰা আঁতৰি যোৱাৰ পাছত (উদাহৰণস্বৰূপে, ইতিমধ্যে চাই থকা ভিডিঅ\'টোলৈ উভতি যাবলৈ) ইয়াক চিত্ৰৰ ভিতৰত চিত্ৰ ৱিণ্ড সৃষ্টি কৰিবলৈ অনুমতি দিয়ক। আপুনি চলাই থকা অইন এপৰ ওপৰত এই ৱিণ্ডখন প্ৰদৰ্শিত হ\'ব।"</string>
<string name="interact_across_profiles_title" msgid="7285906999927669971">"কানেক্টেড ৱৰ্ক এণ্ড পাৰ্চনেল এপ্"</string>
<string name="interact_across_profiles_summary_allowed" msgid="1365881452153799092">"সংযোগ কৰা হৈছে"</string>
<string name="interact_across_profiles_summary_not_allowed" msgid="5802674212788171790">"সংযোজিত হৈ থকা নাই"</string>
@@ -4188,7 +4191,7 @@
<string name="interact_across_profiles_install_app_summary" msgid="7715324358034968657">"এপ্টো পাবলৈ টিপক"</string>
<string name="manage_zen_access_title" msgid="1562322900340107269">"অসুবিধা নিদিবৰ অনুমতি"</string>
<string name="zen_access_detail_switch" msgid="4183681772666138993">"অসুবিধা নিদিব ম’ডক অনুমতি দিয়ক"</string>
- <string name="zen_access_empty_text" msgid="3779921853282293080">"ইনষ্টল কৰি থোৱা কোনো এপে অসুবিধা নিদিবত প্ৰৱেশৰ অনুমতি বিচৰা নাই"</string>
+ <string name="zen_access_empty_text" msgid="3779921853282293080">"ইনষ্টল কৰি থোৱা কোনো এপে অসুবিধা নিদিবৰ এক্সেছ বিচৰা নাই"</string>
<string name="loading_notification_apps" msgid="5139471829295287945">"এপসমূহ ল’ড কৰি থকা হৈছে…"</string>
<string name="app_notifications_off_desc" msgid="6691342160980435901">"আপোনাৰ অনুৰোধত অনুযায়ী Android-এ এই এপ্টোৰ জাননীসমূহ এই ডিভাইচটোত দেখুওৱাত বাধা দিছে"</string>
<string name="channel_notifications_off_desc" msgid="6202042207121633488">"আপোনাৰ অনুৰোধমৰ্মে, Androidএ জাননীসমূহৰ এই শ্ৰেণীটোক এই ডিভাইচটোত দৃশ্যমান হ\'বলৈ দিয়া নাই"</string>
@@ -4471,7 +4474,7 @@
<string name="storage_summary_format" msgid="5721782272185284276">"<xliff:g id="STORAGE_TYPE">%2$s</xliff:g>ৰ <xliff:g id="SIZE">%1$s</xliff:g> ব্যৱহাৰ হ’ল"</string>
<string name="storage_type_internal" msgid="979243131665635278">"অভ্যন্তৰীণ ষ্ট’ৰেজ"</string>
<string name="storage_type_external" msgid="125078274000280821">"বাহ্যিক ষ্ট’ৰেজ"</string>
- <string name="data_summary_format" msgid="8802057788950096650">"<xliff:g id="DATE">%2$s</xliff:g>ৰ পিছত <xliff:g id="SIZE">%1$s</xliff:g> ব্যৱহৃত হৈছে"</string>
+ <string name="data_summary_format" msgid="8802057788950096650">"<xliff:g id="DATE">%2$s</xliff:g>ৰ পাছত <xliff:g id="SIZE">%1$s</xliff:g> ব্যৱহৃত হৈছে"</string>
<string name="storage_used" msgid="2591194906751432725">"ষ্ট’ৰেজ ব্যৱহাৰ কৰা হৈছে"</string>
<string name="change" msgid="273206077375322595">"সলনি কৰক"</string>
<string name="change_storage" msgid="8773820275624113401">"ষ্ট’ৰেজ সলনি কৰক"</string>
@@ -4567,7 +4570,7 @@
<string name="system_app" msgid="1863291702508355041">"(ছিষ্টেম)"</string>
<string name="system_default_app" msgid="2647834628622214931">"(ছিষ্টেম ডিফ\'ল্ট)"</string>
<string name="apps_storage" msgid="643866814746927111">"এপ্ ষ্ট’ৰেজ"</string>
- <string name="usage_access" msgid="5487993885373893282">"ব্যৱহাৰৰ অনুমতি"</string>
+ <string name="usage_access" msgid="5487993885373893282">"ব্যৱহাৰৰ এক্সেছ"</string>
<string name="permit_usage_access" msgid="179630895262172674">"ব্যৱহাৰ কৰিবলৈ অনুমতি দিয়ক"</string>
<string name="app_usage_preference" msgid="7062447555623339120">"এপ্ ব্যৱহাৰৰ অগ্ৰাধিকাৰসমূহ"</string>
<string name="time_spent_in_app_pref_title" msgid="25327097913383330">"ডিভাইচত অতিবাহিত কৰা সময়"</string>
@@ -4602,7 +4605,7 @@
<string name="high_power_desc" msgid="2753076899835765338">"বেটাৰি অপ্টিমাইজেশ্ৱন প্ৰযোজ্য নকৰিব। ই আপোনাৰ বেটাৰি অতি সোনকালে ক্ষয় কৰিব পাৰে।"</string>
<string name="high_power_prompt_title" msgid="2574478825228409124">"এপক সদায় নেপথ্যত চলিবলৈ দিবনে?"</string>
<string name="high_power_prompt_body" msgid="6029266540782139941">"<xliff:g id="APP_NAME">%1$s</xliff:g>ক সদায় নেপথ্যত চলি থাকিবলৈ দিলে বেটাৰীৰ জীৱনকাল হ্ৰাস পাব পাৰে। \n\nআপুনি এইটো পাছত ছেটিং > এপলৈ গৈ সলনি কৰিব পাৰে।"</string>
- <string name="battery_summary" msgid="2491764359695671207">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> সম্পূৰ্ণৰূপে চ্চাৰ্জ হোৱাৰ পিছত ব্যৱহাৰ"</string>
+ <string name="battery_summary" msgid="2491764359695671207">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> সম্পূৰ্ণৰূপে চ্চাৰ্জ হোৱাৰ পাছত ব্যৱহাৰ"</string>
<string name="battery_summary_24hr" msgid="7656033283282656551">"যোৱা ২৪ ঘণ্টাত <xliff:g id="PERCENTAGE">%1$s</xliff:g> ব্যৱহাৰ হৈছে"</string>
<string name="no_battery_summary" msgid="5769159953384122003">"অন্তিমবাৰ সম্পূৰ্ণৰূপে চাৰ্জ হোৱাৰ পাছত বেটাৰীৰ ব্যৱহাৰ হোৱা নাই"</string>
<string name="no_battery_summary_24hr" msgid="6280079526797873842">"যোৱা ২৪ ঘণ্টাত বেটাৰী অলপো ব্যৱহাৰ হোৱা নাই"</string>
@@ -4651,9 +4654,9 @@
<string name="usb_summary_photo_transfers_power" msgid="9077173567697482239">"পিটিপি আৰু শক্তি যোগান ধৰিবৰ বাবে"</string>
<string name="usb_summary_MIDI_power" msgid="1184681982025435815">"এমআইডিআই আৰু শক্তি যোগান ধৰিবৰ বাবে"</string>
<string name="background_check_pref" msgid="5304564658578987535">"নেপথ্য পৰীক্ষণ"</string>
- <string name="background_check_title" msgid="225170874283229686">"সম্পূৰ্ণ নেপথ্য প্ৰৱেশাধিকাৰ"</string>
+ <string name="background_check_title" msgid="225170874283229686">"সম্পূৰ্ণ নেপথ্যৰ এক্সেছ"</string>
<string name="assist_access_context_title" msgid="5201495523514096201">"স্ক্ৰীনৰ পৰা পাঠ ব্যৱহাৰ কৰক"</string>
- <string name="assist_access_context_summary" msgid="6951814413185646275">"স্ক্ৰীনৰ সমলসমূহক পাঠ ৰূপে চাবলৈ সহায়ক এপক অনুমতি দিয়ক"</string>
+ <string name="assist_access_context_summary" msgid="6951814413185646275">"স্ক্ৰীনৰ সমলসমূহক পাঠ ৰূপে চাবলৈ সহায়ক এপক এক্সেছ দিয়ক"</string>
<string name="assist_access_screenshot_title" msgid="4395902231753643633">"স্ক্ৰীণশ্বট ব্যৱহাৰ কৰক"</string>
<string name="assist_access_screenshot_summary" msgid="5276593070956201863">"সহায়ক এপ্টোক স্ক্ৰীনত কোনো প্ৰতিচ্ছবি এক্সেছ কৰিবলৈ দিয়ক"</string>
<string name="assist_flash_title" msgid="5449512572885550108">"ফ্লাশ্ব স্ক্ৰীন"</string>
@@ -4682,8 +4685,8 @@
<string name="no_data_usage" msgid="4665617440434654132">"কোনো ডেটা ব্যৱহাৰ হোৱা নাই"</string>
<string name="zen_access_warning_dialog_title" msgid="6323325813123130154">"<xliff:g id="APP">%1$s</xliff:g>ক অসুবিধা নিদিব-ক এক্সেছ কৰিবলৈ অনুমতি দিবনে?"</string>
<string name="zen_access_warning_dialog_summary" msgid="8468714854067428987">"এই এপ্টোৱে অসুবিধা নিদিব-ক অন/অফ কৰিব পাৰিব আৰু তাৰ লগত জড়িত ছেটিং সলনি কৰিব পাৰিব।"</string>
- <string name="zen_access_disabled_package_warning" msgid="6565908224294537889">"জাননীৰ প্ৰৱেশ অন হৈ থকাৰ বাবে অন কৰি ৰাখিবৈ লাগিব"</string>
- <string name="zen_access_revoke_warning_dialog_title" msgid="7377261509261811449">"<xliff:g id="APP">%1$s</xliff:g>ৰ অসুবিধা নিদিবলৈ থকা প্ৰৱেশৰ অনুমতি প্ৰত্যাহাৰ কৰিবনে?"</string>
+ <string name="zen_access_disabled_package_warning" msgid="6565908224294537889">"জাননীৰ এক্সেছ অন হৈ থকাৰ বাবে অন কৰি ৰাখিবই লাগিব"</string>
+ <string name="zen_access_revoke_warning_dialog_title" msgid="7377261509261811449">"<xliff:g id="APP">%1$s</xliff:g>ৰ অসুবিধা নিদিবলৈ থকা এক্সেছ প্ৰত্যাহাৰ কৰিবনে?"</string>
<string name="zen_access_revoke_warning_dialog_summary" msgid="8689801842914183595">"এই এপে সৃষ্টি কৰা আটাইবোৰ অসুবিধা নিদিব নিয়ম আঁতৰোৱা হ\'ব।"</string>
<string name="ignore_optimizations_on" msgid="6865583039303804932">"অপ্টিমাইজ নকৰিব"</string>
<string name="ignore_optimizations_off" msgid="9186557038453586295">"Optimize"</string>
@@ -4691,7 +4694,7 @@
<string name="ignore_optimizations_off_desc" msgid="3324571675983286177">"বেটাৰীৰ অৱস্থা উন্নত কৰাৰ বাবে পৰামৰ্শ দিয়া হৈছে"</string>
<string name="ignore_optimizations_title" msgid="3464172726254542889">"<xliff:g id="APP">%s</xliff:g>-ক বেটাৰী অপ্টিমাইজেশ্বন অবজ্ঞা কৰিবলৈ অনুমতি দিবনে?"</string>
<string name="app_list_preference_none" msgid="1635406344616653756">"একোএই নাই"</string>
- <string name="work_profile_usage_access_warning" msgid="3477719910927319122">"এই এপক প্ৰাপ্ত হৈ থকা ব্যৱহাৰৰ সুবিধা অফ কৰিলেও আপোনাৰ প্ৰশাসকক আপোনাৰ কৰ্মস্থানৰ প্ৰ\'ফাইলত থকা এপসমূহৰ ডেটা ব্যৱহাৰ নিৰীক্ষণ কৰাত বাধা নিদিয়ে"</string>
+ <string name="work_profile_usage_access_warning" msgid="3477719910927319122">"এই এপৰ ব্যৱহাৰৰ এক্সেছ অফ কৰিলেও আপোনাৰ প্ৰশাসকক আপোনাৰ কৰ্মস্থানৰ প্ৰ\'ফাইলত থকা এপ্সমূহৰ ডেটা ব্যৱহাৰ নিৰীক্ষণ কৰাত বাধা নিদিয়ে"</string>
<string name="accessibility_lock_screen_progress" msgid="4597298121698665401">"<xliff:g id="COUNT_1">%2$d</xliff:g>ৰ ভিতৰত <xliff:g id="COUNT_0">%1$d</xliff:g> বৰ্ণ ব্যৱহাৰ কৰা হৈছে"</string>
<string name="draw_overlay" msgid="7902083260500573027">"অন্য এপসমূহত দেখুৱাওক"</string>
<string name="system_alert_window_settings" msgid="6458633954424862521">"অন্য এপসমূহত দেখুৱাওক"</string>
@@ -4775,7 +4778,7 @@
<string name="disabled_by_policy_title_sms" msgid="8951840850778406831">"এছএমএছ বাৰ্তা পঠিয়াব নোৱাৰি"</string>
<string name="disabled_by_policy_title_camera" msgid="6616508876399613773">"কেমেৰা ব্যৱহাৰ কৰিব নোৱাৰি"</string>
<string name="disabled_by_policy_title_screen_capture" msgid="6085100101044105811">"স্ক্ৰীনশ্বট ল\'ব নোৱাৰি"</string>
- <string name="disabled_by_policy_title_suspend_packages" msgid="4223983156635729793">"এই এপটো খুলিব নোৱাৰি"</string>
+ <string name="disabled_by_policy_title_suspend_packages" msgid="4223983156635729793">"এই এপ্টো খুলিব নোৱাৰি"</string>
<string name="disabled_by_policy_title_financed_device" msgid="2328740314082888228">"আপোনাৰ ক্ৰেডিট প্ৰদানকাৰীয়ে অৱৰোধ কৰিছে"</string>
<string name="disabled_by_policy_title_biometric_parental_consent" msgid="2463673997797134678">"অভিভাৱক আৱশ্যক"</string>
<string name="disabled_by_policy_content_biometric_parental_consent" msgid="7124116806784305206">"এইটো ছেটআপ কৰাটো আৰম্ভ কৰিবলৈ আপোনাৰ অভিভাৱকক ফ’নটো দিয়ক"</string>
@@ -4898,7 +4901,7 @@
<string name="data_saver_off" msgid="5891210864117269045">"অফ"</string>
<string name="data_saver_switch_title" msgid="7111538580123722959">"ডেটা সঞ্চয়কাৰী ব্যৱহাৰ কৰক"</string>
<string name="unrestricted_app_title" msgid="7117585996574329284">"ডেটাৰ অপৰিমিত ব্যৱহাৰ"</string>
- <string name="unrestricted_app_summary" msgid="282698963532000403">"ডেটা সঞ্চয় অনহৈ থাকোতে অপৰিমিত ডেটাৰ সুবিধা দিয়ক"</string>
+ <string name="unrestricted_app_summary" msgid="282698963532000403">"ডেটা সঞ্চয়কাৰী অন হৈ থাকোঁতে ডেটাৰ অপ্ৰতিবন্ধিত এক্সেছ দিয়ক"</string>
<string name="home_app" msgid="6056850504746902747">"হ\'ম এপ্"</string>
<string name="no_default_home" msgid="3588073707316139318">"কোনো ডিফ\'ল্ট হ\'ম নাই"</string>
<string name="lockpattern_settings_require_cred_before_startup" msgid="4098653943835666086">"সুৰক্ষিত ষ্টাৰ্ট-আপ"</string>
@@ -4969,9 +4972,9 @@
<string name="page_tab_title_summary" msgid="7188875610123234454">"আটাইবোৰ"</string>
<string name="page_tab_title_support" msgid="3235725053332345773">"উপদেশ আৰু সহায়"</string>
<string name="developer_smallest_width" msgid="632354817870920911">"সকলোতকৈ সৰু পুতল"</string>
- <string name="premium_sms_none" msgid="8737045049886416739">"ইনষ্টল কৰি ৰখা কোনো এপে প্ৰিমিয়াম এছএমএছ পঠাবলৈ অনুমতি বিচাৰি অনুৰোধ কৰা নাই"</string>
- <string name="premium_sms_warning" msgid="2192300872411073324">"প্ৰিমিয়াম এছএমএছৰ কাৰণে আপুনি খৰচ বহন কৰিবলগীয়া হ \'ব পাৰে যাৰ বাবে বাহকে আপোনালৈ পঠিওৱা বিলত দেয়ৰ পৰিমাণ বাঢ়িব পাৰে। আপুনি যদি কোনো এপক অনুমতি দিয়ে, তেন্তে আপুনি সেই এপটো ব্যৱহাৰ কৰি প্ৰিমিয়াম এছএমএছ পঠাব পাৰিব।"</string>
- <string name="premium_sms_access" msgid="5605970342699013212">"প্ৰিমিয়াম এছএমএছৰ ব্যৱহাৰ"</string>
+ <string name="premium_sms_none" msgid="8737045049886416739">"ইনষ্টল কৰি ৰখা কোনো এপে প্ৰিমিয়াম এছএমএছৰ এক্সেছ অনুৰোধ কৰা নাই"</string>
+ <string name="premium_sms_warning" msgid="2192300872411073324">"প্ৰিমিয়াম এছএমএছৰ কাৰণে আপুনি খৰচ বহন কৰিবলগীয়া হ \'ব পাৰে যাৰ বাবে বাহকে আপোনালৈ পঠিওৱা বিলত দেয়ৰ পৰিমাণ বাঢ়িব পাৰে। আপুনি যদি কোনো এপক অনুমতি দিয়ে, তেন্তে আপুনি সেই এপ্টো ব্যৱহাৰ কৰি প্ৰিমিয়াম এছএমএছ পঠাব পাৰিব।"</string>
+ <string name="premium_sms_access" msgid="5605970342699013212">"প্ৰিমিয়াম এছএমএছৰ এক্সেছ"</string>
<string name="bluetooth_disabled" msgid="835838280837359514">"অফ"</string>
<string name="bluetooth_connected_summary" msgid="8043167194934315712">"<xliff:g id="ID_1">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰক"</string>
<string name="bluetooth_connected_multiple_devices_summary" msgid="2294954614327771844">"একাধিক ডিভাইচৰ সৈতে সংযোজিত হৈ আছে"</string>
@@ -5127,7 +5130,7 @@
<string name="enterprise_privacy_header" msgid="4626225398848641603">"আপোনাৰ কৰ্মস্থানৰ ডেটালৈ আপোনাক এক্সেছ দিবলৈ, আপোনাৰ প্ৰতিষ্ঠানে আপোনাৰ ডিভাইচৰ ছেটিং সলনি কৰিব পাৰে আৰু তাত ছফ্টৱেৰ ইনষ্টল কৰিব পাৰে।\n\nঅধিক জানিবৰ বাবে আপোনাৰ প্ৰতিষ্ঠানৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।"</string>
<string name="enterprise_privacy_exposure_category" msgid="2507761423540037308">"আপোনাৰ প্ৰতিষ্ঠানে চাব পৰা তথ্যৰ প্ৰকাৰ"</string>
<string name="enterprise_privacy_exposure_changes_category" msgid="5459989751333816587">"আপোনাৰ প্ৰতিষ্ঠানৰ প্ৰশাসকৰ দ্বাৰা কৰা সাল-সলনিসমূহ"</string>
- <string name="enterprise_privacy_device_access_category" msgid="140157499478630004">"এই ডিভাইচটোত আপোনাৰ প্ৰৱেশ"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="140157499478630004">"এই ডিভাইচটোত আপোনাৰ এক্সেছ"</string>
<string name="enterprise_privacy_enterprise_data" msgid="3963070078195245028">"আপোনাৰ কৰ্মস্থানৰ একাউণ্টৰ লগত জড়িত ডেটা, যেনে ইমেইল আৰু কেলেণ্ডাৰ"</string>
<string name="enterprise_privacy_installed_packages" msgid="6707006112254572820">"আপোনাৰ ডিভাইচত থকা এপৰ তালিকা"</string>
<string name="enterprise_privacy_usage_stats" msgid="6328506963853465534">"প্ৰতিটো এপত খৰচ হোৱা সময় আৰু ডেটাৰ পৰিমাণ"</string>
@@ -5415,7 +5418,7 @@
<string name="load_networks_progress" msgid="4717874401621250401">"সন্ধান চলি আছে…"</string>
<string name="register_on_network" msgid="2169662800750709709">"<xliff:g id="NETWORK">%s</xliff:g>ত পঞ্জীয়ন কৰি থকা হৈছে…"</string>
<string name="not_allowed" msgid="5756935665192962915">"আপোনাৰ ছিম কাৰ্ডখনে এই নেটৱৰ্কটোৰ সৈতে সংযোগ কৰিবলৈ অনুমতি নিদিয়ে।"</string>
- <string name="connect_later" msgid="2330538069949281352">"এই মুহূৰ্তত এই নেটৱৰ্কটোৰ সৈতে সংযোগ কৰিব নোৱাৰি। পিছত আকৌ চেষ্টা কৰক।"</string>
+ <string name="connect_later" msgid="2330538069949281352">"এই মুহূৰ্তত এই নেটৱৰ্কটোৰ সৈতে সংযোগ কৰিব নোৱাৰি। পাছত আকৌ চেষ্টা কৰক।"</string>
<string name="registration_done" msgid="1750434215698850123">"নেটৱৰ্কত পঞ্জীয়ন কৰা হ’ল।"</string>
<string name="select_automatically" msgid="2419752566747259155">"স্বয়ংক্ৰিয়ভাৱে নেটৱৰ্ক বাছনি কৰক"</string>
<string name="carrier_settings_title" msgid="6959295328730560529">"বাহকৰ ছেটিং"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index a6d30fb..c25649f 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Fərqli üslub, divar kağızı və s. sınayın"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Ekran qoruyucu"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ekran qoruyucu"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Ekran qoruyucusundan istifadə edin"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Şarj ərzində və ya dok-stansiyada"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Şarj ərzində"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Zəng səsi"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Siqnal səsi"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Zəng və bildiriş səsləri"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Zəng səsi"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Bildiriş səsi"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Telefon zəng səsi"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Defolt bildiriş səsi"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index cff4690..e1ed834 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -1532,6 +1532,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Probajte drugačije stilove, pozadine i još toga"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Čuvar ekrana"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"čuvar ekrana"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Koristi čuvar ekrana"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Tokom punjenja ili na baznoj stanici"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Tokom punjenja"</string>
@@ -3840,6 +3842,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Jačina zvuka poziva"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Jačina zvuka alarma"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Jačina zvuka za zvono i obaveštenja"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Jačina zvuka zvona"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Jačina zvuka za obaveštenja"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Zvuk zvona telefona"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Podrazumevani zvuk obaveštenja"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index c7d87c7..af7c37f 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -1554,6 +1554,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Спрабуйце розныя стылі, шпалеры і іншае"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Экранная застаўка"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"застаўка"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Ужываць экранную застаўку"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Пакуль прылада зараджаецца ці падключана"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Падчас зарадкі"</string>
@@ -3885,6 +3887,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Гучнасць выкліку"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Гучнасць будзільніка"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Гучнасць званка і апавяшчэнняў"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Гучнасць званка"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Гучнасць апавяшчэнняў"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Рынгтон тэлефона"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Стандартны гук апавяшчэння"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 9f86347..5a96fc6 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -1518,6 +1518,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Изпробвайте различни стилове, тапети и др."</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Скрийнсейвър"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"скрийнсейвър"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Използване на скрийнсейвър"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"При зареждане или връзка с докинг станция"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"При зареждане"</string>
@@ -3803,6 +3805,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Сила на звука за обаждания"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Сила на звука на будилника"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Сила на звука за звън. и известия"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Сила на звука при звънене"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Сила на звука при известие"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Мелодия на телефона"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Стандартен звук за известяване"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 2c339f6..11e42f9 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"বিভিন্ন স্টাইল, ওয়ালপেপার ও অনেক কিছু ব্যবহার করুন"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"স্ক্রিন সেভার"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"স্ক্রিন সেভার"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"স্ক্রিন সেভার ব্যবহার করা"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"চার্জ অথবা ডক করার সময়"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"চার্জ করার সময়"</string>
@@ -3797,6 +3799,8 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"কলের ভলিউম"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"অ্যালার্মের ভলিউম"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"রিং ও বিজ্ঞপ্তির ভলিউম"</string>
+ <!-- no translation found for separate_ring_volume_option_title (2212910223857375951) -->
+ <skip />
<string name="notification_volume_option_title" msgid="4838818791683615978">"বিজ্ঞপ্তির ভলিউম"</string>
<string name="ringtone_title" msgid="3271453110387368088">"ফোন রিংটোন"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"ডিফল্ট বিজ্ঞপ্তির সাউন্ড"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 376c683..74f658b 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -1532,6 +1532,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Isprobajte različite stilove, pozadinske slike i još mnogo toga"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Čuvar ekrana"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"čuvar ekrana"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Koristi čuvara ekrana"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Tokom punjenja ili kada je na priključnoj stanici"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Tokom punjenja"</string>
@@ -3207,12 +3209,12 @@
</plurals>
<string name="emergency_tone_title" msgid="6673118505206685168">"Signal za hitne pozive"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Postavi ponašanje prilikom upućivanja poziva za hitne situacije"</string>
- <string name="privacy_settings_title" msgid="6437057228255974577">"Izrada sigurnosnih kopija"</string>
+ <string name="privacy_settings_title" msgid="6437057228255974577">"Izrada sigurnosne kopije"</string>
<string name="backup_summary_state_on" msgid="9018954639693085240">"Uključeno"</string>
<string name="backup_summary_state_off" msgid="5341339397224835909">"Isključeno"</string>
<string name="backup_section_title" msgid="6539706829848457794">"Sigurnosna kopija i vraćanje"</string>
<string name="personal_data_section_title" msgid="6368610168625722682">"Lični podaci"</string>
- <string name="backup_data_title" msgid="507663517227498525">"Izrada sigurnosnih kopija podataka"</string>
+ <string name="backup_data_title" msgid="507663517227498525">"Izrada sigurnosne kopije podataka"</string>
<string name="backup_data_summary" msgid="8054551085241427531">"Pravite sigurnosne kopije podataka aplikacija, lozinki za WiFi te drugih postavki na Google serverima"</string>
<string name="backup_configure_account_title" msgid="8574055186903658842">"Račun za sigurnosne kopije"</string>
<string name="backup_data_management_title" msgid="6596830198441939702">"Upravljajte računom za sigurnosne kopije"</string>
@@ -3840,6 +3842,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Jačina zvuka poziva"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Jačina zvuka alarma"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Jačina zvuka zvona i obavještenja"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Jačina zvuka zvona"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Jačina zvuka za obavještenja"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Melodija zvona telefona"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Zadani zvuk obavještenja"</string>
@@ -4833,7 +4836,7 @@
<string name="memory_summary" msgid="8221954450951651735">"Iskorišteno prosječno <xliff:g id="USED_MEMORY">%1$s</xliff:g> od ukupno <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="8473589474976307510">"Prijavljeni ste kao <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
<string name="payment_summary" msgid="5513009140568552693">"<xliff:g id="APP_NAME">%1$s</xliff:g> je zadana aplikacija"</string>
- <string name="backup_disabled" msgid="4503062265560959320">"Izrada sigurnosnih kopija je onemogućena"</string>
+ <string name="backup_disabled" msgid="4503062265560959320">"Izrada sigurnosne kopije je onemogućena"</string>
<string name="android_version_summary" msgid="7818952662015042768">"Ažurirano na Android <xliff:g id="VERSION">%1$s</xliff:g>"</string>
<string name="android_version_pending_update_summary" msgid="5404532347171027730">"Dostupno je ažuriranje"</string>
<string name="disabled_by_policy_title" msgid="3635622338687810583">"Blokirao je vaš IT administrator"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 0aa8a92..0110851 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Prova diferents estils, fons de pantalla i més"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Estalvi de pantalla"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"estalvi de pantalla"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Utilitza l\'estalvi de pantalla"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Mentre es carrega o està acoblat a la base"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Mentre es carrega"</string>
@@ -2823,7 +2825,7 @@
<string name="battery_tip_high_usage_title" msgid="9110720762506146697">"Major consum de bateria"</string>
<string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Mostra les aplicacions que més bateria utilitzen"</string>
<string name="battery_tip_limited_temporarily_title" msgid="5962767837251276527">"La càrrega s\'ha posat en pausa"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="5254922316684499816">"S\'està protegint la bateria per allargar-ne la durada"</string>
+ <string name="battery_tip_limited_temporarily_summary" msgid="5254922316684499816">"S\'està protegint la bateria per allargar-ne la vida útil"</string>
<!-- no translation found for battery_tip_limited_temporarily_extra_summary (8876637325622106400) -->
<skip />
<string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Més informació sobre la càrrega en pausa"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volum de trucada"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volum d\'alarma"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volum de sons i notificacions"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volum del to"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volum de notificació"</string>
<string name="ringtone_title" msgid="3271453110387368088">"So de trucada del telèfon"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"So de notificació predeterminat"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 0e6ae11..6d15cc5 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -1552,6 +1552,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Vyzkoušejte různé styly, tapety apod."</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Spořič obrazovky"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"spořič obrazovky"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Používat spořič obrazovky"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Při nabíjení nebo v doku"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Při nabíjení"</string>
@@ -3883,6 +3885,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Hlasitost hovoru"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Hlasitost budíků"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Hlasitost vyzvánění a oznámení"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Hlasitost vyzvánění"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Hlasitost oznámení"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Vyzvánění telefonu"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Výchozí zvuk oznámení"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 665fb57..06c7b2b 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -1040,8 +1040,8 @@
<string name="use_open_wifi_automatically_summary_scoring_disabled" msgid="2299284032301667622">"Vælg en udbyder af netværksvurdering for at bruge funktionen"</string>
<string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1780306481499369913">"Vælg en kompatibel udbyder af netværksvurdering for at bruge funktionen"</string>
<string name="wifi_install_credentials" msgid="5192903644606839972">"Installer certifikater"</string>
- <string name="wifi_scan_notify_text" msgid="7163137260385995873">"For at gøre lokationen mere nøjagtig kan apps og tjenester stadig til enhver tid søge efter Wi‑Fi-netværk, også selvom Wi-Fi er deaktiveret. Dette kan f.eks. bruges til at forbedre stedbaserede funktioner og tjenester. Du kan ændre dette i <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>indstillingerne for Wi-Fi-scanning<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
- <string name="wifi_scan_notify_text_scanning_off" msgid="7439201783168213149">"Du kan gøre lokationen mere nøjagtig ved at aktivere Wi-Fi-scanning i <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>indstillingerne for Wi‑Fi-scanning<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
+ <string name="wifi_scan_notify_text" msgid="7163137260385995873">"For at forbedre lokationsnøjagtigheden kan apps og tjenester stadig til enhver tid søge efter Wi‑Fi-netværk, også selvom Wi-Fi er deaktiveret. Dette kan f.eks. bruges til at forbedre stedbaserede funktioner og tjenester. Du kan ændre dette i <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>indstillingerne for Wi-Fi-scanning<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
+ <string name="wifi_scan_notify_text_scanning_off" msgid="7439201783168213149">"Du kan gøre forbedre lokationsnøjagtigheden ved at aktivere Wi-Fi-scanning i <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>indstillingerne for Wi‑Fi-scanning<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
<string name="wifi_scan_notify_remember_choice" msgid="8436897497968907701">"Vis ikke igen"</string>
<string name="wifi_setting_sleep_policy_title" msgid="6285374200292675649">"Hold Wi-Fi aktiveret i dvale"</string>
<string name="wifi_setting_on_during_sleep_title" msgid="8753852404141070878">"Wi-Fi aktiveret i dvaletilstand"</string>
@@ -1169,8 +1169,8 @@
<string name="wifi_wps_available_second_item" msgid="1717024103303480804">" (WPS er tilgængelig)"</string>
<string name="wifi_carrier_connect" msgid="4511538300946413213">"Wi-Fi-netværk for mobilselskab"</string>
<string name="wifi_carrier_content" msgid="2876499905644083615">"Opret forbindelse via <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_scan_always_turnon_message" msgid="2165909441512029921">"For bl.a. at kunne angive en mere nøjagtig lokation vil <xliff:g id="APP_NAME">%1$s</xliff:g> gerne aktivere netværkssøgning, selv når Wi-Fi er deaktiveret.\n\nVil du tillade dette for alle apps, der gerne vil søge?"</string>
- <string name="wifi_scan_always_turn_on_message_unknown" msgid="4903345360745717385">"For bl.a. at kunne angive en mere nøjagtig lokation vil en ukendt app gerne aktivere netværkssøgning, selv når Wi-Fi er deaktiveret.\n\nVil du tillade dette for alle apps, der gerne vil søge?"</string>
+ <string name="wifi_scan_always_turnon_message" msgid="2165909441512029921">"For bl.a. at forbedre lokationsnøjagtigheden vil <xliff:g id="APP_NAME">%1$s</xliff:g> gerne aktivere netværkssøgning, selv når Wi-Fi er deaktiveret.\n\nVil du tillade dette for alle apps, der gerne vil søge?"</string>
+ <string name="wifi_scan_always_turn_on_message_unknown" msgid="4903345360745717385">"For bl.a. at forbedre lokationsnøjagtigheden vil en ukendt app gerne aktivere netværkssøgning, selv når Wi-Fi er deaktiveret.\n\nVil du tillade dette for alle apps, der gerne vil søge?"</string>
<string name="wifi_scan_always_turnoff_message" msgid="93691286302680448">"Gå til Avanceret i prikmenuen for at slå denne funktion fra."</string>
<string name="wifi_scan_always_confirm_allow" msgid="4154200627800959777">"Tillad"</string>
<string name="wifi_scan_always_confirm_deny" msgid="6997087934558839256">"Afvis"</string>
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Prøv forskellige layout, baggrunde og meget mere"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Pauseskærm"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"pauseskærm"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Brug pauseskærm"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Når enheden oplades eller tilsluttes en dockingstation"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Under opladning"</string>
@@ -3029,7 +3031,7 @@
<string name="battery_saver_turn_on_summary" msgid="1433919417587171160">"Forlæng batteritiden"</string>
<string name="battery_saver_sticky_title_new" msgid="5942813274115684599">"Deaktiver, når enheden er opladet"</string>
<string name="battery_saver_sticky_description_new" product="default" msgid="492221102651829607">"Batterisparefunktionen deaktiveres, når din telefon er opladet til mere end <xliff:g id="NUMBER">^1</xliff:g> <xliff:g id="UNIT">%</xliff:g>"</string>
- <string name="battery_saver_sticky_description_new" product="tablet" msgid="4566426833434375284">"Batterisparefunktionen deaktiveres, når din tablet er opladet til mere end <xliff:g id="NUMBER">^1</xliff:g><xliff:g id="UNIT">%</xliff:g>"</string>
+ <string name="battery_saver_sticky_description_new" product="tablet" msgid="4566426833434375284">"Batterisparefunktionen deaktiveres, når din tablet er opladet til mere end <xliff:g id="NUMBER">^1</xliff:g> <xliff:g id="UNIT">%</xliff:g>"</string>
<string name="battery_saver_sticky_description_new" product="device" msgid="4128841327359445726">"Batterisparefunktionen deaktiveres, når din enhed er opladet til mere end <xliff:g id="NUMBER">^1</xliff:g><xliff:g id="UNIT">%</xliff:g>"</string>
<!-- no translation found for battery_saver_seekbar_title (3712266470054006641) -->
<skip />
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Lydstyrke for opkald"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Lydstyrke for alarmer"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Lydstyrke for ringetone og notifikationer"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Lydstyrke for ringetone"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Lydstyrke for notifikationer"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Ringetone ved opkald"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Standardlyd for notifikationer"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 15e79f1..0aae609 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -347,7 +347,7 @@
<string name="safety_center_summary" msgid="3554867379951053869">"App-Sicherheit, Gerätesperre, Berechtigungen"</string>
<string name="security_settings_face_preference_summary" msgid="6675126437396914838">"Gesicht hinzugefügt"</string>
<string name="security_settings_face_preference_summary_none" msgid="5952752252122581846">"Zum Einrichten der Gesichtsentsperrung tippen"</string>
- <string name="security_settings_face_preference_title" msgid="2126625155005348417">"Gesichtsentsperrung"</string>
+ <string name="security_settings_face_preference_title" msgid="2126625155005348417">"Entsperrung per Gesicht"</string>
<string name="security_settings_face_profile_preference_title" msgid="7519527436266375005">"Entsperrung per Gesichtserkennung für die Arbeit"</string>
<string name="security_settings_face_enroll_education_title" msgid="6448806884597691208">"So richtest du die Gesichtsentsperrung ein"</string>
<string name="security_settings_face_enroll_education_title_accessibility" msgid="3701874093226957891">"Entsperrung per Gesichtserkennung einrichten"</string>
@@ -445,7 +445,7 @@
<string name="security_settings_face_settings_require_confirmation" msgid="6603039421004198334">"Bestätigung immer erforderlich"</string>
<string name="security_settings_face_settings_require_confirmation_details" msgid="3498729789625461914">"Bei Gesichtsentsperrung in Apps immer Bestätigung anfordern"</string>
<string name="security_settings_face_settings_remove_face_model" msgid="812920481303980846">"Gesichtsmodell löschen"</string>
- <string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"Gesichtsentsperrung einrichten"</string>
+ <string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"Entsperrung per Gesicht einrichten"</string>
<string name="security_settings_face_settings_footer" msgid="625696606490947189">"Du kannst die Entsperrung per Gesichtserkennung zum Entsperren deines Smartphones oder zur Authentifizierung in Apps verwenden, beispielsweise um dich anzumelden oder um Käufe zu autorisieren.\n\nHinweis:\nEs kann immer nur jeweils ein Gesicht eingerichtet sein. Wenn du ein anderes hinzufügen möchtest, lösche zuerst das aktuelle.\n\nEs kann passieren, dass das Smartphone unbeabsichtigt entsperrt wird, wenn du auf das Gerät blickst.\n\nEine andere Person kann dein Smartphone entsperren, indem sie es vor dein Gesicht hält.\n\nDein Smartphone kann eventuell auch von jemandem entsperrt werden, der dir sehr ähnlich sieht, beispielsweise von einem eineiigen Zwilling."</string>
<string name="security_settings_face_settings_footer_attention_not_supported" msgid="2071065435536235622">"Du kannst die Entsperrung per Gesichtserkennung zum Entsperren deines Smartphones oder zur Authentifizierung in Apps verwenden, beispielsweise um dich anzumelden oder um Käufe zu autorisieren.\n\nHinweis:\nEs kann immer nur jeweils ein Gesicht eingerichtet sein. Wenn du ein anderes hinzufügen möchtest, lösche zuerst das aktuelle.\n\nEs kann passieren, dass das Smartphone unbeabsichtigt entsperrt wird, wenn du auf das Gerät blickst.\n\nEine andere Person kann dein Smartphone dadurch entsperren, dass sie es vor dein Gesicht hält, auch wenn deine Augen geschlossen sind.\n\nDein Smartphone kann eventuell auch von jemandem entsperrt werden, der dir sehr ähnlich sieht, beispielsweise von einem eineiigen Zwilling."</string>
<string name="security_settings_face_settings_remove_dialog_title" msgid="2899669764446232715">"Gesichtsmodell löschen?"</string>
@@ -1519,6 +1519,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Verschiedene Designs und Hintergründe ausprobieren"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Bildschirmschoner"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"Bildschirmschoner"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Bildschirmschoner verwenden"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Beim Aufladen oder wenn in Dockingstation"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Beim Aufladen"</string>
@@ -3027,7 +3029,7 @@
<string name="battery_saver" msgid="7737147344510595864">"Energiesparmodus"</string>
<string name="battery_saver_auto_title" msgid="6789753787070176144">"Automatisch aktivieren"</string>
<string name="battery_saver_auto_no_schedule" msgid="5123639867350138893">"Keine Aktivierung nach Zeitplan"</string>
- <string name="battery_saver_auto_routine" msgid="4656495097900848608">"Aktivierung gemäß meiner Gewohnheiten"</string>
+ <string name="battery_saver_auto_routine" msgid="4656495097900848608">"Aktivierung gemäß deiner Gewohnheiten"</string>
<string name="battery_saver_pref_auto_routine_summary" msgid="4739240095966241508">"Wird gemäß meiner Gewohnheiten aktiviert"</string>
<string name="battery_saver_auto_percentage" msgid="558533724806281980">"Aktivierung gemäß festgelegtem Akkustand"</string>
<string name="battery_saver_auto_routine_summary" msgid="3913145448299472628">"Der Energiesparmodus wird automatisch aktiviert, wenn der Akku wahrscheinlich nicht bis zum nächsten Aufladen hält (ermittelt anhand deines üblichen Aufladezeitpunkts)."</string>
@@ -3770,7 +3772,7 @@
<string name="keywords_system_update_settings" msgid="5769003488814164931">"upgrade, android"</string>
<string name="keywords_zen_mode_settings" msgid="7810203406522669584">"dnd, zeitplan, benachrichtigungen, blockieren, lautlos, vibrieren, schlaf, arbeit, fokus, ton, stumm, tag, wochentag, wochenende, wochenende, ereignis, bns"</string>
<string name="keywords_screen_timeout" msgid="8921857020437540572">"display, sperrzeit, timeout, lockscreen, bildschirm, zeitlimit, automatisch ausschalten"</string>
- <string name="keywords_storage_settings" msgid="6018856193950281898">"Speicher, Cache, Daten, löschen, entfernen, frei machen, Platz"</string>
+ <string name="keywords_storage_settings" msgid="6018856193950281898">"Speicher, Cache, Daten, löschen, entfernen, freigeben, Platz"</string>
<string name="keywords_bluetooth_settings" msgid="2588159530959868188">"verbunden, gerät, kopfhörer, headset, lautsprecher, drahtlos, koppeln, ohrhörer, musik, medien"</string>
<string name="keywords_wallpaper" msgid="7332890404629446192">"Hintergrund, Design, Raster, anpassen, personalisieren"</string>
<string name="keywords_styles" msgid="5291614313348476068">"Symbol, Akzentfarbe"</string>
@@ -3804,6 +3806,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Anruflautstärke"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Weckerlautstärke"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Lautstärke Klingeln/Benachrichtigungen"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Klingeltonlautstärke"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Benachrichtigungslautstärke"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Klingelton"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Standard-Benachrichtigungston"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index dc2bd4c..b7d5235 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Δοκιμάστε διαφορετικά στιλ, ταπετσαρίες και άλλα"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Προφύλαξη οθόνης"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"προφύλαξη οθόνης"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Χρήση προφύλαξης οθόνης"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Στη φόρτιση ή στη βάση"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Στη φόρτιση"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Ένταση ήχου κλήσεων"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Ένταση ήχου ξυπνητηριού"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Ένταση κουδουν. και ειδοποιήσ."</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Ένταση κουδουνίσματος"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Ένταση ήχου ειδοποίησης"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Ήχος κλήσης τηλεφώνου"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Προεπιλεγμ. ήχος ειδοποίησης"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index f61a382..2bd4b57 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Try different styles, wallpapers and more"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Screen saver"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"screensaver"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Use screen saver"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"While charging or docked"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"While charging"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Call volume"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Alarm volume"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Ring and notification volume"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Ring volume"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Notification volume"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Phone ringtone"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Default notification sound"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index e924676..8166a1a 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Try different styles, wallpapers and more"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Screen saver"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"screensaver"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Use screen saver"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"While charging or docked"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"While charging"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Call volume"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Alarm volume"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Ring and notification volume"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Ring volume"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Notification volume"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Phone ringtone"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Default notification sound"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 4406c8d..32a30f8 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Try different styles, wallpapers and more"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Screen saver"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"screensaver"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Use screen saver"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"While charging or docked"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"While charging"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Call volume"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Alarm volume"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Ring and notification volume"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Ring volume"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Notification volume"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Phone ringtone"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Default notification sound"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 8b8e22c..ce500ba 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Try different styles, wallpapers and more"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Screen saver"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"screensaver"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Use screen saver"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"While charging or docked"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"While charging"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Call volume"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Alarm volume"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Ring and notification volume"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Ring volume"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Notification volume"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Phone ringtone"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Default notification sound"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index c2a05de..d6743d1 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -1512,6 +1512,7 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Try different styles, wallpapers, and more"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Screen saver"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"screensaver"</string>
+ <string name="screensaver_settings_when_to_dream_bedtime" msgid="3279310576803094771">"Unavailable because bedtime mode is on"</string>
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Use screen saver"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"While charging or docked"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"While charging"</string>
@@ -3797,6 +3798,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Call volume"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Alarm volume"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Ring & notification volume"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Ring volume"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Notification volume"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Phone ringtone"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Default notification sound"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 593e60f..15879fb 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -942,7 +942,7 @@
<string name="remove_association_button" msgid="5004208145998061135">"Quitar asociación"</string>
<string name="bluetooth_companion_app_remove_association_dialog_title" msgid="1344518601377991897">"¿Quieres desconectar la app?"</string>
<string name="bluetooth_unpair_dialog_body" product="default" msgid="4730377171981539265">"El teléfono ya no estará sincronizado con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
- <string name="bluetooth_unpair_dialog_body" product="tablet" msgid="3428463407231980054">"La tablet ya no estará sincronizada con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="bluetooth_unpair_dialog_body" product="tablet" msgid="3428463407231980054">"Tu tablet ya no estará vinculada con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="bluetooth_unpair_dialog_body" product="device" msgid="5117397433721336918">"El dispositivo ya no estará sincronizado con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="bluetooth_companion_app_body" msgid="8442643629075687761">"La app de <xliff:g id="APP_NAME">%1$s</xliff:g> ya no se conectará con <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="bluetooth_unpair_dialog_forget_confirm_button" msgid="9184489424930549015">"Olvidar este dispositivo"</string>
@@ -1514,6 +1514,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Prueba diferentes estilos, fondos de pantalla y mucho más"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Protector de pantalla"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"protector de pantalla"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Usar protector de pantalla"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Mientras se carga o está conectado"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Mientras se carga"</string>
@@ -1608,7 +1610,7 @@
<string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
<string name="status_prl_version" msgid="9002131357502714281">"Versión de PRL"</string>
<string name="meid_multi_sim" msgid="7645394486193991388">"MEID (ranura de SIM %1$d)"</string>
- <string name="scanning_status_text_on" msgid="3846571210578042940">"Sí"</string>
+ <string name="scanning_status_text_on" msgid="3846571210578042940">"Activado"</string>
<string name="scanning_status_text_off" msgid="4002352668313705132">"Desactivado"</string>
<string name="scanning_status_text_wifi_on_ble_on" msgid="7644609329607744714">"Tanto la búsqueda de dispositivos Bluetooth como la búsqueda de redes Wi-Fi están activadas"</string>
<string name="scanning_status_text_wifi_on_ble_off" msgid="7215007787287418186">"La búsqueda de Wi-Fi está activada; la búsqueda de dispositivos Bluetooth está desactivada"</string>
@@ -1924,7 +1926,7 @@
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"¿Quieres cambiar la aplicación de SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"¿Quieres usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como la aplicación de SMS?"</string>
<string name="sms_change_default_no_previous_dialog_text" msgid="6215622785087181275">"¿Quieres usar <xliff:g id="NEW_APP">%s</xliff:g> como la aplicación de SMS?"</string>
- <string name="network_scorer_picker_title" msgid="2022922801936206195">"Proveedor de calificación de red"</string>
+ <string name="network_scorer_picker_title" msgid="2022922801936206195">"Proveedor de calificación de redes"</string>
<string name="network_scorer_picker_none_preference" msgid="8894034333043177807">"Ninguno"</string>
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"¿Cambiar de asistente de Wi-Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"¿Deseas usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para administrar tus conexiones de red?"</string>
@@ -3799,6 +3801,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volumen de llamada"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volumen de alarma"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volumen de tono y notificaciones"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volumen de tono"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volumen de notificación"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Tono de llamada"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Sonido de notificación predeterminado"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index c46d9a7..8e48813 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -899,8 +899,8 @@
<string name="bluetooth_pin_values_hint" msgid="2753202519050044670">"Normalmente: 0000 o 1234"</string>
<string name="bluetooth_pin_values_hint_16_digits" msgid="5603928271430883558">"Debe tener 16 dígitos"</string>
<string name="bluetooth_enter_pin_other_device" msgid="6737778699899780717">"Es posible que tengas que introducir este PIN en el otro dispositivo."</string>
- <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Es posible que tengas que introducir la clave de acceso en el otro dispositivo."</string>
- <string name="bluetooth_confirm_passkey_msg" msgid="327192310468680072">"Para emparejar con:<br><b><xliff:g id="DEVICE_NAME">%1$s</xliff:g></b><br><br> Comprueba que se muestre la clave:<br><b><xliff:g id="PASSKEY">%2$s</xliff:g></b>"</string>
+ <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Es posible que tengas que introducir la llave de acceso en el otro dispositivo."</string>
+ <string name="bluetooth_confirm_passkey_msg" msgid="327192310468680072">"Para emparejar con:<br><b><xliff:g id="DEVICE_NAME">%1$s</xliff:g></b><br><br> Comprueba que se muestre la llave de acceso:<br><b><xliff:g id="PASSKEY">%2$s</xliff:g></b>"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirma para emparejar con el conjunto coordinado"</string>
<string name="bluetooth_incoming_pairing_msg" msgid="1068123527866596779">"De:<br><b><xliff:g id="DEVICE_NAME">%1$s</xliff:g></b><br><br>¿Emparejar con este dispositivo?"</string>
<string name="bluetooth_display_passkey_pin_msg" msgid="8672803845151786521">"Para emparejar con:<xliff:g id="BOLD1_0"><br><b></xliff:g><xliff:g id="DEVICE_NAME">%1$s</xliff:g><xliff:g id="END_BOLD1"></b><br><br></xliff:g>Escribe<xliff:g id="BOLD2_1"><br><b></xliff:g><xliff:g id="PASSKEY">%2$s</xliff:g><xliff:g id="END_BOLD2"></b></xliff:g> en el dispositivo y, a continuación, pulsa la tecla Intro o de retorno."</string>
@@ -1145,7 +1145,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Compartiendo Wi‑Fi con este dispositivo…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Conectando…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Comparte el punto de acceso"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Demuestra que eres tú"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifica que eres tú"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Contraseña de la red Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Contraseña del punto de acceso: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Conexión automática"</string>
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Prueba diferentes estilos, fondos de pantalla y mucho más"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Salvapantallas"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"salvapantallas"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Usar salvapantallas"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Durante la carga o en una base"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Durante la carga"</string>
@@ -1726,7 +1728,7 @@
<string name="storage_wizard_format_confirm_public_body" msgid="6219883780307218266">"Debes formatear tu <xliff:g id="NAME_0">^1</xliff:g>. \n\n"<b>"Al formatear tu <xliff:g id="NAME_1">^1</xliff:g>, se borrarán todos los datos que tengas almacenados."</b>" Te recomendamos que hagas una copia de seguridad de los datos para no perderlos."</string>
<string name="storage_wizard_format_confirm_next" msgid="4412063054982084056">"Borrar y formatear"</string>
<string name="storage_wizard_format_progress_title" msgid="9170393018855949774">"Formateando <xliff:g id="NAME">^1</xliff:g>…"</string>
- <string name="storage_wizard_format_progress_body" msgid="1044024044955390417">"No extraigas tu <xliff:g id="NAME">^1</xliff:g> mientras se esté formateando."</string>
+ <string name="storage_wizard_format_progress_body" msgid="1044024044955390417">"No extraigas tu <xliff:g id="NAME">^1</xliff:g> mientras se está formateando."</string>
<string name="storage_wizard_migrate_title" msgid="3013711737005104623">"Mover a nuevo almacenamiento"</string>
<string name="storage_wizard_migrate_body" msgid="1630853797296198275">"Puedes mover tus fotos, tus archivos y algunas aplicaciones al nuevo dispositivo de almacenamiento (<xliff:g id="NAME">^1</xliff:g>). \n\nLa operación puede tardar aproximadamente <xliff:g id="TIME">^2</xliff:g> y permitirá liberar <xliff:g id="SIZE">^3</xliff:g> de espacio de almacenamiento interno. Algunas aplicaciones no funcionarán hasta que finalice el proceso."</string>
<string name="storage_wizard_migrate_now" msgid="175023718337037181">"Mover ahora"</string>
@@ -3029,7 +3031,7 @@
<string name="battery_saver_turn_on_summary" msgid="1433919417587171160">"Amplía la duración de la batería"</string>
<string name="battery_saver_sticky_title_new" msgid="5942813274115684599">"Desactivar cuando la batería esté cargada"</string>
<string name="battery_saver_sticky_description_new" product="default" msgid="492221102651829607">"Ahorro de batería se desactiva cuando tu teléfono tiene más del <xliff:g id="NUMBER">^1</xliff:g> <xliff:g id="UNIT">%</xliff:g> de batería"</string>
- <string name="battery_saver_sticky_description_new" product="tablet" msgid="4566426833434375284">"Ahorro de batería se desactiva cuando tu tablet tiene más del <xliff:g id="NUMBER">^1</xliff:g><xliff:g id="UNIT">%</xliff:g> de batería"</string>
+ <string name="battery_saver_sticky_description_new" product="tablet" msgid="4566426833434375284">"Ahorro de batería se desactiva cuando tu tablet tiene más del <xliff:g id="NUMBER">^1</xliff:g> <xliff:g id="UNIT">%</xliff:g> de batería"</string>
<string name="battery_saver_sticky_description_new" product="device" msgid="4128841327359445726">"Ahorro de batería se desactiva cuando tu dispositivo tiene más del <xliff:g id="NUMBER">^1</xliff:g><xliff:g id="UNIT">%</xliff:g> de batería"</string>
<!-- no translation found for battery_saver_seekbar_title (3712266470054006641) -->
<skip />
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volumen de llamadas"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volumen de alarmas"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volumen de tonos y notificaciones"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volumen del tono"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volumen de notificaciones"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Tono de llamada del teléfono"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Sonido de notificación predeterminado"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 368bfe8..a21bca0 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -1518,6 +1518,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Proovige eri stiile, taustapilte ja muud"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Ekraanisäästja"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ekraanisäästja"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Kasuta ekraanisäästjat"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Laadimise ajal või dokis"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Laadimise ajal"</string>
@@ -3803,6 +3805,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Kõne helitugevus"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Äratuse helitugevus"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Helina ja märguannete helitugevus"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Helina helitugevus"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Märguande helitugevus"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Telefoni helin"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Märguande vaikeheli"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index b95c419..796b0d4 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -1096,7 +1096,7 @@
<string name="passpoint_content" msgid="5219226173518418335">"<xliff:g id="NAME">%1$s</xliff:g> kredentzialak"</string>
<string name="wifi_eap_method" msgid="3776009521349381742">"EAP metodoa"</string>
<string name="please_select_phase2" msgid="577633852089847142">"2. faseko autentifikazioa"</string>
- <string name="wifi_eap_ca_cert" msgid="8033404008276298886">"CA ziurtagiria"</string>
+ <string name="wifi_eap_ca_cert" msgid="8033404008276298886">"Autoritate ziurtagiri-emaile batek jaulkitako ziurtagiria"</string>
<string name="wifi_eap_ocsp" msgid="8713933962516871238">"Interneteko ziurtagirien egoera"</string>
<string name="wifi_eap_domain" msgid="8304301470752333203">"Domeinua"</string>
<string name="wifi_eap_user_cert" msgid="3569182430929173220">"Erabiltzaile-ziurtagiria"</string>
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Probatu askotariko estiloak, horma-paperak, etab."</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Pantaila-babeslea"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"pantailarako babeslea"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Erabili pantaila-babeslea"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Kargatzen ari denean edo oinarrian dagoenean"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Kargatzen ari denean"</string>
@@ -1966,7 +1968,7 @@
<string name="location_time_zone_detection_not_supported" msgid="3251181656388306501">"Ez da onartzen kokapeneko ordu-zona hautemateko aukera erabiltzea"</string>
<string name="location_time_zone_detection_not_allowed" msgid="8264525161514617051">"Ez da onartzen aldaketarik egitea kokapeneko ordu-zona hautemateko aukeretan"</string>
<string name="location_network_based" msgid="5247042890080021887">"Wi‑Fi eta sare mugikor bidezko kokapena"</string>
- <string name="location_neighborhood_level" msgid="3668890550358558267">"Utzi aplikazioei zure kokapena bizkorrago zehazteko Google-ren kokapen-zerbitzua erabiltzen. Kokapen-datu anonimoak bildu eta Google-ra bidaliko dira."</string>
+ <string name="location_neighborhood_level" msgid="3668890550358558267">"Kokapena bizkorrago estimatzeko, utzi aplikazioei Google-ren kokapen-zerbitzua erabiltzen. Kokapen-datu anonimoak bildu eta Google-ra bidaliko dira."</string>
<string name="location_neighborhood_level_wifi" msgid="6227393490651891977">"Kokapena Wi-Fi bidez zehaztuta"</string>
<string name="location_gps" msgid="8783616672454701134">"GPS sateliteak"</string>
<string name="location_street_level" product="tablet" msgid="865953107414742784">"Utzi aplikazioei tabletan GPSa erabiltzen zure kokapena zehatz-mehatz zehazteko."</string>
@@ -2823,7 +2825,7 @@
<string name="battery_tip_high_usage_title" msgid="9110720762506146697">"Bateria-erabilera handiena"</string>
<string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Ikusi bateria gehien erabiltzen duten aplikazioak"</string>
<string name="battery_tip_limited_temporarily_title" msgid="5962767837251276527">"Kargatze-prozesua etenda dago"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="5254922316684499816">"Bateria babestu da gehiago iraun dezan"</string>
+ <string name="battery_tip_limited_temporarily_summary" msgid="5254922316684499816">"Bateria babestu da haren balio-bizitza luzatzeko"</string>
<!-- no translation found for battery_tip_limited_temporarily_extra_summary (8876637325622106400) -->
<skip />
<string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Lortu kargatzea pausatzeari buruzko informazio gehiago"</string>
@@ -3005,7 +3007,7 @@
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Erabilerarik ez azken 24 orduetan"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
<string name="battery_usage_other_users" msgid="9002643295562500693">"Beste erabiltzaileak"</string>
- <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Gailuaren erabileran oinarritzen da gelditzen den bateriaren aurreikuspena"</string>
+ <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Gailuaren erabileran oinarritzen da gelditzen den bateriaren estimazioa"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Geratzen den denbora, gutxi gorabehera"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"guztiz kargatu arte"</string>
<string name="estimated_time_description" msgid="211058785418596009">"Estimazioak gorabeherak izan ditzake erabileraren arabera"</string>
@@ -3142,11 +3144,11 @@
<string name="credentials_erased" msgid="9121052044566053345">"Kredentz. biltegia ezabatu da."</string>
<string name="credentials_not_erased" msgid="3611058412683184031">"Ezin izan da kredentzialen biltegia ezabatu."</string>
<string name="usage_access_title" msgid="1580006124578134850">"Erabilera-baimena dutenak"</string>
- <string name="ca_certificate" msgid="3076484307693855611">"CA ziurtagiria"</string>
+ <string name="ca_certificate" msgid="3076484307693855611">"Autoritate ziurtagiri-emaile baten ziurtagiria"</string>
<string name="user_certificate" msgid="6897024598058566466">"VPN eta aplikazioetarako erabiltzaile-ziurtagiria"</string>
<string name="wifi_certificate" msgid="8461905432409380387">"Wifi-ziurtagiria"</string>
<string name="ca_certificate_warning_title" msgid="7951148441028692619">"Datuak ez dira pribatuak izango"</string>
- <string name="ca_certificate_warning_description" msgid="8409850109551028774">"Webguneek, aplikazioek eta VPNek erabiltzen dituzte CA ziurtagiriak enkriptatze-helburuetarako. Instalatu erakunde fidagarrien CA ziurtagiriak soilik. \n\n CA ziurtagiri bat instalatzen baduzu, ziurtagiriaren jabea zure datuak atzi litzake; besteak beste, bisitatzen dituzun webgune eta erabiltzen dituzun aplikazioetako pasahitzak edo kreditu-txartelen xehetasunak, baita datuak enkriptatuta badaude ere."</string>
+ <string name="ca_certificate_warning_description" msgid="8409850109551028774">"Webguneek, aplikazioek eta VPNek enkriptatze-helburuetarako erabiltzen dituzte autoritate ziurtagiri-emaileek jaulkitako ziurtagiriak. Instalatu erakunde fidagarriei dagozkien autoritate ziurtagiri-emaileek jaulkitako ziurtagiriak soilik. \n\n Autoritate ziurtagiri-emaile batek jaulkitako ziurtagiri bat instalatzen baduzu, baliteke ziurtagiriaren jabea zure datuak atzitzeko gai izatea; besteak beste, baliteke pasahitzak edo kreditu-txartelen xehetasunak atzitzea bisitatzen dituzun webguneen eta erabiltzen dituzun aplikazioen bidez, baita datuak enkriptatuta badaude ere."</string>
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Ez instalatu"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Instalatu halere"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Ziurtagiria ez dago instalatuta"</string>
@@ -3366,7 +3368,7 @@
<string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec identifikatzailea"</string>
<string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec aurrez partekatutako gakoa"</string>
<string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec erabiltzaile-ziurtagiria"</string>
- <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA ziurtagiria"</string>
+ <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Autoritate ziurtagiri-emaile batek jaulkitako IPSec ziurtagiria"</string>
<string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec zerbitzari-ziurtagiria"</string>
<string name="vpn_show_options" msgid="6105437733943318667">"Erakutsi aukera aurreratuak"</string>
<string name="vpn_search_domains" msgid="1973799969613962440">"DNS bilaketa-domeinuak"</string>
@@ -3430,13 +3432,13 @@
<string name="trusted_credentials_enable_label" msgid="5551204878588237991">"Gaitu"</string>
<string name="trusted_credentials_remove_label" msgid="8296330919329489422">"Desinstalatu"</string>
<string name="trusted_credentials_trust_label" msgid="4841047312274452474">"Fidagarria da"</string>
- <string name="trusted_credentials_enable_confirmation" msgid="6686528499458144754">"Sistemaren CA ziurtagiria gaitu?"</string>
- <string name="trusted_credentials_disable_confirmation" msgid="5131642563381656676">"Sistemaren CA ziurtagiria desgaitu?"</string>
- <string name="trusted_credentials_remove_confirmation" msgid="3420345440353248381">"Erabiltzailearen CA ziurtagiria betiko kendu?"</string>
+ <string name="trusted_credentials_enable_confirmation" msgid="6686528499458144754">"Autoritate ziurtagiri-emaile batek jaulkitako sistema-ziurtagiria gaitu?"</string>
+ <string name="trusted_credentials_disable_confirmation" msgid="5131642563381656676">"Autoritate ziurtagiri-emaile batek jaulkitako sistema-ziurtagiria desgaitu?"</string>
+ <string name="trusted_credentials_remove_confirmation" msgid="3420345440353248381">"Autoritate ziurtagiri-emaile batek jaulkitako erabiltzaile-ziurtagiria betiko kendu?"</string>
<string name="credential_contains" msgid="407972262032275476">"Sarreraren edukia:"</string>
<string name="one_userkey" msgid="4417212932385103517">"erabiltzaile-gako bat"</string>
<string name="one_usercrt" msgid="1865069301105101370">"erabiltzaile-ziurtagiri bat"</string>
- <string name="one_cacrt" msgid="7467796501404158399">"CA ziurtagiri bat"</string>
+ <string name="one_cacrt" msgid="7467796501404158399">"autoritate ziurtagiri-emaile batek jaulkitako ziurtagiri bat"</string>
<string name="n_cacrts" msgid="5886462550192731627">"%d CA ziurtagiri"</string>
<string name="user_credential_title" msgid="4686178602575567298">"Kredentzialen xehetasunak"</string>
<string name="user_credential_removed" msgid="4087675887725394743">"Kendu da kredentziala: <xliff:g id="CREDENTIAL_NAME">%s</xliff:g>"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Deien bolumena"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Alarmaren bolumena"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Tonu eta jakinarazpenen bolumena"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Tonuaren bolumena"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Jakinarazpenen bolumena"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Telefonoaren tonua"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Jakinarazpenen soinu lehenetsia"</string>
@@ -5159,8 +5162,8 @@
<string name="enterprise_privacy_ca_certs_personal" msgid="1516422660828485795">"Profil pertsonaleko kredentzial fidagarriak"</string>
<string name="enterprise_privacy_ca_certs_work" msgid="4318941788592655561">"Laneko profileko kredentzial fidagarriak"</string>
<plurals name="enterprise_privacy_number_ca_certs" formatted="false" msgid="6459725295322004179">
- <item quantity="other">Gutxienez <xliff:g id="COUNT_1">%d</xliff:g> CA ziurtagiri</item>
- <item quantity="one">Gutxienez <xliff:g id="COUNT_0">%d</xliff:g> CA ziurtagiri</item>
+ <item quantity="other">Autoritate ziurtagiri-emaile batek jaulkitako <xliff:g id="COUNT_1">%d</xliff:g> ziurtagiri gutxienez</item>
+ <item quantity="one">Autoritate ziurtagiri-emaile batek jaulkitako <xliff:g id="COUNT_0">%d</xliff:g> ziurtagiri gutxienez</item>
</plurals>
<string name="enterprise_privacy_lock_device" msgid="464054894363899866">"Administratzaileak gailua blokea eta pasahitza berrezar dezake"</string>
<string name="enterprise_privacy_wipe_device" msgid="869589182352244591">"Administratzaileak gailuko datu guztiak ezaba ditzake"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 138c118..ac7a243 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"انواع سبکها، کاغذدیواریها، و موارد دیگر را امتحان کنید"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"محافظ صفحه"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"محافظ صفحهنمایش"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"استفاده از محافظ صفحه"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"هنگام شارژ یا اتصال به پایه"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"هنگام شارژ شدن"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"میزان صدای تماس"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"میزان صدای زنگ ساعت"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"میزان صدای زنگ و اعلان"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"میزان صدای زنگ"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"میزان صدای اعلان"</string>
<string name="ringtone_title" msgid="3271453110387368088">"آهنگ زنگ تلفن"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"صدای اعلان پیشفرض"</string>
@@ -5053,7 +5056,7 @@
<string name="button_navigation_settings_activity_title" msgid="7335636045504461813">"پیمایش دکمهای"</string>
<string name="keywords_gesture_navigation_settings" msgid="667561222717238931">"پیمایش اشارهای، حساسیت برگشت، اشاره برگشت"</string>
<string name="keywords_button_navigation_settings" msgid="7888812253110553920">"پیمایش، دکمه صفحه اصلی"</string>
- <string name="ambient_display_title" product="default" msgid="5885136049497127396">"دو ضربه برای چک کردن تلفن"</string>
+ <string name="ambient_display_title" product="default" msgid="5885136049497127396">"بررسی تلفن با دو ضربه"</string>
<string name="ambient_display_title" product="tablet" msgid="205744440641466921">"برای بررسی رایانه لوحی، دو ضربه سریع بزنید"</string>
<string name="ambient_display_title" product="device" msgid="4164103424628824786">"برای بررسی دستگاه، دو ضربه سریع بزنید"</string>
<string name="one_handed_title" msgid="2584414010282746195">"حالت یکدستی"</string>
@@ -5076,7 +5079,7 @@
<string name="ambient_display_pickup_summary" product="default" msgid="1087355013674109242">"برای بررسی زمان، اعلانها و اطلاعات دیگر، تلفنتان را بردارید."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="2589556997034530529">"برای بررسی زمان، اعلانها و اطلاعات دیگر، رایانه لوحیتان را انتخاب کنید"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="1916011370011115627">"برای بررسی زمان، اعلانها و اطلاعات دیگر، دستگاهتان را انتخاب کنید"</string>
- <string name="ambient_display_tap_screen_title" product="default" msgid="2811332293938467179">"ضربه برای چک کردن تلفن"</string>
+ <string name="ambient_display_tap_screen_title" product="default" msgid="2811332293938467179">"بررسی تلفن با ضربه زدن"</string>
<string name="ambient_display_tap_screen_title" product="tablet" msgid="6461531447715370632">"ضربه زدن برای بررسی رایانه لوحی"</string>
<string name="ambient_display_tap_screen_title" product="device" msgid="4423803387551153840">"ضربه زدن برای بررسی دستگاه"</string>
<string name="ambient_display_tap_screen_summary" msgid="4480489179996521405">"برای بررسی زمان، اعلانها و اطلاعات دیگر، روی صفحهنمایش ضربه بزنید."</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 806d384..d657b5e 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Kokeile eri tyylejä, taustakuvia ja muuta"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Näytönsäästäjä"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"näytönsäästäjä"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Käytä näytönsäästäjää"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Latauksen aikana tai telakoituna"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Latauksen aikana"</string>
@@ -1988,7 +1990,7 @@
<string name="contributors_title" msgid="7965640251547037965">"Avustajat"</string>
<string name="manual" msgid="3651593989906084868">"Käyttöopas"</string>
<string name="regulatory_labels" msgid="5960251403367154270">"Viranomaismerkinnät"</string>
- <string name="safety_and_regulatory_info" msgid="8285048080439298528">"Turvallisuus- ja lakiopas"</string>
+ <string name="safety_and_regulatory_info" msgid="8285048080439298528">"Turvallisuus- ja säädöstenmukaisuusopas"</string>
<string name="copyright_title" msgid="83245306827757857">"Tekijänoikeudet"</string>
<string name="license_title" msgid="8745742085916617540">"Käyttölupa"</string>
<string name="module_license_title" msgid="8705484239826702828">"Google Play ‑järjestelmäpäivitysten lisenssit"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Puhelun äänenvoimakkuus"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Hälytyksen voimakkuus"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Soittoäänen/ilmoitusten voimakkuus"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Soittoäänen voimakkuus"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Ilmoituksen äänenvoimakkuus"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Puhelimen soittoääni"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Ilmoituksen oletusääni"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 408ffc4..0dcf1ca 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Essayez différents styles, fonds d\'écran, etc."</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Écran de veille"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"écran de veille"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Utiliser l\'écran de veille"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Pendant la charge ou sur la station d\'accueil"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Pendant la charge"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volume des appels"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volume de l\'alarme"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volume sonnerie et notifications"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volume de la sonnerie"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volume des notifications"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Sonnerie du téléphone"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Son de notification par défaut"</string>
@@ -5611,7 +5614,7 @@
<string name="error_capturing_system_heap_dump_message" msgid="2352983250048200052">"Impossible de capturer l\'empreinte de mémoire du système"</string>
<string name="automatic_system_heap_dump_title" msgid="4093306504711109479">"Capturer automatiquement les empreintes de mémoire système"</string>
<string name="automatic_system_heap_dump_summary" msgid="4060846186592886986">"Capturer automatiquement une empreinte de mémoire pour le système Android lorsqu\'il utilise trop de mémoire"</string>
- <string name="wifi_disconnect_button_text" msgid="5698154296678571998">"Se déconnecter"</string>
+ <string name="wifi_disconnect_button_text" msgid="5698154296678571998">"Déconnecter"</string>
<string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Appels d\'urgence"</string>
<string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Votre fournisseur de services ne prend pas en charge les appels Wi‑Fi.\nL\'appareil basculera automatiquement vers le réseau cellulaire pour faire un appel urgence.\nLes appels d\'urgence sont uniquement possibles dans les régions couvertes par un réseau cellulaire."</string>
<string name="wifi_calling_summary" msgid="8566648389959032967">"Utiliser le Wi‑Fi pour les appels afin d\'améliorer la qualité"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 9868256..ae3ff47 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -1514,6 +1514,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Essayez différents styles, fonds d\'écran, etc."</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Économiseur d\'écran"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"économiseur d\'écran"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Utiliser l\'économiseur d\'écran"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Lorsque l\'appareil est en charge ou connecté à une station d\'accueil"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Lorsque l\'appareil est en charge"</string>
@@ -3029,7 +3031,7 @@
<string name="battery_saver_auto_percentage_summary" msgid="6190884450723824287">"S\'active à <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_saver_schedule_settings_title" msgid="3688019979950082237">"Définir une programmation"</string>
<string name="battery_saver_turn_on_summary" msgid="1433919417587171160">"Prolonger l\'autonomie de la batterie"</string>
- <string name="battery_saver_sticky_title_new" msgid="5942813274115684599">"Désactiver quand chargé"</string>
+ <string name="battery_saver_sticky_title_new" msgid="5942813274115684599">"Désactiver quand la batterie est chargée"</string>
<string name="battery_saver_sticky_description_new" product="default" msgid="492221102651829607">"Désactiver l\'économiseur de batterie quand le téléphone est chargé à plus de <xliff:g id="NUMBER">^1</xliff:g> <xliff:g id="UNIT">%</xliff:g>"</string>
<string name="battery_saver_sticky_description_new" product="tablet" msgid="4566426833434375284">"Désactiver l\'économiseur de batterie quand la tablette est chargée à plus de <xliff:g id="NUMBER">^1</xliff:g> <xliff:g id="UNIT">%</xliff:g>"</string>
<string name="battery_saver_sticky_description_new" product="device" msgid="4128841327359445726">"Désactiver l\'économiseur de batterie quand l\'appareil est chargé à plus de <xliff:g id="NUMBER">^1</xliff:g> <xliff:g id="UNIT">%</xliff:g>"</string>
@@ -3414,7 +3416,7 @@
<string name="vpn_no_vpns_added" msgid="7387080769821533728">"Aucun VPN ajouté"</string>
<string name="vpn_always_on_summary" msgid="2171252372476858166">"Connexion permanente au VPN"</string>
<string name="vpn_always_on_summary_not_supported" msgid="9084872130449368437">"Non compatible avec cette application"</string>
- <string name="vpn_always_on_summary_active" msgid="175877594406330387">"Toujours activée"</string>
+ <string name="vpn_always_on_summary_active" msgid="175877594406330387">"Toujours activé"</string>
<string name="vpn_insecure_summary" msgid="4450920215186742859">"Non sécurisée"</string>
<string name="vpn_require_connection" msgid="1027347404470060998">"Bloquer les connexions sans VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Exiger une connexion VPN ?"</string>
@@ -3799,6 +3801,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volume des appels"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volume des alarmes"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volume des sonneries/notifications"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volume de la sonnerie"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volume des notifications"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Sonnerie du téléphone"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Son par défaut des notifications"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index dff207c..3740d25 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Proba diferentes estilos, fondos de pantalla e moito máis"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Protector de pantalla"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"protector de pantalla"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Usar protector de pantalla"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Ao estar cargando ou na base"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Ao estar cargando"</string>
@@ -1708,7 +1710,7 @@
<string name="storage_rename_title" msgid="5911285992205282312">"Cambiar o nome do almacenamento"</string>
<string name="storage_dialog_unmounted" msgid="1187960789775910051">"<xliff:g id="NAME_0">^1</xliff:g> expulsouse de forma segura, pero aínda está dispoñible. \n\nPara usar <xliff:g id="NAME_1">^1</xliff:g>, primeiro debes inserilo."</string>
<string name="storage_dialog_unmountable" msgid="1761107904296941687">"<xliff:g id="NAME_0">^1</xliff:g> está danado. \n\nPara usar <xliff:g id="NAME_1">^1</xliff:g>, primeiro debes configuralo."</string>
- <string name="storage_internal_format_details" msgid="2399034372813686846">"Podes formatar esta tarxeta SD para almacenar fotos, vídeos, música e máis contido para acceder a el noutros dispositivos. \n\n"<b>"Se o fas, borraranse todos os datos que haxa nesta tarxeta SD."</b>" \n\n"<b>"Antes de formatar a tarxeta SD, fai o seguinte"</b>" \n\n"<b>"Crea copias de seguranza do contido multimedia (por exemplo, das fotos)"</b>" \nPasa os ficheiros multimedia a outro almacenamento deste dispositivo ou transfíreos ao un ordenador usando un cable USB. \n\n"<b>"Fai copias de seguranza das aplicacións"</b>" \nDesinstalaranse todas as aplicacións almacenadas nesta <xliff:g id="NAME">^1</xliff:g> e borraranse os seus datos. Se queres conservar esas aplicacións, pásaas a outro almacenamento deste dispositivo."</string>
+ <string name="storage_internal_format_details" msgid="2399034372813686846">"Podes formatar esta tarxeta SD para almacenar fotos, vídeos, música e máis contido para acceder a el noutros dispositivos. \n\n"<b>"Se o fas, borraranse todos os datos que haxa nesta tarxeta SD."</b>" \n\n"<b>"Antes de formatar a tarxeta SD, fai o seguinte"</b>" \n\n"<b>"Crea copias de seguranza do contido multimedia (por exemplo, das fotos)"</b>" \nPasa os ficheiros multimedia a outro almacenamento deste dispositivo ou transfíreos a un ordenador usando un cable USB. \n\n"<b>"Fai copias de seguranza das aplicacións"</b>" \nDesinstalaranse todas as aplicacións almacenadas nesta <xliff:g id="NAME">^1</xliff:g> e borraranse os seus datos. Se queres conservar esas aplicacións, pásaas a outro almacenamento deste dispositivo."</string>
<string name="storage_internal_unmount_details" msgid="487689543322907311"><b>"Ao expulsar esta <xliff:g id="NAME_0">^1</xliff:g>, as aplicacións almacenadas nela deixarán de funcionar e os ficheiros multimedia almacenados non estarán dispoñibles ata que se volva inserir.\n\n"</b>"Esta <xliff:g id="NAME_1">^1</xliff:g> formátase para funcionar só neste dispositivo. Non funcionará noutros."</string>
<string name="storage_internal_forget_details" msgid="5606507270046186691">"Para usar as aplicacións, as fotos ou os datos que contén a <xliff:g id="NAME">^1</xliff:g>, insírea de novo. \n\nTamén podes decidir borrar este almacenamento se o dispositivo non está dispoñible. \n\nSe decides borralo, todos os datos que contén o dispositivo perderanse para sempre. \n\nPodes volver instalar as aplicacións máis tarde, pero perderanse os seus datos almacenados neste dispositivo."</string>
<string name="storage_internal_forget_confirm_title" msgid="379238668153099015">"Queres esquecer a <xliff:g id="NAME">^1</xliff:g>?"</string>
@@ -1716,7 +1718,7 @@
<string name="storage_detail_dialog_system" msgid="7461009051858709479">"O sistema inclúe ficheiros usados para executar a versión <xliff:g id="VERSION">%s</xliff:g> de Android"</string>
<string name="storage_wizard_guest" msgid="5813419895687733649">"No modo de convidado non se pode formatar a SD"</string>
<string name="storage_wizard_init_title" msgid="9036374223934708619">"Configura a túa <xliff:g id="NAME">^1</xliff:g>"</string>
- <string name="storage_wizard_init_external_title" msgid="5304499882951772292">"Formatar tarxeta SD para usala como almacenamento portátil"</string>
+ <string name="storage_wizard_init_external_title" msgid="5304499882951772292">"Formatar SD para usala como almacenamento portátil"</string>
<string name="storage_wizard_init_external_summary" msgid="5842588772292324473">"Garda fotos, vídeos, música e máis contido, e accede a el desde outros dispositivos"</string>
<string name="storage_wizard_init_internal_title" msgid="8799676990387869411">"Formatar tarxeta SD para usala como almacenamento interno"</string>
<string name="storage_wizard_init_internal_summary" msgid="8224648610422581704">"Garda aplicacións e contido multimedia para usalos só neste teléfono"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volume das chamadas"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volume da alarma"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volume das notificacións e o son"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volume do timbre"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volume das notificacións"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Ton de chamada do teléfono"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Son de notificación predeterminado"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 523ac82..670acb7 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"અલગ-અલગ શૈલીઓ, વૉલપેપર અને બીજું ઘણું અજમાવી જુઓ"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"સ્ક્રીન સેવર"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"સ્ક્રીનસેવર"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"સ્ક્રીન સેવરનો ઉપયોગ કરો"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"ચાર્જ થતું હોય અથવા ડૉક કરેલ હોય ત્યારે"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"ચાર્જિંગ થતી વખતે"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"કૉલ વૉલ્યૂમ"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"અલાર્મ વૉલ્યૂમ"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"રિંગ અને નોટિફિકેશનનું વૉલ્યૂમ"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"રિંગનું વૉલ્યૂમ"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"નોટિફિકેશન વૉલ્યૂમ"</string>
<string name="ringtone_title" msgid="3271453110387368088">"ફોન રિંગટોન"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"ડિફૉલ્ટ નોટિફિકેશન સાઉન્ડ"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index d99a7a8..a0d6354 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"अलग-अलग स्टाइल, वॉलपेपर, और बहुत कुछ आज़माएं"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"स्क्रीन सेवर"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"स्क्रीन सेवर"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"स्क्रीन सेवर का इस्तेमाल करें"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"चार्ज करते समय या डॉक किए होने पर"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"चार्ज करते समय"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"कॉल वॉल्यूम"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"अलार्म वॉल्यूम"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"घंटी और सूचना का वॉल्यूम"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"रिंग वॉल्यूम"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"सूचना की आवाज़"</string>
<string name="ringtone_title" msgid="3271453110387368088">"फ़ोन रिंगटोन"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"सूचना की डिफ़ॉल्ट आवाज़"</string>
@@ -5644,7 +5647,7 @@
<string name="power_menu_summary_long_press_for_assistant" msgid="32706459458422952">"डिजिटल असिस्टेंट को ऐक्सेस करें"</string>
<string name="power_menu_summary_long_press_for_power_menu" msgid="7617247135239683710">"पावर मेन्यू को ऐक्सेस करें"</string>
<string name="lockscreen_privacy_not_secure" msgid="3251276389681975912">"इस्तेमाल करने के लिए, सबसे पहले स्क्रीन लॉक सेट करें"</string>
- <string name="power_menu_power_volume_up_hint" msgid="5619917593676125759">"पावर मेन्यू खोलना:\nपावर बटन और आवाज़ तेज़ करने वाले बटन को एक साथ दबाएं"</string>
+ <string name="power_menu_power_volume_up_hint" msgid="5619917593676125759">"पावर मेन्यू:\nपावर बटन और आवाज़ तेज़ करने वाले बटन को एक साथ दबाएं"</string>
<string name="power_menu_power_prevent_ringing_hint" msgid="1169955014711158873">"घंटी बजने से रोकना:\nशॉर्टकट के लिए, आवाज़ कम या ज़्यादा करने वाला बटन दबाएं"</string>
<string name="power_menu_long_press_for_assist_sensitivity_title" msgid="1626808509158422185">"बटन को दबाए रखने की अवधि"</string>
<string name="power_menu_long_press_for_assist_sensitivity_summary" msgid="7550610071666801935">"यह चुनें कि असिस्टेंट की सुविधा चालू करने के लिए, बटन को कितनी देर तक दबाए रखना है"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index cdbf140..cfc1d01 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -1534,6 +1534,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Isprobajte različite stilove, pozadine i drugo"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Čuvar zaslona"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"čuvar zaslona"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Koristi čuvar zaslona"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Tijekom punjenja ili kada je na priključnoj stanici"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Tijekom punjenja"</string>
@@ -3842,6 +3844,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Glasnoća poziva"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Glasnoća alarma"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Glasnoća zvona i obavijesti"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Glasnoća zvona"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Glasnoća obavijesti"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Melodija zvona telefona"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Zadani zvuk obavijesti"</string>
@@ -5662,7 +5665,7 @@
<string name="contextual_card_removed_message" msgid="5755438207494260867">"Prijedlog je uklonjen"</string>
<string name="contextual_card_undo_dismissal_text" msgid="5200381837316691406">"Poništi"</string>
<string name="low_storage_summary" msgid="1979492757417779718">"Preostalo je malo slobodne pohrane. Iskorišteno je <xliff:g id="PERCENTAGE">%1$s</xliff:g>, a slobodno <xliff:g id="FREE_SPACE">%2$s</xliff:g>."</string>
- <string name="contextual_card_feedback_send" msgid="7409408664417908922">"Pošalji povratne informacije"</string>
+ <string name="contextual_card_feedback_send" msgid="7409408664417908922">"Pošaljite povratne informacije"</string>
<string name="contextual_card_feedback_confirm_message" msgid="3186334562157665381">"Želite li nam poslati povratne informacije o tom prijedlogu?"</string>
<string name="copyable_slice_toast" msgid="1008251852798990606">"Kopirano u međuspremnik: <xliff:g id="COPY_CONTENT">%1$s</xliff:g>."</string>
<string name="search_bar_account_avatar_content_description" msgid="880523277036898350"></string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 2a6fedd..b205902 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Próbáljon ki más stílusokat, háttérképeket és egyebeket"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Képernyővédő"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"képernyővédő"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Képernyővédő használata"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Töltés és dokkolás közben"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Töltés közben"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Hívás hangereje"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Ébresztés hangereje"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Csörgetési, értesítési hangerő"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Csengés hangereje"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Értesítés hangereje"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Telefon csengőhangja"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Alapértelmezett értesítőhang"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 68ced06e..e8fb965 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Փորձեք տարբեր ոճեր, պաստառներ և ավելին"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Էկրանապահ"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"էկրանապահ"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Օգտագործել էկրանապահ"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Լիցքավորման ընթացքում կամ դոկ-կայանում"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Լիցքավորման ընթացքում"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Զրույց"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Զարթուցիչ"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Զանգեր և ծանուցումներ"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Զանգի ուժգնություն"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Ծանուցման ձայնի բարձրություն"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Հեռախոսի զանգերանգ"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Ծանուցման կանխադրված ձայնը"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 43942da..42a2577 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Coba wallpaper dan gaya yang berbeda, serta banyak lagi"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Screensaver"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"screensaver"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Gunakan screensaver"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Saat mengisi baterai atau dipasang ke dok"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Saat mengisi baterai"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volume panggilan"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volume alarm"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volume dering & notifikasi"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volume dering"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volume notifikasi"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Nada dering ponsel"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Suara notifikasi default"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 433cca0..59c2e63 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Prófaðu mismunandi stíla, veggfóður og fleira"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Skjávari"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"skjávari"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Nota skjávara"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Við hleðslu eða í dokku"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Við hleðslu"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Hljóðstyrkur símtala"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Hljóðstyrkur vekjara"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Hljóðst. símtala og tilkynn."</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Hljóðstyrkur hringingar"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Hljóðstyrkur tilkynninga"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Hringitónn síma"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Sjálfgefið hljóð tilkynninga"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 9020d91..dac1cd9 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -288,7 +288,7 @@
<string name="date_time_set_timezone_title" msgid="790404320569600222">"Fuso orario"</string>
<string name="date_time_set_timezone" msgid="2915125337941495746">"Seleziona fuso orario"</string>
<string name="date_time_set_date_title" msgid="7624166157167528407">"Data"</string>
- <string name="date_time_search_region" msgid="1364133854952610919">"Cerca area geografica"</string>
+ <string name="date_time_search_region" msgid="1364133854952610919">"Cerca regione"</string>
<string name="date_time_select_region" msgid="5449345333305056072">"Regione"</string>
<string name="date_time_select_fixed_offset_time_zones" msgid="594848300882055361">"Seleziona scarto da UTC"</string>
<string name="zone_change_to_from_dst" msgid="686451769985774294">"<xliff:g id="TIME_TYPE">%1$s</xliff:g> inizia il giorno <xliff:g id="TRANSITION_DATE">%2$s</xliff:g>."</string>
@@ -298,7 +298,7 @@
<string name="zone_info_footer_no_dst" msgid="8399585343328811158">"Usa <xliff:g id="OFFSET_AND_NAME">%1$s</xliff:g>. Nessuna ora legale."</string>
<string name="zone_time_type_dst" msgid="9189689342265305808">"Ora legale"</string>
<string name="zone_time_type_standard" msgid="6865420715430680352">"Ora solare"</string>
- <string name="zone_menu_by_region" msgid="2963565278710225652">"Selezione per area geografica"</string>
+ <string name="zone_menu_by_region" msgid="2963565278710225652">"Selezione per regione"</string>
<string name="zone_menu_by_offset" msgid="1257702747474426745">"Seleziona per scarto da UTC"</string>
<string name="date_picker_title" msgid="646573308567782578">"Data"</string>
<string name="time_picker_title" msgid="1784236407401743393">"Ora"</string>
@@ -529,8 +529,8 @@
<string name="security_settings_biometric_preference_summary_both_fp_single" msgid="684409535278676426">"Impronta e volto aggiunti"</string>
<string name="biometric_settings_intro" msgid="4263069383955676756">"Se hai configurato lo sblocco con il volto e con l\'impronta, il telefono ti chiederà l\'impronta se indossi una mascherina o ti trovi in un luogo buio"</string>
<string name="biometric_settings_category_ways_to_unlock" msgid="3384767901580915266">"Modi per sbloccare"</string>
- <string name="biometric_settings_use_biometric_unlock_phone" msgid="8180914579885804358">"Sbloccare il telefono"</string>
- <string name="biometric_settings_use_biometric_for_apps" msgid="6201168728906364189">"Confermare la tua identità nelle app"</string>
+ <string name="biometric_settings_use_biometric_unlock_phone" msgid="8180914579885804358">"Sblocca il telefono"</string>
+ <string name="biometric_settings_use_biometric_for_apps" msgid="6201168728906364189">"Conferma la tua identità nelle app"</string>
<string name="biometric_settings_use_face_preference_summary" msgid="1821648836899408477">"Con riconoscimento facciale"</string>
<string name="biometric_settings_use_fingerprint_preference_summary" msgid="6077762097826050165">"Con impronta"</string>
<string name="biometric_settings_use_face_or_fingerprint_preference_summary" msgid="3029102492674234728">"Con riconoscimento facciale o impronta"</string>
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Prova diversi stili, sfondi e non solo"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Salvaschermo"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"salvaschermo"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Usa il salvaschermo"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Durante la ricarica o quando inserito nel dock"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Durante la ricarica"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volume chiamate"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volume sveglia"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volume suoneria e notifiche"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volume suoneria"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volume notifiche"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Suoneria telefono"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Suono di notifica predefinito"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 62861bf..b95d97c 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -1556,6 +1556,7 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"מגוון סגנונות, טפטים שונים ואפשרויות נוספות לבחירתך"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"שומר מסך"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"שומר מסך"</string>
+ <string name="screensaver_settings_when_to_dream_bedtime" msgid="3279310576803094771">"אין זמינות כאשר מצב השינה מופעל"</string>
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"שימוש בשומר מסך"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"במהלך טעינה או עגינה"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"במהלך טעינה"</string>
@@ -3887,6 +3888,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"עוצמת קול של שיחות"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"עוצמת קול של שעון מעורר"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"עוצמת קול של צלצול והתראות"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"עוצמת הצלצול"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"עוצמת קול של התראות"</string>
<string name="ringtone_title" msgid="3271453110387368088">"הרינגטון של הטלפון"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"צליל ברירת המחדל להתראות"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 35be9b5..e204cc3 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -550,7 +550,7 @@
<string name="skip_lock_screen_dialog_button_label" msgid="641984698150020591">"スキップ"</string>
<string name="cancel_lock_screen_dialog_button_label" msgid="1801132985957491690">"キャンセル"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_title" msgid="886085239313346000">"センサーを指でタッチ"</string>
- <string name="security_settings_sfps_enroll_find_sensor_title" msgid="8327884364635804363">"押し込まずに電源ボタンに触れてください"</string>
+ <string name="security_settings_sfps_enroll_find_sensor_title" msgid="8327884364635804363">"軽く電源ボタンに触れてください"</string>
<string name="security_settings_udfps_enroll_find_sensor_title" msgid="8077484429913330179">"指紋の登録方法"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="6160543980992596286">"スマートフォンの背面にある指紋センサーを人差し指でタッチしてください。"</string>
<string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="3861487880213212565">"指紋認証センサーは電源ボタンに内蔵されています。タブレットの端にある盛り上がった音量ボタンの横のフラットなボタンです。\n\n電源ボタンを押すと画面が OFF になります。"</string>
@@ -567,7 +567,7 @@
<string name="security_settings_fingerprint_enroll_start_title" msgid="7391368057800077604">"センサーを指でタッチ"</string>
<string name="security_settings_fingerprint_enroll_start_message" msgid="5010227772754175346">"指をセンサーに当て、振動したら離します。"</string>
<string name="security_settings_udfps_enroll_start_message" msgid="5032954588171487566">"振動を感じるまでセンサーに指を平らに押し当てます"</string>
- <string name="security_settings_sfps_enroll_start_message" msgid="9054672627477685212">"ボタンを押し込まずに、振動を感じるまでセンサーから指紋を離さないでください。\n\n毎回、指を少し動かしてください。これで指紋を正しく登録できるようになります。"</string>
+ <string name="security_settings_sfps_enroll_start_message" msgid="9054672627477685212">"ボタンを強く押さずに、振動を感じるまでセンターから指紋を離さないでください。\n\n毎回、指を少し動かしてください。それで指紋を正しく登録できるようになります。"</string>
<string name="security_settings_fingerprint_enroll_udfps_title" msgid="6665610134560896895">"指紋認証センサーを長押ししてください"</string>
<string name="security_settings_fingerprint_enroll_repeat_title" msgid="9172202128243545021">"指を離して、もう一度タッチ"</string>
<string name="security_settings_udfps_enroll_title_one_more_time" msgid="424937043843482410">"もう一度"</string>
@@ -664,7 +664,7 @@
<string name="security_advanced_settings_keywords" msgid="5294945170370974974">"セキュリティ, その他 セキュリティ 設定, その他 設定, 詳細 セキュリティ 設定"</string>
<string name="privacy_advanced_settings" msgid="8828215456566937719">"プライバシーの詳細設定"</string>
<string name="privacy_advanced_settings_summary" msgid="2927281894237561935">"自動入力、アクティビティ管理など"</string>
- <string name="fingerprint_add_max" msgid="8639321019299347447">"最大で<xliff:g id="COUNT">%d</xliff:g>個の指紋を追加できます"</string>
+ <string name="fingerprint_add_max" msgid="8639321019299347447">"最大で <xliff:g id="COUNT">%d</xliff:g> 件の指紋を追加できます"</string>
<string name="fingerprint_intro_error_max" msgid="4431784409732135610">"追加された指紋の数が上限に達しました"</string>
<string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"これ以上、指紋を追加できません"</string>
<string name="fingerprint_last_delete_title" msgid="4081475675646514726">"すべての指紋を削除しますか?"</string>
@@ -1512,6 +1512,7 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"別のスタイル、壁紙などを試す"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"スクリーン セーバー"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"スクリーンセーバー"</string>
+ <string name="screensaver_settings_when_to_dream_bedtime" msgid="3279310576803094771">"おやすみ時間モードが ON のため利用できません"</string>
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"スクリーン セーバーを使用する"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"充電時またはドッキング時"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"充電時"</string>
@@ -3039,10 +3040,10 @@
<string name="battery_saver_turn_on_automatically_never" msgid="6194649389871448663">"使用しない"</string>
<string name="battery_saver_turn_on_automatically_pct" msgid="4294335680892392449">"バッテリー残量が <xliff:g id="PERCENT">%1$s</xliff:g> になったとき"</string>
<string name="battery_percentage" msgid="1779934245963043490">"バッテリー残量"</string>
- <string name="battery_percentage_description" msgid="2321465139126125541">"ステータスバーにバッテリー残量を%で表示"</string>
+ <string name="battery_percentage_description" msgid="2321465139126125541">"ステータスバーにバッテリー残量を%で表示する"</string>
<string name="battery_usage_chart_graph_hint_last_full_charge" msgid="6570336408060566877">"前回のフル充電以降のバッテリー残量"</string>
<string name="battery_usage_chart_graph_hint" msgid="9182079098173323005">"過去 24 時間のバッテリー使用量"</string>
- <string name="battery_app_usage" msgid="8976453608783133770">"前回のフル充電からのアプリの使用状況"</string>
+ <string name="battery_app_usage" msgid="8976453608783133770">"前回のフル充電以降のアプリの使用状況"</string>
<string name="battery_app_usage_for_past_24" msgid="1234770810563940656">"過去 24 時間のアプリのバッテリー使用量"</string>
<string name="battery_system_usage" msgid="1395943945140097585">"前回のフル充電以降のシステムの使用状況"</string>
<string name="battery_system_usage_for_past_24" msgid="3341520273114616263">"過去 24 時間のシステムのバッテリー使用量"</string>
@@ -3797,6 +3798,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"通話の音量"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"アラームの音量"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"着信音と通知の音量"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"着信音の音量"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"通知の音量"</string>
<string name="ringtone_title" msgid="3271453110387368088">"着信音"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"デフォルトの通知音"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 4866321..57d9d0b 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"ცადეთ სხვადასხვა სტილი, ფონი და ა.შ."</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"ეკრანმზოგი"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ეკრანმზოგი"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"გამოიყენეთ ეკრანმზოგი"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"დატენვისას ან სანამ ჩამაგრებულია"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"დატენვისას"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"ზარის ხმა"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"მაღვიძარას ხმა"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"ზარების/შეტყობინებების ხმა"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"ზარის ხმა"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"შეტყობინების ხმა"</string>
<string name="ringtone_title" msgid="3271453110387368088">"ტელეფონის ზარი"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"შეტყობინებების ნაგულისხმევი ხმა"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index fd53838..21b51e5 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Түрлі стильдерді, тұсқағаздарды, т.б. пайдаланып көріңіз."</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Скринсейвер"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"скринсейвер"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Скринсейверді пайдалану"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Зарядтау кезінде немесе қондыру станциясында"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Зарядтау кезінде"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Сөйлесу кезіндегі дыбыс деңгейі"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Оятқыштың дыбыс деңгейі"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Қоңырау мен хабарландыру дыбысы"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Қоңыраудың дыбыс деңгейі"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Хабарландырудың дыбыс деңгейі"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Телефон рингтоны"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Әдепкі хабарландыру дыбысы"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 9012c08..38b6e80 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"សាកប្រើរចនាប័ទ្ម ផ្ទាំងរូបភាពផ្សេងៗគ្នា និងអ្វីៗជាច្រើនទៀត"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"ធាតុរក្សាអេក្រង់"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ធាតុរក្សាអេក្រង់"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"ប្រើធាតុរក្សាអេក្រង់"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"ពេលសាកថ្ម ឬភ្ជាប់"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"ពេលសាកថ្ម"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"កម្រិតសំឡេងហៅទូរសព្ទ"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"កម្រិតសំឡេងម៉ោងរោទ៍"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"កម្រិតសំឡេងរោទ៍ និងការជូនដំណឹង"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"កម្រិតសំឡេងរោទ៍"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"កម្រិតសំឡេងការជូនដំណឹង"</string>
<string name="ringtone_title" msgid="3271453110387368088">"សំឡេងរោទ៍ទូរសព្ទ"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"សំឡេងជូនដំណឹងលំនាំដើម"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 74d244e..cc1f013 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"ವಿವಿಧ ಶೈಲಿಗಳು, ವಾಲ್ಪೇಪರ್ಗಳು, ಇತ್ಯಾದಿಗಳನ್ನು ಬಳಸಿ ನೋಡಿ"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"ಸ್ಕ್ರೀನ್ ಸೇವರ್"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ಸ್ಕ್ರೀನ್ಸೇವರ್"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"ಸ್ಕ್ರೀನ್ ಸೇವರ್ ಅನ್ನು ಬಳಸಿ"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"ಚಾರ್ಜ್ ಮಾಡುವಾಗ ಅಥವಾ ಡಾಕ್ ಮಾಡುವಾಗ"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"ಚಾರ್ಜ್ ಆಗುತ್ತಿರುವಾಗ"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"ಕರೆಯ ವಾಲ್ಯೂಮ್"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"ಅಲಾರಂ ವಾಲ್ಯೂಮ್"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"ರಿಂಗ್ ಮತ್ತು ಅಧಿಸೂಚನೆ ವಾಲ್ಯೂಮ್"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"ರಿಂಗ್ ವಾಲ್ಯೂಮ್"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"ಅಧಿಸೂಚನೆ ವಾಲ್ಯೂಮ್"</string>
<string name="ringtone_title" msgid="3271453110387368088">"ಫೋನ್ ರಿಂಗ್ಟೋನ್"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"ಡೀಫಾಲ್ಟ್ ಅಧಿಸೂಚನೆ ಧ್ವನಿ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 573a0f4..2232817 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -1518,6 +1518,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"다른 스타일, 배경화면 등 사용해 보기"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"화면 보호기"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"화면 보호기"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"화면 보호기 사용"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"충전 또는 도킹하는 동안"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"충전하는 동안"</string>
@@ -3803,6 +3805,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"통화 볼륨"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"알람 볼륨"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"벨소리 및 알림 볼륨"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"벨소리 볼륨"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"알림 볼륨"</string>
<string name="ringtone_title" msgid="3271453110387368088">"전화 벨소리"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"기본 알림 소리"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 8e86f76..83bd7a2 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Ар кандай стилдерди, тушкагаздарды жана башкаларды көрүңүз"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Көшөгө"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"көшөгө"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Көшөгөнү колдонуу"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Кубатталып жатканда же док-станцияга туташканда"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Кубатталып жатканда"</string>
@@ -1710,7 +1712,7 @@
<string name="storage_dialog_unmountable" msgid="1761107904296941687">"Бул <xliff:g id="NAME_0">^1</xliff:g> бузулуп калган. \n\nБул <xliff:g id="NAME_1">^1</xliff:g> түзмөктү колдонуу үчүн адегенде аны жөндөп алыңыз."</string>
<string name="storage_internal_format_details" msgid="2399034372813686846">"Сүрөттөрдү, видеолорду, ырларды жана башкаларды сактоо жана башка түзмөктөрдө колдонуу үчүн бул SD картаны форматташыңыз керек. \n\n"<b>"Бул SD картадагы бардык нерселер өчүп калат."</b>" \n\n"<b>"Форматтоодон мурун"</b>" \n\n"<b>"Сүрөттөрдүн жана башка медиа файлдардын камдык көчүрмөлөрүн сактаңыз"</b>" \nМедиа файлдарды башка сактагычка же USB кабели аркылуу компьютериңизге өткөрүп алыңыз. \n\n"<b>"Колдонмолордун камдык көчүрмөлөрүн сактаңыз"</b>" \nУшул <xliff:g id="NAME">^1</xliff:g> сакталган бардык колдонмолор жана алардын ичиндеги нерселер өчүп калат. Андыктан аларды башка жерге көчүрүп алыңыз."</string>
<string name="storage_internal_unmount_details" msgid="487689543322907311"><b>"Бул <xliff:g id="NAME_0">^1</xliff:g> карта түзмөктөн чыгарылганда, ал кайра кыстарылмайынча, анда сакталган колдонмолор менен медиа файлдар иштебей калат."</b>\n\n"Бул <xliff:g id="NAME_1">^1</xliff:g> карта ушул түзмөктө гана иштегидей болуп форматталып, башка эч бир түзмөктө иштебейт."</string>
- <string name="storage_internal_forget_details" msgid="5606507270046186691">"Колдонмолорду, сүрөттөрдү жана башка маалыматтарды колдонуу үчүн <xliff:g id="NAME">^1</xliff:g> картасын кайра кыстарыңыз. \n\nБолбосо, \"Сактагыч унутулсун\" деген вариантты тандаңыз. \n\nСактагыч унутулгандан кийин, картада сакталган бардык дайындар биротоло жок болот. \n\nКолдонмону кийин кайра орнотсоңуз болот, бирок түзмөктөгү жоголгон дайындар кайра калыбына келбейт."</string>
+ <string name="storage_internal_forget_details" msgid="5606507270046186691">"Колдонмолорду, сүрөттөрдү жана башка маалыматтарды колдонуу үчүн <xliff:g id="NAME">^1</xliff:g> картасын кайра кыстарыңыз. \n\nБолбосо, \"Сактагыч унутулсун\" деген вариантты тандаңыз. \n\nСактагыч унутулгандан кийин, картада сакталган бардык нерселер биротоло өчүп калат. \n\nКолдонмону кийин кайра орнотсоңуз болот, бирок түзмөктөгү жоголгон дайындар кайра калыбына келбейт."</string>
<string name="storage_internal_forget_confirm_title" msgid="379238668153099015">"<xliff:g id="NAME">^1</xliff:g> унутулсунбу?"</string>
<string name="storage_internal_forget_confirm" msgid="5752634604952674123">"Бул <xliff:g id="NAME">^1</xliff:g> ичинде сакталган бардык колдонмолор, сүрөттөр жана башка нерселер биротоло жоголот."</string>
<string name="storage_detail_dialog_system" msgid="7461009051858709479">"Тутумда Android <xliff:g id="VERSION">%s</xliff:g> версиясында иштеген файлдар бар"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Сүйлөшүү"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Ойготкучтун катуулугу"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Шыңгырлар менен билдирмелердин үнүнүн катуулугу"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Шыңгырдын үнүнүн катуулугу"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Эскертме үнүнүн катуулугу"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Телефондун шыңгыры"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Билдирменин демейки үнү"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 7a1b5cf..d647ffd 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"ລອງໃຊ້ຮູບແບບ, ຮູບພື້ນຫຼັງ ແລະ ອື່ນໆທີ່ແຕກຕ່າງກັນ"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"ພາບພັກໜ້າຈໍ"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ພາບພັກໜ້າຈໍ"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"ໃຊ້ພາບພັກໜ້າຈໍ"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"ໃນຂະນະທີ່ກຳລັງສາກ ຫຼື ວາງໄວ້ບ່ອນຕັ້ງສາກ"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"ໃນຂະນະທີ່ກຳລັງສາກໄຟ"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"ລະດັບສຽງການໂທ"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"ລະດັບສຽງໂມງປຸກ"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"ລະດັບສຽງໂທເຂົ້າ ແລະ ແຈ້ງເຕືອນ"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"ລະດັບການເຕືອນດ້ວຍສຽງ"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"ລະດັບສຽງແຈ້ງເຕືອນ"</string>
<string name="ringtone_title" msgid="3271453110387368088">"ຣິງໂທນໂທລະສັບ"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"ສຽງແຈ້ງເຕືອນເລີ່ມຕົ້ນ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index dcd76e8..76c7362 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -1552,6 +1552,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Išbandykite skirtingus stilius, ekrano fonus ir kt."</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Ekrano užsklanda"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ekrano užsklanda"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Ekrano užsklandos naudojimas"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Įkraunat ar prijungus prie doko"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Įkraunant"</string>
@@ -3883,6 +3885,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Skambučio garsumas"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Signalo garsumas"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Skambučių ir nustatymų garsum."</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Skambučio garsumas"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Pranešimo garsumas"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Telefono skambėjimo tonas"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Numatytasis pranešimo garsas"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 26dfa2d..2f10677 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -1532,6 +1532,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Izmēģiniet dažādus stilus, fona tapetes utt."</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Ekrānsaudzētājs"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ekrānsaudzētājs"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Izmantot ekrānsaudzētāju"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Uzlādes vai dokošanas laikā"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Uzlādes laikā"</string>
@@ -3840,6 +3842,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Zvana skaļums"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Signāla skaļums"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Zvanu/paziņojumu sign. skaļums"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Zvana skaļums"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Paziņojumu skaļums"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Tālruņa zvana signāls"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Paziņojuma noklusējuma skaņa"</string>
diff --git a/res/values-mcc222-iw/strings.xml b/res/values-mcc222-iw/strings.xml
index a123492..b934e0c 100644
--- a/res/values-mcc222-iw/strings.xml
+++ b/res/values-mcc222-iw/strings.xml
@@ -16,5 +16,5 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="cell_broadcast_settings" msgid="6933671701347224770">"אזהרות גלויות לכול"</string>
+ <string name="cell_broadcast_settings" msgid="6933671701347224770">"אזהרות גלויות לכולם"</string>
</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index b5539f1..c249410 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -1516,6 +1516,7 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Пробајте различни стилови, тапети и друго"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Заштитник на екран"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"заштитник на екран"</string>
+ <string name="screensaver_settings_when_to_dream_bedtime" msgid="3279310576803094771">"Недостапно бидејќи е вклучен „Режимот за спиење“"</string>
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Користи заштитник на екран"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Додека се полни или е приклучен"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Додека се полни"</string>
@@ -3801,6 +3802,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Јачина на звук за повици"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Јачина на звук за аларм"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Ѕвонење и известувања"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Јачина на звук на ѕвонењето"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Јачина на звук на известување"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Мелодија на телефон"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Стандарден звук за известување"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 60d4a59..32dca38 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"വ്യത്യസ്ത സ്റ്റൈലുകളും വാൾപേപ്പറുകളും മറ്റും പരീക്ഷിക്കൂ"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"സ്ക്രീൻ സേവർ"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"സ്ക്രീൻ സേവർ"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"സ്ക്രീൻ സേവർ ഉപയോഗിക്കുക"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"ചാർജ്/ഡോക്ക് ചെയ്യുമ്പോൾ"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"ചാർജ് ചെയ്യുമ്പോൾ"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"കോൾ വോളിയം"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"അലാറം വോളിയം"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"റിംഗ്, അറിയിപ്പ് വോളിയം"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"റിംഗ് വോളിയം"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"അറിയിപ്പ് വോളിയം"</string>
<string name="ringtone_title" msgid="3271453110387368088">"ഫോൺ റിംഗ്ടോൺ"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"ഡിഫോൾട്ട് അറിയിപ്പ് ശബ്ദം"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 8a0a388..e66147f 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -1512,6 +1512,7 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Өөр загвар, дэлгэцийн зураг болон бусад зүйлийг туршиж үзнэ үү"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Дэлгэц амраагч"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"дэлгэц амраагч"</string>
+ <string name="screensaver_settings_when_to_dream_bedtime" msgid="3279310576803094771">"Унтлагын цагийн горим асаалттай тул боломжгүй"</string>
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Дэлгэц амраагчийг ашиглах"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Цэнэглэх эсвэл суурилуулах үед"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Цэнэглэж байх үед"</string>
@@ -3797,6 +3798,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Дуудлагын дууны түвшин"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Сэрүүлгийн дууны түвшин"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Хонх ба мэдэгдлийн дууны түвшин"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Хонхны дууны түвшин"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Мэдэгдлийн дууны түвшин"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Утасны хонхны ая"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Мэдэгдлийн өгөгдмөл ая"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 0606c9f..986b6dc 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"वेगळी शैली, वॉलपेपर आणि बरेच काही वापरून पहा"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"स्क्रीन सेव्हर"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"स्क्रीनसेव्हर"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"स्क्रीन सेव्हर वापरा"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"चार्ज होत असताना किंवा डॉक केलेले असताना"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"चार्ज होत असताना"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"कॉल व्हॉल्यूम"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"अलार्म व्हॉल्यूम"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"रिंग आणि सूचनेचा व्हॉल्यूम"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"रिंग व्हॉल्यूम"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"सूचना व्हॉल्यूम"</string>
<string name="ringtone_title" msgid="3271453110387368088">"फोन रिंगटोन"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"डीफॉल्ट सूचना आवाज"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 05569e6..f0ce033 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Cuba gaya serta kertas dinding yang berbeza dan pelbagai lagi"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Penyelamat skrin"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"penyelamat skrin"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Gunakan penyelamat skrin"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Semasa dicas atau didok"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Semasa mengecas"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Kelantangan panggilan"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Kelantangan penggera"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Kelantangan dering & pemberitahuan"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Kelantangan deringan"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Kelantangan pemberitahuan"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Nada dering telefon"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Bunyi pemberitahuan lalai"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index ef3401f..ab066ec 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"မတူသည့် ပုံစံများ၊ နောက်ခံများနှင့် အခြားအရာများကို စမ်းကြည့်ပါ"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"ဖန်သားပြင်ချွေတာစနစ်"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ဖန်သားပြင်နားချိန်"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"ဖန်သားပြင်ချွေတာစနစ် သုံးခြင်း"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"အားသွင်းနေစဉ် သို့မဟုတ် တပ်ဆင်ထားစဉ်"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"အားသွင်းနေစဉ်"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"ဖုန်းခေါ်သံ အတိုးအကျယ်"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"နှိုးစက်အသံ အတိုးအကျယ်"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"မြည်သံနှင့် အကြောင်းကြားချက် အသံ"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"ဖုန်းမြည်သံ အတိုးအကျယ်"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"အကြောင်းကြားချက်သံ ပမာဏ"</string>
<string name="ringtone_title" msgid="3271453110387368088">"ဖုန်းမြည်သံ"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"မူရင်းအကြောင်းကြားသံ"</string>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 831c3c1..2fa126d 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -242,7 +242,7 @@
<item msgid="1908944516631132130">"Endre anropsloggen"</item>
<item msgid="9066115715905100138">"lesing av kalender"</item>
<item msgid="1664720478157892566">"Endre kalenderen"</item>
- <item msgid="5478277451617814822">"Wi-Fi-skann"</item>
+ <item msgid="5478277451617814822">"Wifi-skann"</item>
<item msgid="2429454210217003798">"varsel"</item>
<item msgid="8909068846471624576">"mobiltelefonskann"</item>
<item msgid="2527973826970434181">"ring til telefon"</item>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 17a4ae7..24f9dcf 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -261,7 +261,7 @@
<string name="settings_shortcut" msgid="8548239727871847171">"Snarvei for Innstillinger"</string>
<string name="airplane_mode" msgid="3196085857882526817">"Flymodus"</string>
<string name="wireless_networks_settings_title" msgid="8557542379234105369">"Trådløst og nettverk"</string>
- <string name="radio_controls_summary" msgid="9028430178697624501">"Administrer Wi-Fi, Bluetooth, flymodus, mobilnettverk og VPN"</string>
+ <string name="radio_controls_summary" msgid="9028430178697624501">"Administrer Wifi, Bluetooth, flymodus, mobilnettverk og VPN"</string>
<string name="cellular_data_summary" msgid="6551434804367912367">"Tillat databruk over mobilnettverk"</string>
<string name="allow_data_usage_title" msgid="2645963379925196671">"Tillat databruk ved roaming"</string>
<string name="roaming" msgid="3055365654530847985">"Roaming"</string>
@@ -993,8 +993,8 @@
<string name="tx_link_speed" msgid="3071955184703668113">"<xliff:g id="TRANSMIT_LINK_SPEED">%1$d</xliff:g> Mbps"</string>
<string name="rx_link_speed" msgid="6292229178855567783">"<xliff:g id="RECEIVE_LINK_SPEED">%1$d</xliff:g> Mbps"</string>
<string name="link_speed" msgid="931786745741016446">"<xliff:g id="LINK_SPEED">%1$d</xliff:g> Mbps"</string>
- <string name="wifi_ask_enable" msgid="6860056048266810769">"<xliff:g id="REQUESTER">%s</xliff:g> ønsker å slå på Wi-Fi"</string>
- <string name="wifi_ask_disable" msgid="1663208096020309639">"<xliff:g id="REQUESTER">%s</xliff:g> ønsker å slå av Wi-Fi"</string>
+ <string name="wifi_ask_enable" msgid="6860056048266810769">"<xliff:g id="REQUESTER">%s</xliff:g> ønsker å slå på Wifi"</string>
+ <string name="wifi_ask_disable" msgid="1663208096020309639">"<xliff:g id="REQUESTER">%s</xliff:g> ønsker å slå av Wifi"</string>
<string name="art_verifier_for_debuggable_title" msgid="1926445785190030479">"Bekreft bytekode for feilsøkbare apper"</string>
<string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Tillat at ART bekrefter bytekode for feilsøkbare apper"</string>
<string name="show_refresh_rate" msgid="5742688821872354973">"Vis oppdateringsfrekvens"</string>
@@ -1013,15 +1013,15 @@
<string name="android_beam_label" msgid="7168565080321110094">"Android Beam"</string>
<string name="android_beam_explained" msgid="5684416131846701256">"Når denne funksjonen er slått på, kan du beame appinnhold til en annen enhet som støtter nærfeltskommunikasjon (NFC). Du gjør dette ved å holde enhetene tett sammen. Du kan for eksempel beame nettsider, YouTube-videoer, kontakter med mer.\n\nDu holder bare enhetene mot hverandre (vanligvis rygg mot rygg) og trykker på skjermen. Appen avgjør hva som beames."</string>
<string name="wifi_quick_toggle_title" msgid="2737097538432862807">"Wifi"</string>
- <string name="wifi_quick_toggle_summary" msgid="4957267477820468553">"Slå på Wi-Fi"</string>
+ <string name="wifi_quick_toggle_summary" msgid="4957267477820468553">"Slå på Wifi"</string>
<string name="wifi_settings" msgid="8313301946393559700">"Wifi"</string>
- <string name="wifi_settings_primary_switch_title" msgid="628360786662947258">"Bruk Wi-Fi"</string>
- <string name="wifi_settings_category" msgid="3523464780563778321">"Innstillinger for Wi-Fi"</string>
+ <string name="wifi_settings_primary_switch_title" msgid="628360786662947258">"Bruk Wifi"</string>
+ <string name="wifi_settings_category" msgid="3523464780563778321">"Innstillinger for wifi"</string>
<string name="wifi_settings_title" msgid="3879649725059512799">"Wifi"</string>
<string name="wifi_settings_summary" msgid="784074686763572811">"Sett opp og styr trådløse aksesspunkt"</string>
- <string name="wifi_select_network" msgid="6692897876718813259">"Velg Wi-Fi-nettverk"</string>
- <string name="wifi_starting" msgid="6147022683967506341">"Slår på Wi-Fi …"</string>
- <string name="wifi_stopping" msgid="4471699665741299711">"Slår av Wi-Fi …"</string>
+ <string name="wifi_select_network" msgid="6692897876718813259">"Velg Wifi-nettverk"</string>
+ <string name="wifi_starting" msgid="6147022683967506341">"Slår på Wifi …"</string>
+ <string name="wifi_stopping" msgid="4471699665741299711">"Slår av Wifi …"</string>
<string name="wifi_error" msgid="4903954145386086899">"Feil"</string>
<string name="wifi_sap_no_channel_error" msgid="2126487622024749402">"5 GHz-bånd er ikke tilgjengelig i dette landet"</string>
<string name="wifi_in_airplane_mode" msgid="1235412508135267981">"I flymodus"</string>
@@ -1033,31 +1033,31 @@
<string name="wifi_wakeup_summary_scanning_disabled" msgid="1771489741850119751">"Utilgjengelig fordi Wi‑Fi-søking er slått av"</string>
<string name="wifi_wakeup_summary_scoring_disabled" msgid="3615120120960539780">"For å bruke funksjonen, velg en leverandør av nettverksvurdering"</string>
<string name="wifi_poor_network_detection" msgid="8210035875160288422">"Unngå dårlige tilkoblinger"</string>
- <string name="wifi_poor_network_detection_summary" msgid="383834617032605347">"Ikke bruk et Wi-Fi-nettverk med mindre det har en brukbar internettilkobling"</string>
+ <string name="wifi_poor_network_detection_summary" msgid="383834617032605347">"Ikke bruk et Wifi-nettverk med mindre det har en brukbar internettilkobling"</string>
<string name="wifi_avoid_poor_network_detection_summary" msgid="4993203473116721772">"Bare bruk nettverk som har en god internettilkobling"</string>
<string name="use_open_wifi_automatically_title" msgid="7193846454986712009">"Koble til offentlige nettverk"</string>
<string name="use_open_wifi_automatically_summary" msgid="6663890845558591023">"Koble automatisk til offentlige nettverk av høy kvalitet"</string>
<string name="use_open_wifi_automatically_summary_scoring_disabled" msgid="2299284032301667622">"For å bruke funksjonen, velg en leverandør av nettverksvurdering"</string>
<string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1780306481499369913">"For å bruke funksjonen, velg en kompatibel leverandør av nettverksvurdering"</string>
<string name="wifi_install_credentials" msgid="5192903644606839972">"Installer sertifikater"</string>
- <string name="wifi_scan_notify_text" msgid="7163137260385995873">"For å forbedre posisjonsnøyaktigheten kan apper og tjenester søke etter Wi-Fi-nettverk når som helst – også når Wi-Fi er slått av. Dette kan for eksempel brukes til å forbedre posisjonsbaserte funksjoner og tjenester. Du kan endre dette i <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>innstillingene for wifi-skanning<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
+ <string name="wifi_scan_notify_text" msgid="7163137260385995873">"For å forbedre posisjonsnøyaktigheten kan apper og tjenester søke etter Wifi-nettverk når som helst – også når Wifi er slått av. Dette kan for eksempel brukes til å forbedre posisjonsbaserte funksjoner og tjenester. Du kan endre dette i <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>innstillingene for wifi-skanning<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
<string name="wifi_scan_notify_text_scanning_off" msgid="7439201783168213149">"For å forbedre posisjonsnøyaktigheten, slå på wifi-skanning i <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>innstillingene for wifi-skanning<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
<string name="wifi_scan_notify_remember_choice" msgid="8436897497968907701">"Ikke vis igjen"</string>
- <string name="wifi_setting_sleep_policy_title" msgid="6285374200292675649">"Behold Wi-Fi på i hvilemodus"</string>
- <string name="wifi_setting_on_during_sleep_title" msgid="8753852404141070878">"Wi-Fi aktivert i hvilemodus"</string>
+ <string name="wifi_setting_sleep_policy_title" msgid="6285374200292675649">"Behold Wifi på i hvilemodus"</string>
+ <string name="wifi_setting_on_during_sleep_title" msgid="8753852404141070878">"Wifi aktivert i hvilemodus"</string>
<string name="wifi_setting_sleep_policy_error" msgid="4512566787805720422">"Det oppstod et problem under endring av innstillingen"</string>
<string name="wifi_suspend_efficiency_title" msgid="3589291227092825754">"Forbedre effektiviteten"</string>
- <string name="wifi_suspend_optimizations" msgid="5840680940416640209">"Optimalisering av Wi-Fi"</string>
- <string name="wifi_suspend_optimizations_summary" msgid="8204170804523356781">"Minimer batteribruk når Wi-Fi er på"</string>
- <string name="wifi_limit_optimizations_summary" msgid="8461087338100462302">"Begrens batteribruk for Wi-Fi"</string>
+ <string name="wifi_suspend_optimizations" msgid="5840680940416640209">"Optimalisering av Wifi"</string>
+ <string name="wifi_suspend_optimizations_summary" msgid="8204170804523356781">"Minimer batteribruk når Wifi er på"</string>
+ <string name="wifi_limit_optimizations_summary" msgid="8461087338100462302">"Begrens batteribruk for wifi"</string>
<string name="wifi_switch_away_when_unvalidated" msgid="681353878530696197">"Bytt til mobildata hvis Wi‑Fi mister Internett-tilgangen."</string>
<string name="wifi_cellular_data_fallback_title" msgid="2844653839490977040">"Bytt til mobildata automatisk"</string>
- <string name="wifi_cellular_data_fallback_summary" msgid="7039944853033554386">"Bruk mobildata når Wi-Fi ikke har Internett-tilgang. Avgifter for databruk kan påløpe."</string>
+ <string name="wifi_cellular_data_fallback_summary" msgid="7039944853033554386">"Bruk mobildata når Wifi ikke har Internett-tilgang. Avgifter for databruk kan påløpe."</string>
<string name="wifi_add_network" msgid="4178564862173751181">"Legg til nettverk"</string>
<string name="wifi_configure_settings_preference_title" msgid="2536725796700696566">"Wi‑Fi-innstillinger"</string>
<string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="7822368955551467382">"Wi‑Fi slås på igjen automatisk"</string>
<string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="5710203586018223864">"Wi‑Fi slås ikke på igjen automatisk"</string>
- <string name="wifi_access_points" msgid="5846755709207101844">"Wi-Fi-nettverk"</string>
+ <string name="wifi_access_points" msgid="5846755709207101844">"Wifi-nettverk"</string>
<string name="wifi_menu_more_options" msgid="1236651929987819716">"Flere alternativer"</string>
<string name="wifi_menu_p2p" msgid="5234165837732940385">"Wi-Fi Direct"</string>
<string name="wifi_menu_scan" msgid="3498653582115656526">"Skann"</string>
@@ -1067,14 +1067,14 @@
<string name="wifi_menu_remember" msgid="8639523871321603112">"Husk nettverket"</string>
<string name="wifi_menu_forget" msgid="6557142984528657361">"Glem nettverket"</string>
<string name="wifi_menu_modify" msgid="7246143391161038875">"Endre nettverket"</string>
- <string name="wifi_empty_list_wifi_off" msgid="7697422506708419298">"Slå på Wi-Fi for å se tilgjengelige nettverk."</string>
+ <string name="wifi_empty_list_wifi_off" msgid="7697422506708419298">"Slå på Wifi for å se tilgjengelige nettverk."</string>
<string name="wifi_empty_list_wifi_on" msgid="2448010040478321376">"Søker etter nettverk …"</string>
- <string name="wifi_empty_list_user_restricted" msgid="454861411536708709">"Du har ikke tillatelse til å endre Wi-Fi-nettverk."</string>
+ <string name="wifi_empty_list_user_restricted" msgid="454861411536708709">"Du har ikke tillatelse til å endre Wifi-nettverk."</string>
<string name="wifi_more" msgid="8742256421693351035">"Se mer"</string>
<string name="wifi_setup_wps" msgid="4303694722593999931">"Automatisk konfig. (WPS)"</string>
<string name="wifi_settings_scanning_required_title" msgid="1088663325396007484">"Vil du slå på Wi‑Fi-skanning?"</string>
- <string name="wifi_settings_scanning_required_summary" msgid="4770243653675416569">"For å slå på Wi-Fi automatisk må du først slå på wifi-skanning."</string>
- <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Med wifi-skanning kan apper og tjenester søke etter enheter i nærheten når som helst, selv når Wi-Fi er slått av. Dette kan for eksempel brukes til å forbedre posisjonsbaserte funksjoner og tjenester."</string>
+ <string name="wifi_settings_scanning_required_summary" msgid="4770243653675416569">"For å slå på Wifi automatisk må du først slå på wifi-skanning."</string>
+ <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Med wifi-skanning kan apper og tjenester søke etter enheter i nærheten når som helst, selv når Wifi er slått av. Dette kan for eksempel brukes til å forbedre posisjonsbaserte funksjoner og tjenester."</string>
<string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Slå på"</string>
<string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi-skanning er slått på"</string>
<string name="wifi_show_advanced" msgid="2969378109942071741">"Avanserte alternativer"</string>
@@ -1111,7 +1111,7 @@
<string name="wifi_ap_prefer_5G" msgid="2520628479818369902">"5,0 GHz-bånd foretrekkes"</string>
<string name="wifi_ap_2G" msgid="4099628221864343015">"2,4 GHz"</string>
<string name="wifi_ap_5G" msgid="3493942667238551207">"5,0 GHz"</string>
- <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"Velg minst ett bånd for Wi-Fi-sonen:"</string>
+ <string name="wifi_ap_band_select_one" msgid="5221193733812493435">"Velg minst ett bånd for wifi-sonen:"</string>
<string name="wifi_ip_settings" msgid="6420498748726599133">"IP-innstillinger"</string>
<string name="wifi_privacy_settings" msgid="3283946009000725698">"Personvern"</string>
<string name="wifi_subscription" msgid="4432423938285430113">"Abonnement"</string>
@@ -1130,7 +1130,7 @@
<string name="wifi_dpp_failure_timeout" msgid="7902971341771145564">"Sørg for at enheten er tilkoblet, ladet og slått på"</string>
<string name="wifi_dpp_failure_generic" msgid="6559442892600448442">"Sørg for at enheten er tilkoblet, ladet og slått på. Hvis problemet vedvarer, kan du kontakte enhetsprodusenten."</string>
<string name="wifi_dpp_failure_not_supported" msgid="2908961523550486480">"Tilføying av «<xliff:g id="SSID">%1$s</xliff:g>» støttes ikke av denne enheten"</string>
- <string name="wifi_dpp_failure_cannot_find_network" msgid="8519567801353014036">"Prøv å plassere enheten nærmere Wi-Fi-tilgangspunktet/-ruteren"</string>
+ <string name="wifi_dpp_failure_cannot_find_network" msgid="8519567801353014036">"Prøv å plassere enheten nærmere Wifi-tilgangspunktet/-ruteren"</string>
<string name="wifi_dpp_failure_enrollee_authentication" msgid="7008840843663520852">"Sjekk passordet og prøv igjen"</string>
<string name="wifi_dpp_failure_enrollee_rejected_configuration" msgid="982310033782652478">"Kontakt produsenten av enheten"</string>
<string name="wifi_dpp_check_connection_try_again" msgid="6118892932595974823">"Sjekk tilkoblingen og prøv igjen"</string>
@@ -1142,7 +1142,7 @@
<string name="wifi_dpp_choose_different_network" msgid="8963625819804792157">"Velg et annet nettverk"</string>
<string name="wifi_dpp_could_not_add_device" msgid="6865710911186601933">"Kunne ikke legge til enheten"</string>
<string name="wifi_dpp_device_found" msgid="633646744759830603">"Fant en enhet"</string>
- <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deler Wi-Fi med denne enheten …"</string>
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deler Wifi med denne enheten …"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Kobler til …"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Del wifi-sone"</string>
<string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Bekreft at det er deg"</string>
@@ -1167,10 +1167,10 @@
<string name="wifi_no_user_cert_warning" msgid="8466376918835248956">"Sertifikat er påkrevd."</string>
<string name="wifi_wps_available_first_item" msgid="5780501151792036589">"WPS tilgjengelig"</string>
<string name="wifi_wps_available_second_item" msgid="1717024103303480804">" (WPS tilgjengelig)"</string>
- <string name="wifi_carrier_connect" msgid="4511538300946413213">"Operatørens Wi-Fi-nettverk"</string>
+ <string name="wifi_carrier_connect" msgid="4511538300946413213">"Operatørens Wifi-nettverk"</string>
<string name="wifi_carrier_content" msgid="2876499905644083615">"Koble til via <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="wifi_scan_always_turnon_message" msgid="2165909441512029921">"<xliff:g id="APP_NAME">%1$s</xliff:g> ønsker å bruke nettverksskanning, også når Wi-Fi er slått av, for bedre posisjonsnøyaktighet og andre formål. \n\nVil du tillate dette for alle apper som prøver å skanne?"</string>
- <string name="wifi_scan_always_turn_on_message_unknown" msgid="4903345360745717385">"En ukjent app ønsker å bruke nettverksskanning, også når Wi-Fi er slått av, for bedre posisjonsnøyaktighet og andre formål.\n\nVil du tillate dette for alle apper som prøver å skanne?"</string>
+ <string name="wifi_scan_always_turnon_message" msgid="2165909441512029921">"<xliff:g id="APP_NAME">%1$s</xliff:g> ønsker å bruke nettverksskanning, også når Wifi er slått av, for bedre posisjonsnøyaktighet og andre formål. \n\nVil du tillate dette for alle apper som prøver å skanne?"</string>
+ <string name="wifi_scan_always_turn_on_message_unknown" msgid="4903345360745717385">"En ukjent app ønsker å bruke nettverksskanning, også når Wifi er slått av, for bedre posisjonsnøyaktighet og andre formål.\n\nVil du tillate dette for alle apper som prøver å skanne?"</string>
<string name="wifi_scan_always_turnoff_message" msgid="93691286302680448">"For å slå dette av går du til Avansert i overflytsmenyen."</string>
<string name="wifi_scan_always_confirm_allow" msgid="4154200627800959777">"Tillat"</string>
<string name="wifi_scan_always_confirm_deny" msgid="6997087934558839256">"Avvis"</string>
@@ -1181,12 +1181,12 @@
<string name="partial_connectivity_text" msgid="8874614799723694554">"Noen apper og tjenester fungerer muligens ikke på grunn av begrenset tilkobling. Bruke likevel?"</string>
<string name="no_internet_access_remember" msgid="5113610157731269258">"Ikke spør igjen for dette nettverket"</string>
<string name="lost_internet_access_title" msgid="9032463989950384698">"Wi‑Fi er ikke koblet til Internett"</string>
- <string name="lost_internet_access_text" msgid="1535911323549496789">"Du kan bytte til mobilnettverket når du har dårlig Wi-Fi-tilkobling. Databrukkostnader kan påløpe."</string>
+ <string name="lost_internet_access_text" msgid="1535911323549496789">"Du kan bytte til mobilnettverket når du har dårlig Wifi-tilkobling. Databrukkostnader kan påløpe."</string>
<string name="lost_internet_access_switch" msgid="7935665847081706202">"Buytt til mobilnettverk"</string>
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Bli værende på Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Ikke vis igjen"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Koble til"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi er slått på"</string>
+ <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi er slått på"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Koblet til <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting_to_message" msgid="3153205024060064551">"Kobler til <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Kobler til …"</string>
@@ -1212,7 +1212,7 @@
<item quantity="other">%d nettverk og abonnementer</item>
<item quantity="one">1 nettverk og abonnement</item>
</plurals>
- <string name="wifi_advanced_titlebar" msgid="1234150304285575798">"Avanserte Wi-Fi-innst."</string>
+ <string name="wifi_advanced_titlebar" msgid="1234150304285575798">"Avanserte Wifi-innst."</string>
<string name="wifi_advanced_ssid_title" msgid="1561437650193980185">"SSID"</string>
<string name="wifi_advanced_device_mac_address_title" msgid="6155800851233164411">"Enhetens MAC-adresse"</string>
<string name="wifi_advanced_randomized_mac_address_title" msgid="3930671320234553088">"Tilfeldig valgt MAC-adresse"</string>
@@ -1227,7 +1227,7 @@
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Abonnementer"</string>
<string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Andre nettverk"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP-innstillinger"</string>
- <string name="wifi_advanced_not_available" msgid="8701003884367299092">"De avanserte innstillingene for Wi-Fi er ikke tilgjengelig for denne brukeren"</string>
+ <string name="wifi_advanced_not_available" msgid="8701003884367299092">"De avanserte innstillingene for wifi er ikke tilgjengelig for denne brukeren"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Lagre"</string>
<string name="wifi_ip_settings_menu_cancel" msgid="1757817733064004598">"Avbryt"</string>
<string name="wifi_ip_settings_invalid_ip_address" msgid="3622891107865052307">"Angi en gyldig IP-adresse."</string>
@@ -1258,20 +1258,20 @@
<string name="wifi_hotspot_off_subtext" msgid="2751383134504362078">"Deler ikke internett eller innhold med andre enheter"</string>
<string name="wifi_hotspot_tethering_on_subtext" product="tablet" msgid="5832429443898690152">"Deler nettbrettets internettilkobling via wifi-sone"</string>
<string name="wifi_hotspot_tethering_on_subtext" product="default" msgid="5451921191609178326">"Deler telefonens internettilkobling via wifi-sone"</string>
- <string name="wifi_hotspot_on_local_only_subtext" msgid="965051079784031636">"Appen deler innhold. For å dele Internett-tilkoblingen, slå Wi-Fi-sonen av og deretter på"</string>
+ <string name="wifi_hotspot_on_local_only_subtext" msgid="965051079784031636">"Appen deler innhold. For å dele Internett-tilkoblingen, slå Wifi-sonen av og deretter på"</string>
<string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Ingen passord er angitt"</string>
<string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Navn på wifi-sone"</string>
<string name="wifi_hotspot_name_summary_connecting" msgid="2094754115215428892">"Slår på <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g> …"</string>
<string name="wifi_hotspot_name_summary_connected" msgid="6935457127884928249">"Andre enheter kan koble til <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g>"</string>
<string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Passord for wifi-sone"</string>
<string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP-bånd"</string>
- <string name="wifi_hotspot_footer_info_regular" msgid="6620216295510397461">"Bruk Wi-Fi-soner for å opprette Wi-Fi-nettverk for de andre enhetene dine. Wi-Fi-soner gir Internett-tilgang ved hjelp av mobildatatilkoblingen din. Ytterligere avgifter for databruk kan påløpe."</string>
- <string name="wifi_hotspot_footer_info_local_only" msgid="3813311942370920903">"Du kan bruke apper til å opprette Wi-Fi-soner for deling av innhold med enheter i nærheten."</string>
+ <string name="wifi_hotspot_footer_info_regular" msgid="6620216295510397461">"Bruk Wifi-soner for å opprette Wifi-nettverk for de andre enhetene dine. Wifi-soner gir Internett-tilgang ved hjelp av mobildatatilkoblingen din. Ytterligere avgifter for databruk kan påløpe."</string>
+ <string name="wifi_hotspot_footer_info_local_only" msgid="3813311942370920903">"Du kan bruke apper til å opprette Wifi-soner for deling av innhold med enheter i nærheten."</string>
<string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Slå av wifi-sone automatisk"</string>
<string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Når ingen enheter er tilkoblet"</string>
<string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Utvid kompatibilitet"</string>
- <string name="wifi_hotspot_maximize_compatibility_single_ap_summary" msgid="383355687431591441">"Dette hjelper andre enheter med å finne denne Wi-Fi-sonen. Dette reduserer tilkoblingshastigheten."</string>
- <string name="wifi_hotspot_maximize_compatibility_dual_ap_summary" msgid="3579549223159056533">"Dette hjelper andre enheter med å finne denne Wi-Fi-sonen. Øker batteribruken."</string>
+ <string name="wifi_hotspot_maximize_compatibility_single_ap_summary" msgid="383355687431591441">"Dette hjelper andre enheter med å finne denne Wifi-sonen. Dette reduserer tilkoblingshastigheten."</string>
+ <string name="wifi_hotspot_maximize_compatibility_dual_ap_summary" msgid="3579549223159056533">"Dette hjelper andre enheter med å finne denne Wifi-sonen. Øker batteribruken."</string>
<string name="wifi_tether_starting" msgid="8879874184033857814">"Slår på wifi-sone …"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Slår av trådløs sone …"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Internettdeling er utilgjengelig"</string>
@@ -1305,19 +1305,19 @@
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="6052353275413974742">"Wifi"</item>
<item msgid="8622872038388687383">"Mobil"</item>
- <item msgid="3027927219952052398">"Bare Wi-Fi"</item>
+ <item msgid="3027927219952052398">"Bare Wifi"</item>
</string-array>
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="588620799769664461">"Wifi"</item>
<item msgid="7566603075659706590">"Mobil"</item>
</string-array>
- <string name="wifi_calling_mode_wifi_preferred_summary" msgid="3240387177966098351">"Bruk mobilnettverk hvis Wi-Fi er utilgjengelig"</string>
- <string name="wifi_calling_mode_cellular_preferred_summary" msgid="3746914244902314059">"Bruk Wi-Fi hvis mobilnettverket er utilgjengelig"</string>
+ <string name="wifi_calling_mode_wifi_preferred_summary" msgid="3240387177966098351">"Bruk mobilnettverk hvis Wifi er utilgjengelig"</string>
+ <string name="wifi_calling_mode_cellular_preferred_summary" msgid="3746914244902314059">"Bruk Wifi hvis mobilnettverket er utilgjengelig"</string>
<string name="wifi_calling_mode_wifi_only_summary" msgid="3155660680014892641">"Ring via Wi‑Fi. Samtalen avsluttes hvis du mister Wi‑Fi-tilkoblingen."</string>
- <string name="wifi_calling_off_explanation" msgid="6295526820826322895">"Når wifi-anrop er slått på, kan telefonen din dirigere telefonsamtaler via Wi-Fi-nettverk eller operatørens nettverk, avhengig av hva du har angitt i innstillingene og hvilket signal som er sterkest. Før du slår på denne funksjonen, er det viktig å sjekke gebyrer og andre detaljer med operatøren din.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
+ <string name="wifi_calling_off_explanation" msgid="6295526820826322895">"Når wifi-anrop er slått på, kan telefonen din dirigere telefonsamtaler via Wifi-nettverk eller operatørens nettverk, avhengig av hva du har angitt i innstillingene og hvilket signal som er sterkest. Før du slår på denne funksjonen, er det viktig å sjekke gebyrer og andre detaljer med operatøren din.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="3487475808574416183"></string>
<string name="emergency_address_title" msgid="8102786488994263815">"Adresse for nødssituasjoner"</string>
- <string name="emergency_address_summary" msgid="3022628750270626473">"Brukes som posisjonen din når du gjør et nødanrop over Wi-Fi"</string>
+ <string name="emergency_address_summary" msgid="3022628750270626473">"Brukes som posisjonen din når du gjør et nødanrop over Wifi"</string>
<string name="private_dns_help_message" msgid="851221502063782306"><annotation id="url">"Finn ut mer"</annotation>" om funksjoner for privat DNS"</string>
<string name="private_dns_mode_on" msgid="8878679071975375696">"På"</string>
<string name="wifi_calling_pref_managed_by_carrier" msgid="129524064888622179">"Innstillingen administreres av operatøren"</string>
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Prøv forskjellige stiler, bakgrunner med mer"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Skjermsparer"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"skjermsparer"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Bruk skjermsparer"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Når enheten lades / er i dokken"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Når enheten lades"</string>
@@ -1610,7 +1612,7 @@
<string name="scanning_status_text_off" msgid="4002352668313705132">"Av"</string>
<string name="scanning_status_text_wifi_on_ble_on" msgid="7644609329607744714">"Både Wi‑Fi- og Bluetooth-søking er på"</string>
<string name="scanning_status_text_wifi_on_ble_off" msgid="7215007787287418186">"Wi‑Fi-søking er på, Bluetooth-søking er av"</string>
- <string name="scanning_status_text_wifi_off_ble_on" msgid="1396882599556304165">"Bluetooth-søking er på, Wi-Fi-søking er av"</string>
+ <string name="scanning_status_text_wifi_off_ble_on" msgid="1396882599556304165">"Bluetooth-søking er på, Wifi-søking er av"</string>
<string name="scanning_status_text_wifi_off_ble_off" msgid="7670694707427030537">"Både Wi‑Fi- og Bluetooth-søking er av"</string>
<string name="status_meid_number" msgid="6040380838489162650">"MEID"</string>
<string name="status_icc_id" msgid="7995690631650006970">"ICCID"</string>
@@ -1624,7 +1626,7 @@
<string name="status_roaming" msgid="1253597174715663778">"Roaming"</string>
<string name="status_operator" msgid="4335640583552058491">"Nettverk"</string>
<string name="status_wifi_mac_address" msgid="4447611754614388914">"MAC-adresse for wifi"</string>
- <string name="status_device_wifi_mac_address" msgid="1896121694334176494">"Enhetens Wi-Fi-MAC-adresse"</string>
+ <string name="status_device_wifi_mac_address" msgid="1896121694334176494">"Enhetens Wifi-MAC-adresse"</string>
<string name="status_bt_address" msgid="6919660304578476547">"Bluetooth-adresse"</string>
<string name="status_serial_number" msgid="9060064164331466789">"Serienummer"</string>
<string name="status_up_time" msgid="1274778533719495438">"Oppetid"</string>
@@ -1828,7 +1830,7 @@
<string name="reset_dashboard_title" msgid="7423200250697886918">"Alternativer for tilbakestilling"</string>
<string name="reset_dashboard_summary" msgid="4390780188264852956">"Nettverket, appene eller enheten kan tilbakestilles"</string>
<string name="reset_dashboard_summary_onlyApps" msgid="3304252260039419584">"Apper kan tilbakestilles"</string>
- <string name="reset_network_title" msgid="1395494440355807616">"Tilbakestill Wi-Fi, mobil og Bluetooth"</string>
+ <string name="reset_network_title" msgid="1395494440355807616">"Tilbakestill Wifi, mobil og Bluetooth"</string>
<string name="reset_network_desc" msgid="1112523764899788246">"Dette tilbakestiller alle nettverksinnstillinger, inkludert\n\n"<li>"Wi‑Fi"</li>\n<li>"mobildata"</li>\n<li>"Bluetooth"</li></string>
<string name="erase_euicc_data_button" msgid="728078969563311737">"Slett"</string>
<string name="reset_esim_title" msgid="6152167073280852849">"Slett nedlastede SIM-kort"</string>
@@ -1875,7 +1877,7 @@
<string name="tether_settings_summary_hotspot_on_tether_on" msgid="6110241048260139633">"Wifi-sone på, internettdeling"</string>
<string name="tether_settings_summary_hotspot_on_tether_off" msgid="5057598961245943644">"Wifi-sone på"</string>
<string name="tether_settings_summary_hotspot_off_tether_on" msgid="7181518138494995888">"Internettdeling"</string>
- <string name="tether_settings_disabled_on_data_saver" msgid="9054069463426952689">"Kan ikke bruke internettdeling eller flyttbare Wi-Fi-soner mens Datasparing er på"</string>
+ <string name="tether_settings_disabled_on_data_saver" msgid="9054069463426952689">"Kan ikke bruke internettdeling eller flyttbare Wifi-soner mens Datasparing er på"</string>
<string name="tether_settings_summary_hotspot_only" msgid="8529008147731140279">"Bare wifi-sone"</string>
<string name="tether_settings_summary_usb_tethering_only" msgid="6351624505239356221">"Bare USB"</string>
<string name="tether_settings_summary_bluetooth_tethering_only" msgid="1451008625343274930">"Bare Bluetooth"</string>
@@ -1914,7 +1916,7 @@
<string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet-internettdeling"</string>
<string name="ethernet_tethering_subtext" product="default" msgid="5998100693350351694">"Del telefonens internettilkobling via Ethernet"</string>
<string name="tethering_footer_info" msgid="6782375845587483281">"Bruk wifi-sone og internettdeling for å gi andre enheter tilgang til internett via mobildataforbindelsen din. Apper kan også opprette en wifi-sone for å dele innhold med enheter i nærheten."</string>
- <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Bruk Wi-Fi-soner og internettdeling for å gi andre enheter internettilgang via Wi-Fi- eller mobildatatilkoblingen din. Du kan også bruke apper til å opprette Wi-Fi-soner for å dele innhold med enheter i nærheten."</string>
+ <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Bruk Wifi-soner og internettdeling for å gi andre enheter internettilgang via Wifi- eller mobildatatilkoblingen din. Du kan også bruke apper til å opprette Wifi-soner for å dele innhold med enheter i nærheten."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Hjelp"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobilnettverk"</string>
<string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilabonnement"</string>
@@ -1950,7 +1952,7 @@
<string name="location_high_battery_use" msgid="4277318891200626524">"Høy batteribruk"</string>
<string name="location_low_battery_use" msgid="5218950289737996431">"Lav batteribruk"</string>
<string name="location_scanning_wifi_always_scanning_title" msgid="5004781272733434794">"Wi‑Fi-skanning"</string>
- <string name="location_scanning_wifi_always_scanning_description" msgid="6236055656376931306">"La apper og tjenester søke etter Wi-Fi-nettverk når som helst, selv når Wi-Fi er slått av. Dette kan for eksempel brukes til å forbedre posisjonsbaserte funksjoner og tjenester."</string>
+ <string name="location_scanning_wifi_always_scanning_description" msgid="6236055656376931306">"La apper og tjenester søke etter Wifi-nettverk når som helst, selv når Wifi er slått av. Dette kan for eksempel brukes til å forbedre posisjonsbaserte funksjoner og tjenester."</string>
<string name="location_scanning_bluetooth_always_scanning_title" msgid="1809309545730215891">"Bluetooth-søking"</string>
<string name="location_scanning_bluetooth_always_scanning_description" msgid="5362988856388462841">"La apper og tjenester søke etter enheter i nærheten når som helst, selv når Bluetooth er slått av. Dette kan for eksempel brukes til å forbedre posisjonsbaserte funksjoner og tjenester."</string>
<string name="location_services_preference_title" msgid="604317859531782159">"Posisjonstjenester"</string>
@@ -1965,9 +1967,9 @@
<string name="location_time_zone_detection_not_applicable" msgid="6757964612836952714">"Gjenkjenning av tidssone basert på posisjon er slått av"</string>
<string name="location_time_zone_detection_not_supported" msgid="3251181656388306501">"Gjenkjenning av tidssone basert på posisjon støttes ikke"</string>
<string name="location_time_zone_detection_not_allowed" msgid="8264525161514617051">"Du har ikke tillatelse til å endre gjenkjenning av tidssone"</string>
- <string name="location_network_based" msgid="5247042890080021887">"Wi-Fi- og mobilnettverksposisjon"</string>
+ <string name="location_network_based" msgid="5247042890080021887">"Wifi- og mobilnettverksposisjon"</string>
<string name="location_neighborhood_level" msgid="3668890550358558267">"Tillat at apper bruker posisjonstjenesten fra Google til å finne posisjonen din raskere. Anonym posisjonsdata blir samlet inn og sendt til Google."</string>
- <string name="location_neighborhood_level_wifi" msgid="6227393490651891977">"Posisjon fastsatt av Wi-Fi"</string>
+ <string name="location_neighborhood_level_wifi" msgid="6227393490651891977">"Posisjon fastsatt av Wifi"</string>
<string name="location_gps" msgid="8783616672454701134">"GPS-satellitter"</string>
<string name="location_street_level" product="tablet" msgid="865953107414742784">"Tillat at apper bruker GPS på nettbrettet til å finne den eksakte posisjonen din"</string>
<string name="location_street_level" product="default" msgid="3813836654645896185">"Tillat at apper bruker GPS på telefonen til å finne den eksakte posisjonen din"</string>
@@ -2155,8 +2157,8 @@
<string name="ask_compatibility" msgid="8388397595148476565">"Spør ved oppstart"</string>
<string name="enable_compatibility" msgid="1163387233622859712">"Skalér app"</string>
<string name="unknown" msgid="8192160131923461175">"Ukjent"</string>
- <string name="sort_order_alpha" msgid="3400680865280266582">"Sortér etter navn"</string>
- <string name="sort_order_size" msgid="7731928486199737223">"Sortér etter størrelse"</string>
+ <string name="sort_order_alpha" msgid="3400680865280266582">"Sorter etter navn"</string>
+ <string name="sort_order_size" msgid="7731928486199737223">"Sorter etter størrelse"</string>
<string name="sort_order_recent_notification" msgid="1496198895330443073">"Siste varsler"</string>
<string name="sort_order_frequent_notification" msgid="4063700985742284794">"Oftest varsler"</string>
<string name="show_running_services" msgid="8666008279959853318">"Vis aktive tjenester"</string>
@@ -2796,8 +2798,8 @@
<!-- no translation found for battery_stats_last_duration (3088100394725340600) -->
<skip />
<string name="awake" msgid="5405871714019268978">"Tid enheten har vært våken"</string>
- <string name="wifi_on_time" msgid="3880778525760926066">"Wi-Fi – aktivt i"</string>
- <string name="bluetooth_on_time" msgid="8424625554628450028">"Wi-Fi – aktivt i"</string>
+ <string name="wifi_on_time" msgid="3880778525760926066">"Wifi – aktivt i"</string>
+ <string name="bluetooth_on_time" msgid="8424625554628450028">"Wifi – aktivt i"</string>
<string name="advanced_battery_title" msgid="3005993394776555079">"Batteribruk"</string>
<string name="history_details_title" msgid="8628584613889559355">"Loggdetaljer"</string>
<string name="advanced_battery_preference_title" msgid="3790901207877260883">"Batteribruk"</string>
@@ -2923,14 +2925,14 @@
<string name="usage_type_cpu_foreground" msgid="6120871498122604239">"Prosessor i forgrunnen"</string>
<string name="usage_type_wake_lock" msgid="3442487584173668904">"Behold aktiv"</string>
<string name="usage_type_gps" msgid="4118035982288964651">"GPS"</string>
- <string name="usage_type_wifi_running" msgid="5573404832197356206">"Wi-Fi kjører"</string>
+ <string name="usage_type_wifi_running" msgid="5573404832197356206">"Wifi kjører"</string>
<string name="usage_type_phone" product="tablet" msgid="4527092861928972130">"Nettbrett"</string>
<string name="usage_type_phone" product="default" msgid="4149330237181984782">"Telefon"</string>
<string name="usage_type_data_send" msgid="4375755152437282184">"Mobilpakkene er sendt"</string>
<string name="usage_type_data_recv" msgid="7821924049621005218">"Mobilpakkene er mottatt"</string>
<string name="usage_type_radio_active" msgid="1876069445855950097">"Aktiv mobilradio"</string>
- <string name="usage_type_data_wifi_send" msgid="6154038607322769558">"Wi-Fi-pakkene er sendt"</string>
- <string name="usage_type_data_wifi_recv" msgid="4821128213012023100">"Wi-Fi-pakkene er mottatt"</string>
+ <string name="usage_type_data_wifi_send" msgid="6154038607322769558">"Wifi-pakkene er sendt"</string>
+ <string name="usage_type_data_wifi_recv" msgid="4821128213012023100">"Wifi-pakkene er mottatt"</string>
<string name="usage_type_audio" msgid="1100651355357912864">"Lyd"</string>
<string name="usage_type_video" msgid="1068481638906679035">"Video"</string>
<string name="usage_type_camera" msgid="3999579307204257822">"Kamera"</string>
@@ -2944,7 +2946,7 @@
<string name="battery_action_app_details" msgid="7201369216798227707">"Info om appen"</string>
<string name="battery_action_app_settings" msgid="2437124469335488464">"Innstillinger for app"</string>
<string name="battery_action_display" msgid="6515712081248863749">"Skjerminnstillinger"</string>
- <string name="battery_action_wifi" msgid="1829212604573932607">"Innstillinger for Wi-Fi"</string>
+ <string name="battery_action_wifi" msgid="1829212604573932607">"Innstillinger for wifi"</string>
<string name="battery_action_bluetooth" msgid="4723692623358386789">"Innstillinger for Bluetooth"</string>
<string name="battery_desc_voice" msgid="6900799826084022585">"Batteri brukt av telefonsamtaler"</string>
<string name="battery_desc_standby" product="tablet" msgid="5818742458684767043">"Batteri brukt når nettbrettet ikke er i bruk"</string>
@@ -2955,8 +2957,8 @@
<string name="battery_desc_camera" msgid="6152712271731518018">"Batteri som brukes av kameraet"</string>
<string name="battery_desc_display" msgid="7175017688954602685">"Batteri brukt av skjermen og baklyset"</string>
<string name="battery_sugg_display" msgid="3102137296547788111">"Reduser lysstyrken og/eller tidsavbruddet for aktivering av skjermsparer"</string>
- <string name="battery_desc_wifi" msgid="5276669172548928768">"Batteri brukt av Wi-Fi"</string>
- <string name="battery_sugg_wifi" msgid="359757575108350109">"Slå av Wi-Fi når du ikke bruker det, eller det ikke er tilgjengelig"</string>
+ <string name="battery_desc_wifi" msgid="5276669172548928768">"Batteri brukt av Wifi"</string>
+ <string name="battery_sugg_wifi" msgid="359757575108350109">"Slå av Wifi når du ikke bruker det, eller det ikke er tilgjengelig"</string>
<string name="battery_desc_bluetooth" msgid="2237947137783306282">"Batteri brukt av Bluetooth"</string>
<string name="battery_sugg_bluetooth_basic" msgid="8943564578546832037">"Slå av Bluetooth når den ikke er i bruk"</string>
<string name="battery_sugg_bluetooth_headset" msgid="6495519793211758353">"Prøv å koble til en annen Bluetooth-enhet"</string>
@@ -3137,7 +3139,7 @@
<string name="advanced_security_title" msgid="7117581975877192652">"Avansert"</string>
<string name="credentials_settings_not_available" msgid="7433088409177429600">"Legitimasjon er ikke tilgjengelig for denne brukeren"</string>
<string name="credential_for_vpn_and_apps" msgid="2208229692860871136">"Installert for VPN og apper"</string>
- <string name="credential_for_wifi" msgid="1963335263280604998">"Installert for Wi-Fi"</string>
+ <string name="credential_for_wifi" msgid="1963335263280604998">"Installert for wifi"</string>
<string name="credentials_reset_hint" msgid="4054601857203464867">"Vil du fjerne alt innholdet?"</string>
<string name="credentials_erased" msgid="9121052044566053345">"Legitimasjonslageret ble tømt."</string>
<string name="credentials_not_erased" msgid="3611058412683184031">"Leg.lageret kan ikke slettes."</string>
@@ -3281,7 +3283,7 @@
<string name="data_usage_menu_restrict_background" msgid="1414574366645086133">"Begrens bakgrunnsdata"</string>
<string name="data_usage_menu_allow_background" msgid="6242931073390680432">"Tillat bakgrunnsdata"</string>
<string name="data_usage_menu_split_4g" msgid="3391899816926640583">"Separat 4G-bruk"</string>
- <string name="data_usage_menu_show_wifi" msgid="6380926350184939975">"Vis Wi-Fi"</string>
+ <string name="data_usage_menu_show_wifi" msgid="6380926350184939975">"Vis Wifi"</string>
<string name="data_usage_menu_hide_wifi" msgid="4694889089278302691">"Skjul Wi‑Fi"</string>
<string name="data_usage_menu_show_ethernet" msgid="4401026240876938859">"Vis Ethernet-bruk"</string>
<string name="data_usage_menu_hide_ethernet" msgid="7792365022467586772">"Skjul Ethernet-bruk"</string>
@@ -3302,7 +3304,7 @@
<string name="data_usage_disable_mobile_limit" msgid="1370147078938479538">"Angi datagrense for mobil"</string>
<string name="data_usage_disable_4g_limit" msgid="3084868504051520840">"Angi datagrense for 4G"</string>
<string name="data_usage_disable_3g_limit" msgid="8867555130268898044">"Angi datagrense for 2G/3G"</string>
- <string name="data_usage_disable_wifi_limit" msgid="7222459951785404241">"Angi datagrense for Wi-Fi"</string>
+ <string name="data_usage_disable_wifi_limit" msgid="7222459951785404241">"Angi datagrense for wifi"</string>
<string name="data_usage_tab_wifi" msgid="801667863336456787">"Wifi"</string>
<string name="data_usage_tab_ethernet" msgid="2951873059375493878">"Ethernet"</string>
<string name="data_usage_tab_mobile" msgid="952231704205870928">"Mobil"</string>
@@ -3337,9 +3339,9 @@
<string name="data_usage_limit_dialog_mobile" product="tablet" msgid="6000062970083379466">"Nettbrettet slår av mobildata når det har nådd grensen du har angitt.\n\nSiden databruken måles av nettbrettet, og operatøren din kan beregne bruken annerledes, kan det være lurt å angi en konservativ grense."</string>
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4942895670789168024">"Mobildata slås av når du har brukt mengden du har angitt som grense.\n\nSiden databruken måles av telefonen og operatøren din kan beregne bruken annerledes, kan det være lurt å angi en lav grense."</string>
<string name="data_usage_restrict_background_title" msgid="2745551538820692821">"Vil du begrense bruken av bakgrunnsdata?"</string>
- <string name="data_usage_restrict_background" msgid="1893102079135282794">"Hvis du begrenser mobildatabruk i bakgrunnen, er det enkelte apper og tjenester som ikke fungerer med mindre du er tilkoblet Wi-Fi."</string>
- <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="5588623586867665419">"Hvis du begrenser mobildatabruk i bakgrunnen, er det enkelte apper og tjenester som ikke fungerer med mindre du er tilkoblet Wi-Fi.\n\nDenne innstillingen påvirker alle brukerne på dette nettbrettet."</string>
- <string name="data_usage_restrict_background_multiuser" product="default" msgid="6402714504088590463">"Hvis du begrenser mobildatabruk i bakgrunnen, er det enkelte apper og tjenester som ikke fungerer med mindre du er tilkoblet Wi-Fi.\n\nDenne innstillingen påvirker alle brukerne på denne telefonen."</string>
+ <string name="data_usage_restrict_background" msgid="1893102079135282794">"Hvis du begrenser mobildatabruk i bakgrunnen, er det enkelte apper og tjenester som ikke fungerer med mindre du er tilkoblet wifi."</string>
+ <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="5588623586867665419">"Hvis du begrenser mobildatabruk i bakgrunnen, er det enkelte apper og tjenester som ikke fungerer med mindre du er tilkoblet wifi.\n\nDenne innstillingen påvirker alle brukerne på dette nettbrettet."</string>
+ <string name="data_usage_restrict_background_multiuser" product="default" msgid="6402714504088590463">"Hvis du begrenser mobildatabruk i bakgrunnen, er det enkelte apper og tjenester som ikke fungerer med mindre du er tilkoblet wifi.\n\nDenne innstillingen påvirker alle brukerne på denne telefonen."</string>
<string name="data_usage_sweep_warning" msgid="2072854703184614828"><font size="18">"<xliff:g id="NUMBER">^1</xliff:g>"</font>" "<font size="9">"<xliff:g id="UNIT">^2</xliff:g>"</font>\n<font size="12">"advarsel"</font></string>
<string name="data_usage_sweep_limit" msgid="6947019190890086284"><font size="18">"<xliff:g id="NUMBER">^1</xliff:g>"</font>" "<font size="9">"<xliff:g id="UNIT">^2</xliff:g>"</font>\n<font size="12">"grense"</font></string>
<string name="data_usage_uninstalled_apps" msgid="9065885396147675694">"Fjernede apper"</string>
@@ -3352,7 +3354,7 @@
<string name="data_usage_metered_body" msgid="1206840367501998582">"Nettverk med datamåling behandles som mobilnettverk når bruk av bakgrunnsdata er begrenset. Du mottar kanskje en advarsel før apper bruker slike nettverk til store nedlastinger."</string>
<string name="data_usage_metered_mobile" msgid="3514227339274396401">"Mobilnettverk"</string>
<string name="data_usage_metered_wifi" msgid="4807465959110473407">"Wi‑Fi-nettverk med datamåling"</string>
- <string name="data_usage_metered_wifi_disabled" msgid="4664158157415362613">"Du må slå på Wi-Fi for å velge nettverk med datamåling."</string>
+ <string name="data_usage_metered_wifi_disabled" msgid="4664158157415362613">"Du må slå på Wifi for å velge nettverk med datamåling."</string>
<string name="data_usage_metered_auto" msgid="1560514082131687116">"Automatisk"</string>
<string name="wifi_metered_title" msgid="6623732965268033931">"Nettverksbruk"</string>
<string name="data_usage_metered_yes" msgid="4262598072030135223">"Med datamåling"</string>
@@ -3602,8 +3604,8 @@
<string name="user_restrictions_controlled_by" msgid="2821526006742851624">"Kontrollert av <xliff:g id="APP">%1$s</xliff:g>"</string>
<string name="app_sees_restricted_accounts" msgid="3526008344222566318">"Denne appen har tilgang til kontoene dine"</string>
<string name="app_sees_restricted_accounts_and_controlled_by" msgid="8338520379923447143">"Denne appen har tilgang til kontoene dine. Kontrollert av <xliff:g id="APP">%1$s</xliff:g>"</string>
- <string name="restriction_wifi_config_title" msgid="2630656989926554685">"Wi-Fi og mobil"</string>
- <string name="restriction_wifi_config_summary" msgid="920419010472168694">"Tillat endring av Wi-Fi- og mobilinnstillinger"</string>
+ <string name="restriction_wifi_config_title" msgid="2630656989926554685">"Wifi og mobil"</string>
+ <string name="restriction_wifi_config_summary" msgid="920419010472168694">"Tillat endring av Wifi- og mobilinnstillinger"</string>
<string name="restriction_bluetooth_config_title" msgid="220586273589093821">"Bluetooth"</string>
<string name="restriction_bluetooth_config_summary" msgid="7558879931011271603">"Tillat endring av Blutetooth-tilkoblinger og -innstillinger"</string>
<string name="restriction_nfc_enable_title" msgid="525512312298242911">"NFC"</string>
@@ -3667,7 +3669,7 @@
</plurals>
<string name="network_dashboard_title" msgid="788543070557731240">"Nettverk og internett"</string>
<string name="network_dashboard_summary_mobile" msgid="7750924671970583670">"Mobil, Wi‑Fi, wifi-sone"</string>
- <string name="network_dashboard_summary_no_mobile" msgid="4022575916334910790">"Wi-Fi, wifi-sone"</string>
+ <string name="network_dashboard_summary_no_mobile" msgid="4022575916334910790">"Wifi, wifi-sone"</string>
<string name="connected_devices_dashboard_title" msgid="19868275519754895">"Tilkoblede enheter"</string>
<string name="connected_devices_dashboard_default_summary" msgid="7211769956193710397">"Bluetooth, tilkobling"</string>
<string name="connected_devices_dashboard_summary" msgid="6927727617078296491">"Bluetooth, kjøremodus, NFC"</string>
@@ -3688,7 +3690,7 @@
<string name="app_default_dashboard_title" msgid="4071015747629103216">"Standardapper"</string>
<string name="system_dashboard_summary" msgid="7400745270362833832">"Språk, bevegelser, klokkeslett, sikkerhetskopi"</string>
<string name="search_results_title" msgid="3360639917793022533">"Innstillinger"</string>
- <string name="keywords_wifi" msgid="8156528242318351490">"wifi, Wi-Fi, nettverkstilkobling, Internett, trådløs, data, Wi Fi"</string>
+ <string name="keywords_wifi" msgid="8156528242318351490">"wifi, Wifi, nettverkstilkobling, Internett, trådløs, data, Wi Fi"</string>
<string name="keywords_wifi_notify_open_networks" msgid="6580896556389306636">"Wi‑Fi-varsel, wifi-varsel"</string>
<string name="keywords_wifi_data_usage" msgid="4718555409695862085">"databruk"</string>
<string name="keywords_time_format" msgid="5384803098766166820">"Bruk 24-timers format"</string>
@@ -3698,9 +3700,9 @@
<string name="keywords_time_zone" msgid="6402919157244589055">"tidssone"</string>
<string name="keywords_draw_overlay" msgid="3170036145197260392">"Chathode, system, varsel, vindu, dialog, skjerm, over andre apper, vis"</string>
<string name="keywords_flashlight" msgid="2133079265697578183">"Lommelykt, lys, lykt"</string>
- <string name="keywords_change_wifi_state" msgid="7573039644328488165">"wifi, Wi-Fi, slå av/på, kontroll"</string>
+ <string name="keywords_change_wifi_state" msgid="7573039644328488165">"wifi, Wifi, slå av/på, kontroll"</string>
<string name="keywords_more_mobile_networks" msgid="5041272719326831744">"mobilnett, mobil, mobiloperatør, trådløs, data, 4G, 3G, 2G, LTE"</string>
- <string name="keywords_wifi_calling" msgid="4319184318421027136">"wifi, Wi-Fi, ring, ringing"</string>
+ <string name="keywords_wifi_calling" msgid="4319184318421027136">"wifi, Wifi, ring, ringing"</string>
<string name="keywords_display" msgid="874738809280751745">"skjerm, berøringsskjerm"</string>
<string name="keywords_display_brightness_level" msgid="850742707616318056">"dim skjermen, berøringsskjerm, batteri, lys"</string>
<string name="keywords_display_night_display" msgid="4711054330804250058">"dim skjermen, natt, fargetone, natteendring, lysstyrke, skjermfarge, farge"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Samtalevolum"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Alarmvolum"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Ringe- og varselvolum"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Ringevolum"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Varselvolum"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Ringetone"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Standard varsellyd"</string>
@@ -4666,8 +4669,8 @@
<string name="memory_details" msgid="6133226869214421347">"Detaljer"</string>
<string name="memory_use_summary" msgid="3915964794146424142">"<xliff:g id="SIZE">%1$s</xliff:g> gjennomsnittlig minne brukt i løpet av de siste tre timene"</string>
<string name="no_memory_use_summary" msgid="6708111974923274436">"Ikke noe minne brukt i løpet av de siste tre timene"</string>
- <string name="sort_avg_use" msgid="4416841047669186903">"Sortér etter gjennomsnittlig bruk"</string>
- <string name="sort_max_use" msgid="3370552820889448484">"Sortér etter maks. bruk"</string>
+ <string name="sort_avg_use" msgid="4416841047669186903">"Sorter etter gjennomsnittlig bruk"</string>
+ <string name="sort_max_use" msgid="3370552820889448484">"Sorter etter maks. bruk"</string>
<string name="memory_performance" msgid="5448274293336927570">"Ytelse"</string>
<string name="total_memory" msgid="5244174393008910567">"Totalt minne"</string>
<string name="average_used" msgid="690235917394070169">"Gjennomsnittlig brukt (%)"</string>
@@ -4789,7 +4792,7 @@
<string name="condition_turn_on" msgid="3911077299444314791">"Slå på"</string>
<string name="condition_expand_show" msgid="1501084007540953213">"Vis"</string>
<string name="condition_expand_hide" msgid="8347564076209121058">"Skjul"</string>
- <string name="condition_hotspot_title" msgid="7903918338790641071">"Wi-Fi-sonen er aktiv"</string>
+ <string name="condition_hotspot_title" msgid="7903918338790641071">"Wifi-sonen er aktiv"</string>
<string name="condition_airplane_title" msgid="5847967403687381705">"Flymodus er på"</string>
<string name="condition_airplane_summary" msgid="1964500689287879888">"Nettverk er utilgjengelige"</string>
<string name="condition_zen_title" msgid="7674761111934567490">"Ikke forstyrr er på"</string>
@@ -4837,13 +4840,13 @@
<string name="usage" msgid="287782903846013936">"Bruk"</string>
<string name="cellular_data_usage" msgid="5874156338825285334">"Bruk av mobildata"</string>
<string name="app_cellular_data_usage" msgid="7603292978956033926">"Databruk av apper"</string>
- <string name="wifi_data_usage" msgid="6868503699134605707">"Wi-Fi-databruk"</string>
+ <string name="wifi_data_usage" msgid="6868503699134605707">"Wifi-databruk"</string>
<string name="non_carrier_data_usage" msgid="6494603202578414755">"Databruk utenfor operatøren"</string>
<string name="ethernet_data_usage" msgid="4552227880905679761">"Ethernet-databruk"</string>
<string name="wifi" msgid="2932584495223243842">"Wifi"</string>
<string name="ethernet" msgid="4665162609974492983">"Ethernet"</string>
<string name="cell_data_template" msgid="6077963976103260821">"<xliff:g id="AMOUNT">^1</xliff:g> mobildata"</string>
- <string name="wifi_data_template" msgid="935934798340307438">"<xliff:g id="AMOUNT">^1</xliff:g> Wi-Fi-data"</string>
+ <string name="wifi_data_template" msgid="935934798340307438">"<xliff:g id="AMOUNT">^1</xliff:g> Wifi-data"</string>
<string name="ethernet_data_template" msgid="1429173767445201145">"<xliff:g id="AMOUNT">^1</xliff:g> ethernet-data"</string>
<string name="billing_cycle" msgid="6618424022653876279">"Datavarsel og -grense"</string>
<string name="app_usage_cycle" msgid="341009528778520583">"Brukssyklus for mobildata"</string>
@@ -5321,8 +5324,8 @@
<string name="my_device_info_device_details_category_title" msgid="4848438695638348680">"Enhetsdetaljer"</string>
<string name="my_device_info_device_identifiers_category_title" msgid="2197063484127704153">"Enhetsidentifikatorer"</string>
<string name="change_wifi_state_title" msgid="5629648102837821525">"Wifi-kontroll"</string>
- <string name="change_wifi_state_app_detail_switch" msgid="1385358508267180745">"Appen kan kontrollere Wi-Fi"</string>
- <string name="change_wifi_state_app_detail_summary" msgid="8230854855584217111">"Tillat at denne appen slår Wi-Fi på eller av, søker etter og kobler til Wi-Fi-nettverk, legger til eller fjerner nettverk eller starter en lokal wifi-sone"</string>
+ <string name="change_wifi_state_app_detail_switch" msgid="1385358508267180745">"Appen kan kontrollere Wifi"</string>
+ <string name="change_wifi_state_app_detail_summary" msgid="8230854855584217111">"Tillat at denne appen slår Wifi på eller av, søker etter og kobler til wifi-nettverk, legger til eller fjerner nettverk eller starter en lokal wifi-sone"</string>
<string name="media_output_title" msgid="8283629315159510680">"Spill av på"</string>
<string name="media_output_label_title" msgid="4139048973886819148">"Spill av <xliff:g id="LABEL">%s</xliff:g> på"</string>
<string name="media_output_default_summary" msgid="4200343059396412376">"Denne enheten"</string>
@@ -5352,7 +5355,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Ignorer"</string>
<string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"For å slå på dette, endre først «Trykk og hold på av/på-knappen» til av/på-menyen."</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Nettverksdetaljer"</string>
- <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Enhetsnavnet ditt er synlig for apper på telefonen. Det kan også ses av andre personer når du kobler til Bluetooth-enheter, kobler til et Wi-Fi-nettverk eller konfigurerer en wifi-sone."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Enhetsnavnet ditt er synlig for apper på telefonen. Det kan også ses av andre personer når du kobler til Bluetooth-enheter, kobler til et Wifi-nettverk eller konfigurerer en wifi-sone."</string>
<string name="devices_title" msgid="649715719278562515">"Enheter"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Alle innstillinger"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Forslag"</string>
@@ -5544,7 +5547,7 @@
<string name="erase_sim_fail_title" msgid="2024446702985862427">"Kan ikke slette SIM-kortet"</string>
<string name="erase_sim_fail_text" msgid="7870804401227483131">"Dette SIM-kortet kan ikke slettes, på grunn av en feil.\n\nStart enheten på nytt og prøv igjen."</string>
<string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Koble til enheten"</string>
- <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Appen <xliff:g id="APPNAME">%1$s</xliff:g> vil bruke et midlertidig Wi-Fi-nettverk for å koble til enheten din"</string>
+ <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Appen <xliff:g id="APPNAME">%1$s</xliff:g> vil bruke et midlertidig Wifi-nettverk for å koble til enheten din"</string>
<string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Fant ingen enheter. Sørg for at enhetene er slått på og tilgjengelige for tilkobling."</string>
<string name="network_connection_timeout_dialog_ok" msgid="6022675321823723755">"Prøv på nytt"</string>
<string name="network_connection_errorstate_dialog_message" msgid="3360714322047603239">"Noe dukket opp. Appen har kansellert forespørselen om å velge en enhet."</string>
@@ -5697,7 +5700,7 @@
<string name="calls_and_sms" msgid="1931855083959003306">"Anrop og SMS"</string>
<string name="calls_and_sms_category" msgid="3788238090898237767">"Wifi-anrop"</string>
<string name="calls_sms_wfc_summary" msgid="3940529919408667336">"Ring og motta anrop via Wi‑Fi"</string>
- <string name="calls_sms_footnote" msgid="1003530944232362815">"Med Wi‑Fi-anrop ringer og mottar du anrop via Wi-Fi-nettverk utenfor operatøren. "<annotation id="url">"Finn ut mer"</annotation></string>
+ <string name="calls_sms_footnote" msgid="1003530944232362815">"Med Wi‑Fi-anrop ringer og mottar du anrop via Wifi-nettverk utenfor operatøren. "<annotation id="url">"Finn ut mer"</annotation></string>
<string name="calls_preference_title" msgid="7536882032182563800">"Anrop"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
<string name="calls_sms_preferred" msgid="6016477652522583496">"foretrukket"</string>
@@ -5708,8 +5711,8 @@
<string name="calls_sms_no_sim" msgid="2336377399761819718">"Uten SIM-kort"</string>
<string name="network_and_internet_preferences_title" msgid="8635896466814033405">"Nettverksinnstillinger"</string>
<string name="keywords_internet" msgid="7674082764898690310">"nettverkstilkobling, internett, trådløs, data, wifi, wi-fi, wi fi, mobilnett, mobil, mobiloperatør, 4g, 3g, 2g, lte"</string>
- <string name="turn_on_wifi" msgid="4868116014727533668">"Slå på Wi-Fi"</string>
- <string name="turn_off_wifi" msgid="8861028501067400694">"Slå av Wi-Fi"</string>
+ <string name="turn_on_wifi" msgid="4868116014727533668">"Slå på Wifi"</string>
+ <string name="turn_off_wifi" msgid="8861028501067400694">"Slå av Wifi"</string>
<string name="reset_your_internet_title" msgid="4856899004343241310">"Vil du tilbakestille internett?"</string>
<string name="reset_internet_text" product="default" msgid="8797910368942544453">"Dette avslutter anropet"</string>
<string name="reset_internet_text" product="tablet" msgid="8797910368942544453">"Dette avslutter anropet"</string>
@@ -5717,7 +5720,7 @@
<string name="fix_connectivity" msgid="2781433603228089501">"Fiks tilkobling"</string>
<string name="networks_available" msgid="3299512933684383474">"Tilgjengelige nettverk"</string>
<string name="to_switch_networks_disconnect_ethernet" msgid="6615374552827587197">"For å bytte nettverk, koble fra Ethernet"</string>
- <string name="wifi_is_off" msgid="8308136482502734453">"Wi-Fi er av"</string>
+ <string name="wifi_is_off" msgid="8308136482502734453">"Wifi er av"</string>
<string name="tap_a_network_to_connect" msgid="8044777400224037875">"Trykk på et nettverk for å koble til"</string>
<string name="carrier_wifi_offload_title" msgid="7263365988016247722">"W+-tilkoblinger"</string>
<string name="carrier_wifi_offload_summary" msgid="2980563718888371142">"Tillat at Google Fi bruker W+-nettverk for å forbedre hastighet og dekning"</string>
@@ -5731,7 +5734,7 @@
<string name="default_active_sim_calls" msgid="2390973682556353558">"anrop"</string>
<string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobildata"</string>
- <string name="wifi_scan_notify_message" msgid="1331238142061476869">"For å forbedre brukeropplevelsen på enheten kan apper og tjenester søke etter Wi-Fi-nettverk når som helst – også når Wi-Fi er slått av. Dette kan for eksempel brukes til å forbedre posisjonsbaserte funksjoner og tjenester. Du kan endre dette i innstillingene for wifi-skanning."</string>
+ <string name="wifi_scan_notify_message" msgid="1331238142061476869">"For å forbedre brukeropplevelsen på enheten kan apper og tjenester søke etter Wifi-nettverk når som helst – også når Wifi er slått av. Dette kan for eksempel brukes til å forbedre posisjonsbaserte funksjoner og tjenester. Du kan endre dette i innstillingene for wifi-skanning."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Endre"</string>
<string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Tilkoblet"</string>
@@ -5740,7 +5743,7 @@
<string name="non_carrier_network_unavailable" msgid="9031567407964127997">"Ingen andre nettverk er tilgjengelige"</string>
<string name="all_network_unavailable" msgid="1163897808282057496">"Ingen nettverk er tilgjengelige"</string>
<string name="mobile_data_disable_title" msgid="8438714772256088913">"Vil du slå av mobildata?"</string>
- <string name="mobile_data_disable_message" msgid="7829414836454769970">"Du får ikke tilgang til data eller internett via <xliff:g id="CARRIER">%s</xliff:g>. Internett er bare tilgjengelig via Wi-Fi."</string>
+ <string name="mobile_data_disable_message" msgid="7829414836454769970">"Du får ikke tilgang til data eller internett via <xliff:g id="CARRIER">%s</xliff:g>. Internett er bare tilgjengelig via Wifi."</string>
<string name="mobile_data_disable_message_default_carrier" msgid="4449469407705838612">"operatøren din"</string>
<string name="not_allowed_by_ent" msgid="1958611623122304411">"Ikke tillatt av organisasjonen din"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Utilgjengelig fordi sengetidsmodus er på"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 37defe2..7139f32 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"विभिन्न शैली, वालपेपर र थप कुरा चलाएर हेर्नुहोस्"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"स्क्रिन सेभर"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"स्क्रिनसेभर"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"स्क्रिन सेभर प्रयोग गरियोस्"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"चार्ज वा डक गरिरहँदा"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"चार्ज गरिरहेका बेला"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"कलको भोल्युम"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"अलार्मको भोल्युम"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"घन्टी तथा सूचनाको भोल्युम"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"घण्टीको भोल्युम"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"ध्वनी सूचना"</string>
<string name="ringtone_title" msgid="3271453110387368088">"फोनको रिङटोन"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"सूचना आउँदा बज्ने डिफल्ट साउन्ड"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index e973c28..4cf1c1a 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Probeer verschillende stijlen, achtergronden en meer"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Screensaver"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"screensaver"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Screensaver gebruiken"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Tijdens opladen of docken"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Tijdens het opladen"</string>
@@ -1764,9 +1766,9 @@
<string name="storage_wizard_format_confirm_v2_action" msgid="5718254101386377126">"<xliff:g id="NAME">^1</xliff:g> formatteren"</string>
<string name="storage_wizard_migrate_v2_title" msgid="3471564531564756698">"Content naar <xliff:g id="NAME">^1</xliff:g> verplaatsen?"</string>
<string name="storage_wizard_migrate_v2_body" product="tablet" msgid="4541523202790415721">"Je kunt bestanden, media en bepaalde apps naar deze <xliff:g id="NAME">^1</xliff:g> verplaatsen. \n\nHiermee maak je <xliff:g id="SIZE">^2</xliff:g> van je tabletopslag vrij. Het overzetten duurt ongeveer <xliff:g id="DURATION">^3</xliff:g>."</string>
- <string name="storage_wizard_migrate_v2_body" product="default" msgid="809730501314645325">"Je kunt bestanden, media en bepaalde apps naar deze <xliff:g id="NAME">^1</xliff:g> verplaatsen. \n\nHiermee maak je <xliff:g id="SIZE">^2</xliff:g> van je telefoonopslag vrij. Het overzetten duurt ongeveer <xliff:g id="DURATION">^3</xliff:g>."</string>
+ <string name="storage_wizard_migrate_v2_body" product="default" msgid="809730501314645325">"Je kunt bestanden, media en bepaalde apps naar <xliff:g id="NAME">^1</xliff:g> verplaatsen. \n\nHiermee maak je <xliff:g id="SIZE">^2</xliff:g> van je telefoonopslag vrij. Het overzetten duurt ongeveer <xliff:g id="DURATION">^3</xliff:g>."</string>
<string name="storage_wizard_migrate_v2_checklist" msgid="2618258869444553060">"Tijdens het overzetten:"</string>
- <string name="storage_wizard_migrate_v2_checklist_media" msgid="5867134681730723744">"verwijder de <xliff:g id="NAME">^1</xliff:g> niet"</string>
+ <string name="storage_wizard_migrate_v2_checklist_media" msgid="5867134681730723744">"verwijder <xliff:g id="NAME">^1</xliff:g> niet"</string>
<string name="storage_wizard_migrate_v2_checklist_apps" msgid="1882077445750580783">"werken sommige apps niet"</string>
<string name="storage_wizard_migrate_v2_checklist_battery" product="tablet" msgid="6111770421449869539">"moet de tablet opgeladen blijven"</string>
<string name="storage_wizard_migrate_v2_checklist_battery" product="default" msgid="8826915870192535008">"moet de telefoon opgeladen blijven"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Gespreksvolume"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Wekkervolume"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volume ringtone en meldingen"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Ringtonevolume"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Meldingsvolume"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Ringtone"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Standaard meldingsgeluid"</string>
@@ -5638,7 +5641,7 @@
<string name="cards_passes_sentence" msgid="1866311782387946944">"Kaarten en passen"</string>
<string name="cards_passes_lower" msgid="2429722007109957877">"kaarten en passen"</string>
<string name="power_menu_setting_name" msgid="2394440932633137229">"Aan/uit-knop ingedrukt houden"</string>
- <string name="power_menu_long_press_category_title" msgid="1051146091093775002">"Aan/uit-knop ingedrukt houden voor toegang"</string>
+ <string name="power_menu_long_press_category_title" msgid="1051146091093775002">"Aan/uit-knop ingedrukt houden voor toegang tot"</string>
<string name="power_menu_long_press_for_power_menu_title" msgid="477584639843663599">"Aan/uit-menu"</string>
<string name="power_menu_long_press_for_assistant_title" msgid="6557738348262616455">"Digitale assistent"</string>
<string name="power_menu_summary_long_press_for_assistant" msgid="32706459458422952">"Digitale assistent openen"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 826f742..d3cc9de 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -1512,6 +1512,7 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"ବିଭିନ୍ନ ଷ୍ଟାଇଲ୍, ୱାଲ୍ପେପର୍ ଏବଂ ଆହୁରି ଅନେକ କିଛି ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"ସ୍କ୍ରିନ୍ ସେଭର୍"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ସ୍କ୍ରିନସେଭର"</string>
+ <string name="screensaver_settings_when_to_dream_bedtime" msgid="3279310576803094771">"ଶୋଇବା ସମୟ ମୋଡ ଚାଲୁ ଥିବା ଯୋଗୁଁ ଉପଲବ୍ଧ ନାହିଁ"</string>
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"ସ୍କ୍ରିନ ସେଭର ବ୍ୟବହାର କରନ୍ତୁ"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"ଚାର୍ଜ ହେଉଥିବା କିମ୍ବା ଡକ୍ ହୋଇଥିବା ବେଳେ"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"ଚାର୍ଜ ହେଉଥିବାବେଳେ"</string>
@@ -3797,6 +3798,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"କଲ୍ ଭଲ୍ୟୁମ୍"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"ଆଲାର୍ମର ଭଲ୍ୟୁମ୍"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"ରିଙ୍ଗ ଏବଂ ବିଜ୍ଞପ୍ତି ଭଲ୍ୟୁମ୍"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"ରିଂ ଭଲ୍ୟୁମ"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"ସୂଚନା ଭଲ୍ୟୁମ"</string>
<string name="ringtone_title" msgid="3271453110387368088">"ଫୋନ ରିଂଟୋନ"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"ଡିଫଲ୍ଟ ବିଜ୍ଞପ୍ତି ସାଉଣ୍ଡ"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index c5d8f9e..89e05f4 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"ਵੱਖ-ਵੱਖ ਸਟਾਈਲ, ਵਾਲਪੇਪਰ ਵਰਤ ਕੇ ਦੇਖੋ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"ਸਕ੍ਰੀਨ ਸੇਵਰ"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ਸਕ੍ਰੀਨ-ਸੇਵਰ"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"ਸਕ੍ਰੀਨ ਸੇਵਰ ਵਰਤੋ"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"ਚਾਰਜ ਕਰਨ ਵੇਲੇ ਜਾਂ ਡੌਕ ਕੀਤੇ ਹੋਣ ਦੌਰਾਨ"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"ਚਾਰਜ ਕਰਨ ਵੇਲੇ"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"ਕਾਲ ਦੀ ਅਵਾਜ਼"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"ਅਲਾਰਮ ਦੀ ਅਵਾਜ਼"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"ਘੰਟੀ ਅਤੇ ਸੂਚਨਾ ਦੀ ਅਵਾਜ਼"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"ਘੰਟੀ ਦੀ ਅਵਾਜ਼"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"ਸੂਚਨਾ ਵੌਲਿਊਮ"</string>
<string name="ringtone_title" msgid="3271453110387368088">"ਫ਼ੋਨ ਰਿੰਗਟੋਨ"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਸੂਚਨਾ ਧੁਨੀ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 97c6937..3ce4216 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -1552,6 +1552,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Wypróbuj różne style, tapety i inne elementy"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Wygaszacz ekranu"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"wygaszacz ekranu"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Używaj wygaszacza ekranu"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Podczas ładowania lub po zadokowaniu"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Podczas ładowania"</string>
@@ -3883,6 +3885,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Głośność połączenia"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Głośność alarmu"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Głośność dzwonka i powiadomień"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Głośność dzwonka"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Głośność powiadomień"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Dzwonek telefonu"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Domyślny dźwięk powiadomienia"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 87ba8b6..e504644 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -1518,6 +1518,7 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Use diferentes estilos, planos de fundo e muito mais"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Protetor de tela"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"protetor de tela"</string>
+ <string name="screensaver_settings_when_to_dream_bedtime" msgid="3279310576803094771">"Indisponível durante o Modo hora de dormir"</string>
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Usar o protetor de tela"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Ao carregar ou quando encaixado na base"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Ao carregar"</string>
@@ -3803,6 +3804,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volume das chamadas"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volume do alarme"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volume de toques e notificações"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volume do toque"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volume das notificações"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Toque do telefone"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Som de notificação padrão"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index be79dee..41fd59a 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -439,7 +439,7 @@
<string name="security_settings_face_enroll_improve_face_alert_body" msgid="2670118180411127323">"Elimine o seu modelo de rosto atual para configurar o Desbloqueio facial novamente.\n\nO seu modelo de rosto será eliminado permanentemente e em segurança.\n\nApós a eliminação, precisará de PIN, padrão ou palavra-passe para desbloquear o telemóvel ou efetuar a autenticação em apps."</string>
<string name="security_settings_face_enroll_improve_face_alert_body_fingerprint" msgid="2469599074650327489">"Elimine o seu modelo de rosto atual para configurar o Desbloqueio facial novamente.\n\nO seu modelo de rosto será eliminado permanentemente e em segurança.\n\nApós a eliminação, precisará de impressão digital, PIN, padrão ou palavra-passe para desbloquear o telemóvel ou efetuar a autenticação em apps."</string>
<string name="security_settings_face_settings_use_face_category" msgid="1638314154119800188">"Usar desbloqueio facial para"</string>
- <string name="security_settings_face_settings_preferences_category" msgid="7628929873407280453">"Quando utilizar o Desbloqueio facial"</string>
+ <string name="security_settings_face_settings_preferences_category" msgid="7628929873407280453">"Quando usar o Desbloqueio facial"</string>
<string name="security_settings_face_settings_require_attention" msgid="4395309855914391104">"Exigir olhos abertos"</string>
<string name="security_settings_face_settings_require_attention_details" msgid="2546230511769544074">"Para desbloquear o telemóvel, os olhos têm de estar abertos"</string>
<string name="security_settings_face_settings_require_confirmation" msgid="6603039421004198334">"Solicitar sempre confirmação"</string>
@@ -1222,7 +1222,7 @@
<string name="wifi_details_subnet_mask" msgid="1619151769276260512">"Máscara de sub-rede"</string>
<string name="wifi_type_title" msgid="2174893488722015838">"Tipo"</string>
<string name="wifi_details_dns" msgid="273231528073312579">"DNS"</string>
- <string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Endereços IPv6"</string>
+ <string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Moradas IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Redes guardadas"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Subscrições"</string>
<string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Outras redes"</string>
@@ -1512,6 +1512,7 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Experimente diferentes estilos, imagens de fundo e muito mais"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Proteção de ecrã"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"proteção de ecrã"</string>
+ <string name="screensaver_settings_when_to_dream_bedtime" msgid="3279310576803094771">"Indisponível, modo de hora de dormir ativado"</string>
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Usar proteção de ecrã"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Ao carregar ou na estação de ancoragem"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Ao carregar"</string>
@@ -1664,8 +1665,8 @@
<string name="dlg_confirm_unmount_text" product="default" msgid="3887768438615563697">"Se desmontar o cartão SD, algumas das aplicações em utilização serão interrompidas e poderão ficar indisponíveis até voltar a montar o cartão SD."</string>
<string name="dlg_error_unmount_title" product="nosdcard" msgid="2205587942165199845"></string>
<string name="dlg_error_unmount_title" product="default" msgid="2205587942165199845"></string>
- <string name="dlg_error_unmount_text" product="nosdcard" msgid="7876201891724279436">"Não foi possível desmontar a memória de armazenamento USB. Tente novamente mais tarde."</string>
- <string name="dlg_error_unmount_text" product="default" msgid="2185659901137961711">"Não é possível desmontar o cartão SD. Tente novamente mais tarde."</string>
+ <string name="dlg_error_unmount_text" product="nosdcard" msgid="7876201891724279436">"Não foi possível desmontar a memória de armazenamento USB. Tente mais tarde."</string>
+ <string name="dlg_error_unmount_text" product="default" msgid="2185659901137961711">"Não é possível desmontar o cartão SD. Tente mais tarde."</string>
<string name="unmount_inform_text" product="nosdcard" msgid="5932607205977999175">"O armazenamento USB será desmontado."</string>
<string name="unmount_inform_text" product="default" msgid="716578785262713312">"O cartão SD será desmontado."</string>
<string name="sd_ejecting_title" msgid="1641122369013595273">"A desmontar"</string>
@@ -3420,7 +3421,7 @@
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecione um perfil de VPN para permanecer sempre ligado. O tráfego de rede só será permitido quando ligado a esta VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Nenhuma"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"A VPN sempre ativa requer um endereço IP de servidor e DNS."</string>
- <string name="vpn_no_network" msgid="7187593680049843763">"Não existe ligação à rede. Tente novamente mais tarde."</string>
+ <string name="vpn_no_network" msgid="7187593680049843763">"Não existe ligação à rede. Tente mais tarde."</string>
<string name="vpn_disconnected" msgid="7694522069957717501">"Desligado da VPN"</string>
<string name="vpn_disconnected_summary" msgid="721699709491697712">"Nenhuma"</string>
<string name="vpn_missing_cert" msgid="5397309964971068272">"Falta um certificado. Experimente editar o perfil."</string>
@@ -3797,6 +3798,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volume das chamadas"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volume do alarme"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volume de notificações e toque"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volume do toque"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volume de notificações"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Toque do telemóvel"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Som de notificação padrão"</string>
@@ -5415,7 +5417,7 @@
<string name="load_networks_progress" msgid="4717874401621250401">"A pesquisar…"</string>
<string name="register_on_network" msgid="2169662800750709709">"A registar na rede <xliff:g id="NETWORK">%s</xliff:g>…"</string>
<string name="not_allowed" msgid="5756935665192962915">"O cartão SIM não permite uma ligação a esta rede."</string>
- <string name="connect_later" msgid="2330538069949281352">"De momento, não é possível estabelecer ligação a esta rede. Tente novamente mais tarde."</string>
+ <string name="connect_later" msgid="2330538069949281352">"De momento, não é possível estabelecer ligação a esta rede. Tente mais tarde."</string>
<string name="registration_done" msgid="1750434215698850123">"Registado na rede."</string>
<string name="select_automatically" msgid="2419752566747259155">"Selecionar automaticamente a rede"</string>
<string name="carrier_settings_title" msgid="6959295328730560529">"Definições do operador"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 87ba8b6..e504644 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -1518,6 +1518,7 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Use diferentes estilos, planos de fundo e muito mais"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Protetor de tela"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"protetor de tela"</string>
+ <string name="screensaver_settings_when_to_dream_bedtime" msgid="3279310576803094771">"Indisponível durante o Modo hora de dormir"</string>
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Usar o protetor de tela"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Ao carregar ou quando encaixado na base"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Ao carregar"</string>
@@ -3803,6 +3804,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volume das chamadas"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volume do alarme"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volume de toques e notificações"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volume do toque"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volume das notificações"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Toque do telefone"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Som de notificação padrão"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 1a901dc..1392e20 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -1538,6 +1538,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Încearcă diverse stiluri, imagini de fundal și altele"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Economizor de ecran"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"screensaver"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Folosește screensaverul"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"În timpul încărcării sau andocării"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"În timpul încărcării"</string>
@@ -3846,6 +3848,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volumul apelului"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volumul alarmei"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volum pentru sonerie și notificări"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volumul soneriei"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volumul notificărilor"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Ton de sonerie al telefonului"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Sunet de notificare prestabilit"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 308ebe7..ad196db 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -1552,6 +1552,7 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Пробуйте разные стили, обои и не только"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Заставка"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"заставка"</string>
+ <string name="screensaver_settings_when_to_dream_bedtime" msgid="3279310576803094771">"Недоступно в ночном режиме"</string>
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Использовать заставку"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Во время зарядки и на док-станции"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Во время зарядки"</string>
@@ -3883,6 +3884,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Разговор"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Будильник"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Вызовы и уведомления"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Громкость звонка"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Громкость уведомлений"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Рингтон"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Звук уведомления по умолчанию"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 94b191f..4a56a0c 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"වෙනත් මෝස්තර, වෝල්පේපර, සහ තවත් ඒවා උත්සාහ කරන්න"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"තිර සුරැකුම"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"තිර සුරැකුම"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"තිර සුරැකුම භාවිත කරන්න"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"ආරෝපණය හෝ ඩොක් කර ඇති විට"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"ආරෝපණය වන අතරතුර"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"ඇමතුම් ශබ්දය ත්රීවතාවය"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"සීනුවේ ශබ්දය"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"නාද සහ දැනුම්දීම හඬ"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"නාද ශබ්දය"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"දැනුම්දීමේ ශබ්ද ත්රීවතාව"</string>
<string name="ringtone_title" msgid="3271453110387368088">"දුරකථන රිගින්ටෝනය"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"පෙරනිමි දැනුම්දීම් හඬ"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 6b3f35a..6becd02 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -1558,6 +1558,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Vyskúšajte rôzne štýly, tapety atď."</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Šetrič obrazovky"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"šetrič obrazovky"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Použiť šetrič obrazovky"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Pri nabíjaní alebo v doku"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Pri nabíjaní"</string>
@@ -3889,6 +3891,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Hlasitosť hovoru"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Hlasitosť budíkov"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Hlasitosť zvonení a upozornení"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Hlasitosť zvonenia"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Hlasitosť upozornení"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Tón zvonenia telefónu"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Predvolený zvuk upozornenia"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index ccb062d..40c8fd4 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -1558,6 +1558,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Preizkusite različne sloge, ozadja in drugo"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Ohranjevalnik zaslona"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ohranjevalnik zaslona"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Uporabi ohranjevalnik zaslona"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Med polnjenjem ali v stojalu"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Med polnjenjem"</string>
@@ -3889,6 +3891,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Glasnost klica"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Glasnost alarma"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Glasnost zvonjenja in obvestil"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Glasnost zvonjenja"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Glasnost obvestila"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Ton zvonjenja telefona"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Privzeti zvok obvestila"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index bff516f..a9a3e22 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Provo stile, imazhe sfondi të ndryshme etj."</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Mbrojtësi i ekranit"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"mbrojtësi i ekranit"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Përdor mbrojtësin e ekranit"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Gjatë karikimit ose lidhjes me stacionin"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Gjatë karikimit"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volumi i telefonatës"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volumi i alarmit"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volumi i ziles dhe njoftimeve"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volumi i ziles"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volumi i njoftimit"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Zilja e telefonit"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Tingulli i parazgjedhur i njoftimit"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index bfe4df1..9ffb558 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -1532,6 +1532,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Пробајте другачије стилове, позадине и још тога"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Чувар екрана"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"чувар екрана"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Користи чувар екрана"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Током пуњења или на базној станици"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Током пуњења"</string>
@@ -3840,6 +3842,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Јачина звука позива"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Јачина звука аларма"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Јачина звука за звоно и обавештења"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Јачина звука звона"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Јачина звука за обавештења"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Звук звона телефона"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Подразумевани звук обавештења"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 65125d4..0f3fdbc 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Testa olika format, bakgrunder med mera"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Skärmsläckare"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"skärmsläckare"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Använd skärmsläckare"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Vid laddning eller dockning"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Vid laddning"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Samtalsvolym"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Alarmvolym"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Ring- och aviseringsvolym"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Ringvolym"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Aviseringsvolym"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Ringsignal"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Standardljud för aviseringar"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 72c3f1b..8374f34 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Jaribu miundo, mandhari tofauti na zaidi"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Taswira ya skrini"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"taswira ya skrini"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Tumia taswira ya skrini"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Wakati imeunganishwa na kifaa kingine au inapochaji"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Inapochaji"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Sauti ya simu"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Sauti ya kengele"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Sauti ya arifa na mlio wa simu"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Kiwango cha sauti ya mlio"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Sauti ya arifa"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Mlio wa simu"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Sauti chaguomsingi ya arifa"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index bba127d..bc4d932 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"மாறுபட்ட ஸ்டைல்கள், வால்பேப்பர்கள் மற்றும் பலவற்றை முயல்க"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"ஸ்கிரீன் சேவர்"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ஸ்கிரீன் சேவர்"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"ஸ்கிரீன் சேவரை உபயோகித்தல்"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"இரண்டின் போதும்"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"சார்ஜ் செய்யப்படும்போது"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"அழைப்பின் ஒலியளவு"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"அலார ஒலியளவு"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"ரிங் & அறிவிப்பு ஒலியளவு"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"ரிங்டோன் ஒலியளவு"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"அறிவிப்பின் ஒலியளவு"</string>
<string name="ringtone_title" msgid="3271453110387368088">"மொபைலின் ரிங்டோன்"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"இயல்பு அறிவிப்பு ஒலி"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 5a42af2..3e20267 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"వివిధ శైలులు, వాల్పేపర్లు, మరిన్నింటిని ప్రయత్నించండి"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"స్క్రీన్ సేవర్"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"స్క్రీన్ సేవర్"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"స్క్రీన్ సేవర్ను ఉపయోగించండి"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"ఛార్జ్ చేసేటప్పుడు లేదా డాక్ చేసినప్పుడు"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"ఛార్జింగ్లో ఉన్నప్పుడు"</string>
@@ -1925,8 +1927,8 @@
<string name="network_scorer_picker_title" msgid="2022922801936206195">"నెట్వర్క్ రేటింగ్ ప్రొవైడర్"</string>
<string name="network_scorer_picker_none_preference" msgid="8894034333043177807">"ఏదీ వద్దు"</string>
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi అసిస్టెంట్ను మార్చాలా?"</string>
- <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"మీ నెట్వర్క్ కనెక్షన్లను నిర్వహించడానికి <xliff:g id="CURRENT_APP">%2$s</xliff:g>కి బదులుగా <xliff:g id="NEW_APP">%1$s</xliff:g>ని ఉపయోగించాలా?"</string>
- <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"మీ నెట్వర్క్ కనెక్షన్లను నిర్వహించడానికి <xliff:g id="NEW_APP">%s</xliff:g>ని ఉపయోగించాలా?"</string>
+ <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"మీ నెట్వర్క్ కనెక్షన్లను మేనేజ్ చేయడానికి <xliff:g id="CURRENT_APP">%2$s</xliff:g>కి బదులుగా <xliff:g id="NEW_APP">%1$s</xliff:g>ని ఉపయోగించాలా?"</string>
+ <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"మీ నెట్వర్క్ కనెక్షన్లను మేనేజ్ చేయడానికి <xliff:g id="NEW_APP">%s</xliff:g>ని ఉపయోగించాలా?"</string>
<string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"సిమ్ ఆపరేటర్ తెలియదు"</string>
<string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>కి తెలిసిన కేటాయింపు వెబ్సైట్ ఏదీ లేదు"</string>
<string name="mobile_insert_sim_card" msgid="3639245241283948038">"దయచేసి సిమ్ కార్డును చొప్పించి, పునఃప్రారంభించండి"</string>
@@ -3565,7 +3567,7 @@
<string name="amber_alerts_summary" msgid="5755221775246075883">"పిల్లల అపహరణల గురించి వార్తలను స్వీకరించండి"</string>
<string name="repeat_title" msgid="8676570486899483606">"రిపీట్ చేయండి"</string>
<string name="call_manager_enable_title" msgid="1214301265395158720">"కాల్ నిర్వాహికిని ప్రారంభించు"</string>
- <string name="call_manager_enable_summary" msgid="7362506369604163030">"మీరు కాల్స్ను ఎలా చేయాలో నిర్వహించడానికి ఈ సేవను అనుమతించండి."</string>
+ <string name="call_manager_enable_summary" msgid="7362506369604163030">"మీరు కాల్స్ను ఎలా చేయాలో మేనేజ్ చేయడానికి ఈ సేవను అనుమతించండి."</string>
<string name="call_manager_title" msgid="3397433159509629466">"కాల్ నిర్వాహికి"</string>
<!-- no translation found for call_manager_summary (2558839230880919191) -->
<skip />
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"కాల్ వాల్యూమ్"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"అలారం వాల్యూమ్"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"రింగ్ & నోటిఫికేషన్ వాల్యూమ్"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"రింగ్ వాల్యూమ్"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"నోటిఫికేషన్ వాల్యూమ్"</string>
<string name="ringtone_title" msgid="3271453110387368088">"ఫోన్ రింగ్టోన్"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"నోటిఫికేషన్ ఆటోమేటిక్ సౌండ్"</string>
@@ -4944,7 +4947,7 @@
<string name="notification_log_details_content_view" msgid="7193602999512479112">"అనుకూల వీక్షణ"</string>
<string name="notification_log_details_extras" msgid="8602887256103970989">"అదనాలు"</string>
<string name="notification_log_details_icon" msgid="6728710746466389675">"చిహ్నం"</string>
- <string name="notification_log_details_parcel" msgid="2098454650154230531">"పార్సిల్ పరిమాణం"</string>
+ <string name="notification_log_details_parcel" msgid="2098454650154230531">"పార్సిల్ సైజ్"</string>
<string name="notification_log_details_ashmem" msgid="6163312898302809015">"యాష్మెమ్"</string>
<string name="notification_log_details_alerted" msgid="5285078967825048406">"నోటిఫికేషన్ హెచ్చరించబడింది"</string>
<string name="notification_log_channel" msgid="3406738695621767204">"ఛానెల్"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index fbfe2bf..ebd2992 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -1512,6 +1512,7 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"ลองใช้รูปแบบ วอลเปเปอร์ และอื่นๆ ที่มีหลากหลาย"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"โปรแกรมรักษาหน้าจอ"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"โปรแกรมรักษาหน้าจอ"</string>
+ <string name="screensaver_settings_when_to_dream_bedtime" msgid="3279310576803094771">"ใช้ไม่ได้เนื่องจากโหมดเวลาเข้านอนเปิดอยู่"</string>
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"ใช้โปรแกรมรักษาหน้าจอ"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"ขณะชาร์จหรือวางอยู่บนแท่นชาร์จ"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"ขณะที่ชาร์จ"</string>
@@ -3797,6 +3798,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"ระดับเสียงการโทร"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"ระดับเสียงปลุก"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"ระดับเสียงเรียกเข้าและการแจ้งเตือน"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"ระดับเสียงเรียกเข้า"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"ระดับเสียงของการแจ้งเตือน"</string>
<string name="ringtone_title" msgid="3271453110387368088">"เสียงเรียกเข้า"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"เสียงแจ้งเตือนเริ่มต้น"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index f3df9c3..f46ca3f 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -1512,6 +1512,7 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Sumubok ng iba\'t ibang istilo, wallpaper, at higit pa"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Screen saver"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"screensaver"</string>
+ <string name="screensaver_settings_when_to_dream_bedtime" msgid="3279310576803094771">"Hindi available dahil naka-on ang bedtime mode"</string>
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Gumamit ng screen saver"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Habang nagcha-charge o naka-dock"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Habang nagcha-charge"</string>
@@ -3797,6 +3798,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Volume ng tawag"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Volume ng alarm"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Volume ng pag-ring at notification"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Volume ng pag-ring"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Volume ng notification"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Ringtone ng telepono"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Default na notification sound"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 2e10fce..9cd4dcd 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Farklı stiller, duvar kağıtları ve daha fazlasını deneyin"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Ekran koruyucu"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ekran koruyucu"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Ekran koruyucu kullan"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Şarj olurken veya yuvadayken"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Şarj olurken"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Arama ses düzeyi"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Alarm ses düzeyi"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Zil ve bildirim ses düzeyi"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Zil sesi düzeyi"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Bildirim ses düzeyi"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Telefon zil sesi"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Varsayılan bildirim sesi"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 0aed024..d087029 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -446,7 +446,7 @@
<string name="security_settings_face_enroll_improve_face_alert_body_fingerprint" msgid="2469599074650327489">"Видаліть наявну модель обличчя, щоб повторно налаштувати фейсконтроль.\n\nВашу модель обличчя буде вилучено назавжди.\n\nПісля цього, щоб розблокувати телефон або пройти автентифікацію в додатках, вам знадобиться відбиток пальця, PIN-код, ключ або пароль."</string>
<string name="security_settings_face_settings_use_face_category" msgid="1638314154119800188">"Функції фейсконтролю"</string>
<string name="security_settings_face_settings_preferences_category" msgid="7628929873407280453">"Коли ввімкнено фейсконтроль"</string>
- <string name="security_settings_face_settings_require_attention" msgid="4395309855914391104">"Очі мають бути відкритими"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="4395309855914391104">"Очі мають бути розплющеними"</string>
<string name="security_settings_face_settings_require_attention_details" msgid="2546230511769544074">"Розблоковувати телефон, коли очі відкриті"</string>
<string name="security_settings_face_settings_require_confirmation" msgid="6603039421004198334">"Завжди просити підтвердження"</string>
<string name="security_settings_face_settings_require_confirmation_details" msgid="3498729789625461914">"Просити підтвердження під час використання фейсконтролю в додатках"</string>
@@ -1556,6 +1556,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Спробуйте інші стилі, фонові малюнки тощо"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Заставка"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"заставка"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Використовувати заставку"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Під час заряджання чи в док-станції"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Під час заряджання"</string>
@@ -3887,6 +3889,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Гучність розмови"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Гучність будильника"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Гучність дзвінків і сповіщень"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Гучність дзвінка"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Гучність сповіщень"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Сигнал дзвінка"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Стандартний звук сповіщень"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 8fff994..091ea99 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"مختلف اسٹائل، وال پیپرز، اور مزید بہت کچھ آزمائیں"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"اسکرین سیور"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"اسکرین سیور"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"اسکرین سیور کا استعمال کریں"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"ڈاک سے منسلک یا چارج ہونے کے دوران"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"چارج ہوتے وقت"</string>
@@ -2520,7 +2522,7 @@
<string name="accessibility_display_inversion_switch_title" msgid="7458595722552743503">"رنگوں کی تقلیب استعمال کریں"</string>
<string name="accessibility_display_inversion_shortcut_title" msgid="6889624526691513462">"رنگوں کی تقلیب کا شارٹ کٹ"</string>
<string name="accessibility_display_inversion_preference_intro_text" msgid="1159663288481145318">"رنگوں کی تقلیب سے اسکرینز کا ہلکا رنگ گہرا ہو جاتا ہے۔ یہ گہری اسکرینز کو ہلکے رنگ میں بھی تبدیل کرتی ہے۔"</string>
- <string name="accessibility_display_inversion_preference_subtitle" msgid="4494767676482389509">"<b>یاد رکھیں</b><br/> <ol> <li> میڈیا اور تصاویر میں رنگ تبدیل ہو جائیں گے</li> <li> رنگوں کی تقلیب تمام ایپس پر کام کرتی ہے</li> <li> گہرے پس منظر کو ڈسپلے کرنے کے لیے، اس کی بجائے گہری تھیم کا استعمال کیا جا سکتا ہے</li> </ol>"</string>
+ <string name="accessibility_display_inversion_preference_subtitle" msgid="4494767676482389509">"<b>یاد رکھیں</b><br/> <ol> <li> میڈیا اور تصاویر میں رنگ تبدیل ہو جائیں گے</li> <li> رنگوں کی تقلیب تمام ایپس پر کام کرتی ہے</li> <li> گہرے پس منظر کو ڈسپلے کرنے کے لیے، اس کی بجائے گہری تھیم کا استعمال کیا جا سکتا ہے</li> </ol>"</string>
<string name="accessibility_autoclick_preference_title" msgid="2703143361605555752">"خودکار کلک (ہولڈ کا وقت)"</string>
<string name="accessibility_autoclick_about_title" msgid="152923024405552594">"خودکار کلک کے بارے میں (پسنے کا وقت)"</string>
<string name="accessibility_autoclick_footer_learn_more_content_description" msgid="7056189627042350691">"خود کار کلک کے بارے میں مزید جانیں (پسنے کا وقت)"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"کال کا والیوم"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"الارم والیوم"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"گھنٹی اور اطلاعات کا والیوم"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"رنگ والیوم"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"اطلاع کا والیوم"</string>
<string name="ringtone_title" msgid="3271453110387368088">"فون رنگ ٹون"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"اطلاع کی ڈیفالٹ آواز"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 5a8f945..944e593 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -1518,6 +1518,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Boshqa uslub va fon rasmlaridan foydalaning."</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Ekran lavhasi"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"ekran lavhasi"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Ekran lavhasidan foydalanish"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Quvvat yoki dok-stansiya"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Quvvat olayotganda"</string>
@@ -3803,6 +3805,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Suhbat tovushi"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Signal tovushi"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Jiringlash va bildirishnoma tovushi"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Jiringlash tovushi"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Bildirishnomalar ovozi"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Telefon ringtoni"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Standart bildirishnoma tovushi"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index ce791ba..9afae46 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -438,7 +438,7 @@
<string name="security_settings_face_enroll_improve_face_alert_title" msgid="6194184776580066012">"Thiết lập tính năng Mở khóa bằng khuôn mặt"</string>
<string name="security_settings_face_enroll_improve_face_alert_body" msgid="2670118180411127323">"Xóa mẫu khuôn mặt hiện tại của bạn để thiết lập lại tính năng Mở khóa bằng khuôn mặt.\n\nMẫu khuôn mặt của bạn sẽ bị xóa vĩnh viễn theo cách an toàn.\n\nSau khi xóa, bạn sẽ cần nhập mã PIN, hình mở khóa hoặc mật khẩu để mở khóa điện thoại hoặc xác thực trong các ứng dụng."</string>
<string name="security_settings_face_enroll_improve_face_alert_body_fingerprint" msgid="2469599074650327489">"Xóa mẫu khuôn mặt hiện tại của bạn để thiết lập lại tính năng Mở khóa bằng khuôn mặt.\n\nMẫu khuôn mặt của bạn sẽ bị xóa vĩnh viễn theo cách an toàn.\n\nSau khi xóa, bạn sẽ cần nhập vân tay, mã PIN, hình mở khóa hoặc mật khẩu để mở khóa điện thoại hoặc xác thực trong các ứng dụng."</string>
- <string name="security_settings_face_settings_use_face_category" msgid="1638314154119800188">"Dùng tính năng Mở khóa bằng khuôn mặt để"</string>
+ <string name="security_settings_face_settings_use_face_category" msgid="1638314154119800188">"Dùng tính năng mở khóa bằng khuôn mặt cho"</string>
<string name="security_settings_face_settings_preferences_category" msgid="7628929873407280453">"Khi dùng tính năng Mở khóa bằng khuôn mặt"</string>
<string name="security_settings_face_settings_require_attention" msgid="4395309855914391104">"Yêu cầu mở mắt"</string>
<string name="security_settings_face_settings_require_attention_details" msgid="2546230511769544074">"Để mở khóa điện thoại, bạn phải mở mắt"</string>
@@ -1518,6 +1518,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Thử nhiều kiểu, hình nền và các tùy chọn khác"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Trình bảo vệ màn hình"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"trình bảo vệ màn hình"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Sử dụng trình bảo vệ màn hình"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Khi sạc hoặc gắn vào đế sạc"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Trong khi sạc"</string>
@@ -3803,6 +3805,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Âm lượng cuộc gọi"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Âm lượng chuông báo"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Âm lượng chuông và thông báo"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Âm lượng chuông"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Âm lượng thông báo"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Nhạc chuông điện thoại"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Âm thanh thông báo mặc định"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index adaa1db..2ec8e8a 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -481,7 +481,7 @@
<string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="8957789840251747092">"使用指纹解锁手机或批准购买交易。\n\n请注意:您无法使用指纹来解锁此设备。要了解详情,请与贵单位的管理员联系。"</string>
<string name="security_settings_fingerprint_enroll_introduction_cancel" msgid="6086532316718920562">"取消"</string>
<string name="security_settings_fingerprint_enroll_introduction_no_thanks" msgid="6104718999323591180">"不用了"</string>
- <string name="security_settings_fingerprint_enroll_introduction_agree" msgid="4068276083536421828">"同意"</string>
+ <string name="security_settings_fingerprint_enroll_introduction_agree" msgid="4068276083536421828">"我同意"</string>
<string name="setup_fingerprint_enroll_skip_title" msgid="2473807887676247264">"要跳过指纹设置?"</string>
<string name="setup_fingerprint_enroll_skip_after_adding_lock_text" msgid="2412645723804450304">"指纹设置只需片刻时间。如果您跳过此设置,之后可以在设置中添加您的指纹。"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_message_setup" msgid="6255210343107484206">"看到该图标时,您可以使用指纹验证身份,例如在登录应用或批准购买交易时"</string>
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"尝试不同的样式、壁纸等"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"屏保"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"屏保"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"使用屏保"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"充电或插入基座时"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"充电时"</string>
@@ -3084,7 +3086,7 @@
<string name="menu_duration_12h" msgid="9206922888181602565">"12 小时"</string>
<string name="menu_duration_1d" msgid="8538390358158862330">"1天"</string>
<string name="menu_show_system" msgid="3780310384799907818">"显示系统应用"</string>
- <string name="menu_hide_system" msgid="5197937451381420622">"隐藏系统程序"</string>
+ <string name="menu_hide_system" msgid="5197937451381420622">"隐藏系统应用"</string>
<string name="menu_show_percentage" msgid="6143205879027928330">"显示百分比"</string>
<string name="menu_use_uss" msgid="1663914348353623749">"使用 USS"</string>
<string name="menu_proc_stats_type" msgid="5048575824389855689">"统计信息类型"</string>
@@ -3797,6 +3799,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"通话音量"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"闹钟音量"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"铃声和通知音量"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"铃声音量"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"通知音量"</string>
<string name="ringtone_title" msgid="3271453110387368088">"手机铃声"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"默认通知提示音"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 44f7490..664f440 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -1514,6 +1514,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"嘗試其他樣式和桌布等"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"螢幕保護程式"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"螢幕保護程式"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"使用螢幕保護程式"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"充電或放上插座時"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"充電時"</string>
@@ -3800,6 +3802,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"通話音量"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"鬧鐘音量"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"鈴聲和通知音量"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"鈴聲音量"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"通知音量"</string>
<string name="ringtone_title" msgid="3271453110387368088">"電話鈴聲"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"預設通知音效"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index e661826..9cc2150 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -466,7 +466,7 @@
<string name="security_settings_fingerprint_enroll_introduction_title" msgid="7931650601996313070">"設定指紋"</string>
<string name="security_settings_fingerprint_enroll_consent_introduction_title" msgid="2278592030102282364">"允許使用指紋解鎖功能"</string>
<string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="1911710308293783998">"使用指紋"</string>
- <string name="security_settings_fingerprint_enroll_introduction_v2_message" product="tablet" msgid="1533352560544756928">"指紋可用於解鎖平板電腦或驗證身分,以便執行特定操作,例如登入應用程式或核准購物交易。"</string>
+ <string name="security_settings_fingerprint_enroll_introduction_v2_message" product="tablet" msgid="1533352560544756928">"指紋可用於解鎖平板電腦或驗證身分,以便執行特定操作,例如登入應用程式或核准購買交易。"</string>
<string name="security_settings_fingerprint_enroll_introduction_v2_message" product="device" msgid="3570866595300511932">"指紋可用於解鎖裝置或驗證身分,以便執行特定操作,例如登入應用程式或核准購物交易。"</string>
<string name="security_settings_fingerprint_enroll_introduction_v2_message" product="default" msgid="8539442240212670385">"指紋可用於解鎖手機或驗證身分,以便執行特定操作,例如登入應用程式或核准購物交易。"</string>
<string name="security_settings_fingerprint_enroll_introduction_consent_message" product="default" msgid="1833139688278350628">"允許孩子使用指紋解鎖手機或驗證身分,以便執行特定操作,例如登入應用程式、核准購買交易等。"</string>
@@ -553,9 +553,9 @@
<string name="security_settings_sfps_enroll_find_sensor_title" msgid="8327884364635804363">"輕觸電源鍵,但不要按下去"</string>
<string name="security_settings_udfps_enroll_find_sensor_title" msgid="8077484429913330179">"如何設定指紋"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="6160543980992596286">"指紋感應器位於手機背面。請用食指輕觸感應器。"</string>
- <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="3861487880213212565">"指紋感應器在電源鍵上。電源鍵形狀扁平,位在平板電腦側邊的調高音量按鈕旁。\n\n按下電源鍵可關閉螢幕。"</string>
- <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="700314363994033893">"指紋感應器在電源鍵上。電源鍵形狀扁平,位在裝置側邊的調高音量按鈕旁。\n\n按下電源鍵可關閉螢幕。"</string>
- <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="5857063580604638331">"指紋感應器在電源鍵上。電源鍵形狀扁平,位在手機側邊的調高音量按鈕旁。\n\n按下電源鍵可關閉螢幕。"</string>
+ <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="3861487880213212565">"指紋感應器在電源鍵上。電源鍵形狀扁平,位在平板電腦側邊的調高音量按鈕旁。\n\n按下電源鍵會關閉螢幕。"</string>
+ <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="700314363994033893">"指紋感應器在電源鍵上。電源鍵形狀扁平,位在裝置側邊的調高音量按鈕旁。\n\n按下電源鍵會關閉螢幕。"</string>
+ <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="5857063580604638331">"指紋感應器在電源鍵上。電源鍵形狀扁平,位在手機側邊的調高音量按鈕旁。\n\n按下電源鍵會關閉螢幕。"</string>
<string name="security_settings_udfps_enroll_find_sensor_message" msgid="8383106460819519961">"指紋感應器就在螢幕上。系統會在下一個畫面擷取你的指紋。"</string>
<string name="security_settings_udfps_enroll_find_sensor_start_button" msgid="3172268783620336357">"開始"</string>
<string name="security_settings_udfps_enroll_a11y" msgid="1899453114050362235">"請用手指在螢幕上移動,找出感應器的位置。找到後,請按住指紋感應器。"</string>
@@ -567,7 +567,7 @@
<string name="security_settings_fingerprint_enroll_start_title" msgid="7391368057800077604">"輕觸感應器"</string>
<string name="security_settings_fingerprint_enroll_start_message" msgid="5010227772754175346">"將你的手指放在感應器上,感到震動即可移開"</string>
<string name="security_settings_udfps_enroll_start_message" msgid="5032954588171487566">"請將手指平放在指紋感應器上,感覺到震動時再放開"</string>
- <string name="security_settings_sfps_enroll_start_message" msgid="9054672627477685212">"請將手指放在感應器上 (但不要按下按鈕),直到裝置震動為止。\n\n每一次感覺到震動時,請稍微移動手指,以便擷取更多指紋。"</string>
+ <string name="security_settings_sfps_enroll_start_message" msgid="9054672627477685212">"請將手指放在感應器上 (但不要按下按鈕),直到裝置震動為止。\n\n每一次感覺到震動時,請稍微移動手指,以便擷取更完整的指紋。"</string>
<string name="security_settings_fingerprint_enroll_udfps_title" msgid="6665610134560896895">"按住指紋感應器"</string>
<string name="security_settings_fingerprint_enroll_repeat_title" msgid="9172202128243545021">"移開手指,然後再次輕觸感應器"</string>
<string name="security_settings_udfps_enroll_title_one_more_time" msgid="424937043843482410">"再一次"</string>
@@ -582,7 +582,7 @@
<string name="security_settings_sfps_enroll_left_edge_title" msgid="9022963735924413343">"將手指左側邊緣放到感應器上"</string>
<string name="security_settings_sfps_enroll_right_edge_title" msgid="823106857743394392">"最後將手指右側邊緣放到感應器上"</string>
<string name="security_settings_udfps_enroll_edge_message" msgid="4455253923746607702">"將指紋的一側放上感應器並按住,然後再換另一側"</string>
- <string name="security_settings_udfps_enroll_repeat_a11y_message" msgid="2785464357615568197">"這樣做可以擷取更多指紋"</string>
+ <string name="security_settings_udfps_enroll_repeat_a11y_message" msgid="2785464357615568197">"這樣做可以擷取更完整的指紋"</string>
<string name="security_settings_sfps_enroll_progress_a11y_message" msgid="6450772721691523736">"指紋註冊進度為百分之 <xliff:g id="PERCENTAGE">%d</xliff:g>"</string>
<string name="security_settings_sfps_animation_a11y_label" msgid="8808819903730940446">"註冊進度為百分之 <xliff:g id="PERCENTAGE">%d</xliff:g>"</string>
<!-- String.format failed for translation -->
@@ -1514,6 +1514,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"試試不同的樣式、桌布和其他項目"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"螢幕保護程式"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"螢幕保護程式"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"使用螢幕保護程式"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"充電或安置於座架上時"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"充電時"</string>
@@ -3799,6 +3801,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"通話音量"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"鬧鐘音量"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"鈴聲和通知音量"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"鈴聲音量"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"通知音量"</string>
<string name="ringtone_title" msgid="3271453110387368088">"手機鈴聲"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"預設通知音效"</string>
@@ -5641,10 +5644,10 @@
<string name="cards_passes_lower" msgid="2429722007109957877">"卡片和票證"</string>
<string name="power_menu_setting_name" msgid="2394440932633137229">"按住電源鍵"</string>
<string name="power_menu_long_press_category_title" msgid="1051146091093775002">"按住電源鍵即可存取"</string>
- <string name="power_menu_long_press_for_power_menu_title" msgid="477584639843663599">"電源按鈕選單"</string>
+ <string name="power_menu_long_press_for_power_menu_title" msgid="477584639843663599">"電源鍵選單"</string>
<string name="power_menu_long_press_for_assistant_title" msgid="6557738348262616455">"數位助理"</string>
<string name="power_menu_summary_long_press_for_assistant" msgid="32706459458422952">"存取數位助理"</string>
- <string name="power_menu_summary_long_press_for_power_menu" msgid="7617247135239683710">"存取電源按鈕選單"</string>
+ <string name="power_menu_summary_long_press_for_power_menu" msgid="7617247135239683710">"存取電源鍵選單"</string>
<string name="lockscreen_privacy_not_secure" msgid="3251276389681975912">"必須先設定螢幕鎖定才能使用"</string>
<string name="power_menu_power_volume_up_hint" msgid="5619917593676125759">"電源按鈕選單:\n同時按下電源鍵和調高音量按鈕"</string>
<string name="power_menu_power_prevent_ringing_hint" msgid="1169955014711158873">"暫停響鈴:\n按下音量按鈕即可顯示捷徑"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index c75fdfe..f0cdad8 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -1512,6 +1512,8 @@
<string name="style_suggestion_summary" msgid="4271131877800968159">"Zama izitayela ezihlukile, izithombe zangemuva, nokuningi"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Isigcini sihenqo"</string>
<string name="keywords_screensaver" msgid="7249337959432229172">"isigcini sesikrini"</string>
+ <!-- no translation found for screensaver_settings_when_to_dream_bedtime (3279310576803094771) -->
+ <skip />
<string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Sebenzisa isilondolozi sesikrini"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Ngenkathi ishaja noma idokhiwe"</string>
<string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Ngenkathi ishaja"</string>
@@ -3798,6 +3800,7 @@
<string name="call_volume_option_title" msgid="1461105986437268924">"Ivolumi yocingo"</string>
<string name="alarm_volume_option_title" msgid="6398641749273697140">"Ivolumu ye-alamu"</string>
<string name="ring_volume_option_title" msgid="1520802026403038560">"Ivolumu yokukhala neyesaziso"</string>
+ <string name="separate_ring_volume_option_title" msgid="2212910223857375951">"Ivolumu yokukhalisa"</string>
<string name="notification_volume_option_title" msgid="4838818791683615978">"Ivolumu yesaziso"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Iringithoni yefoni"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Umsindo wesaziso ozenzakalelayo"</string>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 0632f72..a8bd35c 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1650,4 +1650,9 @@
[CHAR LIMIT=NONE] -->
<string-array name="allowlist_hide_summary_in_battery_usage" translatable="false">
</string-array>
+
+ <!-- Array containing help message codes that should not be displayed
+ during fingerprint enrollment. -->
+ <integer-array name="fingerprint_acquired_ignore_list">
+ </integer-array>
</resources>
diff --git a/res/values/config.xml b/res/values/config.xml
index ca2cc0f..93d82a8 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -331,6 +331,9 @@
surface in search results or not.-->
<bool name="config_show_wifi_settings">true</bool>
+ <!-- Whether Wi-Fi hotspot settings should be shown or not. -->
+ <bool name="config_show_wifi_hotspot_settings">true</bool>
+
<!-- Whether toggle_airplane is available or not. -->
<bool name="config_show_toggle_airplane">true</bool>
@@ -625,9 +628,6 @@
<!-- The extra value for battery tip -->
<integer name="config_battery_extra_tip_value">12</integer>
- <!-- Whether to enable the advanced vpn feature. The default is not to. -->
- <bool name="config_advanced_vpn_enabled">false</bool>
-
<!-- An array of uid name for which packages exempt from Wi-Fi permission check. -->
<string-array name="config_exempt_wifi_permission_uid_name" translatable="false">
<item>@string/config_settingsintelligence_package_name</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b8a5202..818689d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3359,6 +3359,8 @@
<string name="screensaver_settings_title">Screen saver</string>
<!-- List of synonyms used in the settings search bar to find the “Screen saver”. [CHAR LIMIT=NONE] -->
<string name="keywords_screensaver">screensaver</string>
+ <!-- Summary for screensaver unavailable when Bedtime mode is on [CHAR LIMIT=50] -->
+ <string name="screensaver_settings_when_to_dream_bedtime">Unavailable because bedtime mode is on</string>
<!-- The title for the toggle which disables/enables screen savers [CHAR_LIMIT=30] -->
<string name="screensaver_settings_toggle_title">Use screen saver</string>
<!-- Display settings screen, summary fragment for screen saver options, activated when docked or asleep and charging [CHAR LIMIT=35] -->
@@ -8727,9 +8729,12 @@
<!-- Sound: Title for the option managing alarm volume. [CHAR LIMIT=30] -->
<string name="alarm_volume_option_title">Alarm volume</string>
- <!-- Sound: Title for the option managing ring volume. [CHAR LIMIT=30] -->
+ <!-- Sound: Title for the option managing ring & notification volume. [CHAR LIMIT=30] -->
<string name="ring_volume_option_title">Ring & notification volume</string>
+ <!-- Sound: Title for the option managing ring volume. [CHAR LIMIT=30] -->
+ <string name="separate_ring_volume_option_title">Ring volume</string>
+
<!-- Sound: Title for the option managing notification volume. [CHAR LIMIT=30] -->
<string name="notification_volume_option_title">Notification volume</string>
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index f25b6ec..914ce72 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -72,23 +72,23 @@
android:order="-160"
settings:controller="com.android.settings.notification.RingVolumePreferenceController"/>
+ <!-- Notification volume -->
+ <com.android.settings.notification.VolumeSeekBarPreference
+ android:key="notification_volume"
+ android:icon="@drawable/ic_notifications"
+ android:title="@string/notification_volume_option_title"
+ android:order="-150"
+ settings:controller=
+ "com.android.settings.notification.NotificationVolumePreferenceController"/>
<!-- Alarm volume -->
<com.android.settings.notification.VolumeSeekBarPreference
android:key="alarm_volume"
android:icon="@*android:drawable/ic_audio_alarm"
android:title="@string/alarm_volume_option_title"
- android:order="-150"
- settings:controller="com.android.settings.notification.AlarmVolumePreferenceController"/>
-
- <!-- Notification volume -->
- <com.android.settings.notification.VolumeSeekBarPreference
- android:key="notification_volume"
- android:icon="@drawable/ic_notifications"
- android:title="@string/notification_volume_option_title"
android:order="-140"
- settings:controller="com.android.settings.notification.NotificationVolumePreferenceController"/>
-
+ settings:controller="com.android.settings.notification.AlarmVolumePreferenceController"/>
+x
<!-- TODO(b/174964721): make this a PrimarySwitchPreference -->
<!-- Interruptions -->
<com.android.settingslib.RestrictedPreference
diff --git a/res/xml/vpn_settings2.xml b/res/xml/vpn_settings2.xml
index 0d374c7..08075a6 100644
--- a/res/xml/vpn_settings2.xml
+++ b/res/xml/vpn_settings2.xml
@@ -16,9 +16,4 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/vpn_title">
- <PreferenceCategory
- android:key="advanced_vpn_group"/>
-
- <PreferenceCategory
- android:key="vpn_group"/>
</PreferenceScreen>
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index f1c1191..50ffdc7 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -152,6 +152,11 @@
/** Redirects to SafetyCenter if enabled. */
@VisibleForTesting
public void handleSafetyCenterRedirection() {
+ if (isFinishing()) {
+ // Don't trampoline if already exiting this activity.
+ return;
+ }
+
if (SafetyCenterManagerWrapper.get().isEnabled(this)) {
try {
startActivity(new Intent(Intent.ACTION_SAFETY_CENTER));
@@ -213,6 +218,11 @@
/** Redirects to SafetyCenter if enabled. */
@VisibleForTesting
public void handleSafetyCenterRedirection() {
+ if (isFinishing()) {
+ // Don't trampoline if already exiting this activity.
+ return;
+ }
+
if (ACTION_PRIVACY_SETTINGS.equals(getIntent().getAction())
&& SafetyCenterManagerWrapper.get().isEnabled(this)) {
try {
diff --git a/src/com/android/settings/applications/AppStateLocaleBridge.java b/src/com/android/settings/applications/AppStateLocaleBridge.java
index 5600766..8262ce7 100644
--- a/src/com/android/settings/applications/AppStateLocaleBridge.java
+++ b/src/com/android/settings/applications/AppStateLocaleBridge.java
@@ -18,13 +18,19 @@
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.util.ArrayMap;
import android.util.Log;
+import com.android.settings.Utils;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
import com.android.settingslib.applications.ApplicationsState.AppFilter;
+import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
/**
* Creates a application filter to restrict UI display of applications.
@@ -35,20 +41,22 @@
private static final String TAG = AppStateLocaleBridge.class.getSimpleName();
private final Context mContext;
- private final List<ResolveInfo> mListInfos;
+ private final Map<Integer, AppInfoByProfiles> mUserIdToAppInfoByProfiles = new ArrayMap<>();
public AppStateLocaleBridge(Context context, ApplicationsState appState,
- Callback callback) {
+ Callback callback, UserManager userManager) {
super(appState, callback);
mContext = context;
- mListInfos = context.getPackageManager().queryIntentActivities(
- AppLocaleUtil.LAUNCHER_ENTRY_INTENT, PackageManager.GET_META_DATA);
+ collectLocaleBridgeInfo(userManager);
}
@Override
protected void updateExtraInfo(AppEntry app, String packageName, int uid) {
- app.extraInfo = AppLocaleUtil.canDisplayLocaleUi(mContext, app.info.packageName, mListInfos)
- ? Boolean.TRUE : Boolean.FALSE;
+ AppInfoByProfiles appInfoByProfiles = getAppInfo(UserHandle.getUserId(uid));
+
+ app.extraInfo = AppLocaleUtil.canDisplayLocaleUi(appInfoByProfiles.mContextAsUser,
+ app.info.packageName,
+ appInfoByProfiles.mListInfos) ? Boolean.TRUE : Boolean.FALSE;
}
@Override
@@ -56,9 +64,11 @@
final List<AppEntry> allApps = mAppSession.getAllApps();
for (int i = 0; i < allApps.size(); i++) {
AppEntry app = allApps.get(i);
- app.extraInfo =
- AppLocaleUtil.canDisplayLocaleUi(mContext, app.info.packageName, mListInfos)
- ? Boolean.TRUE : Boolean.FALSE;
+ AppInfoByProfiles appInfoByProfiles = getAppInfo(UserHandle.getUserId(app.info.uid));
+
+ app.extraInfo = AppLocaleUtil.canDisplayLocaleUi(appInfoByProfiles.mContextAsUser,
+ app.info.packageName,
+ appInfoByProfiles.mListInfos) ? Boolean.TRUE : Boolean.FALSE;
}
}
@@ -78,4 +88,47 @@
return (Boolean) entry.extraInfo;
}
};
+
+ private void collectLocaleBridgeInfo(UserManager userManager) {
+ List<Integer> userIds = new ArrayList<>();
+
+ userIds.add(mContext.getUserId());
+ int workUserId = Utils.getManagedProfileId(userManager, mContext.getUserId());
+ if (workUserId != UserHandle.USER_NULL) {
+ userIds.add(workUserId);
+ }
+
+ // Separate the app information by profiles.
+ for (int userId : userIds) {
+ if (!mUserIdToAppInfoByProfiles.containsKey(userId)) {
+ mUserIdToAppInfoByProfiles.put(userId, new AppInfoByProfiles(mContext, userId));
+ }
+ }
+ }
+
+ private AppInfoByProfiles getAppInfo(int userId) {
+ AppInfoByProfiles info;
+ if (mUserIdToAppInfoByProfiles.containsKey(userId)) {
+ info = mUserIdToAppInfoByProfiles.get(userId);
+ } else {
+ info = new AppInfoByProfiles(mContext, userId);
+ mUserIdToAppInfoByProfiles.put(userId, info);
+ }
+
+ return info;
+ }
+
+ /**
+ * The app information by profiles.
+ */
+ private static class AppInfoByProfiles {
+ public final Context mContextAsUser;
+ public final List<ResolveInfo> mListInfos;
+
+ private AppInfoByProfiles(Context context, int userId) {
+ mContextAsUser = context.createContextAsUser(UserHandle.of(userId), 0);
+ mListInfos = mContextAsUser.getPackageManager().queryIntentActivities(
+ AppLocaleUtil.LAUNCHER_ENTRY_INTENT, PackageManager.GET_META_DATA);
+ }
+ }
}
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index 9a4d13c..5ee059e 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -1148,7 +1148,8 @@
} else if (mManageApplications.mListType == LIST_TYPE_MEDIA_MANAGEMENT_APPS) {
mExtraInfoBridge = new AppStateMediaManagementAppsBridge(mContext, mState, this);
} else if (mManageApplications.mListType == LIST_TYPE_APPS_LOCALE) {
- mExtraInfoBridge = new AppStateLocaleBridge(mContext, mState, this);
+ mExtraInfoBridge = new AppStateLocaleBridge(mContext, mState, this,
+ mManageApplications.mUserManager);
} else if (mManageApplications.mListType == LIST_TYPE_BATTERY_OPTIMIZATION) {
mExtraInfoBridge = new AppStateAppBatteryUsageBridge(mContext, mState, this);
} else {
diff --git a/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java b/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
index 404fe6d..4da42d4 100644
--- a/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
+++ b/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
@@ -28,11 +28,13 @@
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
import android.os.Bundle;
import android.os.UserHandle;
+import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
+import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import com.android.settings.R;
@@ -50,11 +52,16 @@
*/
public abstract class BiometricsSettingsBase extends DashboardFragment {
- private static final int CONFIRM_REQUEST = 2001;
+ @VisibleForTesting
+ static final int CONFIRM_REQUEST = 2001;
private static final int CHOOSE_LOCK_REQUEST = 2002;
private static final String SAVE_STATE_CONFIRM_CREDETIAL = "confirm_credential";
private static final String DO_NOT_FINISH_ACTIVITY = "do_not_finish_activity";
+ @VisibleForTesting
+ static final String RETRY_PREFERENCE_KEY = "retry_preference_key";
+ @VisibleForTesting
+ static final String RETRY_PREFERENCE_BUNDLE = "retry_preference_bundle";
protected int mUserId;
protected long mGkPwHandle;
@@ -63,6 +70,8 @@
@Nullable private FingerprintManager mFingerprintManager;
// Do not finish() if choosing/confirming credential, or showing fp/face settings
private boolean mDoNotFinishActivity;
+ @Nullable private String mRetryPreferenceKey = null;
+ @Nullable private Bundle mRetryPreferenceExtra = null;
@Override
public void onAttach(Context context) {
@@ -84,6 +93,8 @@
if (savedInstanceState != null) {
mConfirmCredential = savedInstanceState.getBoolean(SAVE_STATE_CONFIRM_CREDETIAL);
mDoNotFinishActivity = savedInstanceState.getBoolean(DO_NOT_FINISH_ACTIVITY);
+ mRetryPreferenceKey = savedInstanceState.getString(RETRY_PREFERENCE_KEY);
+ mRetryPreferenceExtra = savedInstanceState.getBundle(RETRY_PREFERENCE_BUNDLE);
if (savedInstanceState.containsKey(
ChooseLockSettingsHelper.EXTRA_KEY_REQUEST_GK_PW_HANDLE)) {
mGkPwHandle = savedInstanceState.getLong(
@@ -124,8 +135,7 @@
}
}
- @Override
- public boolean onPreferenceTreeClick(Preference preference) {
+ private boolean onRetryPreferenceTreeClick(Preference preference, final boolean retry) {
final String key = preference.getKey();
final Context context = requireActivity().getApplicationContext();
@@ -134,31 +144,77 @@
if (getFacePreferenceKey().equals(key)) {
mDoNotFinishActivity = true;
mFaceManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
- final byte[] token = BiometricUtils.requestGatekeeperHat(context, mGkPwHandle,
- mUserId, challenge);
- final Bundle extras = preference.getExtras();
- extras.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
- extras.putInt(BiometricEnrollBase.EXTRA_KEY_SENSOR_ID, sensorId);
- extras.putLong(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, challenge);
- super.onPreferenceTreeClick(preference);
+ try {
+ final byte[] token = requestGatekeeperHat(context, mGkPwHandle, mUserId,
+ challenge);
+ final Bundle extras = preference.getExtras();
+ extras.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
+ extras.putInt(BiometricEnrollBase.EXTRA_KEY_SENSOR_ID, sensorId);
+ extras.putLong(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, challenge);
+ super.onPreferenceTreeClick(preference);
+ } catch (IllegalStateException e) {
+ if (retry) {
+ mRetryPreferenceKey = preference.getKey();
+ mRetryPreferenceExtra = preference.getExtras();
+ mConfirmCredential = true;
+ launchChooseOrConfirmLock();
+ } else {
+ Log.e(getLogTag(), "face generateChallenge fail", e);
+ mDoNotFinishActivity = false;
+ }
+ }
});
-
return true;
} else if (getFingerprintPreferenceKey().equals(key)) {
mDoNotFinishActivity = true;
mFingerprintManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
- final byte[] token = BiometricUtils.requestGatekeeperHat(context, mGkPwHandle,
- mUserId, challenge);
- final Bundle extras = preference.getExtras();
- extras.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
- extras.putLong(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, challenge);
- super.onPreferenceTreeClick(preference);
+ try {
+ final byte[] token = requestGatekeeperHat(context, mGkPwHandle, mUserId,
+ challenge);
+ final Bundle extras = preference.getExtras();
+ extras.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
+ extras.putLong(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, challenge);
+ super.onPreferenceTreeClick(preference);
+ } catch (IllegalStateException e) {
+ if (retry) {
+ mRetryPreferenceKey = preference.getKey();
+ mRetryPreferenceExtra = preference.getExtras();
+ mConfirmCredential = true;
+ launchChooseOrConfirmLock();
+ } else {
+ Log.e(getLogTag(), "fingerprint generateChallenge fail", e);
+ mDoNotFinishActivity = false;
+ }
+ }
});
-
return true;
}
+ return false;
+ }
- return super.onPreferenceTreeClick(preference);
+ @VisibleForTesting
+ protected byte[] requestGatekeeperHat(@NonNull Context context, long gkPwHandle, int userId,
+ long challenge) {
+ return BiometricUtils.requestGatekeeperHat(context, gkPwHandle, userId, challenge);
+ }
+
+ @Override
+ public boolean onPreferenceTreeClick(Preference preference) {
+ return onRetryPreferenceTreeClick(preference, true)
+ || super.onPreferenceTreeClick(preference);
+ }
+
+ private void retryPreferenceKey(@NonNull String key, @Nullable Bundle extras) {
+ final Preference preference = findPreference(key);
+ if (preference == null) {
+ Log.w(getLogTag(), ".retryPreferenceKey, fail to find " + key);
+ return;
+ }
+
+ if (extras != null) {
+ preference.getExtras().putAll(extras);
+ }
+ onRetryPreferenceTreeClick(preference, false);
}
@Override
@@ -169,6 +225,10 @@
if (mGkPwHandle != 0L) {
outState.putLong(ChooseLockSettingsHelper.EXTRA_KEY_REQUEST_GK_PW_HANDLE, mGkPwHandle);
}
+ if (!TextUtils.isEmpty(mRetryPreferenceKey)) {
+ outState.putString(RETRY_PREFERENCE_KEY, mRetryPreferenceKey);
+ outState.putBundle(RETRY_PREFERENCE_BUNDLE, mRetryPreferenceExtra);
+ }
}
@Override
@@ -180,6 +240,11 @@
if (resultCode == RESULT_FINISHED || resultCode == RESULT_OK) {
if (BiometricUtils.containsGatekeeperPasswordHandle(data)) {
mGkPwHandle = BiometricUtils.getGatekeeperPasswordHandle(data);
+ if (!TextUtils.isEmpty(mRetryPreferenceKey)) {
+ getActivity().overridePendingTransition(R.anim.sud_slide_next_in,
+ R.anim.sud_slide_next_out);
+ retryPreferenceKey(mRetryPreferenceKey, mRetryPreferenceExtra);
+ }
} else {
Log.d(getLogTag(), "Data null or GK PW missing.");
finish();
@@ -188,6 +253,8 @@
Log.d(getLogTag(), "Password not confirmed.");
finish();
}
+ mRetryPreferenceKey = null;
+ mRetryPreferenceExtra = null;
}
}
@@ -211,7 +278,8 @@
*/
public abstract String getUseInAppsPreferenceKey();
- private void launchChooseOrConfirmLock() {
+ @VisibleForTesting
+ protected void launchChooseOrConfirmLock() {
final ChooseLockSettingsHelper.Builder builder =
new ChooseLockSettingsHelper.Builder(getActivity(), this)
.setRequestCode(CONFIRM_REQUEST)
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index d65c8c7..9598019 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -168,7 +168,8 @@
private Vibrator mVibrator;
private boolean mIsSetupWizard;
private boolean mIsOrientationChanged;
- private boolean mIsCanceled;
+ @VisibleForTesting
+ boolean mIsCanceled;
private AccessibilityManager mAccessibilityManager;
private boolean mIsAccessibilityEnabled;
private LottieAnimationView mIllustrationLottie;
@@ -196,7 +197,7 @@
@Override
public void onWindowFocusChanged(boolean hasFocus) {
- if (hasFocus) {
+ if (hasFocus || mIsCanceled) {
return;
}
@@ -411,8 +412,10 @@
@VisibleForTesting
void onCancelEnrollment(@IdRes int errorMsgId) {
- FingerprintErrorDialog.showErrorDialog(this, errorMsgId);
+ // showErrorDialog() will cause onWindowFocusChanged(false), set mIsCanceled to false
+ // before showErrorDialog() to prevent that another error dialog is triggered again.
mIsCanceled = true;
+ FingerprintErrorDialog.showErrorDialog(this, errorMsgId);
mIsOrientationChanged = false;
cancelEnrollment();
stopIconAnimation();
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollSidecar.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollSidecar.java
index d8ecd20..d1e512e 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollSidecar.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollSidecar.java
@@ -21,9 +21,14 @@
import android.hardware.fingerprint.FingerprintManager;
import android.util.Log;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.biometrics.BiometricEnrollSidecar;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
/**
* Sidecar fragment to handle the state around fingerprint enrollment.
*/
@@ -32,11 +37,19 @@
private FingerprintUpdater mFingerprintUpdater;
private @FingerprintManager.EnrollReason int mEnrollReason;
+ private Set<Integer> mHelpIgnore;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mFingerprintUpdater = new FingerprintUpdater(activity);
+ final int[] ignoreAcquiredInfo = getResources().getIntArray(
+ R.array.fingerprint_acquired_ignore_list);
+ mHelpIgnore = new HashSet<>();
+ for (int acquiredInfo: ignoreAcquiredInfo) {
+ mHelpIgnore.add(acquiredInfo);
+ }
+ mHelpIgnore = Collections.unmodifiableSet(mHelpIgnore);
}
@Override
@@ -49,7 +62,6 @@
getString(R.string.fingerprint_intro_error_unknown));
return;
}
-
mFingerprintUpdater.enroll(mToken, mEnrollmentCancel, mUserId, mEnrollmentCallback,
mEnrollReason);
}
@@ -58,7 +70,7 @@
mEnrollReason = enrollReason;
}
- private FingerprintManager.EnrollmentCallback mEnrollmentCallback
+ @VisibleForTesting FingerprintManager.EnrollmentCallback mEnrollmentCallback
= new FingerprintManager.EnrollmentCallback() {
@Override
@@ -68,6 +80,9 @@
@Override
public void onEnrollmentHelp(int helpMsgId, CharSequence helpString) {
+ if (mHelpIgnore.contains(helpMsgId)) {
+ return;
+ }
FingerprintEnrollSidecar.super.onEnrollmentHelp(helpMsgId, helpString);
}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java b/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
index 9f9efdc..39d35dc 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
@@ -72,6 +72,7 @@
dialog.dismiss();
Activity activity = getActivity();
Intent intent = activity.getIntent();
+ intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
intent.putExtra(KEY_STATE_CANCELED, false);
activity.startActivity(intent);
activity.finish();
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index 44b3a40..c031fe6 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -669,6 +669,14 @@
mLaunchedConfirm = false;
if (resultCode == RESULT_FINISHED || resultCode == RESULT_OK) {
if (data != null && BiometricUtils.containsGatekeeperPasswordHandle(data)) {
+ if (!mHasFirstEnrolled && !mIsEnrolling) {
+ final Activity activity = getActivity();
+ if (activity != null) {
+ // Apply pending transition for auto adding first fingerprint case
+ activity.overridePendingTransition(R.anim.sud_slide_next_in,
+ R.anim.sud_slide_next_out);
+ }
+ }
mFingerprintManager.generateChallenge(mUserId,
(sensorId, userId, challenge) -> {
mToken = BiometricUtils.requestGatekeeperHat(getActivity(),
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingRequest.java b/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
index d5de41a..ed7a1fc 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
@@ -87,9 +87,7 @@
return;
}
- if (mBluetoothManager.getCachedDeviceManager().shouldPairByCsip(device, groupId)) {
- device.createBond(BluetoothDevice.TRANSPORT_LE);
- }
+ mBluetoothManager.getCachedDeviceManager().pairDeviceByCsip(device, groupId);
}
}
}
diff --git a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
index 793b7fb..e47048a 100644
--- a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
@@ -102,7 +102,7 @@
final boolean offloadDisabled =
SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(!offloadDisabled));
- if (offloadDisabled) {
+ if (!offloadDisabled) {
SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY,
Boolean.toString(!offloadDisabled));
}
diff --git a/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java b/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java
index 751ddce..904f828 100644
--- a/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java
@@ -16,7 +16,8 @@
package com.android.settings.development;
-import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController.A2DP_OFFLOAD_SUPPORTED_PROPERTY;
+import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController.A2DP_OFFLOAD_DISABLED_PROPERTY;
+
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothManager;
@@ -79,11 +80,11 @@
final boolean leAudioEnabled =
(mBluetoothAdapter.isLeAudioSupported() == BluetoothStatusCodes.FEATURE_SUPPORTED);
-
- final boolean offloadSupported =
- SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false)
- && SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false);
- if (leAudioEnabled && offloadSupported) {
+ final boolean leAudioOffloadSupported =
+ SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false);
+ final boolean a2dpOffloadDisabled =
+ SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
+ if (leAudioEnabled && leAudioOffloadSupported && !a2dpOffloadDisabled) {
final boolean offloadDisabled =
SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, true);
((SwitchPreference) mPreference).setChecked(offloadDisabled);
@@ -102,10 +103,11 @@
final boolean leAudioEnabled =
(mBluetoothAdapter.isLeAudioSupported() == BluetoothStatusCodes.FEATURE_SUPPORTED);
- final boolean offloadSupported =
- SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false)
- && SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false);
- if (leAudioEnabled && offloadSupported) {
+ final boolean leAudioOffloadSupported =
+ SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false);
+ final boolean a2dpOffloadDisabled =
+ SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
+ if (leAudioEnabled && leAudioOffloadSupported && !a2dpOffloadDisabled) {
((SwitchPreference) mPreference).setChecked(true);
SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, "true");
} else {
@@ -118,7 +120,7 @@
*/
public boolean isDefaultValue() {
final boolean offloadSupported =
- SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false)
+ !SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false)
&& SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false);
final boolean offloadDisabled =
SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false);
@@ -133,11 +135,11 @@
return;
}
- final boolean offloadDisabled =
+ final boolean leaudioOffloadDisabled =
SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY,
false);
SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY,
- Boolean.toString(!offloadDisabled));
+ Boolean.toString(!leaudioOffloadDisabled));
}
/**
diff --git a/src/com/android/settings/display/ScreenSaverPreferenceController.java b/src/com/android/settings/display/ScreenSaverPreferenceController.java
index 676a567..de1aaea 100644
--- a/src/com/android/settings/display/ScreenSaverPreferenceController.java
+++ b/src/com/android/settings/display/ScreenSaverPreferenceController.java
@@ -18,6 +18,7 @@
import androidx.preference.Preference;
+import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.dream.DreamSettings;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -26,9 +27,12 @@
PreferenceControllerMixin {
private static final String KEY_SCREEN_SAVER = "screensaver";
+ private final boolean mDreamsDisabledByAmbientModeSuppression;
public ScreenSaverPreferenceController(Context context) {
super(context);
+ mDreamsDisabledByAmbientModeSuppression = context.getResources().getBoolean(
+ com.android.internal.R.bool.config_dreamsDisabledByAmbientModeSuppressionConfig);
}
@Override
@@ -47,7 +51,12 @@
@Override
public void updateState(Preference preference) {
- preference.setSummary(DreamSettings.getSummaryTextWithDreamName(mContext));
+ if (mDreamsDisabledByAmbientModeSuppression
+ && AmbientDisplayAlwaysOnPreferenceController.isAodSuppressedByBedtime(mContext)) {
+ preference.setSummary(R.string.screensaver_settings_when_to_dream_bedtime);
+ } else {
+ preference.setSummary(DreamSettings.getSummaryTextWithDreamName(mContext));
+ }
}
private boolean isSystemUser() {
diff --git a/src/com/android/settings/dream/WhenToDreamPreferenceController.java b/src/com/android/settings/dream/WhenToDreamPreferenceController.java
index 4108e85..02ae6a7 100644
--- a/src/com/android/settings/dream/WhenToDreamPreferenceController.java
+++ b/src/com/android/settings/dream/WhenToDreamPreferenceController.java
@@ -20,7 +20,10 @@
import androidx.preference.Preference;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.display.AmbientDisplayAlwaysOnPreferenceController;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.dream.DreamBackend;
@@ -29,19 +32,34 @@
private static final String WHEN_TO_START = "when_to_start";
private final DreamBackend mBackend;
+ private final boolean mDreamsDisabledByAmbientModeSuppression;
WhenToDreamPreferenceController(Context context) {
+ this(context, context.getResources().getBoolean(
+ com.android.internal.R.bool.config_dreamsDisabledByAmbientModeSuppressionConfig));
+ }
+
+ @VisibleForTesting
+ WhenToDreamPreferenceController(Context context,
+ boolean dreamsDisabledByAmbientModeSuppression) {
super(context);
mBackend = DreamBackend.getInstance(context);
+ mDreamsDisabledByAmbientModeSuppression = dreamsDisabledByAmbientModeSuppression;
}
@Override
public void updateState(Preference preference) {
super.updateState(preference);
- int resId = DreamSettings.getDreamSettingDescriptionResId(mBackend.getWhenToDreamSetting());
- preference.setSummary(preference.getContext().getString(resId));
+ if (mDreamsDisabledByAmbientModeSuppression
+ && AmbientDisplayAlwaysOnPreferenceController.isAodSuppressedByBedtime(mContext)) {
+ preference.setSummary(R.string.screensaver_settings_when_to_dream_bedtime);
+ } else {
+ final int resId = DreamSettings.getDreamSettingDescriptionResId(
+ mBackend.getWhenToDreamSetting());
+ preference.setSummary(resId);
+ }
}
@Override
diff --git a/src/com/android/settings/media/MediaOutputIndicatorWorker.java b/src/com/android/settings/media/MediaOutputIndicatorWorker.java
index 09e0672..bf1e06e 100644
--- a/src/com/android/settings/media/MediaOutputIndicatorWorker.java
+++ b/src/com/android/settings/media/MediaOutputIndicatorWorker.java
@@ -165,6 +165,13 @@
return mPackageName;
}
+ /** Check if this device supports LE Audio Broadcast feature */
+ public boolean isBroadcastSupported() {
+ LocalBluetoothLeBroadcast broadcast =
+ mLocalBluetoothManager.getProfileManager().getLeAudioBroadcastProfile();
+ return broadcast != null ? true : false;
+ }
+
public boolean isDeviceBroadcasting() {
LocalBluetoothLeBroadcast broadcast =
mLocalBluetoothManager.getProfileManager().getLeAudioBroadcastProfile();
diff --git a/src/com/android/settings/media/MediaOutputUtils.java b/src/com/android/settings/media/MediaOutputUtils.java
index 977c517..fcb2fb2 100644
--- a/src/com/android/settings/media/MediaOutputUtils.java
+++ b/src/com/android/settings/media/MediaOutputUtils.java
@@ -64,7 +64,9 @@
+ ", play back type : " + pi.getPlaybackType() + ", play back state : "
+ playbackState.getState());
}
- if (playbackState.getState() != PlaybackState.STATE_PLAYING) {
+ if (playbackState.getState() == PlaybackState.STATE_STOPPED
+ || playbackState.getState() == PlaybackState.STATE_NONE
+ || playbackState.getState() == PlaybackState.STATE_ERROR) {
// do nothing
continue;
}
diff --git a/src/com/android/settings/network/CarrierConfigChangedReceiver.java b/src/com/android/settings/network/CarrierConfigChangedReceiver.java
index 8a6d47d..d9ff03e 100644
--- a/src/com/android/settings/network/CarrierConfigChangedReceiver.java
+++ b/src/com/android/settings/network/CarrierConfigChangedReceiver.java
@@ -32,9 +32,20 @@
CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED;
private final CountDownLatch mLatch;
+ private final boolean mIsWaitingForValidSubId;
- public CarrierConfigChangedReceiver(CountDownLatch latch) {
+ /**
+ * This is the CarrierConfigChanged receiver. If it receives the carrier config changed, then it
+ * call the CountDownLatch.countDown().
+ * If the "isWaitingForValidSubId" is true, then the receiver skip the carrier config changed
+ * with the subId = -1. The receiver executes the countDown when the CarrierConfigChanged
+ * with valid subId.
+ * If the "isWaitingForValidSubId" is false, then the receiver executes the countDown when
+ * receiving any CarrierConfigChanged.
+ */
+ public CarrierConfigChangedReceiver(CountDownLatch latch, boolean isWaitingForValidSubId) {
mLatch = latch;
+ mIsWaitingForValidSubId = isWaitingForValidSubId;
}
public void registerOn(Context context) {
@@ -53,7 +64,8 @@
}
private void checkSubscriptionIndex(Intent intent) {
- if (intent.hasExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX)) {
+ if (intent.hasExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX)
+ || !mIsWaitingForValidSubId) {
int subId = intent.getIntExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX, -1);
Log.i(TAG, "subId from config changed: " + subId);
mLatch.countDown();
diff --git a/src/com/android/settings/network/UiccSlotUtil.java b/src/com/android/settings/network/UiccSlotUtil.java
index 7ba2e0f..7b52680 100644
--- a/src/com/android/settings/network/UiccSlotUtil.java
+++ b/src/com/android/settings/network/UiccSlotUtil.java
@@ -28,7 +28,6 @@
import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.telephony.uicc.UiccController;
import com.android.settingslib.utils.ThreadUtils;
import com.google.common.collect.ImmutableList;
@@ -141,7 +140,8 @@
inactiveRemovableSlot,
/*removable sim's port Id*/ TelephonyManager.DEFAULT_PORT_INDEX,
excludedLogicalSlotIndex),
- context);
+ context,
+ /*isWaitingForValidSubId=*/ true);
}
/**
@@ -179,7 +179,8 @@
performSwitchToSlot(telMgr,
prepareUiccSlotMappings(uiccSlotMappings, /*slot is not psim*/ false,
physicalSlotId, port, excludedLogicalSlotIndex),
- context);
+ context,
+ /*isWaitingForValidSubId=*/ false);
}
/**
@@ -231,7 +232,8 @@
}
private static void performSwitchToSlot(TelephonyManager telMgr,
- Collection<UiccSlotMapping> uiccSlotMappings, Context context)
+ Collection<UiccSlotMapping> uiccSlotMappings, Context context,
+ boolean isWaitingForValidSubId)
throws UiccSlotsException {
CarrierConfigChangedReceiver receiver = null;
long waitingTimeMillis =
@@ -241,7 +243,7 @@
DEFAULT_WAIT_AFTER_SWITCH_TIMEOUT_MILLIS);
try {
CountDownLatch latch = new CountDownLatch(1);
- receiver = new CarrierConfigChangedReceiver(latch);
+ receiver = new CarrierConfigChangedReceiver(latch, isWaitingForValidSubId);
receiver.registerOn(context);
telMgr.setSimSlotMapping(uiccSlotMappings);
latch.await(waitingTimeMillis, TimeUnit.MILLISECONDS);
@@ -270,6 +272,7 @@
if (slotId == INVALID_PHYSICAL_SLOT_ID) {
for (int i = 0; i < slots.length; i++) {
if (slots[i].isRemovable()
+ && !slots[i].getIsEuicc()
&& !slots[i].getPorts().stream().findFirst().get().isActive()
&& slots[i].getCardStateInfo() != UiccSlotInfo.CARD_STATE_INFO_ERROR
&& slots[i].getCardStateInfo() != UiccSlotInfo.CARD_STATE_INFO_RESTRICTED) {
@@ -410,4 +413,29 @@
.findFirst()
.orElse(INVALID_LOGICAL_SLOT_ID);
}
+
+ /**
+ * Return whether the removable psim is enabled.
+ *
+ * @param telMgr is a TelephonyManager.
+ * @return whether the removable psim is enabled.
+ */
+ public static boolean isRemovableSimEnabled(TelephonyManager telMgr) {
+ if (telMgr == null) {
+ return false;
+ }
+ ImmutableList<UiccSlotInfo> slotInfos = UiccSlotUtil.getSlotInfos(telMgr);
+ boolean isRemovableSimEnabled =
+ slotInfos.stream()
+ .anyMatch(
+ slot -> slot != null
+ && slot.isRemovable()
+ && !slot.getIsEuicc()
+ && slot.getPorts().stream().anyMatch(
+ port -> port.isActive())
+ && slot.getCardStateInfo()
+ == UiccSlotInfo.CARD_STATE_INFO_PRESENT);
+ Log.i(TAG, "isRemovableSimEnabled: " + isRemovableSimEnabled);
+ return isRemovableSimEnabled;
+ }
}
diff --git a/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java b/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
index a878cb3..6fa803d 100644
--- a/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
+++ b/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
@@ -24,7 +24,6 @@
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.UiccCardInfo;
-import android.telephony.UiccSlotInfo;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
@@ -39,8 +38,6 @@
import com.android.settings.network.UiccSlotUtil;
import com.android.settings.sim.SimActivationNotifier;
-import com.google.common.collect.ImmutableList;
-
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -586,18 +583,7 @@
}
private boolean isRemovableSimEnabled() {
- ImmutableList<UiccSlotInfo> slotInfos = UiccSlotUtil.getSlotInfos(mTelMgr);
- boolean isRemovableSimEnabled =
- slotInfos.stream()
- .anyMatch(
- slot -> slot != null
- && slot.isRemovable()
- && slot.getPorts().stream().anyMatch(
- port -> port.isActive())
- && slot.getCardStateInfo()
- == UiccSlotInfo.CARD_STATE_INFO_PRESENT);
- Log.i(TAG, "isRemovableSimEnabled: " + isRemovableSimEnabled);
- return isRemovableSimEnabled;
+ return UiccSlotUtil.isRemovableSimEnabled(mTelMgr);
}
private boolean isMultipleEnabledProfilesSupported() {
diff --git a/src/com/android/settings/notification/MediaVolumePreferenceController.java b/src/com/android/settings/notification/MediaVolumePreferenceController.java
index 2466b77..0ddba08 100644
--- a/src/com/android/settings/notification/MediaVolumePreferenceController.java
+++ b/src/com/android/settings/notification/MediaVolumePreferenceController.java
@@ -93,7 +93,7 @@
@VisibleForTesting
boolean isSupportEndItem() {
- return isConnectedBLEDevice();
+ return getWorker() != null && getWorker().isBroadcastSupported() && isConnectedBLEDevice();
}
private boolean isConnectedBLEDevice() {
diff --git a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java
index 2c02db9..ee36273 100644
--- a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java
+++ b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java
@@ -141,7 +141,10 @@
@Override
public void updateState(Preference preference) {
super.updateState(preference);
- if (isNASSettingActivityAvailable()) {
+ if (mDefaultNASComponent == null) {
+ preference.setEnabled(false);
+ ((PrimarySwitchPreference) preference).setSwitchEnabled(false);
+ } else if (isNASSettingActivityAvailable()) {
preference.setIntent(mNASSettingIntent);
} else {
// Cannot find settings activity from the default NAS app
diff --git a/src/com/android/settings/notification/NotificationVolumePreferenceController.java b/src/com/android/settings/notification/NotificationVolumePreferenceController.java
index 0fe0d62..322bb6c 100644
--- a/src/com/android/settings/notification/NotificationVolumePreferenceController.java
+++ b/src/com/android/settings/notification/NotificationVolumePreferenceController.java
@@ -16,26 +16,96 @@
package com.android.settings.notification;
+import android.app.INotificationManager;
+import android.app.NotificationManager;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.media.AudioManager;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.os.ServiceManager;
+import android.os.Vibrator;
+import android.service.notification.NotificationListenerService;
import android.text.TextUtils;
+import android.util.Log;
+import androidx.lifecycle.OnLifecycleEvent;
+
+import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.Utils;
+import com.android.settingslib.core.lifecycle.Lifecycle;
-public class NotificationVolumePreferenceController extends
- RingVolumePreferenceController {
+import java.util.Objects;
+/**
+ * Update notification volume icon in Settings in response to user adjusting volume
+ */
+public class NotificationVolumePreferenceController extends VolumeSeekBarPreferenceController {
+
+ private static final String TAG = "NotificationVolumePreferenceController";
private static final String KEY_NOTIFICATION_VOLUME = "notification_volume";
+ private Vibrator mVibrator;
+ private int mRingerMode = AudioManager.RINGER_MODE_NORMAL;
+ private ComponentName mSuppressor;
+ private final RingReceiver mReceiver = new RingReceiver();
+ private final H mHandler = new H();
+ private INotificationManager mNoMan;
+
+
+ private int mMuteIcon;
+ private final int mNormalIconId = R.drawable.ic_notifications;
+ private final int mVibrateIconId = R.drawable.ic_volume_ringer_vibrate;
+ private final int mSilentIconId = R.drawable.ic_notifications_off_24dp;
+
+ private final boolean mRingNotificationAliased;
+
+
public NotificationVolumePreferenceController(Context context) {
- super(context, KEY_NOTIFICATION_VOLUME);
+ this(context, KEY_NOTIFICATION_VOLUME);
+ }
+
+ public NotificationVolumePreferenceController(Context context, String key) {
+ super(context, key);
+ mVibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
+ if (mVibrator != null && !mVibrator.hasVibrator()) {
+ mVibrator = null;
+ }
+
+ mRingNotificationAliased = mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_alias_ring_notif_stream_types);
+ updateRingerMode();
+ }
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
+ @Override
+ public void onResume() {
+ super.onResume();
+ mReceiver.register(true);
+ updateEffectsSuppressor();
+ updatePreferenceIconAndSliderState();
+ }
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
+ @Override
+ public void onPause() {
+ super.onPause();
+ mReceiver.register(false);
}
@Override
public int getAvailabilityStatus() {
+
+ // Show separate notification slider if ring/notification are not aliased by AudioManager --
+ // if they are, notification volume is controlled by RingVolumePreferenceController.
return mContext.getResources().getBoolean(R.bool.config_show_notification_volume)
- && !Utils.isVoiceCapable(mContext) && !mHelper.isSingleVolume()
+ && (!mRingNotificationAliased || !Utils.isVoiceCapable(mContext))
+ && !mHelper.isSingleVolume()
? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@@ -55,13 +125,152 @@
}
@Override
+ public boolean useDynamicSliceSummary() {
+ return true;
+ }
+
+ @Override
public int getAudioStream() {
return AudioManager.STREAM_NOTIFICATION;
}
@Override
public int getMuteIcon() {
- return R.drawable.ic_notifications_off_24dp;
+ return mMuteIcon;
+ }
+
+ private void updateRingerMode() {
+ final int ringerMode = mHelper.getRingerModeInternal();
+ if (mRingerMode == ringerMode) return;
+ mRingerMode = ringerMode;
+ updatePreferenceIconAndSliderState();
+ }
+
+ private void updateEffectsSuppressor() {
+ final ComponentName suppressor = NotificationManager.from(mContext).getEffectsSuppressor();
+ if (Objects.equals(suppressor, mSuppressor)) return;
+
+ if (mNoMan == null) {
+ mNoMan = INotificationManager.Stub.asInterface(
+ ServiceManager.getService(Context.NOTIFICATION_SERVICE));
+ }
+
+ final int hints;
+ try {
+ hints = mNoMan.getHintsFromListenerNoToken();
+ } catch (android.os.RemoteException exception) {
+ Log.w(TAG, "updateEffectsSuppressor: " + exception.getLocalizedMessage());
+ return;
+ }
+
+ if (hintsMatch(hints)) {
+
+ mSuppressor = suppressor;
+ if (mPreference != null) {
+ final String text = SuppressorHelper.getSuppressionText(mContext, suppressor);
+ mPreference.setSuppressionText(text);
+ }
+ }
+ }
+
+ @VisibleForTesting
+ boolean hintsMatch(int hints) {
+ boolean allEffectsDisabled =
+ (hints & NotificationListenerService.HINT_HOST_DISABLE_EFFECTS) != 0;
+ boolean notificationEffectsDisabled =
+ (hints & NotificationListenerService.HINT_HOST_DISABLE_NOTIFICATION_EFFECTS) != 0;
+
+ return allEffectsDisabled || notificationEffectsDisabled;
+ }
+
+ private void updatePreferenceIconAndSliderState() {
+ if (mPreference != null) {
+ if (mVibrator != null && mRingerMode == AudioManager.RINGER_MODE_VIBRATE) {
+ mMuteIcon = mVibrateIconId;
+ mPreference.showIcon(mVibrateIconId);
+ mPreference.setEnabled(false);
+
+ } else if (mRingerMode == AudioManager.RINGER_MODE_SILENT
+ || mVibrator == null && mRingerMode == AudioManager.RINGER_MODE_VIBRATE) {
+ mMuteIcon = mSilentIconId;
+ mPreference.showIcon(mSilentIconId);
+ mPreference.setEnabled(false);
+ } else { // ringmode normal: could be that we are still silent
+ mPreference.setEnabled(true);
+ if (mHelper.getStreamVolume(AudioManager.STREAM_NOTIFICATION) == 0) {
+ // ring is in normal, but notification is in silent
+ mMuteIcon = mSilentIconId;
+ mPreference.showIcon(mSilentIconId);
+ } else {
+ mPreference.showIcon(mNormalIconId);
+ }
+ }
+ }
+ }
+
+ private final class H extends Handler {
+ private static final int UPDATE_EFFECTS_SUPPRESSOR = 1;
+ private static final int UPDATE_RINGER_MODE = 2;
+ private static final int NOTIFICATION_VOLUME_CHANGED = 3;
+
+ private H() {
+ super(Looper.getMainLooper());
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case UPDATE_EFFECTS_SUPPRESSOR:
+ updateEffectsSuppressor();
+ break;
+ case UPDATE_RINGER_MODE:
+ updateRingerMode();
+ break;
+ case NOTIFICATION_VOLUME_CHANGED:
+ updatePreferenceIconAndSliderState();
+ break;
+ }
+ }
+ }
+
+ /**
+ * For notification volume icon to be accurate, we need to listen to volume change as well.
+ * That is because the icon can change from mute/vibrate to normal without ringer mode changing.
+ */
+ private class RingReceiver extends BroadcastReceiver {
+ private boolean mRegistered;
+
+ public void register(boolean register) {
+ if (mRegistered == register) return;
+ if (register) {
+ final IntentFilter filter = new IntentFilter();
+ filter.addAction(NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED);
+ filter.addAction(AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION);
+ filter.addAction(AudioManager.VOLUME_CHANGED_ACTION);
+ mContext.registerReceiver(this, filter);
+ } else {
+ mContext.unregisterReceiver(this);
+ }
+ mRegistered = register;
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ final String action = intent.getAction();
+ if (NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED.equals(action)) {
+ mHandler.sendEmptyMessage(H.UPDATE_EFFECTS_SUPPRESSOR);
+ } else if (AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION.equals(action)) {
+ mHandler.sendEmptyMessage(H.UPDATE_RINGER_MODE);
+ } else if (AudioManager.VOLUME_CHANGED_ACTION.equals(action)) {
+ int streamType = intent.getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, -1);
+ if (streamType == AudioManager.STREAM_NOTIFICATION) {
+ int streamValue = intent.getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_VALUE,
+ -1);
+ mHandler.obtainMessage(H.NOTIFICATION_VOLUME_CHANGED, streamValue, 0)
+ .sendToTarget();
+ }
+ }
+ }
}
}
diff --git a/src/com/android/settings/notification/RingVolumePreferenceController.java b/src/com/android/settings/notification/RingVolumePreferenceController.java
index 5e7d067..a78689f 100644
--- a/src/com/android/settings/notification/RingVolumePreferenceController.java
+++ b/src/com/android/settings/notification/RingVolumePreferenceController.java
@@ -16,6 +16,7 @@
package com.android.settings.notification;
+import android.app.INotificationManager;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
@@ -26,30 +27,56 @@
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
+import android.os.ServiceManager;
import android.os.Vibrator;
+import android.service.notification.NotificationListenerService;
import android.text.TextUtils;
+import android.util.Log;
import androidx.lifecycle.OnLifecycleEvent;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settingslib.core.lifecycle.Lifecycle;
import java.util.Objects;
+/**
+ * This slider can represent both ring and notification, if the corresponding streams are aliased,
+ * and only ring if the streams are not aliased.
+ */
public class RingVolumePreferenceController extends VolumeSeekBarPreferenceController {
- private static final String TAG = "RingVolumeController";
+ private static final String TAG = "RingVolumePreferenceController";
private static final String KEY_RING_VOLUME = "ring_volume";
private Vibrator mVibrator;
- private int mRingerMode = -1;
+ private int mRingerMode = AudioManager.RINGER_MODE_NORMAL;
private ComponentName mSuppressor;
private final RingReceiver mReceiver = new RingReceiver();
private final H mHandler = new H();
private int mMuteIcon;
+ /*
+ * Whether ring and notification streams are aliased together by AudioManager.
+ * If they are, we'll present one volume control for both.
+ * If not, we'll present separate volume controls.
+ */
+ private final boolean mRingAliasNotif;
+
+ private final int mNormalIconId;
+ @VisibleForTesting
+ final int mVibrateIconId;
+ @VisibleForTesting
+ final int mSilentIconId;
+
+ @VisibleForTesting
+ final int mTitleId;
+
+ private INotificationManager mNoMan;
+
public RingVolumePreferenceController(Context context) {
this(context, KEY_RING_VOLUME);
}
@@ -60,9 +87,31 @@
if (mVibrator != null && !mVibrator.hasVibrator()) {
mVibrator = null;
}
+
+ mRingAliasNotif = isRingAliasNotification();
+ if (mRingAliasNotif) {
+ mTitleId = R.string.ring_volume_option_title;
+
+ mNormalIconId = R.drawable.ic_notifications;
+ mSilentIconId = R.drawable.ic_notifications_off_24dp;
+ } else {
+ mTitleId = R.string.separate_ring_volume_option_title;
+
+ mNormalIconId = R.drawable.ic_ring_volume;
+ mSilentIconId = R.drawable.ic_ring_volume_off;
+ }
+ // todo: set a distinct vibrate icon for ring vs notification
+ mVibrateIconId = R.drawable.ic_volume_ringer_vibrate;
+
updateRingerMode();
}
+ @VisibleForTesting
+ boolean isRingAliasNotification() {
+ return mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_alias_ring_notif_stream_types);
+ }
+
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
@Override
public void onResume() {
@@ -70,6 +119,7 @@
mReceiver.register(true);
updateEffectsSuppressor();
updatePreferenceIcon();
+ setPreferenceTitle();
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
@@ -115,7 +165,8 @@
return mMuteIcon;
}
- private void updateRingerMode() {
+ @VisibleForTesting
+ void updateRingerMode() {
final int ringerMode = mHelper.getRingerModeInternal();
if (mRingerMode == ringerMode) return;
mRingerMode = ringerMode;
@@ -125,28 +176,73 @@
private void updateEffectsSuppressor() {
final ComponentName suppressor = NotificationManager.from(mContext).getEffectsSuppressor();
if (Objects.equals(suppressor, mSuppressor)) return;
- mSuppressor = suppressor;
- if (mPreference != null) {
- final String text = SuppressorHelper.getSuppressionText(mContext, suppressor);
- mPreference.setSuppressionText(text);
+
+ if (mNoMan == null) {
+ mNoMan = INotificationManager.Stub.asInterface(
+ ServiceManager.getService(Context.NOTIFICATION_SERVICE));
}
- updatePreferenceIcon();
+
+ final int hints;
+ try {
+ hints = mNoMan.getHintsFromListenerNoToken();
+ } catch (android.os.RemoteException ex) {
+ Log.w(TAG, "updateEffectsSuppressor: " + ex.getMessage());
+ return;
+ }
+
+ if (hintsMatch(hints, mRingAliasNotif)) {
+ mSuppressor = suppressor;
+ if (mPreference != null) {
+ final String text = SuppressorHelper.getSuppressionText(mContext, suppressor);
+ mPreference.setSuppressionText(text);
+ }
+ }
+ }
+
+ @VisibleForTesting
+ boolean hintsMatch(int hints, boolean ringNotificationAliased) {
+ return (hints & NotificationListenerService.HINT_HOST_DISABLE_CALL_EFFECTS) != 0
+ || (hints & NotificationListenerService.HINT_HOST_DISABLE_EFFECTS) != 0
+ || ((hints & NotificationListenerService.HINT_HOST_DISABLE_NOTIFICATION_EFFECTS)
+ != 0 && ringNotificationAliased);
+ }
+
+ @VisibleForTesting
+ void setPreference(VolumeSeekBarPreference volumeSeekBarPreference) {
+ mPreference = volumeSeekBarPreference;
+ }
+
+ @VisibleForTesting
+ void setVibrator(Vibrator vibrator) {
+ mVibrator = vibrator;
}
private void updatePreferenceIcon() {
if (mPreference != null) {
- if (mRingerMode == AudioManager.RINGER_MODE_VIBRATE) {
- mMuteIcon = R.drawable.ic_volume_ringer_vibrate;
- mPreference.showIcon(R.drawable.ic_volume_ringer_vibrate);
- } else if (mRingerMode == AudioManager.RINGER_MODE_SILENT) {
- mMuteIcon = R.drawable.ic_notifications_off_24dp;
- mPreference.showIcon(R.drawable.ic_notifications_off_24dp);
+ if (mRingerMode == AudioManager.RINGER_MODE_NORMAL) {
+ mPreference.showIcon(mNormalIconId);
} else {
- mPreference.showIcon(R.drawable.ic_notifications);
+ if (mRingerMode == AudioManager.RINGER_MODE_VIBRATE && mVibrator != null) {
+ mMuteIcon = mVibrateIconId;
+ } else {
+ mMuteIcon = mSilentIconId;
+ }
+ mPreference.showIcon(mMuteIcon);
}
}
}
+ /**
+ * This slider can represent both ring and notification, or only ring.
+ * Note: This cannot be used in the constructor, as the reference to preference object would
+ * still be null.
+ */
+ private void setPreferenceTitle() {
+ if (mPreference != null) {
+ mPreference.setTitle(mTitleId);
+ }
+ }
+
private final class H extends Handler {
private static final int UPDATE_EFFECTS_SUPPRESSOR = 1;
private static final int UPDATE_RINGER_MODE = 2;
diff --git a/src/com/android/settings/notification/ShowOnLockScreenNotificationPreferenceController.java b/src/com/android/settings/notification/ShowOnLockScreenNotificationPreferenceController.java
index f7dc391..1addd82 100644
--- a/src/com/android/settings/notification/ShowOnLockScreenNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/ShowOnLockScreenNotificationPreferenceController.java
@@ -23,6 +23,9 @@
import android.os.UserHandle;
import android.provider.Settings;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
import com.android.settings.R;
import com.android.settings.RestrictedListPreference;
import com.android.settings.core.PreferenceControllerMixin;
@@ -34,9 +37,6 @@
import java.util.ArrayList;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
public class ShowOnLockScreenNotificationPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
@@ -157,6 +157,6 @@
private boolean getLockscreenSilentNotificationsEnabled() {
return Settings.Secure.getInt(mContext.getContentResolver(),
- Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 1) != 0;
+ Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 0) != 0;
}
}
diff --git a/src/com/android/settings/overlay/FeatureFactory.java b/src/com/android/settings/overlay/FeatureFactory.java
index c59b385..aff7197 100644
--- a/src/com/android/settings/overlay/FeatureFactory.java
+++ b/src/com/android/settings/overlay/FeatureFactory.java
@@ -45,7 +45,6 @@
import com.android.settings.security.SecuritySettingsFeatureProvider;
import com.android.settings.slices.SlicesFeatureProvider;
import com.android.settings.users.UserFeatureProvider;
-import com.android.settings.vpn2.AdvancedVpnFeatureProvider;
import com.android.settings.wifi.WifiTrackerLibProvider;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -178,11 +177,6 @@
*/
public abstract AccessibilityMetricsFeatureProvider getAccessibilityMetricsFeatureProvider();
- /**
- * Retrieves implementation for advanced vpn feature.
- */
- public abstract AdvancedVpnFeatureProvider getAdvancedVpnFeatureProvider();
-
public static final class FactoryNotFoundException extends RuntimeException {
public FactoryNotFoundException(Throwable throwable) {
super("Unable to create factory. Did you misconfigure Proguard?", throwable);
diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.java b/src/com/android/settings/overlay/FeatureFactoryImpl.java
index 593b866..89f74de 100644
--- a/src/com/android/settings/overlay/FeatureFactoryImpl.java
+++ b/src/com/android/settings/overlay/FeatureFactoryImpl.java
@@ -71,8 +71,6 @@
import com.android.settings.slices.SlicesFeatureProviderImpl;
import com.android.settings.users.UserFeatureProvider;
import com.android.settings.users.UserFeatureProviderImpl;
-import com.android.settings.vpn2.AdvancedVpnFeatureProvider;
-import com.android.settings.vpn2.AdvancedVpnFeatureProviderImpl;
import com.android.settings.wifi.WifiTrackerLibProvider;
import com.android.settings.wifi.WifiTrackerLibProviderImpl;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -108,7 +106,6 @@
private SecuritySettingsFeatureProvider mSecuritySettingsFeatureProvider;
private AccessibilitySearchFeatureProvider mAccessibilitySearchFeatureProvider;
private AccessibilityMetricsFeatureProvider mAccessibilityMetricsFeatureProvider;
- private AdvancedVpnFeatureProvider mAdvancedVpnFeatureProvider;
@Override
public SupportFeatureProvider getSupportFeatureProvider(Context context) {
@@ -337,12 +334,4 @@
}
return mAccessibilityMetricsFeatureProvider;
}
-
- @Override
- public AdvancedVpnFeatureProvider getAdvancedVpnFeatureProvider() {
- if (mAdvancedVpnFeatureProvider == null) {
- mAdvancedVpnFeatureProvider = new AdvancedVpnFeatureProviderImpl();
- }
- return mAdvancedVpnFeatureProvider;
- }
}
diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java
index 04ae311..1ce4492 100644
--- a/src/com/android/settings/panel/PanelFragment.java
+++ b/src/com/android/settings/panel/PanelFragment.java
@@ -60,6 +60,7 @@
import com.google.android.setupdesign.DividerItemDecoration;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
@@ -339,8 +340,13 @@
mSliceLiveData.put(uri, sliceLiveData);
sliceLiveData.observe(getViewLifecycleOwner(), slice -> {
- // If the Slice has already loaded, do nothing.
+
+ // If the Slice has already loaded, refresh list with slice data.
if (mPanelSlicesLoaderCountdownLatch.isSliceLoaded(uri)) {
+ if (mAdapter != null) {
+ int itemIndex = (new ArrayList<>(mSliceLiveData.keySet())).indexOf(uri);
+ mAdapter.notifyItemChanged(itemIndex);
+ }
return;
}
diff --git a/src/com/android/settings/panel/PanelSlicesAdapter.java b/src/com/android/settings/panel/PanelSlicesAdapter.java
index 9f5ffe9..d728366 100644
--- a/src/com/android/settings/panel/PanelSlicesAdapter.java
+++ b/src/com/android/settings/panel/PanelSlicesAdapter.java
@@ -54,7 +54,7 @@
* Maximum number of slices allowed on the panel view.
*/
@VisibleForTesting
- static final int MAX_NUM_OF_SLICES = 6;
+ static final int MAX_NUM_OF_SLICES = 7;
private final List<LiveData<Slice>> mSliceLiveData;
private final int mMetricsCategory;
@@ -84,7 +84,7 @@
@Override
public void onBindViewHolder(@NonNull SliceRowViewHolder sliceRowViewHolder, int position) {
- sliceRowViewHolder.onBind(mSliceLiveData.get(position), position);
+ sliceRowViewHolder.onBind(mSliceLiveData.get(position).getValue());
}
/**
@@ -132,15 +132,14 @@
/**
* Called when the view is displayed.
*/
- public void onBind(LiveData<Slice> sliceLiveData, int position) {
- sliceLiveData.observe(mPanelFragment.getViewLifecycleOwner(), sliceView);
-
- // Do not show the divider above media devices switcher slice per request
- final Slice slice = sliceLiveData.getValue();
-
+ public void onBind(Slice slice) {
// Hides slice which reports with error hint or not contain any slice sub-item.
if (slice == null || !isValidSlice(slice)) {
sliceView.setVisibility(View.GONE);
+ return;
+ } else {
+ sliceView.setSlice(slice);
+ sliceView.setVisibility(View.VISIBLE);
}
// Add divider for the end icon
@@ -154,7 +153,7 @@
.action(0 /* attribution */,
SettingsEnums.ACTION_PANEL_INTERACTION,
mMetricsCategory,
- sliceLiveData.getValue().getUri().getLastPathSegment()
+ slice.getUri().getLastPathSegment()
/* log key */,
eventInfo.actionType /* value */);
})
diff --git a/src/com/android/settings/slices/CustomSliceRegistry.java b/src/com/android/settings/slices/CustomSliceRegistry.java
index d1b169c..569a0ea 100644
--- a/src/com/android/settings/slices/CustomSliceRegistry.java
+++ b/src/com/android/settings/slices/CustomSliceRegistry.java
@@ -218,6 +218,16 @@
.build();
/**
+ * Full {@link Uri} for the Notification volume Slice.
+ */
+ public static final Uri VOLUME_NOTIFICATION_URI = new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(SettingsSliceProvider.SLICE_AUTHORITY)
+ .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
+ .appendPath("notification_volume")
+ .build();
+
+ /**
* Full {@link Uri} for the all volume Slices.
*/
public static final Uri VOLUME_SLICES_URI = new Uri.Builder()
diff --git a/src/com/android/settings/sound/AudioSwitchPreferenceController.java b/src/com/android/settings/sound/AudioSwitchPreferenceController.java
index 5b70d16..6475257 100644
--- a/src/com/android/settings/sound/AudioSwitchPreferenceController.java
+++ b/src/com/android/settings/sound/AudioSwitchPreferenceController.java
@@ -45,6 +45,7 @@
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.HeadsetProfile;
import com.android.settingslib.bluetooth.HearingAidProfile;
+import com.android.settingslib.bluetooth.LeAudioProfile;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -52,6 +53,7 @@
import com.android.settingslib.core.lifecycle.events.OnStop;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
@@ -215,6 +217,41 @@
}
/**
+ * Get LE Audio profile connected devices
+ */
+ protected List<BluetoothDevice> getConnectedLeAudioDevices() {
+ final List<BluetoothDevice> connectedDevices = new ArrayList<>();
+ final LeAudioProfile leAudioProfile = mProfileManager.getLeAudioProfile();
+ if (leAudioProfile == null) {
+ Log.d(TAG, "LeAudioProfile is null");
+ return connectedDevices;
+ }
+ final List<BluetoothDevice> devices = leAudioProfile.getConnectedDevices();
+ for (BluetoothDevice device : devices) {
+ if (device.isConnected() && isDeviceInCachedList(device)) {
+ connectedDevices.add(device);
+ }
+ }
+ return connectedDevices;
+ }
+
+ /**
+ * Confirm if the device exists in the cached devices list. If return true, it means
+ * the device is main device in the LE Audio device group. Otherwise, the device is the member
+ * device in the group.
+ */
+ protected boolean isDeviceInCachedList(BluetoothDevice device) {
+ Collection<CachedBluetoothDevice> cachedDevices =
+ mLocalBluetoothManager.getCachedDeviceManager().getCachedDevicesCopy();
+ for (CachedBluetoothDevice cachedDevice : cachedDevices) {
+ if (cachedDevice.getDevice().equals(device)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
* get hearing aid profile connected device, exclude other devices with same hiSyncId.
*/
protected List<BluetoothDevice> getConnectedHearingAidDevices() {
@@ -260,6 +297,24 @@
}
/**
+ * Find active LE Audio device
+ */
+ protected BluetoothDevice findActiveLeAudioDevice() {
+ final LeAudioProfile leAudioProfile = mProfileManager.getLeAudioProfile();
+
+ if (leAudioProfile != null) {
+ List<BluetoothDevice> activeDevices = leAudioProfile.getActiveDevices();
+ for (BluetoothDevice leAudioDevice : activeDevices) {
+ if (leAudioDevice != null) {
+ return leAudioDevice;
+ }
+ }
+ }
+ Log.d(TAG, "There is no LE audio profile or no active LE audio device");
+ return null;
+ }
+
+ /**
* Find the active device from the corresponding profile.
*
* @return the active device. Return null if the
diff --git a/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java b/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
index 15f47cf..35cc65f 100644
--- a/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
+++ b/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
@@ -103,6 +103,7 @@
mConnectedDevices.clear();
mConnectedDevices.addAll(getConnectedHfpDevices());
mConnectedDevices.addAll(getConnectedHearingAidDevices());
+ mConnectedDevices.addAll(getConnectedLeAudioDevices());
final int numDevices = mConnectedDevices.size();
if (numDevices == 0) {
@@ -181,12 +182,22 @@
@Override
public BluetoothDevice findActiveDevice() {
- BluetoothDevice activeDevice = findActiveHearingAidDevice();
+ BluetoothDevice haActiveDevice = findActiveHearingAidDevice();
+ BluetoothDevice leAudioActiveDevice = findActiveLeAudioDevice();
final HeadsetProfile headsetProfile = mProfileManager.getHeadsetProfile();
- if (activeDevice == null && headsetProfile != null) {
- activeDevice = headsetProfile.getActiveDevice();
+ if (haActiveDevice != null) {
+ return haActiveDevice;
}
- return activeDevice;
+
+ if (leAudioActiveDevice != null) {
+ return leAudioActiveDevice;
+ }
+
+ if (headsetProfile != null && headsetProfile.getActiveDevice() != null) {
+ return headsetProfile.getActiveDevice();
+ }
+
+ return null;
}
}
diff --git a/src/com/android/settings/sound/MediaOutputPreferenceController.java b/src/com/android/settings/sound/MediaOutputPreferenceController.java
index 4ec00e3..758f7e3 100644
--- a/src/com/android/settings/sound/MediaOutputPreferenceController.java
+++ b/src/com/android/settings/sound/MediaOutputPreferenceController.java
@@ -88,9 +88,11 @@
// Find active device and set its name as the preference's summary
List<BluetoothDevice> connectedA2dpDevices = getConnectedA2dpDevices();
List<BluetoothDevice> connectedHADevices = getConnectedHearingAidDevices();
+ List<BluetoothDevice> connectedLeAudioDevices = getConnectedLeAudioDevices();
if (mAudioManager.getMode() == AudioManager.MODE_NORMAL
&& ((connectedA2dpDevices != null && !connectedA2dpDevices.isEmpty())
- || (connectedHADevices != null && !connectedHADevices.isEmpty()))) {
+ || (connectedHADevices != null && !connectedHADevices.isEmpty())
+ || (connectedLeAudioDevices != null && !connectedLeAudioDevices.isEmpty()))) {
activeDevice = findActiveDevice();
}
mPreference.setTitle(mContext.getString(R.string.media_output_label_title,
@@ -103,13 +105,23 @@
@Override
public BluetoothDevice findActiveDevice() {
- BluetoothDevice activeDevice = findActiveHearingAidDevice();
+ BluetoothDevice haActiveDevice = findActiveHearingAidDevice();
+ BluetoothDevice leAudioActiveDevice = findActiveLeAudioDevice();
final A2dpProfile a2dpProfile = mProfileManager.getA2dpProfile();
- if (activeDevice == null && a2dpProfile != null) {
- activeDevice = a2dpProfile.getActiveDevice();
+ if (haActiveDevice != null) {
+ return haActiveDevice;
}
- return activeDevice;
+
+ if (leAudioActiveDevice != null) {
+ return leAudioActiveDevice;
+ }
+
+ if (a2dpProfile != null && a2dpProfile.getActiveDevice() != null) {
+ return a2dpProfile.getActiveDevice();
+ }
+
+ return null;
}
/**
diff --git a/src/com/android/settings/vpn2/AdvancedVpnFeatureProvider.java b/src/com/android/settings/vpn2/AdvancedVpnFeatureProvider.java
deleted file mode 100644
index 962b6c2..0000000
--- a/src/com/android/settings/vpn2/AdvancedVpnFeatureProvider.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2022 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.vpn2;
-
-import android.content.Context;
-
-/**
- * Feature Provider used in vpn usage
- */
-public interface AdvancedVpnFeatureProvider {
-
- /**
- * Returns package name of advanced vpn.
- */
- String getAdvancedVpnPackageName();
-
- /**
- * Returns {@code true} advanced vpn is supported.
- */
- boolean isAdvancedVpnSupported(Context context);
-
- /**
- * Returns the title of advanced vpn preference group.
- */
- String getAdvancedVpnPreferenceGroupTitle(Context context);
-
- /**
- * Returns the title of vpn preference group.
- */
- String getVpnPreferenceGroupTitle(Context context);
-
- /**
- * Returns {@code true} advanced vpn is removable.
- */
- boolean isAdvancedVpnRemovable();
-
- /**
- * Returns {@code true} if the disconnect dialog is enabled when advanced vpn is connected.
- */
- boolean isDisconnectDialogEnabled();
-}
diff --git a/src/com/android/settings/vpn2/AdvancedVpnFeatureProviderImpl.java b/src/com/android/settings/vpn2/AdvancedVpnFeatureProviderImpl.java
deleted file mode 100644
index b8f58a9..0000000
--- a/src/com/android/settings/vpn2/AdvancedVpnFeatureProviderImpl.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2022 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.vpn2;
-
-import android.content.Context;
-
-/**
- * Feature provider implementation for advanced vpn.
- */
-public class AdvancedVpnFeatureProviderImpl implements AdvancedVpnFeatureProvider {
- @Override
- public String getAdvancedVpnPackageName() {
- return null;
- }
-
- @Override
- public boolean isAdvancedVpnSupported(Context context) {
- return false;
- }
-
- @Override
- public String getAdvancedVpnPreferenceGroupTitle(Context context) {
- return null;
- }
-
- @Override
- public String getVpnPreferenceGroupTitle(Context context) {
- return null;
- }
-
- @Override
- public boolean isAdvancedVpnRemovable() {
- return true;
- }
-
- @Override
- public boolean isDisconnectDialogEnabled() {
- return true;
- }
-}
diff --git a/src/com/android/settings/vpn2/AppManagementFragment.java b/src/com/android/settings/vpn2/AppManagementFragment.java
index d2fa5fc..d4ee5b9 100644
--- a/src/com/android/settings/vpn2/AppManagementFragment.java
+++ b/src/com/android/settings/vpn2/AppManagementFragment.java
@@ -48,7 +48,6 @@
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.RestrictedPreference;
@@ -72,7 +71,6 @@
private PackageManager mPackageManager;
private DevicePolicyManager mDevicePolicyManager;
private VpnManager mVpnManager;
- private AdvancedVpnFeatureProvider mFeatureProvider;
// VPN app info
private final int mUserId = UserHandle.myUserId();
@@ -124,7 +122,6 @@
mPackageManager = getContext().getPackageManager();
mDevicePolicyManager = getContext().getSystemService(DevicePolicyManager.class);
mVpnManager = getContext().getSystemService(VpnManager.class);
- mFeatureProvider = FeatureFactory.getFactory(getContext()).getAdvancedVpnFeatureProvider();
mPreferenceAlwaysOn = (RestrictedSwitchPreference) findPreference(KEY_ALWAYS_ON_VPN);
mPreferenceLockdown = (RestrictedSwitchPreference) findPreference(KEY_LOCKDOWN_VPN);
@@ -286,16 +283,7 @@
}
}
- @VisibleForTesting
- void updateRestrictedViews() {
- if (mFeatureProvider.isAdvancedVpnSupported(getContext())
- && !mFeatureProvider.isAdvancedVpnRemovable()
- && TextUtils.equals(mPackageName, mFeatureProvider.getAdvancedVpnPackageName())) {
- mPreferenceForget.setVisible(false);
- } else {
- mPreferenceForget.setVisible(true);
- }
-
+ private void updateRestrictedViews() {
if (isAdded()) {
mPreferenceAlwaysOn.checkRestrictionAndSetDisabled(UserManager.DISALLOW_CONFIG_VPN,
mUserId);
@@ -326,14 +314,6 @@
}
}
- @VisibleForTesting
- void init(String packageName, AdvancedVpnFeatureProvider featureProvider,
- RestrictedPreference preference) {
- mPackageName = packageName;
- mFeatureProvider = featureProvider;
- mPreferenceForget = preference;
- }
-
private String getAlwaysOnVpnPackage() {
return mVpnManager.getAlwaysOnVpnPackageForUser(mUserId);
}
diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java
index a91bb6c..e89785f 100644
--- a/src/com/android/settings/vpn2/VpnSettings.java
+++ b/src/com/android/settings/vpn2/VpnSettings.java
@@ -26,7 +26,6 @@
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
@@ -43,7 +42,6 @@
import android.os.UserManager;
import android.security.Credentials;
import android.security.LegacyVpnProfileStore;
-import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Log;
@@ -54,7 +52,6 @@
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceGroup;
-import androidx.preference.PreferenceScreen;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.net.LegacyVpnInfo;
@@ -62,7 +59,6 @@
import com.android.internal.net.VpnProfile;
import com.android.settings.R;
import com.android.settings.RestrictedSettingsFragment;
-import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.GearPreference;
import com.android.settings.widget.GearPreference.OnGearClickListener;
import com.android.settingslib.RestrictedLockUtilsInternal;
@@ -83,12 +79,9 @@
public class VpnSettings extends RestrictedSettingsFragment implements
Handler.Callback, Preference.OnPreferenceClickListener {
private static final String LOG_TAG = "VpnSettings";
- private static final boolean DEBUG = Log.isLoggable(LOG_TAG, Log.DEBUG);
private static final int RESCAN_MESSAGE = 0;
private static final int RESCAN_INTERVAL_MS = 1000;
- private static final String ADVANCED_VPN_GROUP_KEY = "advanced_vpn_group";
- private static final String VPN_GROUP_KEY = "vpn_group";
private static final NetworkRequest VPN_REQUEST = new NetworkRequest.Builder()
.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)
@@ -109,9 +102,6 @@
private LegacyVpnInfo mConnectedLegacyVpn;
private boolean mUnavailable;
- private AdvancedVpnFeatureProvider mFeatureProvider;
- private PreferenceScreen mPreferenceScreen;
- private boolean mIsAdvancedVpnSupported;
public VpnSettings() {
super(UserManager.DISALLOW_CONFIG_VPN);
@@ -129,14 +119,11 @@
mUserManager = (UserManager) getSystemService(Context.USER_SERVICE);
mConnectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
mVpnManager = (VpnManager) getSystemService(Context.VPN_MANAGEMENT_SERVICE);
- mFeatureProvider = FeatureFactory.getFactory(getContext()).getAdvancedVpnFeatureProvider();
- mIsAdvancedVpnSupported = mFeatureProvider.isAdvancedVpnSupported(getContext());
mUnavailable = isUiRestricted();
setHasOptionsMenu(!mUnavailable);
addPreferencesFromResource(R.xml.vpn_settings2);
- mPreferenceScreen = getPreferenceScreen();
}
@Override
@@ -242,8 +229,7 @@
// Run heavy RPCs before switching to UI thread
final List<VpnProfile> vpnProfiles = loadVpnProfiles();
- final List<AppVpnInfo> vpnApps = getVpnApps(context, /* includeProfiles */ true,
- mFeatureProvider);
+ final List<AppVpnInfo> vpnApps = getVpnApps(context, /* includeProfiles */ true);
final Map<String, LegacyVpnInfo> connectedLegacyVpns = getConnectedLegacyVpns();
final Set<AppVpnInfo> connectedAppVpns = getConnectedAppVpns();
@@ -279,7 +265,7 @@
private final VpnSettings mSettings;
- UpdatePreferences(VpnSettings settings) {
+ public UpdatePreferences(VpnSettings settings) {
mSettings = settings;
}
@@ -346,14 +332,7 @@
}
// Trim out deleted VPN preferences
- if (DEBUG) {
- Log.d(LOG_TAG, "isAdvancedVpnSupported() : " + mSettings.mIsAdvancedVpnSupported);
- }
- if (mSettings.mIsAdvancedVpnSupported) {
- mSettings.setShownAdvancedPreferences(updates);
- } else {
- mSettings.setShownPreferences(updates);
- }
+ mSettings.setShownPreferences(updates);
}
}
@@ -364,61 +343,12 @@
@VisibleForTesting @UiThread
public void setShownPreferences(final Collection<Preference> updates) {
- retainAllPreference(updates);
-
- final PreferenceGroup vpnGroup = mPreferenceScreen;
- updatePreferenceGroup(vpnGroup, updates);
-
- // Show all new preferences on the screen
- for (Preference pref : updates) {
- vpnGroup.addPreference(pref);
- }
- }
-
- @VisibleForTesting @UiThread
- void setShownAdvancedPreferences(final Collection<Preference> updates) {
- retainAllPreference(updates);
-
- PreferenceGroup advancedVpnGroup = mPreferenceScreen.findPreference(ADVANCED_VPN_GROUP_KEY);
- PreferenceGroup vpnGroup = mPreferenceScreen.findPreference(VPN_GROUP_KEY);
- advancedVpnGroup.setTitle(
- mFeatureProvider.getAdvancedVpnPreferenceGroupTitle(getContext()));
- vpnGroup.setTitle(mFeatureProvider.getVpnPreferenceGroupTitle(getContext()));
- updatePreferenceGroup(advancedVpnGroup, updates);
- updatePreferenceGroup(vpnGroup, updates);
-
- // Show all new preferences on the screen
- for (Preference pref : updates) {
- String packageName = "";
- if (pref instanceof LegacyVpnPreference) {
- LegacyVpnPreference legacyPref = (LegacyVpnPreference) pref;
- packageName = legacyPref.getPackageName();
- } else if (pref instanceof AppPreference) {
- AppPreference appPref = (AppPreference) pref;
- packageName = appPref.getPackageName();
- }
- if (DEBUG) {
- Log.d(LOG_TAG, "setShownAdvancedPreferences() package name : " + packageName);
- }
- if (TextUtils.equals(packageName, mFeatureProvider.getAdvancedVpnPackageName())) {
- advancedVpnGroup.addPreference(pref);
- } else {
- vpnGroup.addPreference(pref);
- }
- }
-
- advancedVpnGroup.setVisible(advancedVpnGroup.getPreferenceCount() > 0);
- vpnGroup.setVisible(vpnGroup.getPreferenceCount() > 0);
- }
-
- private void retainAllPreference(Collection<Preference> updates) {
mLegacyVpnPreferences.values().retainAll(updates);
mAppPreferences.values().retainAll(updates);
- }
- private void updatePreferenceGroup(PreferenceGroup vpnGroup, Collection<Preference> updates) {
// Change {@param updates} in-place to only contain new preferences that were not already
// added to the preference screen.
+ final PreferenceGroup vpnGroup = getPreferenceScreen();
for (int i = vpnGroup.getPreferenceCount() - 1; i >= 0; i--) {
Preference p = vpnGroup.getPreference(i);
if (updates.contains(p)) {
@@ -427,6 +357,11 @@
vpnGroup.removePreference(p);
}
}
+
+ // Show any new preferences on the screen
+ for (Preference pref : updates) {
+ vpnGroup.addPreference(pref);
+ }
}
@Override
@@ -448,16 +383,14 @@
} else if (preference instanceof AppPreference) {
AppPreference pref = (AppPreference) preference;
boolean connected = (pref.getState() == AppPreference.STATE_CONNECTED);
- String vpnPackageName = pref.getPackageName();
- if ((!connected) || (isAdvancedVpn(mFeatureProvider, vpnPackageName, getContext())
- && !mFeatureProvider.isDisconnectDialogEnabled())) {
+ if (!connected) {
try {
UserHandle user = UserHandle.of(pref.getUserId());
- Context userContext = getContext().createPackageContextAsUser(
- getContext().getPackageName(), 0 /* flags */, user);
+ Context userContext = getActivity().createPackageContextAsUser(
+ getActivity().getPackageName(), 0 /* flags */, user);
PackageManager pm = userContext.getPackageManager();
- Intent appIntent = pm.getLaunchIntentForPackage(vpnPackageName);
+ Intent appIntent = pm.getLaunchIntentForPackage(pref.getPackageName());
if (appIntent != null) {
userContext.startActivityAsUser(appIntent, user);
return true;
@@ -537,32 +470,9 @@
pref.setOnPreferenceClickListener(this);
mAppPreferences.put(app, pref);
}
- enableAdvancedVpnGearIconIfNecessary(pref);
return pref;
}
- private void enableAdvancedVpnGearIconIfNecessary(AppPreference pref) {
- Context context = getContext();
- if (!isAdvancedVpn(mFeatureProvider, pref.getPackageName(), context)) {
- return;
- }
-
- boolean isEnabled = false;
- AppOpsManager appOpsManager = getContext().getSystemService(AppOpsManager.class);
- List<AppOpsManager.PackageOps> apps =
- appOpsManager.getPackagesForOps(
- new int[] {OP_ACTIVATE_VPN, OP_ACTIVATE_PLATFORM_VPN});
- if (apps != null) {
- for (AppOpsManager.PackageOps pkg : apps) {
- if (isAdvancedVpn(mFeatureProvider, pkg.getPackageName(), context)) {
- isEnabled = true;
- break;
- }
- }
- }
- pref.setOnGearClickListener(isEnabled ? mGearListener : null);
- }
-
@WorkerThread
private Map<String, LegacyVpnInfo> getConnectedLegacyVpns() {
mConnectedLegacyVpn = mVpnManager.getLegacyVpnInfo(UserHandle.myUserId());
@@ -598,15 +508,7 @@
return result;
}
- static List<AppVpnInfo> getVpnApps(Context context, boolean includeProfiles,
- AdvancedVpnFeatureProvider featureProvider) {
- return getVpnApps(context, includeProfiles, featureProvider,
- context.getSystemService(AppOpsManager.class));
- }
-
- @VisibleForTesting
- static List<AppVpnInfo> getVpnApps(Context context, boolean includeProfiles,
- AdvancedVpnFeatureProvider featureProvider, AppOpsManager aom) {
+ static List<AppVpnInfo> getVpnApps(Context context, boolean includeProfiles) {
List<AppVpnInfo> result = Lists.newArrayList();
final Set<Integer> profileIds;
@@ -619,19 +521,8 @@
profileIds = Collections.singleton(UserHandle.myUserId());
}
- if (featureProvider.isAdvancedVpnSupported(context)) {
- PackageManager pm = context.getPackageManager();
- try {
- ApplicationInfo appInfo =
- pm.getApplicationInfo(
- featureProvider.getAdvancedVpnPackageName(), /* flags= */ 0);
- int userId = UserHandle.getUserId(appInfo.uid);
- result.add(new AppVpnInfo(userId, featureProvider.getAdvancedVpnPackageName()));
- } catch (PackageManager.NameNotFoundException e) {
- Log.e(LOG_TAG, "Advanced VPN package name not found.", e);
- }
- }
-
+ // Fetch VPN-enabled apps from AppOps.
+ AppOpsManager aom = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
List<AppOpsManager.PackageOps> apps =
aom.getPackagesForOps(new int[] {OP_ACTIVATE_VPN, OP_ACTIVATE_PLATFORM_VPN});
if (apps != null) {
@@ -641,9 +532,6 @@
// Skip packages for users outside of our profile group.
continue;
}
- if (isAdvancedVpn(featureProvider, pkg.getPackageName(), context)) {
- continue;
- }
// Look for a MODE_ALLOWED permission to activate VPN.
boolean allowed = false;
for (AppOpsManager.OpEntry op : pkg.getOps()) {
@@ -662,12 +550,6 @@
return result;
}
- private static boolean isAdvancedVpn(AdvancedVpnFeatureProvider featureProvider,
- String packageName, Context context) {
- return featureProvider.isAdvancedVpnSupported(context)
- && TextUtils.equals(packageName, featureProvider.getAdvancedVpnPackageName());
- }
-
private static List<VpnProfile> loadVpnProfiles() {
final ArrayList<VpnProfile> result = Lists.newArrayList();
@@ -680,10 +562,4 @@
}
return result;
}
-
- @VisibleForTesting
- void init(PreferenceScreen preferenceScreen, AdvancedVpnFeatureProvider featureProvider) {
- mPreferenceScreen = preferenceScreen;
- mFeatureProvider = featureProvider;
- }
}
diff --git a/src/com/android/settings/wifi/WifiUtils.java b/src/com/android/settings/wifi/WifiUtils.java
index 4b94c81..a9010ac 100644
--- a/src/com/android/settings/wifi/WifiUtils.java
+++ b/src/com/android/settings/wifi/WifiUtils.java
@@ -22,14 +22,20 @@
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.NetworkCapabilities;
+import android.net.TetheringManager;
import android.net.wifi.ScanResult;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiManager;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
import android.text.TextUtils;
+import android.util.Log;
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.R;
import com.android.settings.Utils;
import com.android.wifitrackerlib.WifiEntry;
@@ -38,12 +44,16 @@
/** A utility class for Wi-Fi functions. */
public class WifiUtils extends com.android.settingslib.wifi.WifiUtils {
+ static final String TAG = "WifiUtils";
+
private static final int SSID_ASCII_MIN_LENGTH = 1;
private static final int SSID_ASCII_MAX_LENGTH = 32;
private static final int PSK_PASSPHRASE_ASCII_MIN_LENGTH = 8;
private static final int PSK_PASSPHRASE_ASCII_MAX_LENGTH = 63;
+ private static Boolean sCanShowWifiHotspotCached;
+
public static boolean isSSIDTooLong(String ssid) {
if (TextUtils.isEmpty(ssid)) {
return false;
@@ -240,4 +250,62 @@
return WifiEntry.SECURITY_NONE;
}
+
+ /**
+ * Check if Wi-Fi hotspot settings can be displayed.
+ *
+ * @param context Context of caller
+ * @return true if Wi-Fi hotspot settings can be displayed
+ */
+ public static boolean checkShowWifiHotspot(Context context) {
+ if (context == null) return false;
+
+ boolean showWifiHotspotSettings =
+ context.getResources().getBoolean(R.bool.config_show_wifi_hotspot_settings);
+ if (!showWifiHotspotSettings) {
+ Log.w(TAG, "config_show_wifi_hotspot_settings:false");
+ return false;
+ }
+
+ WifiManager wifiManager = context.getSystemService(WifiManager.class);
+ if (wifiManager == null) {
+ Log.e(TAG, "WifiManager is null");
+ return false;
+ }
+
+ TetheringManager tetheringManager = context.getSystemService(TetheringManager.class);
+ if (tetheringManager == null) {
+ Log.e(TAG, "TetheringManager is null");
+ return false;
+ }
+ String[] wifiRegexs = tetheringManager.getTetherableWifiRegexs();
+ if (wifiRegexs == null || wifiRegexs.length == 0) {
+ Log.w(TAG, "TetherableWifiRegexs is empty");
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Return the cached result to see if Wi-Fi hotspot settings can be displayed.
+ *
+ * @param context Context of caller
+ * @return true if Wi-Fi hotspot settings can be displayed
+ */
+ public static boolean canShowWifiHotspot(Context context) {
+ if (sCanShowWifiHotspotCached == null) {
+ sCanShowWifiHotspotCached = checkShowWifiHotspot(context);
+ }
+ return sCanShowWifiHotspotCached;
+ }
+
+ /**
+ * Sets the sCanShowWifiHotspotCached for testing purposes.
+ *
+ * @param cached Cached value for #canShowWifiHotspot()
+ */
+ @VisibleForTesting
+ public static void setCanShowWifiHotspotCached(Boolean cached) {
+ sCanShowWifiHotspotCached = cached;
+ }
}
diff --git a/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
index 73ff31d..a9c3559 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
@@ -16,9 +16,10 @@
package com.android.settings.wifi.tether;
+import static com.android.settings.wifi.WifiUtils.canShowWifiHotspot;
+
import android.annotation.NonNull;
import android.content.Context;
-import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiClient;
import android.net.wifi.WifiManager;
@@ -46,7 +47,6 @@
private static final String WIFI_TETHER_SETTINGS = "wifi_tether";
- private boolean mIsWifiTetherable;
private WifiManager mWifiManager;
private boolean mIsWifiTetheringAllow;
private int mSoftApState;
@@ -57,8 +57,7 @@
public WifiTetherPreferenceController(Context context, Lifecycle lifecycle) {
this(context, lifecycle,
- context.getSystemService(WifiManager.class),
- context.getSystemService(TetheringManager.class),
+ context.getApplicationContext().getSystemService(WifiManager.class),
true /* initSoftApManager */,
WifiEnterpriseRestrictionUtils.isWifiTetheringAllowed(context));
}
@@ -68,15 +67,9 @@
Context context,
Lifecycle lifecycle,
WifiManager wifiManager,
- TetheringManager tetheringManager,
boolean initSoftApManager,
boolean isWifiTetheringAllow) {
super(context);
- final String[] wifiRegexs = tetheringManager.getTetherableWifiRegexs();
- if (wifiRegexs != null && wifiRegexs.length != 0) {
- mIsWifiTetherable = true;
- }
-
mIsWifiTetheringAllow = isWifiTetheringAllow;
if (!isWifiTetheringAllow) return;
@@ -92,7 +85,7 @@
@Override
public boolean isAvailable() {
- return mIsWifiTetherable && !Utils.isMonkeyRunning();
+ return canShowWifiHotspot(mContext) && !Utils.isMonkeyRunning();
}
@Override
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
index e6b4bd6..1ff7746 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
@@ -18,6 +18,8 @@
import static android.net.wifi.WifiManager.WIFI_AP_STATE_CHANGED_ACTION;
+import static com.android.settings.wifi.WifiUtils.canShowWifiHotspot;
+
import android.app.settings.SettingsEnums;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -107,6 +109,13 @@
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
+ if (!canShowWifiHotspot(getContext())) {
+ Log.e(TAG, "can not launch Wi-Fi hotspot settings"
+ + " because the config is not set to show.");
+ finish();
+ return;
+ }
+
setIfOnlyAvailableForAdmins(true);
mUnavailable = isUiRestricted() || !mWifiRestriction.isHotspotAvailable(getContext());
}
diff --git a/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
new file mode 100644
index 0000000..ac8008d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
@@ -0,0 +1,358 @@
+/*
+ * Copyright (C) 2022 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.biometrics.combination;
+
+import static com.android.settings.biometrics.combination.BiometricsSettingsBase.CONFIRM_REQUEST;
+import static com.android.settings.password.ChooseLockPattern.RESULT_FINISHED;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.content.Intent;
+import android.hardware.face.FaceManager;
+import android.hardware.fingerprint.FingerprintManager;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.XmlRes;
+import androidx.fragment.app.FragmentActivity;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowFragment;
+import com.android.settings.testutils.shadow.ShadowSettingsPreferenceFragment;
+import com.android.settings.testutils.shadow.ShadowUtils;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.util.ReflectionHelpers;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowSettingsPreferenceFragment.class, ShadowUtils.class, ShadowFragment.class})
+public class CombinedBiometricProfileSettingsTest {
+
+ private TestCombinedBiometricProfileSettings mFragment;
+ private Context mContext;
+
+ @Rule
+ public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+ @Captor
+ private ArgumentCaptor<Preference> mPreferenceCaptor;
+ @Mock
+ private FingerprintManager mFingerprintManager;
+ @Mock
+ private BiometricSettingsAppPreferenceController mBiometricSettingsAppPreferenceController;
+ @Mock
+ private FaceManager mFaceManager;
+
+ @Before
+ public void setUp() {
+ ShadowUtils.setFingerprintManager(mFingerprintManager);
+ ShadowUtils.setFaceManager(mFaceManager);
+ FakeFeatureFactory.setupForTest();
+
+ FragmentActivity activity = Robolectric.buildActivity(FragmentActivity.class,
+ new Intent().putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, 1L)).get();
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ mFragment = spy(new TestCombinedBiometricProfileSettings(mContext));
+ doReturn(activity).when(mFragment).getActivity();
+
+ ReflectionHelpers.setField(mFragment, "mDashboardFeatureProvider",
+ FakeFeatureFactory.setupForTest().dashboardFeatureProvider);
+
+ final Map<Class<?>, List<AbstractPreferenceController>> preferenceControllers =
+ ReflectionHelpers.getField(mFragment, "mPreferenceControllers");
+ List<AbstractPreferenceController> controllerList = new ArrayList<>();
+ controllerList.add(mBiometricSettingsAppPreferenceController);
+ preferenceControllers.put(BiometricSettingsAppPreferenceController.class, controllerList);
+
+ doAnswer(invocation -> {
+ final CharSequence key = invocation.getArgument(0);
+ final Preference preference = new Preference(mContext);
+ preference.setKey(key.toString());
+ return preference;
+ }).when(mFragment).findPreference(any());
+ }
+
+ @Test
+ public void testClickFingerprintUnlockWithValidGkPwHandle() {
+ doAnswer(invocation -> {
+ final FingerprintManager.GenerateChallengeCallback callback =
+ invocation.getArgument(1);
+ callback.onChallengeGenerated(0, 0, 1L);
+ return null;
+ }).when(mFingerprintManager).generateChallenge(anyInt(), any());
+ doReturn(new byte[] { 1 }).when(mFragment).requestGatekeeperHat(any(), anyLong(), anyInt(),
+ anyLong());
+
+ // Start fragment
+ mFragment.onAttach(mContext);
+ mFragment.onCreate(null);
+ mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
+ mFragment.onResume();
+
+ // User clicks on "Fingerprint Unlock"
+ final Preference preference = new Preference(mContext);
+ preference.setKey(mFragment.getFingerprintPreferenceKey());
+ mFragment.onPreferenceTreeClick(preference);
+
+ verify(mBiometricSettingsAppPreferenceController).handlePreferenceTreeClick(
+ mPreferenceCaptor.capture());
+ List<Preference> capturedPreferences = mPreferenceCaptor.getAllValues();
+
+ assertThat(capturedPreferences.size()).isEqualTo(1);
+ assertThat(capturedPreferences.get(0).getKey())
+ .isEqualTo(mFragment.getFingerprintPreferenceKey());
+ }
+
+ @Test
+ public void testClickFingerprintUnlockIfGkPwHandleTimeout() {
+ doAnswer(invocation -> {
+ final FingerprintManager.GenerateChallengeCallback callback =
+ invocation.getArgument(1);
+ callback.onChallengeGenerated(0, 0, 1L);
+ return null;
+ }).when(mFingerprintManager).generateChallenge(anyInt(), any());
+ doThrow(new IllegalStateException("Test")).when(mFragment).requestGatekeeperHat(any(),
+ anyLong(), anyInt(), anyLong());
+
+ // Start fragment
+ mFragment.onAttach(mContext);
+ mFragment.onCreate(null);
+ mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
+ mFragment.onResume();
+
+ // User clicks on "Fingerprint Unlock"
+ final Preference preference = new Preference(mContext);
+ preference.setKey(mFragment.getFingerprintPreferenceKey());
+ mFragment.onPreferenceTreeClick(preference);
+
+ verify(mFragment).launchChooseOrConfirmLock();
+ }
+
+ @Test
+ public void testActivityResultLaunchFingerprintUnlock() {
+ doAnswer(invocation -> {
+ final FingerprintManager.GenerateChallengeCallback callback =
+ invocation.getArgument(1);
+ callback.onChallengeGenerated(0, 0, 1L);
+ return null;
+ }).when(mFingerprintManager).generateChallenge(anyInt(), any());
+ doReturn(new byte[] { 1 }).when(mFragment).requestGatekeeperHat(any(), anyLong(), anyInt(),
+ anyLong());
+
+ // Start fragment
+ mFragment.onAttach(mContext);
+ final Bundle bundle = new Bundle();
+ bundle.putString(BiometricsSettingsBase.RETRY_PREFERENCE_KEY,
+ mFragment.getFingerprintPreferenceKey());
+ final Bundle retryBundle = new Bundle();
+ bundle.putBundle(BiometricsSettingsBase.RETRY_PREFERENCE_BUNDLE, retryBundle);
+ mFragment.onCreate(bundle);
+ mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
+ mFragment.onResume();
+
+ // onActivityResult
+ mFragment.onActivityResult(CONFIRM_REQUEST, RESULT_FINISHED,
+ new Intent().putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, 1L));
+
+ verify(mBiometricSettingsAppPreferenceController).handlePreferenceTreeClick(
+ mPreferenceCaptor.capture());
+ List<Preference> capturedPreferences = mPreferenceCaptor.getAllValues();
+ assertThat(capturedPreferences.size()).isEqualTo(1);
+ assertThat(capturedPreferences.get(0).getKey())
+ .isEqualTo(mFragment.getFingerprintPreferenceKey());
+ }
+
+ @Test
+ public void testClickFaceUnlock() {
+ doAnswer(invocation -> {
+ final FaceManager.GenerateChallengeCallback callback =
+ invocation.getArgument(1);
+ callback.onGenerateChallengeResult(0, 0, 1L);
+ return null;
+ }).when(mFaceManager).generateChallenge(anyInt(), any());
+ doReturn(new byte[] { 1 }).when(mFragment).requestGatekeeperHat(any(), anyLong(), anyInt(),
+ anyLong());
+
+ // Start fragment
+ mFragment.onAttach(mContext);
+ mFragment.onCreate(null);
+ mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
+ mFragment.onResume();
+
+ // User clicks on "Face Unlock"
+ final Preference preference = new Preference(mContext);
+ preference.setKey(mFragment.getFacePreferenceKey());
+ mFragment.onPreferenceTreeClick(preference);
+
+ verify(mBiometricSettingsAppPreferenceController).handlePreferenceTreeClick(
+ mPreferenceCaptor.capture());
+ List<Preference> capturedPreferences = mPreferenceCaptor.getAllValues();
+ assertThat(capturedPreferences.size()).isEqualTo(1);
+ assertThat(capturedPreferences.get(0).getKey()).isEqualTo(mFragment.getFacePreferenceKey());
+ }
+
+ @Test
+ public void testClickFaceUnlockIfGkPwHandleTimeout() {
+ doAnswer(invocation -> {
+ final FaceManager.GenerateChallengeCallback callback =
+ invocation.getArgument(1);
+ callback.onGenerateChallengeResult(0, 0, 1L);
+ return null;
+ }).when(mFaceManager).generateChallenge(anyInt(), any());
+ doThrow(new IllegalStateException("Test")).when(mFragment).requestGatekeeperHat(any(),
+ anyLong(), anyInt(), anyLong());
+
+ // Start fragment
+ mFragment.onAttach(mContext);
+ mFragment.onCreate(null);
+ mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
+ mFragment.onResume();
+
+ // User clicks on "Face Unlock"
+ final Preference preference = new Preference(mContext);
+ preference.setKey(mFragment.getFacePreferenceKey());
+ mFragment.onPreferenceTreeClick(preference);
+
+ verify(mFragment).launchChooseOrConfirmLock();
+ }
+
+ @Test
+ public void testActivityResultLaunchFaceUnlock() {
+ doAnswer(invocation -> {
+ final FaceManager.GenerateChallengeCallback callback =
+ invocation.getArgument(1);
+ callback.onGenerateChallengeResult(0, 0, 1L);
+ return null;
+ }).when(mFaceManager).generateChallenge(anyInt(), any());
+ doReturn(new byte[] { 1 }).when(mFragment).requestGatekeeperHat(any(), anyLong(), anyInt(),
+ anyLong());
+
+ // Start fragment
+ mFragment.onAttach(mContext);
+ final Bundle bundle = new Bundle();
+ bundle.putString(BiometricsSettingsBase.RETRY_PREFERENCE_KEY,
+ mFragment.getFingerprintPreferenceKey());
+ final Bundle retryBundle = new Bundle();
+ bundle.putBundle(BiometricsSettingsBase.RETRY_PREFERENCE_BUNDLE, retryBundle);
+ mFragment.onCreate(bundle);
+ mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
+ mFragment.onResume();
+
+ // User clicks on "Face Unlock"
+ final Preference preference = new Preference(mContext);
+ preference.setKey(mFragment.getFacePreferenceKey());
+ mFragment.onPreferenceTreeClick(preference);
+
+ verify(mBiometricSettingsAppPreferenceController).handlePreferenceTreeClick(
+ mPreferenceCaptor.capture());
+ List<Preference> capturedPreferences = mPreferenceCaptor.getAllValues();
+ assertThat(capturedPreferences.size()).isEqualTo(1);
+ assertThat(capturedPreferences.get(0).getKey()).isEqualTo(mFragment.getFacePreferenceKey());
+ }
+
+ /**
+ * a test fragment that initializes PreferenceScreen for testing.
+ */
+ static class TestCombinedBiometricProfileSettings extends CombinedBiometricProfileSettings {
+
+ private final Context mContext;
+ private final PreferenceManager mPreferenceManager;
+
+ TestCombinedBiometricProfileSettings(Context context) {
+ super();
+ mContext = context;
+ mPreferenceManager = new PreferenceManager(context);
+ mPreferenceManager.setPreferences(mPreferenceManager.createPreferenceScreen(context));
+ setArguments(new Bundle());
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return 0;
+ }
+
+ @Override
+ public int getPreferenceScreenResId() {
+ return R.xml.placeholder_prefs;
+ }
+
+ @Override
+ public PreferenceScreen getPreferenceScreen() {
+ return mPreferenceManager.getPreferenceScreen();
+ }
+
+ @Override
+ public PreferenceManager getPreferenceManager() {
+ return mPreferenceManager;
+ }
+
+ @Override
+ public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
+ // do nothing
+ }
+
+ @Override
+ public void addPreferencesFromResource(@XmlRes int preferencesResId) {
+ // do nothing
+ }
+
+ @Override
+ public Context getContext() {
+ return mContext;
+ }
+
+ @Override
+ protected void launchChooseOrConfirmLock() {
+ // do nothing
+ }
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceControllerTest.java
index b9692cf..77a6b02 100644
--- a/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceControllerTest.java
@@ -31,6 +31,7 @@
import android.os.UserManager;
import android.provider.Settings;
+import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.RestrictedSwitchPreference;
@@ -65,6 +66,9 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ ShadowUtils.setFaceManager(mFaceManager);
+ FakeFeatureFactory.setupForTest();
+
mContext = spy(RuntimeEnvironment.application);
when(mContext.getSystemService(eq(Context.FACE_SERVICE))).thenReturn(mFaceManager);
when(mContext.getPackageManager()).thenReturn(mPackageManager);
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
index 3a890b4..b049b7b 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
@@ -18,6 +18,7 @@
import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON;
import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
+import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UNKNOWN;
import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.KEY_STATE_PREVIOUS_ROTATION;
import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.SFPS_STAGE_NO_ANIMATION;
@@ -35,6 +36,8 @@
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.mock;
+
import android.content.Context;
import android.content.res.ColorStateList;
@@ -52,6 +55,8 @@
import android.view.Surface;
import android.widget.TextView;
+import androidx.annotation.Nullable;
+
import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.widget.RingProgressBar;
@@ -59,7 +64,6 @@
import com.airbnb.lottie.LottieAnimationView;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -100,16 +104,39 @@
}
@Test
- @Ignore
public void fingerprintEnrollHelp_shouldShowHelpText() {
- EnrollmentCallback enrollmentCallback = verifyAndCaptureEnrollmentCallback();
+ initializeActivityFor(TYPE_UNKNOWN);
+ TestFingerprintEnrollSidecar sidecar = new TestFingerprintEnrollSidecar();
+ Resources resources = mock(Resources.class);
+ doReturn(resources).when(mContext).getResources();
+ when(resources.getIntArray(R.array.fingerprint_acquired_ignore_list))
+ .thenReturn(new int[]{3});
- enrollmentCallback.onEnrollmentProgress(123);
- enrollmentCallback.onEnrollmentHelp(
- FingerprintManager.FINGERPRINT_ERROR_UNABLE_TO_PROCESS, "test enrollment help");
+ sidecar.setListener(mActivity);
+ sidecar.onAttach(mActivity);
+ sidecar.mEnrollmentCallback.onEnrollmentHelp(5,
+ "Help message should be displayed.");
TextView errorText = mActivity.findViewById(R.id.error_text);
- assertThat(errorText.getText()).isEqualTo("test enrollment help");
+ assertThat(errorText.getText()).isEqualTo("Help message should be displayed.");
+ }
+
+ @Test
+ public void fingerprintEnrollHelp_shouldNotShowHelpText() {
+ initializeActivityFor(TYPE_UNKNOWN);
+ TestFingerprintEnrollSidecar sidecar = new TestFingerprintEnrollSidecar();
+ Resources resources = mock(Resources.class);
+ doReturn(resources).when(mContext).getResources();
+ when(resources.getIntArray(R.array.fingerprint_acquired_ignore_list))
+ .thenReturn(new int[]{3});
+
+ sidecar.setListener(mActivity);
+ sidecar.onAttach(mActivity);
+ sidecar.mEnrollmentCallback.onEnrollmentHelp(3,
+ "Help message should not be displayed.");
+
+ TextView errorText = mActivity.findViewById(R.id.error_text);
+ assertThat(errorText.getText()).isEqualTo("");
}
@Test
@@ -151,6 +178,16 @@
}
@Test
+ public void fingerprintUdfpsOverlayEnrollment_loseFocusWithCancelFlag_shouldNotCancelAgain() {
+ initializeActivityFor(TYPE_UDFPS_OPTICAL);
+
+ mActivity.mIsCanceled = true;
+ mActivity.onWindowFocusChanged(true);
+
+ verify(mActivity, never()).onCancelEnrollment(anyInt());
+ }
+
+ @Test
public void fingerprintSfpsEnroll_PlaysAllAnimationsAssetsCorrectly() {
initializeActivityFor(TYPE_POWER_BUTTON);
@@ -309,4 +346,12 @@
return callbackCaptor.getValue();
}
+
+ private class TestFingerprintEnrollSidecar extends FingerprintEnrollSidecar {
+ @Nullable
+ @Override
+ public Context getContext() {
+ return mContext;
+ }
+ }
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceControllerTest.java
index 660c8f1..94d6f1f 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceControllerTest.java
@@ -65,18 +65,18 @@
@Test
public void onA2dpHwDialogConfirmedAsA2dpOffloadDisabled_shouldChangeProperty() {
- SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(false));
+ SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true));
mController.mChanged = true;
mController.onRebootDialogConfirmed();
final boolean mode = SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
- assertThat(mode).isTrue();
+ assertThat(mode).isFalse();
}
@Test
public void onA2dpHwDialogConfirmedAsA2dpOffloadEnabled_shouldChangeProperty() {
- SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true));
- SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true));
+ SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(false));
+ SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(false));
mController.mChanged = true;
@@ -84,8 +84,8 @@
final boolean a2dpMode = SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, true);
final boolean leAudioMode = SystemProperties
.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, true);
- assertThat(a2dpMode).isFalse();
- assertThat(leAudioMode).isFalse();
+ assertThat(a2dpMode).isTrue();
+ assertThat(leAudioMode).isTrue();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceControllerTest.java
index ec64fe3..aa05f62 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceControllerTest.java
@@ -16,14 +16,21 @@
package com.android.settings.development;
+import static android.bluetooth.BluetoothStatusCodes.FEATURE_SUPPORTED;
+
+import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController
+ .A2DP_OFFLOAD_DISABLED_PROPERTY;
import static com.android.settings.development.BluetoothLeAudioHwOffloadPreferenceController
.LE_AUDIO_OFFLOAD_DISABLED_PROPERTY;
+import static com.android.settings.development.BluetoothLeAudioHwOffloadPreferenceController
+ .LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
+import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.os.SystemProperties;
@@ -45,6 +52,8 @@
private PreferenceScreen mPreferenceScreen;
@Mock
private DevelopmentSettingsDashboardFragment mFragment;
+ @Mock
+ private BluetoothAdapter mBluetoothAdapter;
private Context mContext;
private SwitchPreference mPreference;
@@ -59,6 +68,9 @@
when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
.thenReturn(mPreference);
mController.displayPreference(mPreferenceScreen);
+ mController.mBluetoothAdapter = mBluetoothAdapter;
+ when(mBluetoothAdapter.isLeAudioSupported())
+ .thenReturn(FEATURE_SUPPORTED);
}
@Test
@@ -91,4 +103,21 @@
final boolean mode = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false);
assertThat(mode).isFalse();
}
+
+ @Test
+ public void asA2dpOffloadDisabled_shouldNotSwitchLeAudioOffloadStatus() {
+ SystemProperties.set(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, Boolean.toString(true));
+ SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true));
+
+ SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(false));
+ mController.updateState(null);
+ boolean leAueioDisabled =
+ SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false);
+ assertThat(leAueioDisabled).isFalse();
+
+ SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(true));
+ mController.updateState(null);
+ leAueioDisabled = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false);
+ assertThat(leAueioDisabled).isTrue();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/dream/WhenToDreamPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/dream/WhenToDreamPreferenceControllerTest.java
index 3305cde..458c5c6 100644
--- a/tests/robotests/src/com/android/settings/dream/WhenToDreamPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/dream/WhenToDreamPreferenceControllerTest.java
@@ -16,15 +16,24 @@
package com.android.settings.dream;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.anyString;
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.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.os.PowerManager;
import androidx.preference.Preference;
import androidx.test.core.app.ApplicationProvider;
+import com.android.settings.R;
+import com.android.settings.display.AmbientDisplayAlwaysOnPreferenceController;
import com.android.settingslib.dream.DreamBackend;
import com.android.settingslib.dream.DreamBackend.WhenToDream;
@@ -38,32 +47,64 @@
@RunWith(RobolectricTestRunner.class)
public class WhenToDreamPreferenceControllerTest {
+ private static final String TEST_PACKAGE = "com.android.test";
private WhenToDreamPreferenceController mController;
private Context mContext;
@Mock
private DreamBackend mBackend;
+ @Mock
+ private PowerManager mPowerManager;
+ @Mock
+ private PackageManager mPackageManager;
+ @Mock
+ private ApplicationInfo mApplicationInfo;
@Before
- public void setup() {
+ public void setup() throws Exception {
MockitoAnnotations.initMocks(this);
- mContext = ApplicationProvider.getApplicationContext();
- mController = new WhenToDreamPreferenceController(mContext);
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ mController = new WhenToDreamPreferenceController(mContext, true);
ReflectionHelpers.setField(mController, "mBackend", mBackend);
+ when(mContext.getSystemService(PowerManager.class)).thenReturn(mPowerManager);
+ when(mPowerManager.isAmbientDisplaySuppressedForTokenByApp(anyString(), anyInt()))
+ .thenReturn(false);
+
+ mApplicationInfo.uid = 1;
+ when(mContext.getString(
+ com.android.internal.R.string.config_defaultWellbeingPackage)).thenReturn(
+ TEST_PACKAGE);
+
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
+ when(mPackageManager.getApplicationInfo(TEST_PACKAGE, /* flag= */ 0)).thenReturn(
+ mApplicationInfo);
}
@Test
- public void updateSummary() {
+ public void testUpdateSummary() {
// Don't have to test the other settings because DreamSettings tests that all
// @WhenToDream values map to the correct ResId
final @WhenToDream int testSetting = DreamBackend.WHILE_CHARGING;
final Preference mockPref = mock(Preference.class);
when(mockPref.getContext()).thenReturn(mContext);
when(mBackend.getWhenToDreamSetting()).thenReturn(testSetting);
- final String expectedString =
- mContext.getString(DreamSettings.getDreamSettingDescriptionResId(testSetting));
+ final int expectedResId = DreamSettings.getDreamSettingDescriptionResId(testSetting);
mController.updateState(mockPref);
- verify(mockPref).setSummary(expectedString);
+ verify(mockPref).setSummary(expectedResId);
+ }
+
+ @Test
+ public void testBedtimeModeSuppression() {
+ final Preference mockPref = mock(Preference.class);
+ when(mockPref.getContext()).thenReturn(mContext);
+ when(mBackend.getWhenToDreamSetting()).thenReturn(DreamBackend.WHILE_CHARGING);
+ when(mPowerManager.isAmbientDisplaySuppressedForTokenByApp(anyString(), anyInt()))
+ .thenReturn(true);
+
+ assertTrue(AmbientDisplayAlwaysOnPreferenceController.isAodSuppressedByBedtime(mContext));
+
+ mController.updateState(mockPref);
+ verify(mockPref).setSummary(R.string.screensaver_settings_when_to_dream_bedtime);
}
}
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorWorkerTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorWorkerTest.java
index 2339f4c..cd06bae 100644
--- a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorWorkerTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorWorkerTest.java
@@ -38,11 +38,14 @@
import android.media.session.PlaybackState;
import android.net.Uri;
+import com.android.settings.bluetooth.Utils;
import com.android.settings.slices.ShadowSliceBackgroundWorker;
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
import com.android.settingslib.bluetooth.BluetoothEventManager;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
import com.android.settingslib.media.LocalMediaManager;
import org.junit.Before;
@@ -69,13 +72,17 @@
@Mock
private BluetoothEventManager mBluetoothEventManager;
@Mock
- private LocalBluetoothManager mLocalBluetoothManager;
+ private LocalBluetoothManager mLocalBtManager;
+ @Mock
+ private LocalBluetoothProfileManager mLocalBluetoothProfileManager;
@Mock
private MediaSessionManager mMediaSessionManager;
@Mock
private MediaController mMediaController;
@Mock
private LocalMediaManager mLocalMediaManager;
+ @Mock
+ private LocalBluetoothLeBroadcast mLeAudioBroadcastProfile;
private Context mContext;
private MediaOutputIndicatorWorker mMediaOutputIndicatorWorker;
@@ -84,14 +91,18 @@
private List<MediaController> mMediaControllers = new ArrayList<>();
private PlaybackState mPlaybackState;
private MediaController.PlaybackInfo mPlaybackInfo;
+ private LocalBluetoothManager mLocalBluetoothManager;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mShadowApplication = ShadowApplication.getInstance();
mContext = spy(RuntimeEnvironment.application);
- ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
+ ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBtManager;
+ mLocalBluetoothManager = Utils.getLocalBtManager(mContext);
when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager);
+ when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager);
+ when(mLocalBluetoothProfileManager.getLeAudioBroadcastProfile()).thenReturn(null);
mMediaOutputIndicatorWorker = new MediaOutputIndicatorWorker(mContext, URI);
doReturn(mMediaSessionManager).when(mContext).getSystemService(MediaSessionManager.class);
mMediaControllers.add(mMediaController);
@@ -284,4 +295,22 @@
assertThat(mMediaOutputIndicatorWorker.getActiveLocalMediaController()).isNull();
}
+
+ @Test
+ public void isBroadcastSupported_leAudioBroadcastProfileIsNull_returnFalse() {
+ mMediaOutputIndicatorWorker.mLocalMediaManager = mLocalMediaManager;
+ mMediaOutputIndicatorWorker.onSlicePinned();
+
+ assertThat(mMediaOutputIndicatorWorker.isBroadcastSupported()).isFalse();
+ }
+
+ @Test
+ public void isBroadcastSupported_leAudioBroadcastProfileNotNull_returnTrue() {
+ mMediaOutputIndicatorWorker.mLocalMediaManager = mLocalMediaManager;
+ mMediaOutputIndicatorWorker.onSlicePinned();
+ when(mLocalBluetoothProfileManager.getLeAudioBroadcastProfile())
+ .thenReturn(mLeAudioBroadcastProfile);
+
+ assertThat(mMediaOutputIndicatorWorker.isBroadcastSupported()).isTrue();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputUtilsTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputUtilsTest.java
index dea6a2c..5fa7fdd 100644
--- a/tests/robotests/src/com/android/settings/media/MediaOutputUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaOutputUtilsTest.java
@@ -66,7 +66,18 @@
@Test
public void getActiveLocalMediaController_localMediaPlaying_returnController() {
- initPlayback();
+ initPlayback(PlaybackState.STATE_PLAYING);
+
+ when(mMediaController.getPlaybackInfo()).thenReturn(mPlaybackInfo);
+ when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);
+
+ assertThat(MediaOutputUtils.getActiveLocalMediaController(mMediaSessionManager)).isEqualTo(
+ mMediaController);
+ }
+
+ @Test
+ public void getActiveLocalMediaController_localMediaPause_returnController() {
+ initPlayback(PlaybackState.STATE_PAUSED);
when(mMediaController.getPlaybackInfo()).thenReturn(mPlaybackInfo);
when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);
@@ -114,6 +125,44 @@
}
@Test
+ public void getActiveLocalMediaController_localMediaNone_returnNull() {
+ mPlaybackInfo = new MediaController.PlaybackInfo(
+ MediaController.PlaybackInfo.PLAYBACK_TYPE_LOCAL,
+ VolumeProvider.VOLUME_CONTROL_ABSOLUTE,
+ 100,
+ 10,
+ new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_MEDIA).build(),
+ null);
+ mPlaybackState = new PlaybackState.Builder()
+ .setState(PlaybackState.STATE_NONE, 0, 1)
+ .build();
+
+ when(mMediaController.getPlaybackInfo()).thenReturn(mPlaybackInfo);
+ when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);
+
+ assertThat(MediaOutputUtils.getActiveLocalMediaController(mMediaSessionManager)).isNull();
+ }
+
+ @Test
+ public void getActiveLocalMediaController_localMediaError_returnNull() {
+ mPlaybackInfo = new MediaController.PlaybackInfo(
+ MediaController.PlaybackInfo.PLAYBACK_TYPE_LOCAL,
+ VolumeProvider.VOLUME_CONTROL_ABSOLUTE,
+ 100,
+ 10,
+ new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_MEDIA).build(),
+ null);
+ mPlaybackState = new PlaybackState.Builder()
+ .setState(PlaybackState.STATE_ERROR, 0, 1)
+ .build();
+
+ when(mMediaController.getPlaybackInfo()).thenReturn(mPlaybackInfo);
+ when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);
+
+ assertThat(MediaOutputUtils.getActiveLocalMediaController(mMediaSessionManager)).isNull();
+ }
+
+ @Test
public void getActiveLocalMediaController_bothHaveRemoteMediaAndLocalMedia_returnNull() {
mMediaControllers.clear();
final MediaController.PlaybackInfo playbackInfo = new MediaController.PlaybackInfo(
@@ -130,7 +179,7 @@
mMediaControllers.add(remoteMediaController);
mMediaControllers.add(mMediaController);
- initPlayback();
+ initPlayback(PlaybackState.STATE_PLAYING);
when(mMediaController.getPlaybackInfo()).thenReturn(mPlaybackInfo);
when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);
@@ -155,7 +204,7 @@
final MediaController remoteMediaController = mock(MediaController.class);
mMediaControllers.add(remoteMediaController);
- initPlayback();
+ initPlayback(PlaybackState.STATE_PLAYING);
when(mMediaController.getPlaybackInfo()).thenReturn(mPlaybackInfo);
when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);
@@ -165,7 +214,7 @@
assertThat(MediaOutputUtils.getActiveLocalMediaController(mMediaSessionManager)).isNull();
}
- private void initPlayback() {
+ private void initPlayback(int playbackState) {
mPlaybackInfo = new MediaController.PlaybackInfo(
MediaController.PlaybackInfo.PLAYBACK_TYPE_LOCAL,
VolumeProvider.VOLUME_CONTROL_ABSOLUTE,
@@ -174,7 +223,7 @@
new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_MEDIA).build(),
null);
mPlaybackState = new PlaybackState.Builder()
- .setState(PlaybackState.STATE_PLAYING, 0, 1)
+ .setState(playbackState, 0, 1)
.build();
}
}
diff --git a/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
index 56e83bb..2d023d7 100644
--- a/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
@@ -113,13 +113,23 @@
@Test
public void isSupportEndItem_withBleDevice_returnsTrue() {
+ doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
assertThat(mController.isSupportEndItem()).isTrue();
}
@Test
+ public void isSupportEndItem_notSupportedBroadcast_returnsFalse() {
+ doReturn(false).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
+ doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
+
+ assertThat(mController.isSupportEndItem()).isFalse();
+ }
+
+ @Test
public void isSupportEndItem_withNonBleDevice_returnsFalse() {
+ doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
doReturn(mDevice2).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
assertThat(mController.isSupportEndItem()).isFalse();
@@ -127,6 +137,7 @@
@Test
public void getSliceEndItem_NotSupportEndItem_getsNullSliceAction() {
+ doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
doReturn(mDevice2).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
final SliceAction sliceAction = mController.getSliceEndItem(mContext);
@@ -136,6 +147,7 @@
@Test
public void getSliceEndItem_deviceIsBroadcasting_getsBroadcastIntent() {
+ doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
doReturn(mDevice1).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
doReturn(true).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
doReturn(mMediaController).when(sMediaOutputIndicatorWorker)
@@ -155,6 +167,7 @@
final CachedBluetoothDevice cachedDevice = mock(CachedBluetoothDevice.class);
when(((BluetoothMediaDevice) device).getCachedDevice()).thenReturn(cachedDevice);
when(device.isBLEDevice()).thenReturn(true);
+ doReturn(true).when(sMediaOutputIndicatorWorker).isBroadcastSupported();
doReturn(device).when(sMediaOutputIndicatorWorker).getCurrentConnectedMediaDevice();
doReturn(false).when(sMediaOutputIndicatorWorker).isDeviceBroadcasting();
doReturn(mMediaController).when(sMediaOutputIndicatorWorker)
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java
index b594667..1dac399 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java
@@ -226,4 +226,14 @@
.setNASMigrationDoneAndResetDefault(eq(10), anyBoolean());
}
+ @Test
+ public void testNASUnavailable_settingDisabled() throws Exception {
+ when(mBackend.getDefaultNotificationAssistant()).thenReturn(null);
+ mPreferenceController.getDefaultNASIntent();
+ mPreferenceController.updateState(mPreference);
+
+ verify(mPreference, times(1)).setSwitchEnabled(eq(false));
+ assertFalse(mPreference.isEnabled());
+ }
+
}
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationVolumePreferenceControllerTest.java
index fe4744f..96b9e62 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationVolumePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationVolumePreferenceControllerTest.java
@@ -22,10 +22,14 @@
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.content.res.Resources;
import android.media.AudioManager;
import android.os.Vibrator;
+import android.service.notification.NotificationListenerService;
import android.telephony.TelephonyManager;
+import com.android.internal.R;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -46,6 +50,8 @@
private AudioManager mAudioManager;
@Mock
private Vibrator mVibrator;
+ @Mock
+ private Resources mResources;
private Context mContext;
private NotificationVolumePreferenceController mController;
@@ -57,6 +63,8 @@
when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
when(mContext.getSystemService(Context.AUDIO_SERVICE)).thenReturn(mAudioManager);
when(mContext.getSystemService(Context.VIBRATOR_SERVICE)).thenReturn(mVibrator);
+ when(mContext.getResources()).thenReturn(mResources);
+
mController = new NotificationVolumePreferenceController(mContext);
mController.setAudioHelper(mHelper);
}
@@ -76,15 +84,50 @@
}
@Test
- public void isAvailable_voiceCapable_shouldReturnFalse() {
+ public void isAvailable_voiceCapable_aliasedWithRing_shouldReturnFalse() {
+ when(mResources.getBoolean(
+ com.android.settings.R.bool.config_show_notification_volume)).thenReturn(true);
+ when(mResources.getBoolean(R.bool.config_alias_ring_notif_stream_types)).thenReturn(true);
+
+ NotificationVolumePreferenceController controller =
+ new NotificationVolumePreferenceController(mContext);
when(mHelper.isSingleVolume()).thenReturn(false);
when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+ assertThat(controller.isAvailable()).isFalse();
+ }
+
+ /**
+ * With the introduction of ring-notification volume separation, voice-capable devices could now
+ * display the notification volume slider.
+ */
+ @Test
+ public void isAvailable_voiceCapable_separatedFromRing_shouldReturnTrue() {
+ when(mResources.getBoolean(
+ com.android.settings.R.bool.config_show_notification_volume)).thenReturn(true);
+ when(mResources.getBoolean(R.bool.config_alias_ring_notif_stream_types)).thenReturn(false);
+
+ NotificationVolumePreferenceController controller =
+ new NotificationVolumePreferenceController(mContext);
+
+ when(mHelper.isSingleVolume()).thenReturn(false);
+ when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+
+ assertThat(controller.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void isAvailable_notShowNotificationVolume_shouldReturnFalse() {
+ when(mResources.getBoolean(
+ com.android.settings.R.bool.config_show_notification_volume)).thenReturn(false);
+
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void isAvailable_notSingleVolume_notVoiceCapable_shouldReturnTrue() {
+ when(mResources.getBoolean(
+ com.android.settings.R.bool.config_show_notification_volume)).thenReturn(true);
when(mHelper.isSingleVolume()).thenReturn(false);
when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
@@ -107,4 +150,24 @@
public void isPublicSlice_returnTrue() {
assertThat(mController.isPublicSlice()).isTrue();
}
+
+ @Test
+ public void setHintsRing_DoesNotMatch() {
+ assertThat(mController.hintsMatch(
+ NotificationListenerService.HINT_HOST_DISABLE_CALL_EFFECTS)).isFalse();
+ }
+
+ @Test
+ public void setHintsAll_Matches() {
+ assertThat(mController.hintsMatch(NotificationListenerService.HINT_HOST_DISABLE_EFFECTS))
+ .isTrue();
+ }
+
+ @Test
+ public void setHintNotification_Matches() {
+ assertThat(mController
+ .hintsMatch(NotificationListenerService.HINT_HOST_DISABLE_NOTIFICATION_EFFECTS))
+ .isTrue();
+ }
+
}
diff --git a/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java
index 5e484a3..02757d5 100644
--- a/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java
@@ -18,15 +18,20 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.app.NotificationManager;
import android.content.ComponentName;
import android.content.Context;
+import android.content.res.Resources;
import android.media.AudioManager;
import android.os.Vibrator;
+import android.service.notification.NotificationListenerService;
import android.telephony.TelephonyManager;
+import com.android.settings.R;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -51,8 +56,13 @@
private NotificationManager mNotificationManager;
@Mock
private ComponentName mSuppressor;
+ @Mock
+ private Resources mResources;
+ @Mock
+ private VolumeSeekBarPreference mPreference;
private Context mContext;
+
private RingVolumePreferenceController mController;
@Before
@@ -63,8 +73,9 @@
shadowContext.setSystemService(Context.AUDIO_SERVICE, mAudioManager);
shadowContext.setSystemService(Context.VIBRATOR_SERVICE, mVibrator);
shadowContext.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = RuntimeEnvironment.application;
+ mContext = spy(RuntimeEnvironment.application);
when(mNotificationManager.getEffectsSuppressor()).thenReturn(mSuppressor);
+ when(mContext.getResources()).thenReturn(mResources);
mController = new RingVolumePreferenceController(mContext);
mController.setAudioHelper(mHelper);
}
@@ -109,4 +120,92 @@
public void isPublicSlice_returnTrue() {
assertThat(mController.isPublicSlice()).isTrue();
}
+
+ // todo: verify that the title change is displayed, by examining the underlying preference
+ @Test
+ public void ringNotificationStreamsNotAliased_sliderTitleSetToRingOnly() {
+ when(mResources.getBoolean(
+ com.android.internal.R.bool.config_alias_ring_notif_stream_types))
+ .thenReturn(false);
+ final RingVolumePreferenceController controller =
+ new RingVolumePreferenceController(mContext);
+
+ int expectedTitleId = R.string.separate_ring_volume_option_title;
+
+ assertThat(controller.mTitleId).isEqualTo(expectedTitleId);
+ }
+
+ @Test
+ public void ringNotificationStreamsAliased_sliderTitleIncludesBothRingNotification() {
+
+ when(mResources.getBoolean(
+ com.android.internal.R.bool.config_alias_ring_notif_stream_types)).thenReturn(true);
+ final RingVolumePreferenceController control = new RingVolumePreferenceController(mContext);
+
+ int expectedTitleId = R.string.ring_volume_option_title;
+
+ assertThat(control.mTitleId).isEqualTo(expectedTitleId);
+ }
+
+ @Test
+ public void setHintsRing_aliased_Matches() {
+ assertThat(mController.hintsMatch(
+ NotificationListenerService.HINT_HOST_DISABLE_CALL_EFFECTS, true)).isTrue();
+ }
+
+ @Test
+ public void setHintsRingNotification_aliased_Matches() {
+ assertThat(mController.hintsMatch(NotificationListenerService.HINT_HOST_DISABLE_EFFECTS,
+ true)).isTrue();
+ }
+
+ @Test
+ public void setHintNotification_aliased_Matches() {
+ assertThat(mController
+ .hintsMatch(NotificationListenerService.HINT_HOST_DISABLE_NOTIFICATION_EFFECTS,
+ true)).isTrue();
+ }
+
+ @Test
+ public void setHintsRing_unaliased_Matches() {
+ assertThat(mController.hintsMatch(
+ NotificationListenerService.HINT_HOST_DISABLE_CALL_EFFECTS, false)).isTrue();
+ }
+
+ @Test
+ public void setHintsRingNotification_unaliased_Matches() {
+ assertThat(mController.hintsMatch(NotificationListenerService.HINT_HOST_DISABLE_EFFECTS,
+ false)).isTrue();
+ }
+
+ @Test
+ public void setHintNotification_unaliased_doesNotMatch() {
+ assertThat(mController
+ .hintsMatch(NotificationListenerService.HINT_HOST_DISABLE_NOTIFICATION_EFFECTS,
+ false)).isFalse();
+ }
+
+ @Test
+ public void setRingerModeToVibrate_butNoVibratorAvailable_iconIsSilent() {
+ when(mHelper.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_VIBRATE);
+
+ mController.setPreference(mPreference);
+ mController.setVibrator(null);
+ mController.updateRingerMode();
+
+ assertThat(mController.getMuteIcon()).isEqualTo(mController.mSilentIconId);
+ }
+
+ @Test
+ public void setRingerModeToVibrate_VibratorAvailable_iconIsVibrate() {
+ when(mHelper.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_VIBRATE);
+ when(mVibrator.hasVibrator()).thenReturn(true);
+
+ mController.setPreference(mPreference);
+ mController.setVibrator(mVibrator);
+ mController.updateRingerMode();
+
+ assertThat(mController.getMuteIcon()).isEqualTo(mController.mVibrateIconId);
+ }
+
}
diff --git a/tests/robotests/src/com/android/settings/notification/ShowOnLockscreenNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ShowOnLockscreenNotificationPreferenceControllerTest.java
index 496897f..567c7ff 100644
--- a/tests/robotests/src/com/android/settings/notification/ShowOnLockscreenNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ShowOnLockscreenNotificationPreferenceControllerTest.java
@@ -28,6 +28,8 @@
import android.content.Context;
import android.provider.Settings;
+import androidx.preference.PreferenceScreen;
+
import com.android.settings.R;
import com.android.settings.RestrictedListPreference;
import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
@@ -42,11 +44,8 @@
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
-import androidx.preference.PreferenceScreen;
-
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowUserManager.class, ShadowRestrictedLockUtilsInternal.class})
public class ShowOnLockscreenNotificationPreferenceControllerTest {
@@ -94,7 +93,7 @@
assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(R.string.lock_screen_notifs_show_none));
- assertThat(mPreference.getSummary())
+ assertThat(mPreference.getSummary().toString())
.isEqualTo(mContext.getString(R.string.lock_screen_notifs_show_none));
}
@@ -111,7 +110,7 @@
assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(R.string.lock_screen_notifs_show_alerting));
- assertThat(mPreference.getSummary())
+ assertThat(mPreference.getSummary().toString())
.isEqualTo(mContext.getString(R.string.lock_screen_notifs_show_alerting));
}
@@ -128,20 +127,20 @@
assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(R.string.lock_screen_notifs_show_all));
- assertThat(mPreference.getSummary())
+ assertThat(mPreference.getSummary().toString())
.isEqualTo(mContext.getString(R.string.lock_screen_notifs_show_all));
}
@Test
- public void updateState_allNotifsOnLockscreen_isDefault() {
+ public void updateState_alertingNotifsOnLockscreen_isDefault() {
// settings don't exist
mController.displayPreference(mScreen);
assertThat(mPreference.getValue()).isEqualTo(
- String.valueOf(R.string.lock_screen_notifs_show_all));
- assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getString(R.string.lock_screen_notifs_show_all));
+ String.valueOf(R.string.lock_screen_notifs_show_alerting));
+ assertThat(mPreference.getSummary().toString())
+ .isEqualTo(mContext.getString(R.string.lock_screen_notifs_show_alerting));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/notification/SoundSettingsTest.java b/tests/robotests/src/com/android/settings/notification/SoundSettingsTest.java
index c2ea6e7..9e84883 100644
--- a/tests/robotests/src/com/android/settings/notification/SoundSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/SoundSettingsTest.java
@@ -35,6 +35,7 @@
import com.android.settings.testutils.shadow.ShadowDeviceConfig;
import com.android.settings.testutils.shadow.ShadowUserManager;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -44,8 +45,6 @@
import java.util.List;
-import org.junit.Ignore;
-
@RunWith(RobolectricTestRunner.class)
public class SoundSettingsTest {
@@ -86,4 +85,19 @@
assertThat(settings.mHandler.hasMessages(SoundSettings.STOP_SAMPLE)).isTrue();
}
+
+ @Test
+ public void notificationVolume_isBetweenRingAndAlarm() {
+ final Context context = spy(RuntimeEnvironment.application);
+ final SoundSettings settings = new SoundSettings();
+ final int xmlId = settings.getPreferenceScreenResId();
+ final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
+
+ int ring = keys.indexOf("ring_volume");
+ int notification = keys.indexOf("notification_volume");
+ int alarm = keys.indexOf("alarm_volume");
+
+ assertThat(ring < notification).isTrue();
+ assertThat(notification < alarm).isTrue();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
index b04a2cd..151d1f2 100644
--- a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
@@ -51,14 +51,16 @@
import com.android.settingslib.bluetooth.A2dpProfile;
import com.android.settingslib.bluetooth.BluetoothCallback;
import com.android.settingslib.bluetooth.BluetoothEventManager;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
import com.android.settingslib.bluetooth.HeadsetProfile;
import com.android.settingslib.bluetooth.HearingAidProfile;
+import com.android.settingslib.bluetooth.LeAudioProfile;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -71,10 +73,10 @@
import org.robolectric.shadows.ShadowPackageManager;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
-@Ignore
@Config(shadows = {
ShadowAudioManager.class,
ShadowBluetoothUtils.class,
@@ -102,6 +104,14 @@
private HeadsetProfile mHeadsetProfile;
@Mock
private HearingAidProfile mHearingAidProfile;
+ @Mock
+ private LeAudioProfile mLeAudioProfile;
+ @Mock
+ private CachedBluetoothDeviceManager mCachedDeviceManager;
+ @Mock
+ private CachedBluetoothDevice mCachedBluetoothDeviceL;
+ @Mock
+ private CachedBluetoothDevice mCachedBluetoothDeviceR;
private Context mContext;
private PreferenceScreen mScreen;
@@ -117,8 +127,10 @@
private AudioSwitchPreferenceController mController;
private List<BluetoothDevice> mProfileConnectedDevices;
private List<BluetoothDevice> mHearingAidActiveDevices;
+ private List<BluetoothDevice> mLeAudioActiveDevices;
private List<BluetoothDevice> mEmptyDevices;
private ShadowPackageManager mPackageManager;
+ private Collection<CachedBluetoothDevice> mCachedDevices;
@Before
public void setUp() {
@@ -133,15 +145,22 @@
when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager);
when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager);
+ when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
when(mLocalBluetoothProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile);
when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile);
when(mLocalBluetoothProfileManager.getHeadsetProfile()).thenReturn(mHeadsetProfile);
+ when(mLocalBluetoothProfileManager.getLeAudioProfile()).thenReturn(mLeAudioProfile);
mPackageManager = Shadow.extract(mContext.getPackageManager());
mPackageManager.setSystemFeature(PackageManager.FEATURE_BLUETOOTH, true);
mBluetoothManager = mContext.getSystemService(BluetoothManager.class);
mBluetoothAdapter = mBluetoothManager.getAdapter();
+ mCachedDevices = new ArrayList<>();
+ mCachedDevices.add(mCachedBluetoothDeviceL);
+ mCachedDevices.add(mCachedBluetoothDeviceR);
+ when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices);
+
mBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_1));
when(mBluetoothDevice.getName()).thenReturn(TEST_DEVICE_NAME_1);
when(mBluetoothDevice.isConnected()).thenReturn(true);
@@ -156,6 +175,7 @@
mPreference = new ListPreference(mContext);
mProfileConnectedDevices = new ArrayList<>();
mHearingAidActiveDevices = new ArrayList<>(2);
+ mLeAudioActiveDevices = new ArrayList<>();
mEmptyDevices = new ArrayList<>(2);
when(mScreen.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
@@ -391,6 +411,79 @@
assertThat(mEmptyDevices).containsExactly(mBluetoothDevice, mLeftBluetoothHapDevice);
}
+ @Test
+ public void getConnectedLeAudioDevices_connectedLeAudioDevice_shouldAddDeviceToList() {
+ when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice);
+ mEmptyDevices.clear();
+ mProfileConnectedDevices.clear();
+ mProfileConnectedDevices.add(mBluetoothDevice);
+ when(mLeAudioProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
+
+ mEmptyDevices.addAll(mController.getConnectedLeAudioDevices());
+
+ assertThat(mEmptyDevices).containsExactly(mBluetoothDevice);
+ }
+
+ @Test
+ public void getConnectedLeAudioDevices_disconnectedLeAudioDevice_shouldNotAddDeviceToList() {
+ BluetoothDevice connectedBtLeAduioDevice =
+ spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2));
+ when(connectedBtLeAduioDevice.isConnected()).thenReturn(true);
+ BluetoothDevice disconnectedBtLeAduioDevice =
+ spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_3));
+ when(disconnectedBtLeAduioDevice.isConnected()).thenReturn(false);
+ when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice);
+ when(mCachedBluetoothDeviceR.getDevice()).thenReturn(connectedBtLeAduioDevice);
+ mEmptyDevices.clear();
+ mProfileConnectedDevices.clear();
+ mProfileConnectedDevices.add(mBluetoothDevice);
+ mProfileConnectedDevices.add(connectedBtLeAduioDevice);
+ mProfileConnectedDevices.add(disconnectedBtLeAduioDevice);
+ when(mLeAudioProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
+
+ mEmptyDevices.addAll(mController.getConnectedLeAudioDevices());
+
+ assertThat(mEmptyDevices).containsExactly(mBluetoothDevice, connectedBtLeAduioDevice);
+ }
+
+ @Test
+ public void getConnectedLeAudioDevices_notInCachedDeviceList_shouldNotAddDeviceToList() {
+ BluetoothDevice connectedBtLeAduioDevice1 =
+ spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2));
+ when(connectedBtLeAduioDevice1.isConnected()).thenReturn(true);
+ BluetoothDevice connectedBtLeAduioDevice2 =
+ spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_3));
+ when(connectedBtLeAduioDevice2.isConnected()).thenReturn(true);
+ when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice);
+ when(mCachedBluetoothDeviceR.getDevice()).thenReturn(connectedBtLeAduioDevice1);
+ mEmptyDevices.clear();
+ mProfileConnectedDevices.clear();
+ mProfileConnectedDevices.add(connectedBtLeAduioDevice1);
+ mProfileConnectedDevices.add(connectedBtLeAduioDevice2);
+ when(mLeAudioProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
+
+ mEmptyDevices.addAll(mController.getConnectedLeAudioDevices());
+
+ assertThat(mEmptyDevices).containsExactly(connectedBtLeAduioDevice1);
+ }
+
+ @Test
+ public void findActiveLeAudioDevice_noActiveDevice_returnNull() {
+ mLeAudioActiveDevices.clear();
+ when(mLeAudioProfile.getActiveDevices()).thenReturn(mLeAudioActiveDevices);
+
+ assertThat(mController.findActiveLeAudioDevice()).isNull();
+ }
+
+ @Test
+ public void findActiveLeAudioDevice_withActiveDevice_returnActiveDevice() {
+ mLeAudioActiveDevices.clear();
+ mLeAudioActiveDevices.add(mBluetoothDevice);
+ when(mLeAudioProfile.getActiveDevices()).thenReturn(mLeAudioActiveDevices);
+
+ assertThat(mController.findActiveLeAudioDevice()).isEqualTo(mBluetoothDevice);
+ }
+
private class AudioSwitchPreferenceControllerTestable extends
AudioSwitchPreferenceController {
AudioSwitchPreferenceControllerTestable(Context context, String key) {
diff --git a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
index 2580bfd..cc2606b 100644
--- a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
@@ -16,6 +16,7 @@
package com.android.settings.sound;
+import static android.media.AudioSystem.DEVICE_OUT_BLE_HEADSET;
import static android.media.AudioSystem.DEVICE_OUT_BLUETOOTH_SCO;
import static android.media.AudioSystem.DEVICE_OUT_HEARING_AID;
@@ -44,29 +45,30 @@
import com.android.settings.testutils.shadow.ShadowAudioManager;
import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
import com.android.settingslib.bluetooth.BluetoothEventManager;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
import com.android.settingslib.bluetooth.HeadsetProfile;
import com.android.settingslib.bluetooth.HearingAidProfile;
+import com.android.settingslib.bluetooth.LeAudioProfile;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowBluetoothDevice;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
-@Ignore
@Config(shadows = {
ShadowAudioManager.class,
ShadowBluetoothUtils.class,
@@ -78,10 +80,12 @@
private static final String TEST_DEVICE_NAME_2 = "Test_HFP_BT_Device_NAME_2";
private static final String TEST_HAP_DEVICE_NAME_1 = "Test_HAP_BT_Device_NAME_1";
private static final String TEST_HAP_DEVICE_NAME_2 = "Test_HAP_BT_Device_NAME_2";
+ private static final String TEST_LE_AUDIO_DEVICE_NAME_1 = "Test_LE_AUDIO_Device_NAME_1";
private static final String TEST_DEVICE_ADDRESS_1 = "00:A1:A1:A1:A1:A1";
private static final String TEST_DEVICE_ADDRESS_2 = "00:B2:B2:B2:B2:B2";
private static final String TEST_DEVICE_ADDRESS_3 = "00:C3:C3:C3:C3:C3";
private static final String TEST_DEVICE_ADDRESS_4 = "00:D4:D4:D4:D4:D4";
+ private static final String TEST_DEVICE_ADDRESS_5 = "00:E5:E5:E5:E5:E5";
private final static long HISYNCID1 = 10;
private final static long HISYNCID2 = 11;
@@ -96,7 +100,15 @@
@Mock
private HearingAidProfile mHearingAidProfile;
@Mock
+ private LeAudioProfile mLeAudioProfile;
+ @Mock
private AudioSwitchPreferenceController.AudioSwitchCallback mAudioSwitchPreferenceCallback;
+ @Mock
+ private CachedBluetoothDeviceManager mCachedDeviceManager;
+ @Mock
+ private CachedBluetoothDevice mCachedBluetoothDeviceL;
+ @Mock
+ private CachedBluetoothDevice mCachedBluetoothDeviceR;
private Context mContext;
private PreferenceScreen mScreen;
@@ -113,6 +125,8 @@
private HandsFreeProfileOutputPreferenceController mController;
private List<BluetoothDevice> mProfileConnectedDevices;
private List<BluetoothDevice> mHearingAidActiveDevices;
+ private List<BluetoothDevice> mLeAudioActiveDevices;
+ private Collection<CachedBluetoothDevice> mCachedDevices;
@Before
public void setUp() {
@@ -127,26 +141,37 @@
when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager);
when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager);
+ when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
when(mLocalBluetoothProfileManager.getHeadsetProfile()).thenReturn(mHeadsetProfile);
when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile);
+ when(mLocalBluetoothProfileManager.getLeAudioProfile()).thenReturn(mLeAudioProfile);
mBluetoothManager = mContext.getSystemService(BluetoothManager.class);
mBluetoothAdapter = mBluetoothManager.getAdapter();
+ mCachedDevices = new ArrayList<>();
+ mCachedDevices.add(mCachedBluetoothDeviceL);
+ mCachedDevices.add(mCachedBluetoothDeviceR);
+ when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices);
+
mBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_1));
when(mBluetoothDevice.getName()).thenReturn(TEST_DEVICE_NAME_1);
+ when(mBluetoothDevice.getAlias()).thenReturn(TEST_DEVICE_NAME_1);
when(mBluetoothDevice.isConnected()).thenReturn(true);
mSecondBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2));
when(mSecondBluetoothDevice.getName()).thenReturn(TEST_DEVICE_NAME_2);
+ when(mSecondBluetoothDevice.getAlias()).thenReturn(TEST_DEVICE_NAME_2);
when(mSecondBluetoothDevice.isConnected()).thenReturn(true);
mLeftBluetoothHapDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_3));
when(mLeftBluetoothHapDevice.getName()).thenReturn(TEST_HAP_DEVICE_NAME_1);
+ when(mLeftBluetoothHapDevice.getAlias()).thenReturn(TEST_HAP_DEVICE_NAME_1);
when(mLeftBluetoothHapDevice.isConnected()).thenReturn(true);
mRightBluetoothHapDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_4));
when(mRightBluetoothHapDevice.getName()).thenReturn(TEST_HAP_DEVICE_NAME_2);
+ when(mRightBluetoothHapDevice.getAlias()).thenReturn(TEST_HAP_DEVICE_NAME_2);
when(mRightBluetoothHapDevice.isConnected()).thenReturn(true);
mController = new HandsFreeProfileOutputPreferenceController(mContext, TEST_KEY);
@@ -154,6 +179,7 @@
mPreference = new ListPreference(mContext);
mProfileConnectedDevices = new ArrayList<>();
mHearingAidActiveDevices = new ArrayList<>(2);
+ mLeAudioActiveDevices = new ArrayList<>();
when(mScreen.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
when(mScreen.getContext()).thenReturn(mContext);
@@ -245,7 +271,6 @@
* Preference summary should be the activated device name
*/
@Test
- @Ignore
public void updateState_oneHeadsetsAvailableAndActivated_shouldSetDeviceName() {
mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_SCO);
@@ -267,7 +292,6 @@
* Preference summary should be the activated device name
*/
@Test
- @Ignore
public void updateState_moreThanOneHfpBtDevicesAreAvailable_shouldSetActivatedDeviceName() {
mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_SCO);
@@ -328,7 +352,6 @@
* Preference summary should be the activated device name
*/
@Test
- @Ignore
public void updateState_oneHapBtDeviceAreAvailable_shouldSetActivatedDeviceName() {
mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
@@ -353,7 +376,6 @@
* Preference summary should be the activated device name
*/
@Test
- @Ignore
public void updateState_moreThanOneHapBtDevicesAreAvailable_shouldSetActivatedDeviceName() {
mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
@@ -382,7 +404,6 @@
* ConnectedDevice should not contain second HAP device with same HisyncId
*/
@Test
- @Ignore
public void updateState_hapBtDeviceWithSameId_shouldSetActivatedDeviceName() {
mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
@@ -416,7 +437,6 @@
* ConnectedDevice should not contain second HAP device with same HisyncId
*/
@Test
- @Ignore
public void updateState_hapBtDeviceWithSameIdButDifferentOrder_shouldSetActivatedDeviceName() {
mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
@@ -449,7 +469,6 @@
* ConnectedDevice should contain both HAP device with different HisyncId
*/
@Test
- @Ignore
public void updateState_hapBtDeviceWithDifferentId_shouldSetActivatedDeviceName() {
mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
@@ -474,6 +493,26 @@
}
@Test
+ public void updateState_leAudioDeviceActive_shouldSetActivatedDeviceName() {
+ mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
+ mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLE_HEADSET);
+ when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice);
+ when(mBluetoothDevice.getName()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1);
+ when(mBluetoothDevice.getAlias()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1);
+ mProfileConnectedDevices.clear();
+ mProfileConnectedDevices.add(mBluetoothDevice);
+ mLeAudioActiveDevices.clear();
+ mLeAudioActiveDevices.add(mBluetoothDevice);
+ when(mLeAudioProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
+ when(mLeAudioProfile.getActiveDevices()).thenReturn(mLeAudioActiveDevices);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isVisible()).isTrue();
+ assertThat(mPreference.getSummary()).isEqualTo(mBluetoothDevice.getName());
+ }
+
+ @Test
public void findActiveDevice_onlyHeadsetDeviceActive_returnHeadsetDevice() {
when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(null);
when(mHeadsetProfile.getActiveDevice()).thenReturn(mBluetoothDevice);
@@ -489,12 +528,60 @@
assertThat(mController.findActiveDevice()).isNull();
}
+ @Test
+ public void findActiveDevice_allProfilesWithActiveDevice_returnHADevice() {
+ BluetoothDevice btLeDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_5));
+ when(btLeDevice.getName()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1);
+ mController.mConnectedDevices.clear();
+ mController.mConnectedDevices.add(mBluetoothDevice);
+ mController.mConnectedDevices.add(mLeftBluetoothHapDevice);
+ mController.mConnectedDevices.add(btLeDevice);
+ mLeAudioActiveDevices.clear();
+ mLeAudioActiveDevices.add(btLeDevice);
+ mHearingAidActiveDevices.clear();
+ mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
+ when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
+ when(mHearingAidProfile.getHiSyncId(mLeftBluetoothHapDevice)).thenReturn(HISYNCID1);
+ when(mHeadsetProfile.getActiveDevice()).thenReturn(mBluetoothDevice);
+ when(mLeAudioProfile.getActiveDevices()).thenReturn(mLeAudioActiveDevices);
+
+ assertThat(mController.findActiveDevice()).isEqualTo(mLeftBluetoothHapDevice);
+ }
+
+ @Test
+ public void findActiveDevice_headsetDeviceAndLeAudioDeviceActive_returnLeAudioDevice() {
+ BluetoothDevice btLeDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_5));
+ when(btLeDevice.getName()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1);
+ mLeAudioActiveDevices.clear();
+ mLeAudioActiveDevices.add(btLeDevice);
+ mHearingAidActiveDevices.clear();
+ when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
+ when(mHeadsetProfile.getActiveDevice()).thenReturn(mBluetoothDevice);
+ when(mLeAudioProfile.getActiveDevices()).thenReturn(mLeAudioActiveDevices);
+
+ assertThat(mController.findActiveDevice()).isEqualTo(btLeDevice);
+ }
+
+ @Test
+ public void findActiveDevice_onlyLeAudioDeviceActive_returnLeAudioDevice() {
+ BluetoothDevice btLeDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_5));
+ when(btLeDevice.getName()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1);
+ mLeAudioActiveDevices.clear();
+ mLeAudioActiveDevices.add(btLeDevice);
+ mHearingAidActiveDevices.clear();
+ when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
+ when(mHeadsetProfile.getActiveDevice()).thenReturn(null);
+ when(mLeAudioProfile.getActiveDevices()).thenReturn(mLeAudioActiveDevices);
+
+ assertThat(mController.findActiveDevice()).isEqualTo(btLeDevice);
+ }
+
+
/**
* One Bluetooth devices are available, and select the device.
* Preference summary should be device name.
*/
@Test
- @Ignore
public void onPreferenceChange_toBtDevice_shouldSetBtDeviceName() {
mController.mConnectedDevices.clear();
mController.mConnectedDevices.add(mBluetoothDevice);
@@ -509,16 +596,10 @@
* Preference summary should be second device name.
*/
@Test
- @Ignore
public void onPreferenceChange_toBtDevices_shouldSetSecondBtDeviceName() {
- ShadowBluetoothDevice shadowBluetoothDevice;
- BluetoothDevice secondBluetoothDevice;
- secondBluetoothDevice = mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2);
- shadowBluetoothDevice = Shadows.shadowOf(secondBluetoothDevice);
- shadowBluetoothDevice.setName(TEST_DEVICE_NAME_2);
mController.mConnectedDevices.clear();
mController.mConnectedDevices.add(mBluetoothDevice);
- mController.mConnectedDevices.add(secondBluetoothDevice);
+ mController.mConnectedDevices.add(mSecondBluetoothDevice);
mController.onPreferenceChange(mPreference, TEST_DEVICE_ADDRESS_2);
diff --git a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
index 10471cb..5a92a08 100644
--- a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
@@ -16,6 +16,7 @@
package com.android.settings.sound;
+import static android.media.AudioSystem.DEVICE_OUT_BLE_HEADSET;
import static android.media.AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP;
import static android.media.AudioSystem.DEVICE_OUT_EARPIECE;
import static android.media.AudioSystem.DEVICE_OUT_HEARING_AID;
@@ -55,14 +56,16 @@
import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
import com.android.settingslib.bluetooth.A2dpProfile;
import com.android.settingslib.bluetooth.BluetoothEventManager;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
import com.android.settingslib.bluetooth.HearingAidProfile;
+import com.android.settingslib.bluetooth.LeAudioProfile;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
import com.android.settingslib.media.MediaOutputConstants;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -76,10 +79,10 @@
import org.robolectric.shadows.ShadowPackageManager;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
-@Ignore
@Config(shadows = {
ShadowAudioManager.class,
ShadowBluetoothUtils.class,
@@ -91,10 +94,12 @@
private static final String TEST_DEVICE_NAME_2 = "Test_A2DP_BT_Device_NAME_2";
private static final String TEST_HAP_DEVICE_NAME_1 = "Test_HAP_BT_Device_NAME_1";
private static final String TEST_HAP_DEVICE_NAME_2 = "Test_HAP_BT_Device_NAME_2";
+ private static final String TEST_LE_AUDIO_DEVICE_NAME_1 = "Test_LE_AUDIO_Device_NAME_1";
private static final String TEST_DEVICE_ADDRESS_1 = "00:A1:A1:A1:A1:A1";
private static final String TEST_DEVICE_ADDRESS_2 = "00:B2:B2:B2:B2:B2";
private static final String TEST_DEVICE_ADDRESS_3 = "00:C3:C3:C3:C3:C3";
private static final String TEST_DEVICE_ADDRESS_4 = "00:D4:D4:D4:D4:D4";
+ private static final String TEST_DEVICE_ADDRESS_5 = "00:E5:E5:E5:E5:E5";
private static final String TEST_PACKAGE_NAME = "com.test.packagename";
private static final String TEST_APPLICATION_LABEL = "APP Test Label";
@@ -109,11 +114,19 @@
@Mock
private HearingAidProfile mHearingAidProfile;
@Mock
+ private LeAudioProfile mLeAudioProfile;
+ @Mock
private AudioSwitchPreferenceController.AudioSwitchCallback mAudioSwitchPreferenceCallback;
@Mock
private MediaSessionManager mMediaSessionManager;
@Mock
private MediaController mMediaController;
+ @Mock
+ private CachedBluetoothDeviceManager mCachedDeviceManager;
+ @Mock
+ private CachedBluetoothDevice mCachedBluetoothDeviceL;
+ @Mock
+ private CachedBluetoothDevice mCachedBluetoothDeviceR;
private Context mContext;
private PreferenceScreen mScreen;
@@ -130,6 +143,7 @@
private MediaOutputPreferenceController mController;
private List<BluetoothDevice> mProfileConnectedDevices;
private List<BluetoothDevice> mHearingAidActiveDevices;
+ private List<BluetoothDevice> mLeAudioActiveDevices;
private List<MediaController> mMediaControllers = new ArrayList<>();
private MediaController.PlaybackInfo mPlaybackInfo;
private PlaybackState mPlaybackState;
@@ -137,6 +151,7 @@
private ApplicationInfo mAppInfo;
private PackageInfo mPackageInfo;
private PackageStats mPackageStats;
+ private Collection<CachedBluetoothDevice> mCachedDevices;
@Before
public void setUp() {
@@ -168,14 +183,22 @@
when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager);
when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager);
+ when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
when(mLocalBluetoothProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile);
when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile);
+ when(mLocalBluetoothProfileManager.getLeAudioProfile()).thenReturn(mLeAudioProfile);
mBluetoothManager = mContext.getSystemService(BluetoothManager.class);
mBluetoothAdapter = mBluetoothManager.getAdapter();
+ mCachedDevices = new ArrayList<>();
+ mCachedDevices.add(mCachedBluetoothDeviceL);
+ mCachedDevices.add(mCachedBluetoothDeviceR);
+ when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices);
+
mBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_1));
when(mBluetoothDevice.getName()).thenReturn(TEST_DEVICE_NAME_1);
+ when(mBluetoothDevice.getAlias()).thenReturn(TEST_DEVICE_NAME_1);
when(mBluetoothDevice.isConnected()).thenReturn(true);
mSecondBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2));
@@ -184,6 +207,7 @@
mLeftBluetoothHapDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_3));
when(mLeftBluetoothHapDevice.getName()).thenReturn(TEST_HAP_DEVICE_NAME_1);
+ when(mLeftBluetoothHapDevice.getAlias()).thenReturn(TEST_HAP_DEVICE_NAME_1);
when(mLeftBluetoothHapDevice.isConnected()).thenReturn(true);
mRightBluetoothHapDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_4));
@@ -195,6 +219,7 @@
mPreference = new Preference(mContext);
mProfileConnectedDevices = new ArrayList<>();
mHearingAidActiveDevices = new ArrayList<>(2);
+ mLeAudioActiveDevices = new ArrayList<>();
when(mScreen.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
when(mScreen.getContext()).thenReturn(mContext);
@@ -234,7 +259,6 @@
* Preference summary should be device's name
*/
@Test
- @Ignore
public void updateState_withActiveBtDevice_setActivatedDeviceName() {
mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_A2DP);
mAudioManager.setMode(AudioManager.MODE_NORMAL);
@@ -254,7 +278,6 @@
* Preference summary should be device's name
*/
@Test
- @Ignore
public void updateState_withActiveHADevice_setActivatedDeviceName() {
mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
mAudioManager.setMode(AudioManager.MODE_NORMAL);
@@ -270,6 +293,26 @@
}
@Test
+ public void updateState_withActiveLeAudioDevice_setActivatedDeviceName() {
+ mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLE_HEADSET);
+ mAudioManager.setMode(AudioManager.MODE_NORMAL);
+ when(mCachedBluetoothDeviceL.getDevice()).thenReturn(mBluetoothDevice);
+ when(mCachedBluetoothDeviceR.getDevice()).thenReturn(mSecondBluetoothDevice);
+ when(mBluetoothDevice.getAlias()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1);
+ mProfileConnectedDevices.clear();
+ mProfileConnectedDevices.add(mBluetoothDevice);
+ mProfileConnectedDevices.add(mSecondBluetoothDevice);
+ mLeAudioActiveDevices.clear();
+ mLeAudioActiveDevices.add(mBluetoothDevice);
+ when(mLeAudioProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
+ when(mLeAudioProfile.getActiveDevices()).thenReturn(mLeAudioActiveDevices);
+
+ assertThat(mPreference.getSummary()).isNull();
+ mController.updateState(mPreference);
+ assertThat(mPreference.getSummary()).isEqualTo(TEST_LE_AUDIO_DEVICE_NAME_1);
+ }
+
+ @Test
public void updateState_noActiveLocalPlayback_noTitle() {
mPlaybackState = new PlaybackState.Builder()
.setState(PlaybackState.STATE_NONE, 0, 1)
@@ -350,6 +393,49 @@
assertThat(mController.findActiveDevice()).isNull();
}
+ @Test
+ public void findActiveDevice_allProfilesWithActiveDevice_returnHADevice() {
+ BluetoothDevice btLeDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_5));
+ when(btLeDevice.getName()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1);
+ mLeAudioActiveDevices.clear();
+ mLeAudioActiveDevices.add(btLeDevice);
+ mHearingAidActiveDevices.clear();
+ mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
+ when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
+ when(mA2dpProfile.getActiveDevice()).thenReturn(mBluetoothDevice);
+ when(mLeAudioProfile.getActiveDevices()).thenReturn(mLeAudioActiveDevices);
+
+ assertThat(mController.findActiveDevice()).isEqualTo(mLeftBluetoothHapDevice);
+ }
+
+ @Test
+ public void findActiveDevice_a2dpDeviceAndLeAudioDeviceActive_returnLeAudioDevice() {
+ BluetoothDevice btLeDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_5));
+ when(btLeDevice.getName()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1);
+ mLeAudioActiveDevices.clear();
+ mLeAudioActiveDevices.add(btLeDevice);
+ mHearingAidActiveDevices.clear();
+ when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
+ when(mA2dpProfile.getActiveDevice()).thenReturn(mBluetoothDevice);
+ when(mLeAudioProfile.getActiveDevices()).thenReturn(mLeAudioActiveDevices);
+
+ assertThat(mController.findActiveDevice()).isEqualTo(btLeDevice);
+ }
+
+ @Test
+ public void findActiveDevice_onlyLeAudioDeviceActive_returnLeAudioDevice() {
+ BluetoothDevice btLeDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_5));
+ when(btLeDevice.getName()).thenReturn(TEST_LE_AUDIO_DEVICE_NAME_1);
+ mLeAudioActiveDevices.clear();
+ mLeAudioActiveDevices.add(btLeDevice);
+ mHearingAidActiveDevices.clear();
+ when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
+ when(mA2dpProfile.getActiveDevice()).thenReturn(null);
+ when(mLeAudioProfile.getActiveDevices()).thenReturn(mLeAudioActiveDevices);
+
+ assertThat(mController.findActiveDevice()).isEqualTo(btLeDevice);
+ }
+
private void initPackage() {
mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
mAppInfo = new ApplicationInfo();
diff --git a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
index 2f24832..518aee9 100644
--- a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
+++ b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
@@ -47,7 +47,6 @@
import com.android.settings.security.SecuritySettingsFeatureProvider;
import com.android.settings.slices.SlicesFeatureProvider;
import com.android.settings.users.UserFeatureProvider;
-import com.android.settings.vpn2.AdvancedVpnFeatureProvider;
import com.android.settings.wifi.WifiTrackerLibProvider;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -88,7 +87,6 @@
public SecuritySettingsFeatureProvider securitySettingsFeatureProvider;
public AccessibilitySearchFeatureProvider mAccessibilitySearchFeatureProvider;
public AccessibilityMetricsFeatureProvider mAccessibilityMetricsFeatureProvider;
- public AdvancedVpnFeatureProvider mAdvancedVpnFeatureProvider;
/**
* Call this in {@code @Before} method of the test class to use fake factory.
@@ -138,7 +136,6 @@
securitySettingsFeatureProvider = mock(SecuritySettingsFeatureProvider.class);
mAccessibilitySearchFeatureProvider = mock(AccessibilitySearchFeatureProvider.class);
mAccessibilityMetricsFeatureProvider = mock(AccessibilityMetricsFeatureProvider.class);
- mAdvancedVpnFeatureProvider = mock(AdvancedVpnFeatureProvider.class);
}
@Override
@@ -275,9 +272,4 @@
public AccessibilityMetricsFeatureProvider getAccessibilityMetricsFeatureProvider() {
return mAccessibilityMetricsFeatureProvider;
}
-
- @Override
- public AdvancedVpnFeatureProvider getAdvancedVpnFeatureProvider() {
- return mAdvancedVpnFeatureProvider;
- }
}
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 40cb25b..5f8c434 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
@@ -22,6 +22,7 @@
import android.content.pm.PackageManager;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
+import android.hardware.face.FaceManager;
import android.hardware.fingerprint.FingerprintManager;
import android.os.UserHandle;
import android.os.UserManager;
@@ -39,6 +40,7 @@
public class ShadowUtils {
private static FingerprintManager sFingerprintManager = null;
+ private static FaceManager sFaceManager = null;
private static boolean sIsUserAMonkey;
private static boolean sIsDemoUser;
private static ComponentName sDeviceOwnerComponentName;
@@ -63,6 +65,15 @@
sFingerprintManager = fingerprintManager;
}
+ @Implementation
+ protected static FaceManager getFaceManagerOrNull(Context context) {
+ return sFaceManager;
+ }
+
+ public static void setFaceManager(FaceManager faceManager) {
+ sFaceManager = faceManager;
+ }
+
public static void reset() {
sFingerprintManager = null;
sIsUserAMonkey = false;
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java
index e8ee7c3..bc6053b 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java
@@ -16,13 +16,14 @@
package com.android.settings.wifi.tether;
+import static com.android.settings.wifi.WifiUtils.setCanShowWifiHotspotCached;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;
import android.content.Context;
-import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiManager;
@@ -62,8 +63,6 @@
@Mock
private Lifecycle mLifecycle;
@Mock
- private TetheringManager mTetheringManager;
- @Mock
private WifiManager mWifiManager;
@Mock
private PreferenceScreen mScreen;
@@ -74,38 +73,37 @@
@Before
public void setUp() {
+ setCanShowWifiHotspotCached(true);
FakeFeatureFactory.setupForTest();
mPreference = new PrimarySwitchPreference(mContext);
- when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
when(mScreen.findPreference(anyString())).thenReturn(mPreference);
mSoftApConfiguration = new SoftApConfiguration.Builder().setSsid(SSID).build();
when(mWifiManager.getSoftApConfiguration()).thenReturn(mSoftApConfiguration);
- when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
mController = new WifiTetherPreferenceController(mContext, mLifecycle, mWifiManager,
- mTetheringManager, false /* initSoftApManager */, true /* isWifiTetheringAllow */);
+ false /* initSoftApManager */, true /* isWifiTetheringAllow */);
mController.displayPreference(mScreen);
}
@Test
- public void isAvailable_noTetherRegex_shouldReturnFalse() {
- when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{});
- mController = new WifiTetherPreferenceController(mContext, mLifecycle, mWifiManager,
- mTetheringManager, false /* initSoftApManager */, true /* isWifiTetheringAllow */);
+ public void isAvailable_canNotShowWifiHotspot_shouldReturnFalse() {
+ setCanShowWifiHotspotCached(false);
assertThat(mController.isAvailable()).isFalse();
}
@Test
- public void isAvailable_hasTetherRegex_shouldReturnTrue() {
+ public void isAvailable_canShowWifiHostspot_shouldReturnTrue() {
+ setCanShowWifiHotspotCached(true);
+
assertThat(mController.isAvailable()).isTrue();
}
@Test
public void displayPreference_wifiTetheringNotAllowed_shouldDisable() {
mController = new WifiTetherPreferenceController(mContext, mLifecycle, mWifiManager,
- mTetheringManager, false /* initSoftApManager */, false /* isWifiTetheringAllow */);
+ false /* initSoftApManager */, false /* isWifiTetheringAllow */);
mController.displayPreference(mScreen);
@@ -116,7 +114,7 @@
@Test
public void displayPreference_wifiTetheringAllowed_shouldEnable() {
mController = new WifiTetherPreferenceController(mContext, mLifecycle, mWifiManager,
- mTetheringManager, false /* initSoftApManager */, true /* isWifiTetheringAllow */);
+ false /* initSoftApManager */, true /* isWifiTetheringAllow */);
mController.displayPreference(mScreen);
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
index d19bc90..6d3b879 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
@@ -16,6 +16,8 @@
package com.android.settings.wifi.tether;
+import static com.android.settings.wifi.WifiUtils.setCanShowWifiHotspotCached;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
@@ -42,6 +44,7 @@
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
+import com.android.settings.dashboard.RestrictedDashboardFragment;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowFragment;
@@ -55,6 +58,8 @@
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
import org.robolectric.util.ReflectionHelpers;
import java.util.List;
@@ -88,6 +93,7 @@
@Before
public void setUp() {
+ setCanShowWifiHotspotCached(true);
doReturn(mWifiManager).when(mContext).getSystemService(WifiManager.class);
doReturn(mConnectivityManager)
.when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
@@ -101,6 +107,17 @@
}
@Test
+ @Config(shadows = ShadowRestrictedDashboardFragment.class)
+ public void onCreate_canNotShowWifiHotspot_shouldFinish() {
+ setCanShowWifiHotspotCached(false);
+ mWifiTetherSettings = spy(new WifiTetherSettings(mWifiRestriction));
+
+ mWifiTetherSettings.onCreate(null);
+
+ verify(mWifiTetherSettings).finish();
+ }
+
+ @Test
@Config(shadows = ShadowFragment.class)
public void onStart_uiIsRestricted_removeAllPreferences() {
spyWifiTetherSettings();
@@ -219,4 +236,13 @@
mWifiTetherSettings.onCreate(Bundle.EMPTY);
}
+
+ @Implements(RestrictedDashboardFragment.class)
+ public static final class ShadowRestrictedDashboardFragment {
+
+ @Implementation
+ public void onCreate(Bundle icicle) {
+ // do nothing
+ }
+ }
}
diff --git a/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java b/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java
index 526fc0c..887f300 100644
--- a/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java
+++ b/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java
@@ -632,6 +632,106 @@
assertThat(testExcludedLogicalSlotIndex).isEqualTo(verifyExcludedLogicalSlotIndex);
}
+ @Test
+ public void isRemovableSimEnabled_noPsim_returnsFalse() {
+ when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
+ oneSimSlotDeviceActiveEsim());
+
+ boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
+
+ assertThat(testSlot).isFalse();
+ }
+
+ @Test
+ public void isRemovableSimEnabled_activeRemovableEsimAndInactivePsim_returnsFalse() {
+ when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
+ twoSimSlotsDeviceActiveRemovableEsimInactivePsim());
+
+ boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
+
+ assertThat(testSlot).isFalse();
+ }
+
+ @Test
+ public void isRemovableSimEnabled_activeRemovableEsimAndActivePsim_returnsTrue() {
+ when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
+ twoSimSlotsDeviceActivePsimActiveRemovableEsim());
+
+ boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
+
+ assertThat(testSlot).isTrue();
+ }
+
+ @Test
+ public void isRemovableSimEnabled_inactiveRemovableEsimAndActivePsim_returnsTrue() {
+ when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
+ twoSimSlotsDeviceInactiveRemovableEsimActivePsim());
+
+ boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
+
+ assertThat(testSlot).isTrue();
+ }
+
+ @Test
+ public void isRemovableSimEnabled_twoActiveRemovableEsimsAndInactivePsim_returnsFalse() {
+ when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
+ twoSimSlotsDeviceTwoActiveRemovableEsimsInactivePsim());
+
+ boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
+
+ assertThat(testSlot).isFalse();
+ }
+
+ @Test
+ public void isRemovableSimEnabled_oneActiveOneInactiveRemovableEsimActivePsim_returnsTrue() {
+ when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
+ twoSimSlotsDeviceOneActiveOneInactiveRemovableEsimsActivePsim());
+
+ boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
+
+ assertThat(testSlot).isTrue();
+ }
+
+ @Test
+ public void isRemovableSimEnabled_activePsim_returnsTrue() {
+ when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
+ oneSimSlotDeviceActivePsim());
+
+ boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
+
+ assertThat(testSlot).isTrue();
+ }
+
+ @Test
+ public void isRemovableSimEnabled_inactivePsim_returnsFalse() {
+ when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
+ oneSimSlotDeviceinactivePsim());
+
+ boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
+
+ assertThat(testSlot).isFalse();
+ }
+
+ @Test
+ public void isRemovableSimEnabled_activeEsimAndActivePsim_returnsTrue() {
+ when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
+ twoSimSlotsDeviceActivePsimActiveEsim());
+
+ boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
+
+ assertThat(testSlot).isTrue();
+ }
+
+ @Test
+ public void isRemovableSimEnabled_activeEsimAndInactivePsim_returnsFalse() {
+ when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
+ twoSimSlotsDeviceInactivePsimActiveEsim());
+
+ boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
+
+ assertThat(testSlot).isFalse();
+ }
+
private void compareTwoUiccSlotMappings(Collection<UiccSlotMapping> testUiccSlotMappings,
Collection<UiccSlotMapping> verifyUiccSlotMappings) {
assertThat(testUiccSlotMappings.size()).isEqualTo(verifyUiccSlotMappings.size());
@@ -786,6 +886,10 @@
return new UiccSlotInfo[]{createUiccSlotInfo(true, false, 1, true)};
}
+ private UiccSlotInfo[] oneSimSlotDeviceinactivePsim() {
+ return new UiccSlotInfo[]{createUiccSlotInfo(false, true, -1, false)};
+ }
+
private UiccSlotInfo[] twoSimSlotsDeviceActivePsimActiveEsim() {
return new UiccSlotInfo[]{
createUiccSlotInfo(false, true, 0, true),
@@ -804,6 +908,30 @@
createUiccSlotInfo(true, true, 1, true)};
}
+ private UiccSlotInfo[] twoSimSlotsDeviceActiveRemovableEsimInactivePsim() {
+ return new UiccSlotInfo[]{
+ createUiccSlotInfo(true, true, 0, true),
+ createUiccSlotInfo(false, true, -1, false)};
+ }
+
+ private UiccSlotInfo[] twoSimSlotsDeviceInactiveRemovableEsimActivePsim() {
+ return new UiccSlotInfo[]{
+ createUiccSlotInfo(true, true, -1, false),
+ createUiccSlotInfo(false, true, 0, true)};
+ }
+
+ private UiccSlotInfo[] twoSimSlotsDeviceTwoActiveRemovableEsimsInactivePsim() {
+ return new UiccSlotInfo[]{
+ createUiccSlotInfoForRemovableEsimMep(0, true, 1, true),
+ createUiccSlotInfo(false, true, -1, false)};
+ }
+
+ private UiccSlotInfo[] twoSimSlotsDeviceOneActiveOneInactiveRemovableEsimsActivePsim() {
+ return new UiccSlotInfo[]{
+ createUiccSlotInfoForRemovableEsimMep(1, true, -1, false),
+ createUiccSlotInfo(false, true, 0, true)};
+ }
+
private UiccSlotInfo[] twoSimSlotsDeviceActiveEsimActivePsim() {
return new UiccSlotInfo[]{
createUiccSlotInfo(true, false, 0, true),
@@ -866,4 +994,20 @@
logicalSlotIdx2 /* logicalSlotIdx */,
isActiveEsim2 /* isActive */)));
}
+
+ private UiccSlotInfo createUiccSlotInfoForRemovableEsimMep(int logicalSlotIdx1,
+ boolean isActiveEsim1, int logicalSlotIdx2, boolean isActiveEsim2) {
+ return new UiccSlotInfo(
+ true, /* isEuicc */
+ "123", /* cardId */
+ CARD_STATE_INFO_PRESENT, /* cardStateInfo */
+ true, /* isExtendApduSupported */
+ true, /* isRemovable */
+ Arrays.asList(
+ new UiccPortInfo("" /* iccId */, 0 /* portIdx */,
+ logicalSlotIdx1 /* logicalSlotIdx */, isActiveEsim1 /* isActive */),
+ new UiccPortInfo("" /* iccId */, 1 /* portIdx */,
+ logicalSlotIdx2 /* logicalSlotIdx */,
+ isActiveEsim2 /* isActive */)));
+ }
}
diff --git a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
index f565075..717de79 100644
--- a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
+++ b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
@@ -45,7 +45,6 @@
import com.android.settings.security.SecuritySettingsFeatureProvider;
import com.android.settings.slices.SlicesFeatureProvider;
import com.android.settings.users.UserFeatureProvider;
-import com.android.settings.vpn2.AdvancedVpnFeatureProvider;
import com.android.settings.wifi.WifiTrackerLibProvider;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -83,7 +82,6 @@
public SecuritySettingsFeatureProvider securitySettingsFeatureProvider;
public AccessibilitySearchFeatureProvider mAccessibilitySearchFeatureProvider;
public AccessibilityMetricsFeatureProvider mAccessibilityMetricsFeatureProvider;
- public AdvancedVpnFeatureProvider mAdvancedVpnFeatureProvider;
/**
* Call this in {@code @Before} method of the test class to use fake factory.
@@ -124,7 +122,6 @@
securitySettingsFeatureProvider = mock(SecuritySettingsFeatureProvider.class);
mAccessibilitySearchFeatureProvider = mock(AccessibilitySearchFeatureProvider.class);
mAccessibilityMetricsFeatureProvider = mock(AccessibilityMetricsFeatureProvider.class);
- mAdvancedVpnFeatureProvider = mock(AdvancedVpnFeatureProvider.class);
}
@Override
@@ -261,9 +258,4 @@
public AccessibilityMetricsFeatureProvider getAccessibilityMetricsFeatureProvider() {
return mAccessibilityMetricsFeatureProvider;
}
-
- @Override
- public AdvancedVpnFeatureProvider getAdvancedVpnFeatureProvider() {
- return mAdvancedVpnFeatureProvider;
- }
}
diff --git a/tests/unit/src/com/android/settings/vpn2/AppManagementFragmentTest.java b/tests/unit/src/com/android/settings/vpn2/AppManagementFragmentTest.java
deleted file mode 100644
index 80bb393..0000000
--- a/tests/unit/src/com/android/settings/vpn2/AppManagementFragmentTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2022 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.vpn2;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.Looper;
-
-import androidx.test.annotation.UiThreadTest;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settingslib.RestrictedPreference;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@RunWith(AndroidJUnit4.class)
-public class AppManagementFragmentTest {
- private static final String FAKE_PACKAGE_NAME = "com.fake.package.name";
- private static final String ADVANCED_VPN_GROUP_PACKAGE_NAME = "com.advanced.package.name";
-
- @Rule
- public final MockitoRule mMockitoRule = MockitoJUnit.rule();
-
- private AppManagementFragment mFragment;
- private Context mContext;
- private FakeFeatureFactory mFakeFeatureFactory;
- private RestrictedPreference mPreferenceForget;
-
- @Before
- @UiThreadTest
- public void setUp() {
- if (Looper.myLooper() == null) {
- Looper.prepare();
- }
-
- mFragment = spy(new AppManagementFragment());
- mContext = spy(ApplicationProvider.getApplicationContext());
- mPreferenceForget = new RestrictedPreference(mContext);
-
- mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
- mFragment.init(ADVANCED_VPN_GROUP_PACKAGE_NAME,
- mFakeFeatureFactory.getAdvancedVpnFeatureProvider(), mPreferenceForget);
- when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.getAdvancedVpnPackageName())
- .thenReturn(ADVANCED_VPN_GROUP_PACKAGE_NAME);
- when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.isAdvancedVpnSupported(any()))
- .thenReturn(true);
- }
-
- @Test
- public void updateRestrictedViews_isAdvancedVpn_hidesForgetPreference() {
- when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.isAdvancedVpnRemovable())
- .thenReturn(false);
- mFragment.updateRestrictedViews();
- assertThat(mPreferenceForget.isVisible()).isFalse();
- }
-
- @Test
- public void updateRestrictedViews_isNotAdvancedVpn_showsForgetPreference() {
- when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.isAdvancedVpnRemovable())
- .thenReturn(false);
- mFragment.init(FAKE_PACKAGE_NAME,
- mFakeFeatureFactory.getAdvancedVpnFeatureProvider(), mPreferenceForget);
- mFragment.updateRestrictedViews();
- assertThat(mPreferenceForget.isVisible()).isTrue();
- }
-
- @Test
- public void updateRestrictedViews_isAdvancedVpnRemovable_showsForgetPreference() {
- when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.isAdvancedVpnRemovable())
- .thenReturn(true);
- mFragment.init(FAKE_PACKAGE_NAME,
- mFakeFeatureFactory.getAdvancedVpnFeatureProvider(), mPreferenceForget);
- mFragment.updateRestrictedViews();
- assertThat(mPreferenceForget.isVisible()).isTrue();
- }
-}
diff --git a/tests/unit/src/com/android/settings/vpn2/VpnSettingsTest.java b/tests/unit/src/com/android/settings/vpn2/VpnSettingsTest.java
deleted file mode 100644
index 953a524..0000000
--- a/tests/unit/src/com/android/settings/vpn2/VpnSettingsTest.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * Copyright (C) 2022 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.vpn2;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.AppOpsManager;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.os.Looper;
-import android.os.UserHandle;
-import android.text.TextUtils;
-import android.util.ArraySet;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
-import androidx.preference.PreferenceGroup;
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-import androidx.test.annotation.UiThreadTest;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.testutils.FakeFeatureFactory;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-@RunWith(AndroidJUnit4.class)
-public class VpnSettingsTest {
- private static final int USER_ID_1 = UserHandle.USER_NULL;
- private static final String VPN_GROUP_KEY = "vpn_group";
- private static final String VPN_GROUP_TITLE = "vpn_group_title";
- private static final String VPN_PACKAGE_NAME = "vpn.package.name";
- private static final String VPN_LAUNCH_INTENT = "vpn.action";
- private static final String ADVANCED_VPN_GROUP_KEY = "advanced_vpn_group";
- private static final String ADVANCED_VPN_GROUP_TITLE = "advanced_vpn_group_title";
- private static final String ADVANCED_VPN_PACKAGE_NAME = "advanced.vpn.package.name";
- private static final String ADVANCED_VPN_LAUNCH_INTENT = "advanced.vpn.action";
-
- private final Intent mVpnIntent = new Intent().setAction(VPN_LAUNCH_INTENT);
- private final Intent mAdvancedVpnIntent = new Intent().setAction(ADVANCED_VPN_LAUNCH_INTENT);
-
- @Rule
- public final MockitoRule mMockitoRule = MockitoJUnit.rule();
-
- @Mock
- private AppOpsManager mAppOpsManager;
- @Mock
- private PackageManager mPackageManager;
-
- private VpnSettings mVpnSettings;
- private Context mContext;
- private PreferenceManager mPreferenceManager;
- private PreferenceScreen mPreferenceScreen;
- private PreferenceGroup mAdvancedVpnGroup;
- private PreferenceGroup mVpnGroup;
- private FakeFeatureFactory mFakeFeatureFactory;
-
- @Before
- @UiThreadTest
- public void setUp() throws PackageManager.NameNotFoundException {
- if (Looper.myLooper() == null) {
- Looper.prepare();
- }
-
- mVpnSettings = spy(new VpnSettings());
- mContext = spy(ApplicationProvider.getApplicationContext());
- mAdvancedVpnGroup = spy(new PreferenceCategory(mContext));
- mVpnGroup = spy(new PreferenceCategory(mContext));
- mAdvancedVpnGroup.setKey(ADVANCED_VPN_GROUP_KEY);
- mVpnGroup.setKey(VPN_GROUP_KEY);
- mPreferenceManager = new PreferenceManager(mContext);
- mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
- mPreferenceScreen.addPreference(mAdvancedVpnGroup);
- mPreferenceScreen.addPreference(mVpnGroup);
- mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
- mVpnSettings.init(mPreferenceScreen, mFakeFeatureFactory.getAdvancedVpnFeatureProvider());
-
- when(mVpnSettings.getContext()).thenReturn(mContext);
- when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider
- .getAdvancedVpnPreferenceGroupTitle(mContext)).thenReturn(ADVANCED_VPN_GROUP_TITLE);
- when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.getVpnPreferenceGroupTitle(mContext))
- .thenReturn(VPN_GROUP_TITLE);
- when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.getAdvancedVpnPackageName())
- .thenReturn(ADVANCED_VPN_PACKAGE_NAME);
- when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.isAdvancedVpnSupported(any()))
- .thenReturn(true);
- when(mContext.getPackageManager()).thenReturn(mPackageManager);
- doReturn(mContext).when(mContext).createContextAsUser(any(), anyInt());
- doReturn(mContext).when(mContext).createPackageContextAsUser(any(), anyInt(), any());
- doReturn(mPreferenceManager).when(mVpnGroup).getPreferenceManager();
- doReturn(mPreferenceManager).when(mAdvancedVpnGroup).getPreferenceManager();
- }
-
- @Test
- public void setShownAdvancedPreferences_hasGeneralVpn_returnsVpnCountAs1() {
- Set<Preference> updates = new ArraySet<>();
- AppPreference pref =
- spy(new AppPreference(mContext, USER_ID_1, VPN_PACKAGE_NAME));
- updates.add(pref);
-
- mVpnSettings.setShownAdvancedPreferences(updates);
-
- assertThat(mVpnGroup.getPreferenceCount()).isEqualTo(1);
- assertThat(mVpnGroup.isVisible()).isTrue();
- assertThat(mAdvancedVpnGroup.isVisible()).isFalse();
- }
-
- @Test
- public void setShownAdvancedPreferences_hasAdvancedVpn_returnsAdvancedVpnCountAs1() {
- Set<Preference> updates = new ArraySet<>();
- AppPreference pref =
- spy(new AppPreference(mContext, USER_ID_1, ADVANCED_VPN_PACKAGE_NAME));
- updates.add(pref);
-
- mVpnSettings.setShownAdvancedPreferences(updates);
-
- assertThat(mAdvancedVpnGroup.getPreferenceCount()).isEqualTo(1);
- assertThat(mAdvancedVpnGroup.isVisible()).isTrue();
- assertThat(mVpnGroup.isVisible()).isFalse();
- }
-
- @Test
- public void setShownAdvancedPreferences_noVpn_returnsEmpty() {
- Set<Preference> updates = new ArraySet<>();
-
- mVpnSettings.setShownAdvancedPreferences(updates);
-
- assertThat(mAdvancedVpnGroup.getPreferenceCount()).isEqualTo(0);
- assertThat(mVpnGroup.getPreferenceCount()).isEqualTo(0);
- assertThat(mAdvancedVpnGroup.isVisible()).isFalse();
- assertThat(mVpnGroup.isVisible()).isFalse();
- }
-
- @Test
- public void getVpnApps_isAdvancedVpn_returnsOne() throws Exception {
- ApplicationInfo info = new ApplicationInfo();
- info.uid = 1111;
- when(mPackageManager.getApplicationInfo(anyString(), anyInt())).thenReturn(info);
-
- assertThat(VpnSettings.getVpnApps(mContext, /* includeProfiles= */ false,
- mFakeFeatureFactory.getAdvancedVpnFeatureProvider(),
- mAppOpsManager).size()).isEqualTo(1);
- }
-
- @Test
- public void getVpnApps_isNotAdvancedVpn_returnsEmpty() {
- int uid = 1111;
- List<AppOpsManager.OpEntry> opEntries = new ArrayList<>();
- List<AppOpsManager.PackageOps> apps = new ArrayList<>();
- AppOpsManager.PackageOps packageOps =
- new AppOpsManager.PackageOps(VPN_PACKAGE_NAME, uid, opEntries);
- apps.add(packageOps);
- when(mAppOpsManager.getPackagesForOps((int[]) any())).thenReturn(apps);
- when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.isAdvancedVpnSupported(any()))
- .thenReturn(false);
-
- assertThat(VpnSettings.getVpnApps(mContext, /* includeProfiles= */ false,
- mFakeFeatureFactory.getAdvancedVpnFeatureProvider(),
- mAppOpsManager)).isEmpty();
- }
-
- @Test
- public void clickVpn_VpnConnected_doesNotStartVpnLaunchIntent()
- throws PackageManager.NameNotFoundException {
- Set<Preference> updates = new ArraySet<>();
- AppPreference pref = spy(new AppPreference(mContext, USER_ID_1, VPN_PACKAGE_NAME));
- pref.setState(AppPreference.STATE_CONNECTED);
- updates.add(pref);
- when(mContext.createPackageContextAsUser(any(), anyInt(), any())).thenReturn(mContext);
- when(mContext.getPackageManager()).thenReturn(mPackageManager);
- when(mPackageManager.getLaunchIntentForPackage(any())).thenReturn(mVpnIntent);
- ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
- doNothing().when(mContext).startActivityAsUser(captor.capture(), any());
- mVpnSettings.setShownPreferences(updates);
-
- mVpnSettings.onPreferenceClick(pref);
-
- verify(mContext, never()).startActivityAsUser(any(), any());
- }
-
- @Test
- public void clickVpn_VpnDisconnected_startsVpnLaunchIntent()
- throws PackageManager.NameNotFoundException {
- Set<Preference> updates = new ArraySet<>();
- AppPreference pref = spy(new AppPreference(mContext, USER_ID_1, VPN_PACKAGE_NAME));
- pref.setState(AppPreference.STATE_DISCONNECTED);
- updates.add(pref);
- when(mContext.createPackageContextAsUser(any(), anyInt(), any())).thenReturn(mContext);
- when(mContext.getPackageManager()).thenReturn(mPackageManager);
- when(mPackageManager.getLaunchIntentForPackage(any())).thenReturn(mVpnIntent);
- ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
- doNothing().when(mContext).startActivityAsUser(captor.capture(), any());
- mVpnSettings.setShownPreferences(updates);
-
- mVpnSettings.onPreferenceClick(pref);
-
- verify(mContext).startActivityAsUser(captor.capture(), any());
- assertThat(TextUtils.equals(captor.getValue().getAction(),
- VPN_LAUNCH_INTENT)).isTrue();
- }
-
- @Test
- public void clickAdvancedVpn_VpnConnectedDisconnectDialogDisabled_startsAppLaunchIntent()
- throws PackageManager.NameNotFoundException {
- Set<Preference> updates = new ArraySet<>();
- AppPreference pref =
- spy(new AppPreference(mContext, USER_ID_1, ADVANCED_VPN_PACKAGE_NAME));
- pref.setState(AppPreference.STATE_CONNECTED);
- updates.add(pref);
- when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.isDisconnectDialogEnabled())
- .thenReturn(false);
- when(mContext.createPackageContextAsUser(any(), anyInt(), any())).thenReturn(mContext);
- when(mContext.getPackageManager()).thenReturn(mPackageManager);
- when(mPackageManager.getLaunchIntentForPackage(any())).thenReturn(mAdvancedVpnIntent);
- ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
- doNothing().when(mContext).startActivityAsUser(captor.capture(), any());
- mVpnSettings.setShownAdvancedPreferences(updates);
-
- mVpnSettings.onPreferenceClick(pref);
-
- verify(mContext).startActivityAsUser(captor.capture(), any());
- assertThat(TextUtils.equals(captor.getValue().getAction(),
- ADVANCED_VPN_LAUNCH_INTENT)).isTrue();
- }
-
- @Test
- public void clickAdvancedVpn_VpnConnectedDisconnectDialogEnabled_doesNotStartAppLaunchIntent()
- throws PackageManager.NameNotFoundException {
- Set<Preference> updates = new ArraySet<>();
- AppPreference pref =
- spy(new AppPreference(mContext, USER_ID_1, ADVANCED_VPN_PACKAGE_NAME));
- pref.setState(AppPreference.STATE_CONNECTED);
- updates.add(pref);
- when(mFakeFeatureFactory.mAdvancedVpnFeatureProvider.isDisconnectDialogEnabled())
- .thenReturn(true);
- when(mContext.createPackageContextAsUser(any(), anyInt(), any())).thenReturn(mContext);
- when(mContext.getPackageManager()).thenReturn(mPackageManager);
- when(mPackageManager.getLaunchIntentForPackage(any())).thenReturn(mAdvancedVpnIntent);
- ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
- doNothing().when(mContext).startActivityAsUser(captor.capture(), any());
- mVpnSettings.setShownAdvancedPreferences(updates);
-
- mVpnSettings.onPreferenceClick(pref);
-
- verify(mContext, never()).startActivityAsUser(any(), any());
- }
-}
diff --git a/tests/unit/src/com/android/settings/wifi/WifiUtilsTest.java b/tests/unit/src/com/android/settings/wifi/WifiUtilsTest.java
index 1a5e852..2826310 100644
--- a/tests/unit/src/com/android/settings/wifi/WifiUtilsTest.java
+++ b/tests/unit/src/com/android/settings/wifi/WifiUtilsTest.java
@@ -21,19 +21,53 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import android.content.Context;
+import android.content.res.Resources;
+import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiManager;
+import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import com.android.settings.R;
import com.android.wifitrackerlib.WifiEntry;
+import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
@RunWith(AndroidJUnit4.class)
public class WifiUtilsTest {
+ static final String[] WIFI_REGEXS = {"wifi_regexs"};
+
+ @Rule
+ public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+ @Spy
+ Context mContext = ApplicationProvider.getApplicationContext();
+ @Mock
+ Resources mResources;
+ @Mock
+ WifiManager mWifiManager;
+ @Mock
+ TetheringManager mTetheringManager;
+
+ @Before
+ public void setUp() {
+ when(mContext.getResources()).thenReturn(mResources);
+ when(mResources.getBoolean(R.bool.config_show_wifi_hotspot_settings)).thenReturn(true);
+ when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
+ when(mContext.getSystemService(TetheringManager.class)).thenReturn(mTetheringManager);
+ when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(WIFI_REGEXS);
+ }
+
@Test
public void testSSID() {
assertThat(WifiUtils.isSSIDTooLong("123")).isFalse();
@@ -108,4 +142,53 @@
WifiConfiguration config = WifiUtils.getWifiConfig(null /* wifiEntry */,
null /* scanResult */);
}
+
+ @Test
+ public void checkShowWifiHotspot_allReady_returnTrue() {
+ assertThat(WifiUtils.checkShowWifiHotspot(mContext)).isTrue();
+ }
+
+ @Test
+ public void checkShowWifiHotspot_contextIsNull_returnFalse() {
+ assertThat(WifiUtils.checkShowWifiHotspot(null)).isFalse();
+ }
+
+ @Test
+ public void checkShowWifiHotspot_configIsNotShow_returnFalse() {
+ when(mResources.getBoolean(R.bool.config_show_wifi_hotspot_settings)).thenReturn(false);
+
+ assertThat(WifiUtils.checkShowWifiHotspot(mContext)).isFalse();
+ }
+
+ @Test
+ public void checkShowWifiHotspot_wifiManagerIsNull_returnFalse() {
+ when(mContext.getSystemService(WifiManager.class)).thenReturn(null);
+
+ assertThat(WifiUtils.checkShowWifiHotspot(mContext)).isFalse();
+ }
+
+ @Test
+ public void checkShowWifiHotspot_tetheringManagerIsNull_returnFalse() {
+ when(mContext.getSystemService(TetheringManager.class)).thenReturn(null);
+
+ assertThat(WifiUtils.checkShowWifiHotspot(mContext)).isFalse();
+ }
+
+ @Test
+ public void checkShowWifiHotspot_wifiRegexsIsEmpty_returnFalse() {
+ when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(null);
+
+ assertThat(WifiUtils.checkShowWifiHotspot(mContext)).isFalse();
+ }
+
+ @Test
+ public void canShowWifiHotspot_cachedIsReady_returnCached() {
+ WifiUtils.setCanShowWifiHotspotCached(true);
+
+ assertThat(WifiUtils.canShowWifiHotspot(null)).isTrue();
+
+ WifiUtils.setCanShowWifiHotspotCached(false);
+
+ assertThat(WifiUtils.canShowWifiHotspot(null)).isFalse();
+ }
}