diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 10ec779..da96c00 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -83,6 +83,7 @@
     <uses-permission android:name="android.permission.MANAGE_NOTIFICATIONS"/>
     <uses-permission android:name="android.permission.DELETE_PACKAGES"/>
     <uses-permission android:name="android.permission.MANAGE_APP_OPS_RESTRICTIONS"/>
+    <uses-permission android:name="android.permission.NETWORK_SETTINGS" />
 
     <application android:label="@string/settings_label"
             android:icon="@drawable/ic_launcher_settings"
@@ -3074,7 +3075,7 @@
         <activity android:name=".support.SupportDashboardActivity"
                   android:label="@string/page_tab_title_support"
                   android:icon="@drawable/ic_help"
-                  android:theme="@android:style/Theme.NoDisplay"
+                  android:theme="@android:style/Theme.DeviceDefault.Light.Panel"
                   android:enabled="@bool/config_support_enabled">
             <intent-filter android:priority="-2">
                 <action android:name="com.android.settings.action.SETTINGS"/>
diff --git a/res/drawable/ic_bt_imaging.xml b/res/drawable/ic_bt_imaging.xml
deleted file mode 100644
index 01e78c0..0000000
--- a/res/drawable/ic_bt_imaging.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--
-     Copyright (C) 2016 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.0"
-    android:viewportHeight="24.0"
-    android:tint="?android:attr/colorAccent">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M19,8L5,8c-1.66,0 -3,1.34 -3,3v6h4v4h12v-4h4v-6c0,-1.66 -1.34,-3
-            -3,-3zM16,19L8,19v-5h8v5zM19,12c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1 1,0.45 1,1 -0.45,1
-            -1,1zM18,3L6,3v4h12L18,3z"/>
-</vector>
\ No newline at end of file
diff --git a/res/layout/search_panel.xml b/res/layout/search_panel.xml
index 6d76001..48a1d4c 100644
--- a/res/layout/search_panel.xml
+++ b/res/layout/search_panel.xml
@@ -22,6 +22,7 @@
     android:orientation="vertical">
 
     <FrameLayout
+        android:id="@+id/search_bar_container"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:background="@color/suggestion_condition_background">
diff --git a/res/layout/settings_main_dashboard.xml b/res/layout/settings_main_dashboard.xml
index d62ae1d..95299ae 100644
--- a/res/layout/settings_main_dashboard.xml
+++ b/res/layout/settings_main_dashboard.xml
@@ -23,6 +23,7 @@
     android:layout_height="match_parent"
     android:orientation="vertical">
     <FrameLayout
+        android:id="@+id/search_bar_container"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:background="@color/suggestion_condition_background">
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 3ec18db..c5f1269 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Net wekkers"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Volkome stilte"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokkeer visuele steurings"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Werkprofielklanke"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Gebruik persoonlike profiel se klanke"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Klanke is dieselfde vir werk- en persoonlike profiele"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Net van gesterde kontakte af"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Geen"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Wekkers"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Onthounotas"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Geleenthede"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Alle bellers"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 8572aff..b7e562d 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"ማንቂያዎች ብቻ"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"ሙሉ ለሙሉ ጸጥታ"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>፦ <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"ምስላዊ ረብሻዎችን አግድ"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"የስራ መገለጫ ድምጾች"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"የግል መገለጫ ድምጾችን ይጠቀሙ"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"ድምጾች ለስራ እና የግል መገለጫዎች ተመሳሳይ ናቸው"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"ኮከብ ከተደረገባቸው እውቂያዎች ብቻ"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"ምንም"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"ማንቂያዎች"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"አስታወሾች"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"ክስተቶች"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"ሁሉም ደዋዮች"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 4103f3e..64efe7b 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -2954,7 +2954,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"التنبيهات فقط"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"كتم الصوت تمامًا"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"حظر الإشعارات المرئية"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"أصوات الملف الشخصي للعمل"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"استخدام أصوات الملف الشخصي"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"يتم استخدام الأصوات نفسها للملف الشخصي وملف العمل الشخصي"</string>
@@ -3127,6 +3128,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"من جهات الاتصال المميزة بنجمة فقط"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"ولا أي رسالة"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"التنبيهات"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"التذكيرات"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"الأحداث"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"جميع المتصلين"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 06e19c3..fa50b1c 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Yalnız alarmlar"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Tam sakitlik"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Vizual fəsadları blok edin"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"İş profili səsləri"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Şəxsi profil səslərini istifadə edin"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"İş və şəxsi profil səsləri eynidir"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Yalnız ulduzlanmış kontaktlardan"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Heç biri"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Siqnallar"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Xatırlamalar"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Tədbirlər"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Bütün zəng edənlər"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 6197dd4..0f2a382 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -2870,7 +2870,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Samo alarmi"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Potpuna tišina"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokiraj vizuelna ometanja"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Zvuci za profil za Work"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Koristi zvuke ličnog profila"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Zvukovi profila za Work su isti kao i zvukovi za lične profile"</string>
@@ -3034,6 +3035,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Samo od kontakata sa zvezdicom"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Niko"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmi"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Podsetnici"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Događaji"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Svi pozivaoci"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 7c0cde8..95933b0 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -2899,7 +2899,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Толькі будзільнікі"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Поўная цішыня"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Блакіроўка візуальных апавяшчэнняў"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Гукі працоўнага профілю"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Выкар. гукі асабістага профілю"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"У працоўным і асабістым профілях гукі аднолькавыя"</string>
@@ -3066,6 +3067,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Толькі ад кантактаў, пазначаных зоркай"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ні ад каго"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Будзільнікі"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Напаміны"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Падзеі"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Усе абаненты"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 3f74d1a..0c1a2d3 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Само будилници"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Пълна тишина"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Виз. предупрежд.: Блокиране"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Звуци за служебния потребителски профил"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Използване на звуците за личния потребителски профил"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Звуците за служебния и личния потребителски профил са едни и същи"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Само от контакти със звезда"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Никакви"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Будилници"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Напомняния"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Събития"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Всички обаждащи се"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index db6e82f..155c02c 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"শুধুমাত্র অ্যালার্মগুলি"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"একদম নিরব"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"ভিজ্যুয়াল ব্যাঘাতগুলিকে ব্লক করুন"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"কর্মস্থলের প্রোফাইলের ধ্বনিগুলি"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"ব্যক্তিগত প্রোফাইলের ধ্বনিগুলি ব্যবহার করুন"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"কাজ এবং ব্যক্তিগত প্রোফাইলের জন্য একই শব্দ"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"শুধুমাত্র তারকাচিহ্নিত পরিচিতিদের থেকে"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"কোনো কিছুই নয়"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"অ্যালার্মগুলি"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"অনুস্মারকগুলি"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"ইভেন্টগুলি"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"সমস্ত কলার"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 28cc535..4374e13 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -127,7 +127,7 @@
     <string name="bluetooth_unknown" msgid="644716244548801421"></string>
     <string name="bluetooth_device" msgid="5291950341750186887">"Neimenovani Bluetooth uređaj"</string>
     <string name="progress_scanning" msgid="192587958424295789">"Pretraživanje"</string>
-    <string name="bluetooth_no_devices_found" msgid="1085232930277181436">"Nije pronađen nijedan obližnji Bluetooth uređaj."</string>
+    <string name="bluetooth_no_devices_found" msgid="1085232930277181436">"Nema Bluetooth uređaja u blizini."</string>
     <string name="bluetooth_notif_ticker" msgid="4726721390078512173">"Zahtjev za Bluetooth uparivanje"</string>
     <string name="bluetooth_notif_title" msgid="2485175521845371514">"Zahtjev za uparivanje"</string>
     <string name="bluetooth_notif_message" msgid="5057417127600942904">"Dodirnite za spajanje s uređajem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -2883,7 +2883,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Samo alarmi"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Potpuna tišina"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokiranje vizuelnih ometanja"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Zvukovi radnog profila"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Koristite zvukove ličnog profila"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Zvukovi su isti za radni i lični profil"</string>
@@ -3047,6 +3048,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Samo od kontakata označenih zvjezdicom"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ništa"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmi"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Podsjetnici"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Događaji"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Svi pozivi"</string>
@@ -3562,7 +3565,7 @@
     <string name="support_international_phone_title" msgid="1308334014138718455">"Putujete u inostranstvo?"</string>
     <string name="support_international_phone_summary" msgid="208231793637026927">"Mogući su troškovi za međunarodne pozive"</string>
     <string name="support_escalation_by_phone" msgid="4843223043487058711">"Pozovi"</string>
-    <string name="support_escalation_by_chat" msgid="977019859110763749">"Pokreni razgovor"</string>
+    <string name="support_escalation_by_chat" msgid="977019859110763749">"Pokreni chat"</string>
     <string name="support_tips_and_tricks_title" msgid="4153466795695447828">"Istraživanje savjeta i trikova"</string>
     <string name="support_help_feedback_title" msgid="693440287222186718">"Pomoć i slanje povratnih informacija"</string>
     <string name="support_sign_in_required_title" msgid="1367187789121480440">"Kontaktirajte podršku korisnicima"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index ef2baac..f1891e9 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Només alarmes"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Silenci total"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloqueja interrupcions visuals"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Sons del perfil professional"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Utilitza sons del perfil pers."</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Els sons del perfil professional i personal són els mateixos"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Només dels contactes destacats"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Cap"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmes"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Recordatoris"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Esdeveniments"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Totes les trucades"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 7391bd4..d2a42e8 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -2898,7 +2898,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Pouze budíky"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Úplné ticho"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokovat vizuální vyrušení"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Zvuky pracovního profilu"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Použít zvuky osobního profilu"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Zvuky pracovního a osobního profilu jsou stejné"</string>
@@ -3065,6 +3066,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Pouze od oblíbených kontaktů"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Žádné"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Budíky"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Připomenutí"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Události"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Všichni volající"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index cf873ff..0d73529 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Kun alarmer"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Total stilhed"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloker visuelle forstyrrelser"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Lyde for arbejdsprofil"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Brug lyde fra privat profil"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Lydene er de samme for din arbejdsprofil og din personlige profil"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Kun fra stjernemarkerede kontaktpersoner"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ingen"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmer"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Påmindelser"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Begivenheder"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Alle opkaldere"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index ff1532f..1fc6703 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Nur Wecker"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Lautlos"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Visuelle Störungen blockieren"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Töne für Arbeitsprofil"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Töne vom persönlichen Profil verwenden"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Töne in Arbeits- und privaten Profilen stimmen überein"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Nur von markierten Kontakten"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Keine"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Wecker"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Erinnerungen"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Termine"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Alle Anrufer"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 9adf070..d68cd31 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Μόνο ειδοποιήσεις"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Πλήρης σίγαση"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Αποκλ. οπτικών αντιπ/σμών"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Ήχοι προφίλ εργασίας"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Χρήση ήχων προσωπικού προφίλ"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Οι ήχοι είναι ίδιοι για τα προφίλ εργασίας και τα προσωπικά προφίλ"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Μόνο από τις επαφές με αστέρι"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Κανένα"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Ξυπνητήρια"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Υπενθυμίσεις"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Συμβάντα"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Όλοι οι καλούντες"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 8c99a4e..2d9aab5 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Alarms only"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Total silence"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Block visual disturbances"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Work profile sounds"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Use personal profile sounds"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Sounds are the same for work and personal profiles"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"From starred contacts only"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"None"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarms"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Reminders"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Events"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"All callers"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 8c99a4e..2d9aab5 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Alarms only"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Total silence"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Block visual disturbances"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Work profile sounds"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Use personal profile sounds"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Sounds are the same for work and personal profiles"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"From starred contacts only"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"None"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarms"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Reminders"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Events"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"All callers"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 8c99a4e..2d9aab5 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Alarms only"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Total silence"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Block visual disturbances"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Work profile sounds"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Use personal profile sounds"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Sounds are the same for work and personal profiles"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"From starred contacts only"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"None"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarms"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Reminders"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Events"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"All callers"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 05f0c46..3053e55 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Solo alarmas"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Silencio total"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloquear alteraciones visuales"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Sonidos del perfil de trabajo"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Usa los sonidos del perfil personal"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Los sonidos de los perfiles de trabajo y personal son iguales"</string>
@@ -3001,6 +3002,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Solo de contactos destacados"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ninguno"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmas"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Recordatorios"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Eventos"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Todos los emisores"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 56243a9..541615d 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Solo alarmas"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Silencio total"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloquear interrupciones visuales"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Sonidos del perfil de trabajo"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Utilizar sonidos del perfil personal"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Los sonidos de los perfiles personal y de trabajo son los mismos"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Solo de contactos destacados"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ninguno"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmas"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Recordatorios"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Eventos"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Todas las llamadas"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index a285373..6bbbcb9 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Ainult alarmid"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Täielik vaikus"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Visuaalsete häirimiste blok."</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Tööprofiili helid"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Kasuta isikl. profiili helisid"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Isikliku ja tööprofiili helid on samad"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Ainult tärniga tähistatud kontaktidelt"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Mitte kelleltki"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmid"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Meeldetuletused"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Sündmused"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Kõik helistajad"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 62a1c00..53259c6 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Alarmak soilik"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Isiltasun osoa"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokeatu oztopo bisualak"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Laneko profilaren soinuak"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Erabili profil pertsonalaren soinuak"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Soinu berberak erabiltzen dira laneko profilean nahiz profil pertsonalean"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Kontaktu izardunetakoak soilik"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Bat ere ez"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmak"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Abisuak"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Gertaerak"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Deitzaile guztiak"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index cd88573..6824d75 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"فقط هشدارها"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"سکوت کامل"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: ‏<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"مسدود کردن مزاحمت‌های بصری"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"صداهای نمایه کاری"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"استفاده از صداهای نمایه شخصی"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"صداهای نمایه کاری‌ و شخصی‌تان یکسان هستند"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"تنها از مخاطین ستاره‌دار"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"هیچ‌کدام"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"هشدارها"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"یادآوری‌ها"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"رویدادها"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"همه تماس‌گیرندگان"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index a7bb88c..d10d86b 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Vain herätykset"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Täydellinen hiljaisuus"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Estä näkyvät häiriötekijät"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Työprofiilin äänet"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Käytä henk. koht. prof. ääniä"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Työ- ja henkilökohtaisessa profiilissa käytetään samoja ääniä."</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Vain tähdellä merkityiltä kontakteilta"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ei keneltäkään"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Herätykset"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Muistutukset"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Tapahtumat"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Kaikki soittajat"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index c2dfea9..47726d2 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Alarmes uniquement"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Aucune interruption"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g> : <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloquer dérangements visuels"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Sons du profil professionnel"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Utiliser sons du profil perso"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Les sons du profil professionnel sont les mêmes que ceux du profil personnel"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Des contacts favoris seulement"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Aucun"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmes"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Rappels"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Événements"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Tous les appelants"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 7bc21bb..cba5136 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Alarmes uniquement"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Aucune interruption"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g> : <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloquer nuisances visuelles"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Sons du profil professionnel"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Utiliser sons du profil perso"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Les sons des profils professionnel et personnel sont identiques"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Des contacts favoris uniquement"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Aucun"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmes"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Rappels"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Événements"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Tous les appelants"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index c9951ef..82d8466 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -472,13 +472,13 @@
     <string name="unlock_set_unlock_off_title" msgid="7117155352183088342">"Ningún"</string>
     <string name="unlock_set_unlock_off_summary" msgid="94361581669110415"></string>
     <string name="unlock_set_unlock_none_title" msgid="5679243878975864640">"Pasar o dedo"</string>
-    <string name="unlock_set_unlock_none_summary" msgid="8914673583104628191">"Sen seguridade"</string>
+    <string name="unlock_set_unlock_none_summary" msgid="8914673583104628191">"Sen seguranza"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="2912067603917311700">"Padrón"</string>
-    <string name="unlock_set_unlock_pattern_summary" msgid="7062696666227725593">"Seguridade media"</string>
+    <string name="unlock_set_unlock_pattern_summary" msgid="7062696666227725593">"Seguranza media"</string>
     <string name="unlock_set_unlock_pin_title" msgid="5846029709462329515">"PIN"</string>
-    <string name="unlock_set_unlock_pin_summary" msgid="907878650556383388">"Seguridade de media a alta"</string>
+    <string name="unlock_set_unlock_pin_summary" msgid="907878650556383388">"Seguranza de media a alta"</string>
     <string name="unlock_set_unlock_password_title" msgid="8775603825675090937">"Contrasinal"</string>
-    <string name="unlock_set_unlock_password_summary" msgid="8856220848940929546">"Alta seguridade"</string>
+    <string name="unlock_set_unlock_password_summary" msgid="8856220848940929546">"Alta seguranza"</string>
     <string name="unlock_set_do_later_title" msgid="4894767558414979243">"Agora non"</string>
     <string name="current_screen_lock" msgid="4104091715420072219">"Bloqueo de pantalla actual"</string>
     <string name="fingerprint_unlock_set_unlock_pattern" msgid="4939057588092120368">"Impresión dixital + padrón"</string>
@@ -775,8 +775,8 @@
     <string name="wifi_wps_connected" msgid="7153432445748931183">"Conectado coa rede wifi <xliff:g id="NETWORK_NAME">%s</xliff:g>"</string>
     <string name="wifi_wps_in_progress" msgid="3372311348221357944">"WPS xa está en curso e pode tardar ata dos minutos en completarse"</string>
     <string name="wifi_wps_failed_generic" msgid="5668775022238832527">"Fallo de WPS. Téntao de novo nuns minutos."</string>
-    <string name="wifi_wps_failed_wep" msgid="2702820087105284461">"Non se admite a configuración de seguridade do router sen fíos (WEP)"</string>
-    <string name="wifi_wps_failed_tkip" msgid="4282401586860713349">"Non se admite a configuración de seguridade do router sen fíos (TKIP)"</string>
+    <string name="wifi_wps_failed_wep" msgid="2702820087105284461">"Non se admite a configuración de seguranza do router sen fíos (WEP)"</string>
+    <string name="wifi_wps_failed_tkip" msgid="4282401586860713349">"Non se admite a configuración de seguranza do router sen fíos (TKIP)"</string>
     <string name="wifi_wps_failed_auth" msgid="1174614355181181958">"Fallo de autenticación. Téntao de novo."</string>
     <string name="wifi_wps_failed_overlap" msgid="5159533685596844778">"Detectouse outra sesión WPS. Téntao de novo nuns minutos."</string>
     <string name="wifi_ssid" msgid="5519636102673067319">"Nome da rede"</string>
@@ -1168,7 +1168,7 @@
     <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Desactivar almacenamento"</string>
     <string name="sd_eject" product="default" msgid="6915293408836853020">"Desactivar tarxeta SD"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Desactivar almac. USB interno"</string>
-    <string name="sd_eject_summary" product="default" msgid="3300599435073550246">"Desactiva a tarxeta SD para poder extraela con seguridade"</string>
+    <string name="sd_eject_summary" product="default" msgid="3300599435073550246">"Desactiva a tarxeta SD para poder extraela con seguranza"</string>
     <string name="sd_insert_summary" product="nosdcard" msgid="5264016886409577313">"Inserir almacenamento USB"</string>
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Inserir unha tarxeta SD"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Inserir almacenamento USB"</string>
@@ -1225,8 +1225,8 @@
     <string name="storage_volume_used_total" msgid="6113121714019000244">"Total usado de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
     <string name="storage_mount_success" msgid="687641090137253647">"Inseriuse <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="storage_mount_failure" msgid="1042621107954547316">"Non se puido inserir <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="storage_unmount_success" msgid="5737203344673441677">"Expulsouse <xliff:g id="NAME">%1$s</xliff:g> con seguridade"</string>
-    <string name="storage_unmount_failure" msgid="5758387106579519489">"Non se puido expulsar <xliff:g id="NAME">%1$s</xliff:g> con seguridade"</string>
+    <string name="storage_unmount_success" msgid="5737203344673441677">"Expulsouse <xliff:g id="NAME">%1$s</xliff:g> con seguranza"</string>
+    <string name="storage_unmount_failure" msgid="5758387106579519489">"Non se puido expulsar <xliff:g id="NAME">%1$s</xliff:g> con seguranza"</string>
     <string name="storage_format_success" msgid="3023144070597190555">"Formatouse <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="storage_format_failure" msgid="6032640952779735766">"Non se puido formatar <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="storage_rename_title" msgid="8242663969839491485">"Cambiar o nome do almacenamento"</string>
@@ -1455,8 +1455,8 @@
     <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenzas de terceiros"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Hai un problema para cargar as licenzas."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Cargando..."</string>
-    <string name="settings_safetylegal_title" msgid="1289483965535937431">"Información de seguridade"</string>
-    <string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Información de seguridade"</string>
+    <string name="settings_safetylegal_title" msgid="1289483965535937431">"Información de seguranza"</string>
+    <string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Información de seguranza"</string>
     <string name="settings_safetylegal_activity_unreachable" msgid="250674109915859456">"Non tes conexión de datos. Para ver esta información agora, accede a %s desde calquera ordenador conectado a Internet."</string>
     <string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Cargando..."</string>
     <string name="lockpassword_choose_your_password_header" msgid="8624900666929394990">"Escolle o teu contrasinal"</string>
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Só alarmas"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Silencio total"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloquear ruído visual"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Sons do perfil de traballo"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Usar sons do perfil persoal"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Os sons son iguais para o perfil persoal e o de traballo"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Só dos contactos marcados con estrela"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ningunha"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmas"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Recordatorios"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Eventos"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Todos os emisores de chamadas"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 8e0d0f1..8d3c85a 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"ફક્ત એલાર્મ્સ"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"સાવ શાંતિ"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"દૃશ્ય વિક્ષેપોને અવરોધિત કરો"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"કાર્ય પ્રોફાઇલ ધ્વનિઓ"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"વ્યક્તિગત પ્રોફાઇલ ધ્વનિઓ વાપરો"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"કાર્ય અને વ્યક્તિગત પ્રોફાઇલો માટે ધ્વનિ સમાન રહે છે"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"ફક્ત તારાંકિત સંપર્કોના"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"કોઈ નહીં"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"એલાર્મ્સ"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"સ્મૃતિપત્રો"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"ઇવેન્ટ્સ"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"બધા કૉલર્સ"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 6bb474a..3b7bd69 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -944,12 +944,12 @@
     <string name="musicfx_title" msgid="3415566786340790345">"संगीत प्रभाव"</string>
     <string name="ring_volume_title" msgid="5592466070832128777">"रिंग वॉल्यूम"</string>
     <string name="vibrate_in_silent_title" msgid="3897968069156767036">"मौन होने पर कंपन करें"</string>
-    <string name="notification_sound_title" msgid="5137483249425507572">"साधारण नोटिफिकेशन ध्वनी"</string>
+    <string name="notification_sound_title" msgid="5137483249425507572">"साधारण नोटिफ़िकेशन ध्वनी"</string>
     <string name="incoming_call_volume_title" msgid="8073714801365904099">"रिंगटोन"</string>
     <string name="notification_volume_title" msgid="2012640760341080408">"नोटिफ़िकेशन"</string>
-    <string name="checkbox_notification_same_as_incoming_call" msgid="1073644356290338921">"नोटिफिकेशन के लिए इनकमिंग कॉल वॉल्‍यूम का उपयोग करें"</string>
+    <string name="checkbox_notification_same_as_incoming_call" msgid="1073644356290338921">"नोटिफ़िकेशन के लिए इनकमिंग कॉल वॉल्‍यूम का उपयोग करें"</string>
     <string name="home_work_profile_not_supported" msgid="1357721012342357037">"कार्य प्रोफ़ाइल का समर्थन नहीं करता है"</string>
-    <string name="notification_sound_dialog_title" msgid="3805140135741385667">"साधारण नोटिफिकेशन ध्वनी"</string>
+    <string name="notification_sound_dialog_title" msgid="3805140135741385667">"साधारण नोटिफ़िकेशन ध्वनी"</string>
     <string name="media_volume_title" msgid="3576565767317118106">"मीडिया"</string>
     <string name="media_volume_summary" msgid="5363248930648849974">"संगीत और वीडियो के लिए वॉल्‍यूम सेट करें"</string>
     <string name="alarm_volume_title" msgid="2285597478377758706">"अलार्म"</string>
@@ -960,12 +960,12 @@
     <string name="haptic_feedback_enable_title" msgid="7152163068278526530">"टैप करने पर कंपन करें"</string>
     <string name="audio_record_proc_title" msgid="4271091199976457534">"शोर रद्दीकरण"</string>
     <string name="volume_media_description" msgid="7949355934788807863">"संगीत, वीडियो,गेमऔर अन्‍य मीडिया"</string>
-    <string name="volume_ring_description" msgid="5936851631698298989">"रिंगटोन और नोटिफिकेशन"</string>
+    <string name="volume_ring_description" msgid="5936851631698298989">"रिंगटोन और नोटिफ़िकेशन"</string>
     <string name="volume_notification_description" msgid="5810902320215328321">"नोटिफ़िकेशन"</string>
     <string name="volume_alarm_description" msgid="8322615148532654841">"अलार्म"</string>
-    <string name="volume_ring_mute" msgid="3018992671608737202">"रिंगटोन और नोटिफिकेशन म्‍यूट करें"</string>
+    <string name="volume_ring_mute" msgid="3018992671608737202">"रिंगटोन और नोटिफ़िकेशन म्‍यूट करें"</string>
     <string name="volume_media_mute" msgid="3399059928695998166">"संगीत और अन्‍य मीडिया म्‍यूट करें"</string>
-    <string name="volume_notification_mute" msgid="7955193480006444159">"नोटिफिकेशन म्‍यूट करें"</string>
+    <string name="volume_notification_mute" msgid="7955193480006444159">"नोटिफ़िकेशन म्‍यूट करें"</string>
     <string name="volume_alarm_mute" msgid="4452239420351035936">"अलार्म म्‍यूट करें"</string>
     <string name="dock_settings" msgid="1820107306693002541">"डॉक"</string>
     <string name="dock_settings_title" msgid="9161438664257429372">"डॉक सेटिंग"</string>
@@ -1584,7 +1584,7 @@
     <string name="default_emergency_app" msgid="1951760659640369980">"आपातकालीन ऐप"</string>
     <string name="reset_app_preferences" msgid="1321050641018356925">"ऐप्स प्राथमिकताएं रीसेट करें"</string>
     <string name="reset_app_preferences_title" msgid="6093179367325336662">"ऐप्स प्राथमिकताएं रीसेट करें?"</string>
-    <string name="reset_app_preferences_desc" msgid="4822447731869201512">"इससे निम्न की सभी प्राथमिकताएं रीसेट हो जाएंगी:\n\n "<li>"अक्षम ऐप्स "</li>\n" "<li>"अक्षम ऐप्स  नोटिफिकेशन"</li>\n" "<li>"कार्यवाहियों के लिए डिफ़ॉल्ट ऐप्स "</li>\n" "<li>"ऐप्स  के लिए पृष्ठभूमि डेटा प्रतिबंध"</li>\n" "<li>"अनुमति के कोई भी प्रतिबंध"</li>\n\n" आपका सभी ऐप्स  डेटा बना रहेगा."</string>
+    <string name="reset_app_preferences_desc" msgid="4822447731869201512">"इससे निम्न की सभी प्राथमिकताएं रीसेट हो जाएंगी:\n\n "<li>"अक्षम ऐप्स "</li>\n" "<li>"अक्षम ऐप्स  नोटिफ़िकेशन"</li>\n" "<li>"कार्यवाहियों के लिए डिफ़ॉल्ट ऐप्स "</li>\n" "<li>"ऐप्स  के लिए पृष्ठभूमि डेटा प्रतिबंध"</li>\n" "<li>"अनुमति के कोई भी प्रतिबंध"</li>\n\n" आपका सभी ऐप्स  डेटा बना रहेगा."</string>
     <string name="reset_app_preferences_button" msgid="2559089511841281242">"ऐप्स  रीसेट करें"</string>
     <string name="manage_space_text" msgid="8852711522447794676">"स्‍थान प्रबंधित करें"</string>
     <string name="filter" msgid="2018011724373033887">"फ़िल्टर"</string>
@@ -1651,8 +1651,8 @@
     <string name="app_disable_dlg_text" msgid="5632072173181990531">"अगर आप इस ऐप्लिकेशन को अक्षम करते हैं, तो हो सकता है कि Android और दूसरे ऐप्लिकेशन अपेक्षित रूप से काम ना कर पाएं."</string>
     <string name="app_special_disable_dlg_title" msgid="2690148680327142674">"डेटा हटाएं और ऐप्स  को अक्षम करें?"</string>
     <string name="app_special_disable_dlg_text" msgid="5832078825810635913">"यदि आप इस ऐप्लिकेशन को अक्षम करते हैं, तो हो सकता है कि दूसरे ऐप्लिकेशन अपेक्षित रूप से काम ना कर पाएं. आपका डेटा भी हटा दिया जाएगा."</string>
-    <string name="app_disable_notifications_dlg_title" msgid="7669264654851761857">"नोटिफिकेशन बंद करें?"</string>
-    <string name="app_disable_notifications_dlg_text" msgid="5088484670924769845">"यदि आप इस ऐप्स के लिए नोटिफिकेशन बंद करते हैं, तो आप महत्‍वपूर्ण अलर्ट और नई जानकारी खो देंगे."</string>
+    <string name="app_disable_notifications_dlg_title" msgid="7669264654851761857">"नोटिफ़िकेशन बंद करें?"</string>
+    <string name="app_disable_notifications_dlg_text" msgid="5088484670924769845">"यदि आप इस ऐप्स के लिए नोटिफ़िकेशन बंद करते हैं, तो आप महत्‍वपूर्ण अलर्ट और नई जानकारी खो देंगे."</string>
     <string name="app_install_details_group_title" msgid="7084623031296083574">"स्टोर"</string>
     <string name="app_install_details_title" msgid="6905279702654975207">"ऐप्लिकेशन का विवरण"</string>
     <string name="app_install_details_summary" msgid="6464796332049327547">"<xliff:g id="APP_STORE">%1$s</xliff:g> से इंस्टॉल किया गया ऐप्लिकेशन"</string>
@@ -1910,7 +1910,7 @@
     <string name="enable_service_pin_reason" msgid="7882035264853248228">"क्‍योंकि <xliff:g id="SERVICE">%1$s</xliff:g> को चालू करने से डेटा एेन्‍क्रिप्‍शन प्रभावित होता है, इसलिए आपको अपने पिन की पुष्‍टि करनी होगी"</string>
     <string name="enable_service_password_reason" msgid="1224075277603097951">"क्‍योंकि <xliff:g id="SERVICE">%1$s</xliff:g> को चालू करने से डेटा एेन्‍क्रिप्‍शन प्रभावित होता है, इसलिए आपको अपने पासवर्ड की पुष्‍टि करनी होगी."</string>
     <string name="capability_title_receiveAccessibilityEvents" msgid="1869032063969970755">"अपनी कार्यवाही ध्यान से देखें"</string>
-    <string name="capability_desc_receiveAccessibilityEvents" msgid="6640333613848713883">"किसी ऐप्स  से सहभागिता करते समय नोटिफिकेशन प्राप्त करें."</string>
+    <string name="capability_desc_receiveAccessibilityEvents" msgid="6640333613848713883">"किसी ऐप्स  से सहभागिता करते समय नोटिफ़िकेशन प्राप्त करें."</string>
     <string name="disable_service_title" msgid="3624005212728512896">"<xliff:g id="SERVICE">%1$s</xliff:g> को रोकें?"</string>
     <string name="disable_service_message" msgid="2247101878627941561">"ठीक टैप करने से <xliff:g id="SERVICE">%1$s</xliff:g> बंद हो जाएगी."</string>
     <string name="accessibility_no_services_installed" msgid="7200948194639038807">"कोई सेवा इंस्‍टॉल नहीं है"</string>
@@ -2260,7 +2260,7 @@
     <string name="admin_more_details" msgid="7901420667346456102">"अधिक विवरण"</string>
     <string name="untitled_apn" msgid="1230060359198685513">"शीर्षक-रहित"</string>
     <string name="sound_category_sound_title" msgid="1488759370067953996">"सामान्य"</string>
-    <string name="notification_log_title" msgid="3766148588239398464">"नोटिफिकेशन लॉग"</string>
+    <string name="notification_log_title" msgid="3766148588239398464">"नोटिफ़िकेशन लॉग"</string>
     <string name="sound_category_call_ringtone_vibrate_title" msgid="1543777228646645163">"कॉल की रिंगटोन और कंपन"</string>
     <string name="sound_category_system_title" msgid="1480844520622721141">"सिस्टम"</string>
     <string name="wifi_setup_title" msgid="2970260757780025029">"वाई-फ़ाई  सेटअप"</string>
@@ -2640,16 +2640,16 @@
     <string name="restriction_settings_title" msgid="4233515503765879736">"प्रतिबंध"</string>
     <string name="restriction_menu_reset" msgid="2067644523489568173">"प्रतिबंधों को निकालें"</string>
     <string name="restriction_menu_change_pin" msgid="740081584044302775">"पिन बदलें"</string>
-    <string name="app_notifications_switch_label" msgid="9124072219553687583">"नोटिफिकेशन दिखाएं"</string>
+    <string name="app_notifications_switch_label" msgid="9124072219553687583">"नोटिफ़िकेशन दिखाएं"</string>
     <string name="help_label" msgid="6886837949306318591">"सहायता और फ़ीडबैक"</string>
     <string name="support_summary" msgid="2705726826263742491">"सहायता लेख, फ़ोन और चैट, शुरू करना"</string>
     <string name="user_account_title" msgid="1127193807312271167">"सामग्री के लिए खाता"</string>
     <string name="user_picture_title" msgid="7297782792000291692">"फ़ोटो आईडी"</string>
     <string name="extreme_threats_title" msgid="6549541803542968699">"गंभीर धमकियां"</string>
-    <string name="extreme_threats_summary" msgid="8777860706500920667">"जान और माल की गंभीर धमकियों की नोटिफिकेशन प्राप्त करें"</string>
+    <string name="extreme_threats_summary" msgid="8777860706500920667">"जान और माल की गंभीर धमकियों की नोटिफ़िकेशन प्राप्त करें"</string>
     <string name="severe_threats_title" msgid="8362676353803170963">"गंभीर धमकियां"</string>
-    <string name="severe_threats_summary" msgid="8848126509420177320">"जान और माल की गंभीर धमकियों के लिए नोटिफिकेशन प्राप्त करें"</string>
-    <string name="amber_alerts_title" msgid="2772220337031146529">"AMBER नोटिफिकेशन"</string>
+    <string name="severe_threats_summary" msgid="8848126509420177320">"जान और माल की गंभीर धमकियों के लिए नोटिफ़िकेशन प्राप्त करें"</string>
+    <string name="amber_alerts_title" msgid="2772220337031146529">"AMBER नोटिफ़िकेशन"</string>
     <string name="amber_alerts_summary" msgid="4312984614037904489">"बाल अपहरणों के बारे में बुलेटिन प्राप्त करें"</string>
     <string name="repeat_title" msgid="6473587828597786996">"दोहराएं"</string>
     <string name="call_manager_enable_title" msgid="7718226115535784017">"कॉल प्रबंधक सक्षम करें"</string>
@@ -2807,7 +2807,7 @@
     <string name="media_volume_option_title" msgid="2811531786073003825">"मीडिया वॉल्‍यूम"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"अलार्म वॉल्‍यूम"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"रिंग का वॉल्यूम"</string>
-    <string name="notification_volume_option_title" msgid="6064656124416882130">"नोटिफिकेशन वॉल्‍यूम"</string>
+    <string name="notification_volume_option_title" msgid="6064656124416882130">"नोटिफ़िकेशन वॉल्‍यूम"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"फ़ोन रिंगटोन"</string>
     <string name="notification_ringtone_title" msgid="4468722874617061231">"डिफ़ॉल्ट नोटिफ़िकेशन ध्वनि"</string>
     <string name="notification_unknown_sound_title" msgid="2535027767851838335">"ऐप की ओर से दी जाने वाली ध्वनि"</string>
@@ -2825,7 +2825,7 @@
     <string name="dock_audio_media_disabled" msgid="3430953622491538080">"सभी ऑडियो"</string>
     <string name="dock_audio_media_enabled" msgid="667849382924908673">"केवल मीडिया ऑडियो"</string>
     <string name="emergency_tone_silent" msgid="1067515631635824291">"मौन"</string>
-    <string name="emergency_tone_alert" msgid="8941852695428130667">"नोटिफिकेशन"</string>
+    <string name="emergency_tone_alert" msgid="8941852695428130667">"नोटिफ़िकेशन"</string>
     <string name="emergency_tone_vibrate" msgid="8281126443204950847">"कंपन"</string>
     <string name="boot_sounds_title" msgid="567029107382343709">"चालू होने की ध्वनि"</string>
     <string name="zen_mode_settings_summary_off" msgid="1857165567766351925">"कोई भी ऑटोमैटिक नियम चालू नहीं है"</string>
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"केवल अलार्म"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"पूरी तरह शांत"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"दृश्य संबंधी गड़बड़ी अवरुद्ध करें"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"कार्य प्रोफ़ाइल की ध्वनियां"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"व्यक्तिगत प्रोफाइल ध्वनि काम में लें"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"कार्य और व्यक्तिगत प्रोफ़ाइल के लिए ध्वनियां एक समान होती हैं"</string>
@@ -2864,17 +2865,17 @@
     <string name="notification_pulse_title" msgid="1905382958860387030">"ब्लिंक लाइट"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"लॉक स्क्रीन पर"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"सभी नोटिफ़िकेशन सामग्री दिखाएं"</string>
-    <string name="lock_screen_notifications_summary_hide" msgid="7891552853357258782">"संवेदनशील नोटिफिकेशन सामग्री छिपाएं"</string>
+    <string name="lock_screen_notifications_summary_hide" msgid="7891552853357258782">"संवेदनशील नोटिफ़िकेशन सामग्री छिपाएं"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="859628910427886715">"नोटिफ़िकेशन बिल्कुल ना दिखाएं"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="6164532459432182244">"जब आपका डिवाइस लॉक हो, तो आप नोटिफिकेशन को किस प्रकार दिखाया जाना चाहेंगे?"</string>
-    <string name="lock_screen_notifications_interstitial_title" msgid="1416589393106326972">"नोटिफिकेशन"</string>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6164532459432182244">"जब आपका डिवाइस लॉक हो, तो आप नोटिफ़िकेशन को किस प्रकार दिखाया जाना चाहेंगे?"</string>
+    <string name="lock_screen_notifications_interstitial_title" msgid="1416589393106326972">"नोटिफ़िकेशन"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="835870815661120772">"सभी कार्य नोटिफ़िकेशन सामग्री दिखाएं"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="256116258285695645">"संवेदनशील कार्य नोटिफ़िकेशन सामग्री छिपाएं"</string>
     <string name="lock_screen_notifications_summary_disable_profile" msgid="4080720698960233358">"प्रोफ़ाइल नोटिफ़िकेशन बिल्कुल ना दिखाएं"</string>
-    <string name="lock_screen_notifications_interstitial_message_profile" msgid="8307705621027472346">"जब आपका डिवाइस लॉक हो, तो आप प्रोफ़ाइल नोटिफिकेशन को किस प्रकार दिखाया जाना चाहेंगे?"</string>
-    <string name="lock_screen_notifications_interstitial_title_profile" msgid="3169806586032521333">"प्रोफ़ाइल नोटिफिकेशन"</string>
+    <string name="lock_screen_notifications_interstitial_message_profile" msgid="8307705621027472346">"जब आपका डिवाइस लॉक हो, तो आप प्रोफ़ाइल नोटिफ़िकेशन को किस प्रकार दिखाया जाना चाहेंगे?"</string>
+    <string name="lock_screen_notifications_interstitial_title_profile" msgid="3169806586032521333">"प्रोफ़ाइल नोटिफ़िकेशन"</string>
     <string name="notifications_title" msgid="8086372779371204971">"नोटिफ़िकेशन"</string>
-    <string name="app_notifications_title" msgid="5810577805218003760">"ऐप्स नोटिफिकेशन"</string>
+    <string name="app_notifications_title" msgid="5810577805218003760">"ऐप्स नोटिफ़िकेशन"</string>
     <string name="notification_channel_title" msgid="2260666541030178452">"नोटिफ़िकेशन की श्रेणी"</string>
     <string name="notification_importance_title" msgid="848692592679312666">"महत्‍व"</string>
     <string name="notification_importance_unspecified" msgid="2196023702875112081">"ऐप्लिकेशन को तय करने दें"</string>
@@ -2888,21 +2889,21 @@
     <string name="notification_importance_default_title" msgid="9120383978536089489">"उच्च"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"बहुत ज़रूरी"</string>
     <string name="allow_sound" msgid="1820188704793497324">"ध्वनि की अनुमति दें"</string>
-    <string name="show_silently_summary" msgid="7616604629123146565">"वर्तमान स्क्रीन पर इन नोटिफिकेशन के लिए ना तो ध्वनि करें, ना कंपन करें और ना ही झलक दिखाएं."</string>
+    <string name="show_silently_summary" msgid="7616604629123146565">"वर्तमान स्क्रीन पर इन नोटिफ़िकेशन के लिए ना तो ध्वनि करें, ना कंपन करें और ना ही झलक दिखाएं."</string>
     <string name="notification_channel_summary_min" msgid="5401718014765921892">"कम महत्व"</string>
     <string name="notification_channel_summary_low" msgid="322317684244981244">"मध्यम महत्व"</string>
     <string name="notification_channel_summary_default" msgid="1111749130423589931">"बहुत अधिक महत्व"</string>
     <string name="notification_channel_summary_high" msgid="2085017556511003283">"तत्काल महत्व"</string>
-    <string name="default_notification_assistant" msgid="7631945224761430146">"नोटिफिकेशन सहायक"</string>
+    <string name="default_notification_assistant" msgid="7631945224761430146">"नोटिफ़िकेशन सहायक"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"एक्सेस नोटिफ़िकेशन"</string>
     <string name="work_profile_notification_access_blocked_summary" msgid="8748026238701253040">"कार्य प्रोफ़ाइल नोटिफ़िकेशन का एक्सेस अवरोधित है"</string>
-    <string name="manage_notification_access_summary_zero" msgid="2409912785614953348">"ऐप्स  नोटिफिकेशन नहीं पढ़ सकते"</string>
+    <string name="manage_notification_access_summary_zero" msgid="2409912785614953348">"ऐप्स  नोटिफ़िकेशन नहीं पढ़ सकते"</string>
     <plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="7930130030691218387">
-      <item quantity="one">%d ऐप्‍स नोटिफिकेशन पढ़ सकते हैं</item>
-      <item quantity="other">%d ऐप्‍स नोटिफिकेशन पढ़ सकते हैं</item>
+      <item quantity="one">%d ऐप्‍स नोटिफ़िकेशन पढ़ सकते हैं</item>
+      <item quantity="other">%d ऐप्‍स नोटिफ़िकेशन पढ़ सकते हैं</item>
     </plurals>
-    <string name="no_notification_listeners" msgid="3487091564454192821">"इंस्टॉल किए गए किसी भी ऐप द्वारा नोटिफिकेशन ऐक्सेस का अनुरोध नहीं किया गया."</string>
-    <string name="notification_listener_security_warning_title" msgid="5522924135145843279">"<xliff:g id="SERVICE">%1$s</xliff:g> के लिए नोटिफिकेशन ऐक्सेस की अनुमति दें?"</string>
+    <string name="no_notification_listeners" msgid="3487091564454192821">"इंस्टॉल किए गए किसी भी ऐप द्वारा नोटिफ़िकेशन ऐक्सेस का अनुरोध नहीं किया गया."</string>
+    <string name="notification_listener_security_warning_title" msgid="5522924135145843279">"<xliff:g id="SERVICE">%1$s</xliff:g> के लिए नोटिफ़िकेशन ऐक्सेस की अनुमति दें?"</string>
     <string name="notification_listener_security_warning_summary" msgid="119203147791040151">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> संपर्क नामों तथा आपको प्राप्त होने वाले संदेशों के लेख जैसी व्यक्तिगत जानकारी सहित, सभी नोटिफ़िकेशन पढ़ सकता है. वह नोटिफ़िकेशन खारिज कर सकेगा और उनमें शामिल कार्रवाई बटनों को ट्रिगर भी कर सकेगा. \n\nइससे ऐप्लिकेशन को परेशान न करें सेवा को चालू या बंद करने और संबंधित सेटिंग को बदलने की क्षमता भी मिल जाएगी."</string>
     <string name="notification_listener_disable_warning_summary" msgid="6738915379642948000">"यदि आप <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> के लिए नोटिफ़िकेशन का एक्सेस बंद करते हैं, तो परेशान न करें सेवा का एक्सेस भी बंद हो सकता है."</string>
     <string name="notification_listener_disable_warning_confirm" msgid="8333442186428083057">"बंद करें"</string>
@@ -2941,13 +2942,13 @@
     <string name="notification_toggle_on" msgid="650145396718191048">"चालू"</string>
     <string name="notification_toggle_off" msgid="2142010737190671762">"बंद"</string>
     <string name="app_notification_block_title" msgid="4069351066849087649">"सभी रोक दें"</string>
-    <string name="app_notification_block_summary" msgid="4744020456943215352">"ये नोटिफिकेशन कभी ना दिखाएं"</string>
+    <string name="app_notification_block_summary" msgid="4744020456943215352">"ये नोटिफ़िकेशन कभी ना दिखाएं"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"नोटिफ़िकेशन दिखाएं"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"नोटिफ़िकेशन कभी भी शेड में या पेरिफ़ेरल डिवाइस पर ना दिखाएं"</string>
     <string name="notification_badge_title" msgid="6370122441168519809">"सूचना बिंदुु की अनुमति दें"</string>
     <string name="notification_channel_badge_title" msgid="2240827899882847087">"सूचना बिंदु दिखाएं"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"परेशान ना करें को ओवरराइड करें"</string>
-    <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"जब परेशान ना करें को केवल प्राथमिकता पर सेट किया गया हो, तब इन नोटिफिकेशन को बाधित करते रहने दें"</string>
+    <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"जब परेशान ना करें को केवल प्राथमिकता पर सेट किया गया हो, तब इन नोटिफ़िकेशन को बाधित करते रहने दें"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"लॉक स्क्रीन पर"</string>
     <string name="app_notification_row_banned" msgid="5983655258784814773">"अवरोधित"</string>
     <string name="app_notification_row_priority" msgid="7723839972982746568">"प्राथमिकता"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"केवल तारांकित संपर्कों से"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"कोई नहीं"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"अलार्म"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"रिमाइंडर्स"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"इवेंट"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"सभी कॉलर"</string>
@@ -3028,15 +3031,15 @@
     <string name="zen_mode_summary_alarms_only_by_time" msgid="7465525754879341907">"केवल <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> तक के लिए अलार्म को बदलें"</string>
     <string name="zen_mode_summary_always" msgid="6172985102689237703">"हमेशा बाधित करें में बदलें"</string>
     <string name="zen_mode_screen_on" msgid="7712038508173845101">"स्क्रीन के चालू होने पर अवरुद्ध करें"</string>
-    <string name="zen_mode_screen_on_summary" msgid="6444425984146305149">"परेशान न करें द्वारा मौन किए गए नोटिफिकेशन को स्क्रीन पर तांक-झांक करने या पॉप अप होने से रोकें"</string>
+    <string name="zen_mode_screen_on_summary" msgid="6444425984146305149">"परेशान न करें द्वारा मौन किए गए नोटिफ़िकेशन को स्क्रीन पर तांक-झांक करने या पॉप अप होने से रोकें"</string>
     <string name="zen_mode_screen_off" msgid="5026854939192419879">"स्क्रीन बंद होने पर अवरुद्ध करें"</string>
-    <string name="zen_mode_screen_off_summary" msgid="6490932947651798094">"परेशान न करें द्वारा मौन किए गए नोटिफिकेशन को स्क्रीन को चालू करने से या नोटिफिकेशन की रोशनी को पल्स करने से रोकें"</string>
+    <string name="zen_mode_screen_off_summary" msgid="6490932947651798094">"परेशान न करें द्वारा मौन किए गए नोटिफ़िकेशन को स्क्रीन को चालू करने से या नोटिफ़िकेशन की रोशनी को पल्स करने से रोकें"</string>
     <string name="zen_mode_screen_off_summary_no_led" msgid="3758698381956461866">"परेशान न करें द्वारा मौन किए गए नोटिफ़िकेशन को स्क्रीन चालू करने से रोकें"</string>
     <string name="zen_mode_all_visual_interruptions" msgid="2851308980832487411">"बंद"</string>
     <string name="zen_mode_screen_on_visual_interruptions" msgid="7373348148129140528">"स्क्रीन के चालू होने पर"</string>
     <string name="zen_mode_screen_off_visual_interruptions" msgid="4850792880144382633">"स्क्रीन के बंद होने पर"</string>
     <string name="zen_mode_no_visual_interruptions" msgid="8742776003822778472">"स्क्रीन के चालू या बंद होने पर"</string>
-    <string name="notification_app_settings_button" msgid="6685640230371477485">"नोटिफिकेशन सेटिंग"</string>
+    <string name="notification_app_settings_button" msgid="6685640230371477485">"नोटिफ़िकेशन सेटिंग"</string>
     <string name="device_feedback" msgid="3238056036766293294">"इस डिवाइस के बारे में फ़ीडबैक भेजें"</string>
     <string name="restr_pin_enter_admin_pin" msgid="1085834515677448072">"व्यवस्थापक पिन डालें"</string>
     <string name="switch_on_text" msgid="1124106706920572386">"चालू"</string>
@@ -3423,9 +3426,9 @@
     <string name="home_app" msgid="4066188520886810030">"होम ऐप"</string>
     <string name="no_default_home" msgid="7184117487704520238">"कोई डिफ़ॉल्‍ट होम नहीं"</string>
     <string name="lockpattern_settings_require_cred_before_startup" msgid="3832020101401318248">"सुरक्षित स्‍टार्ट-अप"</string>
-    <string name="lockpattern_settings_require_pattern_before_startup_summary" msgid="7873036097628404476">"अपना डिवाइस प्रारंभ करने के लिए पैटर्न आवश्‍यक बनाएं. बंद होने पर, यह डिवाइस कॉल, संदेश, नोटिफिकेशन, या अलार्म प्राप्‍त नहीं कर सकता है."</string>
-    <string name="lockpattern_settings_require_pin_before_startup_summary" msgid="6022831284097476933">"अपना डिवाइस प्रारंभ करने के लिए पिन आवश्‍यक बनाएं. बंद होने पर, यह डिवाइस कॉल, संदेश, नोटिफिकेशन, या अलार्म प्राप्‍त नहीं कर सकता है."</string>
-    <string name="lockpattern_settings_require_password_before_startup_summary" msgid="6818285221244966231">"अपना डिवाइस प्रारंभ करने के लिए पासवर्ड आवश्‍यक बनाएं. बंद होने पर, यह डिवाइस कॉल, संदेश, नोटिफिकेशन, या अलार्म प्राप्‍त नहीं कर सकता है."</string>
+    <string name="lockpattern_settings_require_pattern_before_startup_summary" msgid="7873036097628404476">"अपना डिवाइस प्रारंभ करने के लिए पैटर्न आवश्‍यक बनाएं. बंद होने पर, यह डिवाइस कॉल, संदेश, नोटिफ़िकेशन, या अलार्म प्राप्‍त नहीं कर सकता है."</string>
+    <string name="lockpattern_settings_require_pin_before_startup_summary" msgid="6022831284097476933">"अपना डिवाइस प्रारंभ करने के लिए पिन आवश्‍यक बनाएं. बंद होने पर, यह डिवाइस कॉल, संदेश, नोटिफ़िकेशन, या अलार्म प्राप्‍त नहीं कर सकता है."</string>
+    <string name="lockpattern_settings_require_password_before_startup_summary" msgid="6818285221244966231">"अपना डिवाइस प्रारंभ करने के लिए पासवर्ड आवश्‍यक बनाएं. बंद होने पर, यह डिवाइस कॉल, संदेश, नोटिफ़िकेशन, या अलार्म प्राप्‍त नहीं कर सकता है."</string>
     <string name="suggestion_additional_fingerprints" msgid="2214281455363797037">"अन्य फ़िंगरप्रिंट जोड़ें"</string>
     <string name="suggestion_additional_fingerprints_summary" msgid="5471253233176471245">"किसी दूसरी अंगुली से अनलॉक करें"</string>
     <string name="battery_saver_on_summary" msgid="9072203872401530722">"चालू / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
@@ -3433,7 +3436,7 @@
     <string name="battery_saver_desc_turn_on_auto_never" msgid="6715896635178578813">"कभी अपने आप चालू ना करें"</string>
     <string name="battery_saver_desc_turn_on_auto_pct" msgid="7472323223085636533">"%1$s बैटरी शेष रहने पर अपने आप चालू करें"</string>
     <string name="not_battery_optimizing" msgid="5362861851864837617">"बैटरी ऑप्टिमाइज़ेशन का उपयोग नहीं कर रहा है"</string>
-    <string name="lockscreen_remote_input" msgid="969871538778211843">"यदि डिवाइस लॉक है, तो नोटिफिकेशन का जवाब या अन्य लेख लिखने से रोकें"</string>
+    <string name="lockscreen_remote_input" msgid="969871538778211843">"यदि डिवाइस लॉक है, तो नोटिफ़िकेशन का जवाब या अन्य लेख लिखने से रोकें"</string>
     <string name="default_spell_checker" msgid="8506899870026026660">"डिफ़ॉल्ट वर्तनी-जांचकर्ता"</string>
     <string name="choose_spell_checker" msgid="6596539862291699367">"वर्तनी-जांचकर्ता चुनें"</string>
     <string name="spell_checker_not_selected" msgid="8871083796179200696">"नहीं चुना गया"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 80382f5..b25e5d3 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -2870,7 +2870,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Samo alarmi"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Potpuna tišina"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokiranje vizualnih ometanja"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Zvukovi radnog profila"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Upotreba zvuka osobnog profila"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Zvukovi su isti za radni i osobni profil"</string>
@@ -3034,6 +3035,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Samo od kontakata sa zvjezdicom"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ništa"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmi"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Podsjetnici"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Događaji"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Svi pozivatelji"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 79ae4b3..f3e5bc7 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -2844,7 +2844,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Csak ébresztések"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Teljes némítás"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Megjelenő értesítések tiltása"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Munkaprofil hangebállításai"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Személyes profil hangjainak használata"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"A munkahelyi és a személyes profil hangjai megegyeznek"</string>
@@ -3005,6 +3006,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Csak a megcsillagozott névjegyektől"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Senkitől"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Riasztások"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Emlékeztetők"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Események"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Minden hívó"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index db0716e..abe1715 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Միայն զարթուցիչը"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Կատարյալ լռություն"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>՝ <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Արգելափակել տեսողական ծանուցումները"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Աշխատանքային պրոֆիլի ձայները"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Օգտագործել անձնական պրոֆիլի ձայները"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Զանգերանգները նույնն են աշխատանքային և անձնական պրոֆիլների համար"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Միայն աստղանշված կոնտակտներից"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ոչ ոքից"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Զարթուցիչ"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Հիշեցումներ"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Միջոցառումներ"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Բոլոր զանգողները"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 4291929..a988846 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Hanya alarm"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Senyap total"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokir gangguan visual"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Suara profil kerja"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Gunakan suara profil pribadi"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Suara profil kerja dan pribadi sama"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Hanya dari kontak berbintang"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Tidak ada"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarm"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Pengingat"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Acara"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Semua penelepon"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 569b004..e59029b 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Aðeins vekjarar"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Algjör þögn"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Útiloka sjónrænt áreiti"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Hljóð vinnuprófils"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Nota hljóð úr persónulegum prófíl"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Hljóð vinnuprófíls eru þau sömu og í persónulegum prófíl"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Aðeins frá stjörnumerktum tengiliðum"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ekkert"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Vekjarar"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Áminningar"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Viðburðir"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Allir hringjendur"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 8d4d72b..82fd91a 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Solo sveglie"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Silenzio totale"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blocca interruzioni visive"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Suoni profilo di lavoro"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Usa suoni profilo personale"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"I suoni dei profili di lavoro e personale sono gli stessi"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Solo da contatti Speciali"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Nessuno"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Sveglie"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Promemoria"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Eventi"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Tutti i chiamanti"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 91d1cbf..419e7aa 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -2900,7 +2900,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"רק התראות"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"שקט מוחלט"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"חסימת הפרעות חזותיות"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"צלילי פרופיל עבודה"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"השתמש בצלילי הפרופיל האישי"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"הצלילים זהים עבור הפרופיל האישי ופרופיל העבודה"</string>
@@ -3067,6 +3068,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"רק מאלו שמסומנים בכוכב"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"אף אחד"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"התראות"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"תזכורות"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"אירועים"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"כל המתקשרים"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index b295b38..8ec49ca 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -2846,7 +2846,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"アラームのみ"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"サイレント"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"視覚的な通知のブロック"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"仕事用プロファイルの音"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"個人用プロファイルの音の使用"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"仕事用プロファイルと個人用プロファイルの音は同じです"</string>
@@ -3007,6 +3008,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"スター付きの連絡先のみ"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"なし"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"アラーム"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"リマインダー"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"予定"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"すべての発信者"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index f38d23a..19ad646 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"მხოლოდ მაღვიძარები"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"სრული სიჩუმე"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"ვიზუალური სიგნალების დაბლოკვა"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"სამსახურის პროფილის ხმები"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"პირადი პროფილის ხმების გამოყენება"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"სამსახურისა და პირადი პროფილები ხმები იდენტურია"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"მხოლოდ ვარსკვლავიანი კონტაქტებისგან"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"არავისგან"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"მაღვიძარები"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"შეხსენებები"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"ღონისძიებები"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"ყველა აბონენტი"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 00b741f..e7ea96b 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Тек дабылдар"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Толық тыныштық"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Көрнекі мазалағыштарды бөгеу"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Жұмыс профилінің дыбыстары"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Жеке профиль дыбыстарын пайдалану"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Жұмыс пен жеке профильдер үшін дыбысы қолданылады"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Тек жұлдызша қойылған контактілерден"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ешқандай"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Дабылдар"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Еске салғыштар"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Оқиғалар"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Барлық қоңырау шалушылар"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index b9d02a1..dbcb75c 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"សំឡេងរោទ៍ប៉ុណ្ណោះ"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"ស្ងៀមស្ងាត់ទាំងស្រុង"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>៖ <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"រារាំងការរំខានក្នុងការមើល"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"សំឡេងប្រវត្តិរូបការងារ"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"ប្រើសំឡេងប្រវត្តិរូបផ្ទាល់ខ្លួន"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"សំឡេងសម្រាប់កម្រងព័ត៌មានការងារ និងផ្ទាល់ខ្លួនគឺដូចគ្នា"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"ពីទំនាក់ទំនងមានផ្កាយតែប៉ុណ្ណោះ"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"គ្មាន"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"សំឡេងរោទ៍"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"កម្មវិធីរំលឹក"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"ព្រឹត្តិការណ៍"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"អ្នកហៅទូរស័ព្ទទាំងអស់"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 85cb9f6..d9fa8b8 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"ಅಲಾರಮ್‌ಗಳು ಮಾತ್ರ"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"ಸಂಪೂರ್ಣ ನಿಶ್ಯಬ್ಧ"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"ದೃಶ್ಯ ಅಡಚಣೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಧ್ವನಿಗಳು"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"ವೈಯಕ್ತಿಕ ಪ್ರೊಫೈಲ್ ಧ್ವನಿಗಳನ್ನು ಬಳಸಿ"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"ಕೆಲಸ ಮತ್ತು ವೈಯಕ್ತಿಕ ಪ್ರೊಫೈಲ್‌ಗಳಿಗೆ ಧ್ವನಿಗಳು ಒಂದೇ ಆಗಿವೆ"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"ನಕ್ಷತ್ರ ಹಾಕಲಾದ ಸಂಪರ್ಕಗಳಿಂದ ಮಾತ್ರ"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"ಯಾವುದೂ ಇಲ್ಲ"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"ಅಲಾರಮ್‌ಗಳು"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"ಜ್ಞಾಪನೆಗಳು"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"ಈವೆಂಟ್‌ಗಳು"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"ಎಲ್ಲ ಕರೆದಾರರು"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 7fee236..f5b8e2f 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"알람만"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"모두 차단"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"시각적 방해 차단"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"직장 프로필 사운드"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"개인 프로필 사운드 사용"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"직장 프로필과 개인 프로필의 소리가 같습니다."</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"별표 표시한 연락처만"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"없음"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"알람"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"알림"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"이벤트"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"모든 발신자"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index ec739f3..6a0d47b 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -2845,7 +2845,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Ойготкучтар гана"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Тымтырс"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Визуалдык эскертмелерди бөгөттөө"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Жумуш профилиндеги үндөр"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Жеке профилдин үндөрүн колдонуу"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Жумуш жана жеке профилдер үчүн окшош добуштар колдонулат"</string>
@@ -3006,6 +3007,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Жылдызчаланган байланыштардан гана"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Эч бир"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Ойготкучтар"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Эстеткичтер"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Окуялар"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Бардык чалуучулар"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 314750a..3d8b6a2 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"ໂມງ​ປຸກ​ເທົ່າ​ນັ້ນ"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"ຄວາມງຽບ​ທັງ​ໝົດ"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"ບລັອກການລົບກວນທາງພາບ"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"ສຽງໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"ໃຊ້ສຽງໂປຣໄຟລ໌ສ່ວນຕົວ"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"ສຽງແມ່ນຄືກັນສຳລັບໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ ແລະ ໂປຣໄຟລ໌ສ່ວນຕົວ"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"ຈາກ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ໃສ່​ດາວ​ໄວ້​ເທົ່າ​ນັ້ນ"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"ບໍ່ມີ"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"ໂມງປຸກ"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"ການແຈ້ງເຕືອນ"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"ກິດຈະກຳ"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"ຜູ້​ໂທທັງ​ໝົດ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 294f850..6840aad 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -2898,7 +2898,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Tik įspėjimai"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Visiška tyla"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokuoti vaizdinius trikdžius"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Darbo profilio garsai"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Naudoti asmen. profilio garsus"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Darbo ir asmeniniame profiliuose nustatyti tokius pat garsus"</string>
@@ -3065,6 +3066,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Tik iš žvaigždutėmis pažymėtų kontaktų"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Nėra"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Signalai"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Priminimai"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Įvykiai"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Visi skambintojai"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index cb2e2ee..e878383 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -2870,7 +2870,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Tikai signāli"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Pilnīgs klusums"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloķēt vizuālos traucējumus"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Darba profila signāli"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Personiskā profila signāli"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Darba profila signāli ir tādi paši kā personiskā profila signāli."</string>
@@ -3034,6 +3035,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Tikai no kontaktpersonām ar zvaigznīti"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Nav"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Signāli"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Atgādinājumi"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Notikumi"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Visi zvanītāji"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index ea6bb61..a4dabc3 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Само аларми"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Целосна тишина"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Блокирајте визуелни нарушувања"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Звуци на работниот профил"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Користи звуци од личен профил"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Звуците се исти за работниот и личниот профил"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Само од контактите со ѕвезда"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Никој"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Аларми"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Потсетници"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Настани"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Сите повикувачи"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index e850822..2b76651 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"അലാറങ്ങൾ മാത്രം"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"പൂർണ്ണ നിശബ്‌ദത"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"ദൃശ്യതടസങ്ങൾ ബ്ലോക്കുചെയ്യൂ"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"ഔദ്യോഗിക പ്രൊഫൈൽ ശബ്ദങ്ങൾ"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"സ്വകാര്യ പ്രൊഫൈൽ ശബ്ദങ്ങൾ ഉപയോഗിക്കുക"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"ഔദ്യോഗിക പ്രൊഫൈലുകൾക്കും വ്യക്തിഗത പ്രൊഫൈലുകൾക്കുമുള്ള ശബ്ദങ്ങൾ ഒന്നുതന്നെ ആയിരിക്കും"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"നക്ഷത്രമിട്ട കോൺടാക്‌റ്റിൽ നിന്നുമാത്രം"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"ആരിൽ നിന്നും വേണ്ട"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"അലാറങ്ങൾ"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"റിമൈൻഡറുകൾ"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"ഇവന്റുകൾ"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"കോൾ ചെയ്യുന്ന എല്ലാവരും"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 1b865d1..710af86 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Зөвхөн сэрүүлэг"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Дуугүй болгох"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Харааны саадыг блоклох"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Ажлын профайлын дуу"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Хувийн профайлын дууг ашиглах"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Ажлын болон хувийн профайлын дуу ижил"</string>
@@ -3001,6 +3002,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Зөвхөн одтой харилцагчаас"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Байхгүй"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Сэрүүлэг"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Сануулагч"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Үйл явдал"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Бүх дуудлага"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 8e9b53b..1265c3c 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"केवळ अलार्म"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"संपूर्ण शांतता"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"दृश्यमान व्यत्यय अवरोधित करा"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"कार्य प्रोफाइल ध्वनी"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"वैयक्तिक प्रोफाइल ध्वनी वापरा"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"कार्य आणि वैयक्तिक प्रोफाइलसाठी ध्वनी सारखे आहेत"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"केवळ तारांकित संपर्कांकडून"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"काहीही नाही"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"अलार्म"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"स्मरणपत्रे"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"इव्हेंट"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"सर्व कॉलकर्ता"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index c5b96c4..813e6f3 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Penggera sahaja"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Senyap sepenuhnya"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Sekat gangguan visual"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Bunyi profil kerja"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Gunakan bunyi profil peribadi"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Bunyi yang digunakan sama untuk profil kerja dan peribadi"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Daripada kenalan dibintangkan sahaja"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Tiada"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Penggera"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Peringatan"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Acara"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Semua pemanggil"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index b39ab5e..47bc950 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"နှိုးစက်များသာ"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"လုံးဝ တိတ်ဆိတ်ခြင်း"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"မြင်ကွင်းပိတ်ခြင်းမှတားဆီးပါ"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"အလုပ်ပရိုဖိုင်ဆိုင်ရာ အသံများ"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"ကိုယ်ရေးပရိုဖိုင်အသံကို သုံးပါ"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"အသံများသည် အလုပ်နှင့် ကိုယ်ပိုင်ပရိုဖိုင်များအတွက် အတူတူပင် ဖြစ်သည်"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"ကြယ်ပွင့်ပြ အဆက်အသွယ်များဆီမှသာ"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"မရှိ"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"နှိုးစက်များ"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"သတိပေးချက်များ"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"အစီအစဉ်များ"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"ခေါ်ဆိုသူ အားလုံး"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 2d8baab..c498275 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Bare alarmer"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Total stillhet"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokkér visuelle forstyrrelser"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Lyder i jobbprofilen"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Bruk personlig profil-lyder"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Lydene er like for jobbprofilen og den personlige profilen"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Bare fra stjernemerkede kontakter"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ingen"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmer"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Påminnelser"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Hendelser"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Alle oppringere"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 3ed785c..9c0e929 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"अलार्महरू मात्र"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"पूरै शान्त"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"दृश्य सम्बन्धी बाधालाई रोक्नु"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"कार्य प्रोफाइलका ध्वनिहरू"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"व्यक्तिगत प्रोफाइलका ध्वनिहरूको प्रयोग गर्नुहोस्"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"कार्य र व्यक्तिगत दुवै प्रोफाइलका लागि आवाज उही नै हो"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"ताराङ्कित सम्पर्कहरूबाट मात्र"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"कुनै पनि होइन"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"अलार्महरू"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"रिमान्डरहरू"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"घटनाहरू"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"सबै कल गर्ने व्यक्तिहरू"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 771e78a..4796803 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Alleen alarmen"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Totale stilte"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokkeer visuele onderbreking"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Geluiden voor werkprofiel"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Gebruik geluid persoonsprofiel"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Geluiden voor werkprofielen en persoonlijke profielen komen overeen"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Alleen van contacten met ster"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Geen"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmen"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Herinneringen"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Evenementen"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Alle bellers"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 9f7191a..e26ebb2 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"ਕੇਵਲ ਅਲਾਰਮ"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"ਸੰਪੂਰਨ ਖਾਮੋਸ਼ੀ"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"ਦ੍ਰਿਸ਼ਟੀਗਤ ਗੜਬੜੀਆਂ ਬਲੌਕ ਕਰੋ"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਧੁਨੀਆਂ"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"ਨਿੱਜੀ ਪ੍ਰੋਫਾਈਲ ਧੁਨੀਆਂ ਵਰਤੋ"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"ਕਾਰਜ ਅਤੇ ਨਿੱਜੀ ਪ੍ਰੋਫਾਈਲਾਂ ਲਈ ਧੁਨੀਆਂ ਇੱਕੋ ਹਨ"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"ਸਿਰਫ਼ ਸਿਤਾਰੇ ਵਾਲੇ ਸੰਪਰਕਾਂ ਤੋਂ"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"ਕੋਈ ਨਹੀਂ"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"ਅਲਾਰਮ"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"ਯਾਦ-ਦਹਾਨੀਆਂ"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"ਵਰਤਾਰੇ"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"ਸਾਰੇ ਕਾਲਰ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 2fcf14a..17f748b 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -2900,7 +2900,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Tylko alarmy"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Całkowita cisza"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokuj wyświetlanie"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Dźwięki w profilu do pracy"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Użyj dźwięków z profilu osobistego"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Dźwięki są takie same w profilu osobistym i do pracy"</string>
@@ -3067,6 +3068,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Tylko od kontaktów z gwiazdką"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Żadne"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmy"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Przypomnienia"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Wydarzenia"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Wszyscy rozmówcy"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 82dd748..37c79f7 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Somente alarmes"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Silêncio total"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloquear perturbações visuais"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Sons do perfil de trabalho"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Usar sons do perfil pessoal"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Os sons são os mesmos para os perfis pessoal e de trabalho"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Apenas de contatos marcados com estrela"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Nenhuma"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmes"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Lembretes"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Eventos"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Todos os autores de chamadas"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index ca706f9..90baf20 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -25,7 +25,7 @@
     <string name="dlg_switch" msgid="6243971420240639064">"Alternar"</string>
     <string name="device_info_default" msgid="7847265875578739287">"Desconhecido"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
-      <item quantity="one">Está agora a <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> passos de se tornar um programador.</item>
+      <item quantity="one">Está agora a <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> passo de se tornar um programador.</item>
       <item quantity="other">Está agora a <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> passos de se tornar um programador.</item>
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Agora é um programador!"</string>
@@ -254,7 +254,7 @@
     <string name="locale_remove_menu" msgid="7651301406723638854">"Remover"</string>
     <string name="add_a_language" msgid="2330538812283783022">"Adicionar um idioma"</string>
     <plurals name="dlg_remove_locales_title" formatted="false" msgid="4276642359346122396">
-      <item quantity="one">Pretende remover os idiomas selecionados?</item>
+      <item quantity="one">Pretende remover o idioma selecionado?</item>
       <item quantity="other">Pretende remover os idiomas selecionados?</item>
     </plurals>
     <string name="dlg_remove_locales_message" msgid="1361354927342876114">"O texto será apresentado noutro idioma."</string>
@@ -359,7 +359,7 @@
     <string name="fingerprint_add_title" msgid="1926752654454033904">"Adicionar impressão digital"</string>
     <string name="fingerprint_enable_keyguard_toggle_title" msgid="5078060939636911795">"bloqueio de ecrã"</string>
     <plurals name="security_settings_fingerprint_preference_summary" formatted="false" msgid="624961700033979880">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> impressões digitais configuradas</item>
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> impressão digital configurada</item>
       <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> impressões digitais configuradas</item>
     </plurals>
     <string name="security_settings_fingerprint_preference_summary_none" msgid="1507739327565151923"></string>
@@ -592,14 +592,14 @@
     <string name="manage_device_admin" msgid="537804979483211453">"Aplicações de administrador do dispositivo"</string>
     <string name="number_of_device_admins_none" msgid="7185056721919496069">"Sem aplicações ativas"</string>
     <plurals name="number_of_device_admins" formatted="false" msgid="3361891840111523393">
-      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> aplicações ativas</item>
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> aplicação ativa</item>
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> aplicações ativas</item>
     </plurals>
     <string name="manage_trust_agents" msgid="4629279457536987768">"Agentes fidedignos"</string>
     <string name="disabled_because_no_backup_security" msgid="6877660253409580377">"Para utilizar, defina primeiro um bloqueio de ecrã"</string>
     <string name="manage_trust_agents_summary" msgid="1475819820389620546">"Nenhum"</string>
     <plurals name="manage_trust_agents_summary_on" formatted="false" msgid="3935182396726101824">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> agentes fidedignos ativos</item>
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> agente fidedigno ativo</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> agentes fidedignos ativos</item>
     </plurals>
     <string name="bluetooth_quick_toggle_title" msgid="1037056952714061893">"Bluetooth"</string>
@@ -838,7 +838,7 @@
     <string name="wifi_cancel" msgid="6763568902542968964">"Cancelar"</string>
     <string name="wifi_saved_access_points_titlebar" msgid="2996149477240134064">"Redes guardadas"</string>
     <plurals name="wifi_saved_access_points_summary" formatted="false" msgid="6094679048871529675">
-      <item quantity="one">%d redes</item>
+      <item quantity="one">%d rede</item>
       <item quantity="other">%d redes</item>
     </plurals>
     <string name="wifi_advanced_titlebar" msgid="4485841401774142908">"Wi-Fi Avançada"</string>
@@ -1103,7 +1103,7 @@
     <string name="sim_preferred_message" msgid="8466930554330635780">"O <xliff:g id="NEW_SIM">%1$s</xliff:g> é o único cartão SIM no dispositivo. Pretende utilizar este cartão SIM para os dados móveis, as chamadas e as mensagens SMS?"</string>
     <string name="wrong_pin_code_pukked" msgid="4003655226832658066">"Código PIN do cartão SIM incorreto. Tem de contactar o seu operador para desbloquear o dispositivo."</string>
     <plurals name="wrong_pin_code" formatted="false" msgid="1582398808893048097">
-      <item quantity="one">Código PIN do cartão SIM incorreto. Tem mais <xliff:g id="NUMBER_1">%d</xliff:g> tentativas.</item>
+      <item quantity="one">Código PIN do cartão SIM incorreto. Tem mais <xliff:g id="NUMBER_1">%d</xliff:g> tentativa.</item>
       <item quantity="other">Código PIN do cartão SIM incorreto. Tem mais <xliff:g id="NUMBER_1">%d</xliff:g> tentativas.</item>
     </plurals>
     <string name="pin_failed" msgid="1848423634948587645">"Falha ao introduzir o PIN do cartão SIM!"</string>
@@ -1334,7 +1334,7 @@
     <string name="reset_network_complete_toast" msgid="787829973559541880">"As definições de rede foram repostas"</string>
     <string name="master_clear_title" msgid="5907939616087039756">"Repos. dados/fábrica"</string>
     <plurals name="master_clear_with_account_summary" formatted="false" msgid="5911377203778818712">
-      <item quantity="one"><xliff:g id="ACCOUNT_COUNT">%1$d</xliff:g> contas serão repostas</item>
+      <item quantity="one"><xliff:g id="ACCOUNT_COUNT">%1$d</xliff:g> conta será reposta</item>
       <item quantity="other"><xliff:g id="ACCOUNT_COUNT">%1$d</xliff:g> contas serão repostas</item>
     </plurals>
     <string name="master_clear_summary" msgid="6902443944660426951">"A memória de armazenamento interno e todos os dados serão repostos"</string>
@@ -1550,7 +1550,7 @@
     <string name="clear_cache_btn_text" msgid="5756314834291116325">"Limpar cache"</string>
     <string name="cache_size_label" msgid="7505481393108282913">"Cache"</string>
     <plurals name="uri_permissions_text" formatted="false" msgid="3983110543017963732">
-      <item quantity="one">%d itens</item>
+      <item quantity="one">%d item</item>
       <item quantity="other">%d itens</item>
     </plurals>
     <string name="clear_uri_btn_text" msgid="8575655132961012158">"Limpar acesso"</string>
@@ -1920,11 +1920,11 @@
     <string name="print_settings" msgid="4742428530112487843">"Impressão"</string>
     <string name="print_settings_summary_no_service" msgid="6354322414246865875">"Desativado"</string>
     <plurals name="print_settings_summary" formatted="false" msgid="6005468025646083029">
-      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> serviços de impressão ativados</item>
+      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> serviço de impressão ativado</item>
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> serviços de impressão ativados</item>
     </plurals>
     <plurals name="print_jobs_summary" formatted="false" msgid="5810106725778525400">
-      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> tarefas de impressão</item>
+      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> tarefa de impressão</item>
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> tarefas de impressão</item>
     </plurals>
     <string name="print_settings_title" msgid="3685449667822217816">"Serviços de impressão"</string>
@@ -2537,7 +2537,7 @@
     <string name="ssl_ca_cert_warning" msgid="2045866713601984673">"A rede pode ser monitorizada"</string>
     <string name="done_button" msgid="1991471253042622230">"Concluído"</string>
     <plurals name="ssl_ca_cert_dialog_title" formatted="false" msgid="7145092748045794650">
-      <item quantity="one">Confiar ou remover os certificados</item>
+      <item quantity="one">Confiar ou remover o certificado</item>
       <item quantity="other">Confiar ou remover os certificados</item>
     </plurals>
     <plurals name="ssl_ca_cert_info_message_device_owner" formatted="false" msgid="1489335297837656666">
@@ -2550,7 +2550,7 @@
     </plurals>
     <string name="ssl_ca_cert_warning_message" msgid="8216218659139190498">"A sua atividade de rede, incluindo emails, aplicações e Sites seguros, pode ser monitorizada por terceiros.\n\nIsto é possível através de uma credencial fidedigna instalada no seu dispositivo."</string>
     <plurals name="ssl_ca_cert_settings_button" formatted="false" msgid="2426799352517325228">
-      <item quantity="one">Verificar certificados</item>
+      <item quantity="one">Verificar certificado</item>
       <item quantity="other">Verificar certificados</item>
     </plurals>
     <string name="user_settings_title" msgid="6151874007858148344">"Utilizadores"</string>
@@ -2728,7 +2728,7 @@
     <string name="sim_selection_required_pref" msgid="3446721423206414652">"A seleção é necessária"</string>
     <string name="dashboard_title" msgid="5453710313046681820">"Definições"</string>
     <plurals name="settings_suggestion_header_summary_hidden_items" formatted="false" msgid="5597356221942118048">
-      <item quantity="one">Mostrar %d itens ocultos</item>
+      <item quantity="one">Mostrar %d item oculto</item>
       <item quantity="other">Mostrar %d itens ocultos</item>
     </plurals>
     <string name="network_dashboard_title" msgid="4771589228992391573">"Rede e Internet"</string>
@@ -2830,7 +2830,7 @@
     <string name="boot_sounds_title" msgid="567029107382343709">"Ativar sons"</string>
     <string name="zen_mode_settings_summary_off" msgid="1857165567766351925">"Nenhuma regra automática ativada"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="1216562765753405784">
-      <item quantity="one"><xliff:g id="ON_COUNT">%d</xliff:g> regras automáticas ativadas</item>
+      <item quantity="one"><xliff:g id="ON_COUNT">%d</xliff:g> regra automática ativada</item>
       <item quantity="other"><xliff:g id="ON_COUNT">%d</xliff:g> regras automáticas ativadas</item>
     </plurals>
     <string name="zen_mode_settings_title" msgid="842308776768942600">"Preferências de Não incomodar"</string>
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Apenas alarmes"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Silêncio total"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloquear perturbações visuais"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Sons do perfil de trabalho"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Util. sons do perfil pessoal"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Os sons são iguais para os perfis de trabalho e pessoal"</string>
@@ -2898,7 +2899,7 @@
     <string name="work_profile_notification_access_blocked_summary" msgid="8748026238701253040">"O acesso às notificações do perfil de trabalho está bloqueado"</string>
     <string name="manage_notification_access_summary_zero" msgid="2409912785614953348">"As aplicações não podem ler notificações"</string>
     <plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="7930130030691218387">
-      <item quantity="one">%d aplicações podem ler notificações</item>
+      <item quantity="one">%d aplicação pode ler notificações</item>
       <item quantity="other">%d aplicações podem ler notificações</item>
     </plurals>
     <string name="no_notification_listeners" msgid="3487091564454192821">"Nenhuma aplicação instalada solicitou acesso a notificações"</string>
@@ -2931,11 +2932,11 @@
     <string name="app_settings_link" msgid="8894946007543660906">"Definições adicionais na aplicação"</string>
     <string name="app_notification_listing_summary_zero" msgid="6482582965081108108">"Ativadas para todas as aplicações"</string>
     <plurals name="app_notification_listing_summary_others" formatted="false" msgid="5668835155965827890">
-      <item quantity="one">Desativado para <xliff:g id="COUNT_1">%d</xliff:g> aplicações</item>
+      <item quantity="one">Desativado para <xliff:g id="COUNT_1">%d</xliff:g> aplicação</item>
       <item quantity="other">Desativado para <xliff:g id="COUNT_1">%d</xliff:g> aplicações</item>
     </plurals>
     <plurals name="deleted_channels" formatted="false" msgid="8028574302599397935">
-      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> categorias eliminadas</item>
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> categoria eliminada</item>
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> categorias eliminadas</item>
     </plurals>
     <string name="notification_toggle_on" msgid="650145396718191048">"Ativadas"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Apenas de contactos com estrela"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Nenhuma"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmes"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Lembretes"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Eventos"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Todos os autores de chamadas"</string>
@@ -3018,11 +3021,11 @@
     <string name="zen_mode_end_time_next_day_summary_format" msgid="4201521691238728701">"<xliff:g id="FORMATTED_TIME">%s</xliff:g> do dia seguinte"</string>
     <string name="zen_mode_summary_alarms_only_indefinite" msgid="2061973221027570123">"Alterar para alarmes apenas, indefinidamente"</string>
     <plurals name="zen_mode_summary_alarms_only_by_minute" formatted="false" msgid="6122003583875424601">
-      <item quantity="one">Alterar para alarmes apenas durante <xliff:g id="DURATION">%1$d</xliff:g> minutos (até à(s) <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g>)</item>
+      <item quantity="one">Alterar para alarmes apenas durante <xliff:g id="DURATION">%1$d</xliff:g> minuto (até à(s) <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g>)</item>
       <item quantity="other">Alterar para alarmes apenas durante <xliff:g id="DURATION">%1$d</xliff:g> minutos (até à(s) <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g>)</item>
     </plurals>
     <plurals name="zen_mode_summary_alarms_only_by_hour" formatted="false" msgid="2407703455581767748">
-      <item quantity="one">Alterar para alarmes apenas durante <xliff:g id="DURATION">%1$d</xliff:g> horas até à(s) <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
+      <item quantity="one">Alterar para alarmes apenas durante <xliff:g id="DURATION">%1$d</xliff:g> hora até à(s) <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
       <item quantity="other">Alterar para alarmes apenas durante <xliff:g id="DURATION">%1$d</xliff:g> horas até à(s) <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
     </plurals>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="7465525754879341907">"Alterar para alarmes apenas, até <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
@@ -3096,15 +3099,15 @@
     <string name="notification_summary_level" msgid="2726571692704140826">"Nível %d"</string>
     <string name="notification_summary_channel" msgid="5831124672372023524">"<xliff:g id="CHANNEL_NAME">%1$s</xliff:g> • <xliff:g id="GROUP_NAME">%2$s</xliff:g>"</string>
     <plurals name="permissions_summary" formatted="false" msgid="6402730318075959117">
-      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> autorizações concedidas</item>
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> autorização concedida</item>
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> autorizações concedidas</item>
     </plurals>
     <plurals name="runtime_permissions_summary" formatted="false" msgid="1564663886246010959">
-      <item quantity="one"><xliff:g id="COUNT_2">%d</xliff:g> of <xliff:g id="COUNT_3">%d</xliff:g> autorizações concedidas</item>
-      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> of <xliff:g id="COUNT_3">%d</xliff:g> autorizações concedidas</item>
+      <item quantity="one"><xliff:g id="COUNT_2">%d</xliff:g> de <xliff:g id="COUNT_3">%d</xliff:g> autorização concedida</item>
+      <item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> de <xliff:g id="COUNT_3">%d</xliff:g> autorizações concedidas</item>
     </plurals>
     <plurals name="runtime_permissions_additional_count" formatted="false" msgid="931276038884210752">
-      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> autorizações adicionais</item>
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> permissão adicional</item>
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> permissões adicionais</item>
     </plurals>
     <string name="runtime_permissions_summary_no_permissions_granted" msgid="1679758182657005375">"Nenhuma permissão concedida"</string>
@@ -3133,7 +3136,7 @@
     <string name="domain_urls_summary_some" msgid="3950089361819428455">"Abrir <xliff:g id="DOMAIN">%s</xliff:g> e outros URLs"</string>
     <string name="domain_urls_apps_summary_off" msgid="1833056772600031220">"Nenhum aplicação abre links compatíveis"</string>
     <plurals name="domain_urls_apps_summary_on" formatted="false" msgid="240214361240709399">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> aplicações que abrem links compatíveis</item>
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> aplicação que abre links compatíveis</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> aplicações que abrem links compatíveis</item>
     </plurals>
     <string name="app_link_open_always" msgid="2474058700623948148">"Abrir com esta aplicação"</string>
@@ -3177,7 +3180,7 @@
     <string name="hide_extra_apps" msgid="5016497281322459633">"Mostrar utilização de aplic."</string>
     <string name="power_high_usage_title" msgid="6027369425057347826">"Utilização elevada"</string>
     <plurals name="power_high_usage_summary" formatted="false" msgid="467347882627862744">
-      <item quantity="one"><xliff:g id="NUMBER">%2$d</xliff:g> aplicações estão a apresentar um comportamento anormal</item>
+      <item quantity="one"><xliff:g id="NUMBER">%2$d</xliff:g> aplicação está a apresentar um comportamento anormal</item>
       <item quantity="other"><xliff:g id="NUMBER">%2$d</xliff:g> aplicações estão a apresentar um comportamento anormal</item>
     </plurals>
     <plurals name="power_high_usage_title" formatted="false" msgid="3826660033363082922">
@@ -3245,7 +3248,7 @@
     <string name="free_memory" msgid="4003936141603549746">"Disponível"</string>
     <string name="memory_usage_apps" msgid="5650192998273294098">"Memória utilizada pelas aplicações"</string>
     <plurals name="memory_usage_apps_summary" formatted="false" msgid="6089210945574265774">
-      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> aplicações utilizaram a memória nos(as) últimos(as) <xliff:g id="DURATION_1">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> aplicação utilizou a memória nos(as) últimos(as) <xliff:g id="DURATION_1">%2$s</xliff:g></item>
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> aplicações utilizaram a memória nos(as) últimos(as) <xliff:g id="DURATION_1">%2$s</xliff:g></item>
     </plurals>
     <string name="running_frequency" msgid="6622624669948277693">"Frequência"</string>
@@ -3316,7 +3319,7 @@
     <string name="disconnected" msgid="4836600637485526329">"Sem ligação"</string>
     <string name="data_usage_summary_format" msgid="7507047900192160585">"<xliff:g id="AMOUNT">%1$s</xliff:g> dos dados utilizados"</string>
     <plurals name="notification_summary" formatted="false" msgid="3941492005316143599">
-      <item quantity="one">Desativadas para <xliff:g id="COUNT">%d</xliff:g> aplicações</item>
+      <item quantity="one">Desativadas para <xliff:g id="COUNT">%d</xliff:g> aplicação</item>
       <item quantity="other">Desativadas para <xliff:g id="COUNT">%d</xliff:g> aplicações</item>
     </plurals>
     <string name="notification_summary_none" msgid="4586376436702610">"Ativadas para todas as aplicações"</string>
@@ -3397,7 +3400,7 @@
     <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Mensalmente no dia <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Restrições de rede"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
-      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> restrições</item>
+      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> restrição</item>
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> restrições</item>
     </plurals>
     <string name="operator_warning" msgid="1862988028996859195">"A contagem de dados do operador pode ser diferente da contagem do dispositivo"</string>
@@ -3410,7 +3413,7 @@
     <string name="configure" msgid="1029654422228677273">"Configurar"</string>
     <string name="data_usage_other_apps" msgid="3272872663517382050">"Outras aplicações incluídas na utilização"</string>
     <plurals name="data_saver_unrestricted_summary" formatted="false" msgid="2635267833484232703">
-      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> aplicações autorizadas a utilizar dados sem restrições quando a Poupança de dados está ativada</item>
+      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> aplicação autorizada a utilizar dados sem restrições quando a Poupança de dados está ativada</item>
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> aplicações autorizadas a utilizar dados sem restrições quando a Poupança de dados está ativada</item>
     </plurals>
     <string name="data_saver_title" msgid="398458827917495765">"Poupança de dados"</string>
@@ -3468,7 +3471,7 @@
     <string name="notification_log_details_ranking_none" msgid="599607025882587844">"O objeto de classificação não contém esta chave."</string>
     <string name="special_access" msgid="3458780842491881155">"Acesso especial a aplicações"</string>
     <plurals name="special_access_summary" formatted="false" msgid="260765309935675867">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> aplicações podem utilizar dados sem restrições</item>
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> aplicação pode utilizar dados sem restrições</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> aplicações podem utilizar dados sem restrições</item>
     </plurals>
     <string name="confirm_convert_to_fbe_warning" msgid="1487005506049137659">"Pretende mesmo limpar os dados do utilizador e converter para a encriptação de ficheiros?"</string>
@@ -3517,15 +3520,15 @@
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pesquisa de contactos"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permitir pesquisa de contactos por parte da sua entidade para identificar autores das chamadas e contactos"</string>
     <plurals name="hours" formatted="false" msgid="7020844602875333472">
-      <item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> horas</item>
+      <item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> hora</item>
       <item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> horas</item>
     </plurals>
     <plurals name="minutes" formatted="false" msgid="4666832442068789413">
-      <item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> minutos</item>
+      <item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> minuto</item>
       <item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> minutos</item>
     </plurals>
     <plurals name="seconds" formatted="false" msgid="3876307354560025025">
-      <item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> segundos</item>
+      <item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> segundo</item>
       <item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> segundos</item>
     </plurals>
     <string name="support_estimated_wait_time" msgid="6523081420029378051">"Tempo de espera de ~<xliff:g id="ESTIMATE">%1$s</xliff:g>"</string>
@@ -3615,7 +3618,7 @@
     <string name="enterprise_privacy_enterprise_installed_packages" msgid="6353757812144878828">"Aplicações instaladas"</string>
     <string name="enterprise_privacy_apps_count_estimation_info" msgid="7433213592572082606">"O número de aplicações é uma estimativa. Pode não incluir as aplicações instaladas fora da Play Store."</string>
     <plurals name="enterprise_privacy_number_packages_lower_bound" formatted="false" msgid="3005116533873542976">
-      <item quantity="one">No mínimo, <xliff:g id="COUNT_1">%d</xliff:g> aplicações</item>
+      <item quantity="one">No mínimo, <xliff:g id="COUNT_1">%d</xliff:g> aplicação</item>
       <item quantity="other">No mínimo, <xliff:g id="COUNT_1">%d</xliff:g> aplicações</item>
     </plurals>
     <string name="enterprise_privacy_location_access" msgid="4158197200885270634">"Autorizações de acesso à localização"</string>
@@ -3623,7 +3626,7 @@
     <string name="enterprise_privacy_camera_access" msgid="4858146118537519375">"Autorizações da câmara"</string>
     <string name="enterprise_privacy_enterprise_set_default_apps" msgid="3288495615791128724">"Aplicações predefinidas"</string>
     <plurals name="enterprise_privacy_number_packages" formatted="false" msgid="2765037387436064893">
-      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> aplicações</item>
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> aplicação</item>
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> aplicações</item>
     </plurals>
     <string name="enterprise_privacy_input_method" msgid="6531350246850814920">"Teclado predefinido"</string>
@@ -3634,7 +3637,7 @@
     <string name="enterprise_privacy_global_http_proxy" msgid="7936664553416257333">"Proxy HTTP global definido"</string>
     <string name="enterprise_privacy_ca_certs" msgid="5885892204903688909">"Credenciais fidedignas"</string>
     <plurals name="enterprise_privacy_number_ca_certs" formatted="false" msgid="526375234629534165">
-      <item quantity="one">No mínimo, <xliff:g id="COUNT_1">%d</xliff:g> certificados da AC</item>
+      <item quantity="one">No mínimo, <xliff:g id="COUNT_1">%d</xliff:g> certificado da AC</item>
       <item quantity="other">No mínimo, <xliff:g id="COUNT_1">%d</xliff:g> certificados da AC</item>
     </plurals>
     <string name="enterprise_privacy_lock_device" msgid="8791656477097208540">"O administrador pode bloquear o dispositivo e repor a palavra-passe"</string>
@@ -3642,7 +3645,7 @@
     <string name="enterprise_privacy_failed_password_wipe_device" msgid="1001255609345002878">"Tentativas de introdução da palavra-passe falhadas antes da eliminação de todos os dados do dispositivo"</string>
     <string name="enterprise_privacy_failed_password_wipe_work" msgid="4040565826652951057">"Tentativas de introdução da palavra-passe falhadas antes da eliminação de todos os dados do perfil de trabalho"</string>
     <plurals name="enterprise_privacy_number_failed_password_wipe" formatted="false" msgid="5279099270351036696">
-      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> tentativas</item>
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> tentativa</item>
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> tentativas</item>
     </plurals>
     <string name="do_disclosure_generic" msgid="8653670456990823307">"Este dispositivo é gerido pela sua entidade."</string>
@@ -3650,18 +3653,18 @@
     <string name="do_disclosure_learn_more_separator" msgid="3558079393757238670">" "</string>
     <string name="do_disclosure_learn_more" msgid="2416766240581561009">"Saiba mais"</string>
     <plurals name="default_camera_app_title" formatted="false" msgid="1134677050353971363">
-      <item quantity="one">Aplicações de câmara</item>
+      <item quantity="one">Aplicação de câmara</item>
       <item quantity="other">Aplicações de câmara</item>
     </plurals>
     <string name="default_calendar_app_title" msgid="3545972964391065220">"Aplicação de calendário"</string>
     <string name="default_contacts_app_title" msgid="3497370557378660098">"Aplicação de contactos"</string>
     <plurals name="default_email_app_title" formatted="false" msgid="42826975161049245">
-      <item quantity="one">Aplicações de cliente de email</item>
+      <item quantity="one">Aplicação de cliente de email</item>
       <item quantity="other">Aplicações de cliente de email</item>
     </plurals>
     <string name="default_map_app_title" msgid="7560143381633608567">"Aplicação de mapas"</string>
     <plurals name="default_phone_app_title" formatted="false" msgid="6714041230953195024">
-      <item quantity="one">Aplicações de telefone</item>
+      <item quantity="one">Aplicação de telefone</item>
       <item quantity="other">Aplicações de telefone</item>
     </plurals>
     <string name="app_names_concatenation_template_2" msgid="4309216198909946380">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 82dd748..37c79f7 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Somente alarmes"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Silêncio total"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloquear perturbações visuais"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Sons do perfil de trabalho"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Usar sons do perfil pessoal"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Os sons são os mesmos para os perfis pessoal e de trabalho"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Apenas de contatos marcados com estrela"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Nenhuma"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmes"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Lembretes"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Eventos"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Todos os autores de chamadas"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 48637e5..da46213 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -2870,7 +2870,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Numai alarme"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Niciun sunet"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blocați întreruperile vizuale"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Sunetele profilului de serviciu"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Folosiți sunetele profilului personal"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Sunetele profilului de serviciu sunt aceleași ca la profilul personal"</string>
@@ -3034,6 +3035,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Doar de la persoanele de contact cu stea"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Niciunul"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarme"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Mementouri"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Evenimente"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Toți apelanții"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 35f9193..f3f20ff 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -2898,7 +2898,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Только будильник"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Полная тишина"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Блокировка визуального оповещения"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Сигналы в рабочем профиле"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Выбрать звуки личного профиля"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Одинаковые сигналы в рабочем и личном профиле"</string>
@@ -3065,6 +3066,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Только от помеченных контактов"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ни от кого"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Будильник"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Напоминания"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Мероприятия"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Все абоненты"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index d1824ba..3782ab3 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"එලාම පමණයි"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"සම්පූර්ණ නිහඬතාව"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g> : <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"දෘශ්‍ය බාධක අවහිර කරන්න"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"කාර්යාල පැතිකඩ හඬවල්"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"පුද්ගලික පැතිකඩ හඬ භාවිත කර."</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"කාර්යාල සහ පුද්ගලික පැතිකඩ සඳහා හඬ වල් එකමය"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"තරු ලකුණු කළ සම්බන්ධතා වෙතින් පමණි"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"කිසිවක් නැත"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"ඇඟවීම්"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"සිහිකැඳවීම්"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"සිදුවීම්"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"සියලු අමතන්නන්"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index b1a8daa..835b707 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -2898,7 +2898,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Iba budíky"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Úplné ticho"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokovať vizuálne vyrušenia"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Zvuky pracovného profilu"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Použiť zvuky osobného profilu"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Zvuky sú rovnaké pre pracovný aj osobný profil"</string>
@@ -3065,6 +3066,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Iba od kontaktov s hviezdičkou"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Žiadne"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Budíky"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Pripomenutia"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Udalosti"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Všetci volajúci"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index eeaec44..460f5e9 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -2898,7 +2898,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Samo alarmi"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Popolna tišina"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokiranje vizualnih motenj"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Zvoki v delovnem profilu"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Uporaba zvokov iz os. profila"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Zvoki v delovnem in osebnem profilu so enaki"</string>
@@ -3065,6 +3066,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Samo od stikov, označenih z zvezdico"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Brez"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmi"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Opomniki"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Dogodki"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Vsi klicatelji"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 45ff4db..27ceee5 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Vetëm alarmet"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Heshtje e plotë"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blloko shqetësimet vizuale"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Tingujt e profilit të punës"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Përdor tingujt e profilit personal"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Tingujt janë të njëjtë për profilin tënd personal dhe atë të punës"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Vetëm nga kontaktet me yll"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Asnjë"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmet"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Alarmet rikujtuese"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Ngjarjet"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Të gjithë telefonuesit"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 7a1fbb0..cc96d96 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -2870,7 +2870,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Само аларми"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Потпуна тишина"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Блокирај визуелна ометања"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Звуци за профил за Work"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Користи звуке личног профила"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Звукови профила за Work су исти као и звукови за личне профиле"</string>
@@ -3034,6 +3035,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Само од контаката са звездицом"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Нико"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Аларми"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Подсетници"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Догађаји"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Сви позиваоци"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 24df86b..974505c 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Endast alarm"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Helt tyst"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blockera synliga störningar"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Jobbprofilens ljud"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Använd pers. profilens ljud"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Samma ljud används i jobbprofilen och den personliga profilen"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Endast från stjärnmärkta kontakter"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ingen"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarm"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Påminnelser"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Händelser"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Alla ringande"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 9592724..fcc4b9c 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -990,7 +990,7 @@
     <string name="accessibility_personal_account_title" msgid="2169071663029067826">"Akaunti ya binafsi- <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
     <string name="search_settings" msgid="1910951467596035063">"Tafuta"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Simamia mipangilio ya utafutaji na historia"</string>
-    <string name="search_settings_no_results" msgid="8799027492641230999">"Haikupata matokeo"</string>
+    <string name="search_settings_no_results" msgid="8799027492641230999">"Hakuna matokeo yoyote yaliyopatikana"</string>
     <string name="display_settings" msgid="7965901687241669598">"Kwenye Skrini"</string>
     <string name="accelerometer_title" msgid="7854608399547349157">"Skrini ijizungushe kiotomatiki"</string>
     <string name="color_mode_title" msgid="3159275920408338215">"Rangi dhahiri"</string>
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Kengele pekee"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Kimya kabisa"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Zuia ukatizaji wa maonyesho"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Sauti za wasifu wa kazi"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Tumia sauti za wasifu wako binafsi"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Sauti za wasifu wa binafsi na wa kazini ni sawa"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Kutoka kwa anwani zenye nyota pekee"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Hamna"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Kengele"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Vikumbusho"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Matukio"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Wapiga simu wote"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index dba80a4..f57661f 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"அலாரங்கள் மட்டும்"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"அறிவிப்புகள் வேண்டாம்"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"விஷுவல் குறுக்கீடுகளைத் தடு"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"பணி விவர ஒலிகள்"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"தனிப்பட்ட சுயவிவர ஒலிகளைப் பயன்படுத்து"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"பணி மற்றும் தனிப்பட்ட சுயவிவரங்களுக்கு ஒரே ஒலிகள்"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"நட்சத்திரமிட்ட தொடர்புகளிலிருந்து மட்டுமே"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"ஏதுமில்லை"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"அலாரங்கள்"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"நினைவூட்டல்கள்"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"நிகழ்வுகள்"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"எல்லா அழைப்பாளர்களும்"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index a264e24..6b2943a 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"అలారాలు మాత్రమే"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"మొత్తం నిశ్శబ్దం"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"దృశ్య అంతరాయాలను బ్లాక్ చేయండి"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"కార్యాలయ ప్రొఫైల్ శబ్దాలు"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"వ్యక్తిగత ప్రొఫైల్ శబ్దాలు ఉంచు"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"కార్యాలయ మరియు వ్యక్తిగత ప్రొఫైల్‌లకు ఒకే ధ్వనులు ఉపయోగించబడతాయి"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"నక్షత్రం గల పరిచయాల నుండి మాత్రమే"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"ఏవీ వద్దు"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"అలారాలు"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"రిమైండర్‌లు"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"ఈవెంట్‌లు"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"అందరు కాలర్‌లు"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 0fa20c9..bdfa6f2 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"เฉพาะปลุกเท่านั้น"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"ปิดเสียงทั้งหมด"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"บล็อกสิ่งรบกวนการมองเห็น"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"เสียงในโปรไฟล์งาน"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"ใช้เสียงในโปรไฟล์ส่วนตัว"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"เสียงในโปรไฟล์งานและโปรไฟล์ส่วนตัวเหมือนกัน"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"จากรายชื่อติดต่อที่ติดดาวเท่านั้น"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"ไม่มี"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"การปลุก"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"การช่วยเตือน"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"กิจกรรม"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"ผู้โทรทั้งหมด"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 0866719..a56f90c 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Mga alarm lang"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Ganap na katahimikan"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"I-block ang mga visual na abala"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Mga tunog sa profile sa trabaho"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Gamitin tunog sa personal na profile"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Pareho ang mga tunog para sa personal na profile at profile sa trabaho"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Mula sa mga contact na may star lang"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Wala"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Mga Alarm"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Mga Paalala"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Mga Kaganapan"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Lahat ng tumatawag"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index a86f3e5..8130ae3 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Yalnızca alarmlar"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Tamamen sessiz"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Görsel bildirimleri engelle"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"İş profili sesleri"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Kişi. profil seslerini kullan"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Sesler, iş profili ve kişisel profil için aynıdır"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Yalnızca yıldızlı kişilerden"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Hiçbiri"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Alarmlar"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Hatırlatıcılar"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Etkinlikler"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Tüm arayanlar"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index dc1ef81..5de14b5 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -2898,7 +2898,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Лише будильник"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Без сигналів"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Блокувати візуальні сповіщення"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Звуки робочого профілю"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Звуки особистого профілю"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Звуки однакові для робочого й особистого профілів"</string>
@@ -3065,6 +3066,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Лише від позначених контактів"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Ні від кого"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Будильник"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Нагадування"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Події"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Усі абоненти"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 77f3c7a..773dc0b 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -2840,7 +2840,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"صرف الارمز"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"مکمل خاموشی"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"بصری مداخلتیں مسدود کریں"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"دفتری پروفائل کی آوازیں"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"ذاتی پروفائل کی آوازیں استعمال کریں"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"دفتری اور ذاتی پروفائلز کی آوازیں ایک ہی جیسی ہیں"</string>
@@ -3001,6 +3002,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"صرف ستارہ کے نشان والے رابطوں سے"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"کوئی نہیں"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"الارمز"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"یاد دہانیاں"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"ایونٹس"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"تمام کال کرنے والے"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index fdc4f62..c33ecf8 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -2854,7 +2854,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Faqat signallar"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Jimjitlik"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Visual bildirishnomalarni bloklash"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Ishchi profil ovozlari"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Shaxsiy profil ovozlaridan foydalanish"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Tovushlar ishchi va shaxsiy profillar uchun bir xil"</string>
@@ -3015,6 +3016,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Faqat sevimli kontaktlardan"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Hech kimdan"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Signallar"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Eslatmalar"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Tadbirlar"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Barcha abonentlar"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index a6b6893..7af1882 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Chỉ báo thức"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Hoàn toàn tắt tiếng"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Ngăn gián đoạn hình ảnh"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Âm thanh hồ sơ công việc"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Sử dụng âm thanh hồ sơ cá nhân"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Âm thanh giống nhau cho hồ sơ cá nhân và công việc"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Chỉ từ các liên hệ có gắn dấu sao"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Không có"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Báo thức"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Lời nhắc"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Sự kiện"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Tất cả người gọi"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 939a6af..a228d2a 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -2842,7 +2842,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"仅限闹钟"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"完全阻止"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>：<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"屏蔽视觉打扰"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"工作资料提示音"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"使用个人资料提示音"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"工作资料和个人资料会使用相同的提示音"</string>
@@ -3003,6 +3004,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"仅限来自收藏的联系人"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"无"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"闹钟"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"提醒"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"活动"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"所有来电者"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 157e4b7..da7542e 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -2845,7 +2845,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"只限鬧鐘"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"完全靜音"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>：<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"封鎖視覺干擾"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"工作設定檔聲音"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"使用個人設定檔聲音"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"在工作和個人設定檔中使用相同音效"</string>
@@ -3006,6 +3007,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"只限已加星號的聯絡人"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"無"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"鬧鐘"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"提醒"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"活動"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"所有來電者"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index c3e321b..e9f5370 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -2846,7 +2846,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"僅限鬧鐘"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"完全靜音"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>：<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"封鎖視覺干擾"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Work 設定檔音效"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"使用個人設定檔音效"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Work 設定檔和個人設定檔使用相同的音效"</string>
@@ -3007,6 +3008,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"來自已加星號的聯絡人"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"無"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"鬧鐘"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"提醒"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"活動"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"所有來電者"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 113036f..db5f3a3 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -2843,7 +2843,8 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Ama-alamu kuphela"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Ukuthula okuphelele"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Vimbela ukuphazamiseka okubonakalayo"</string>
+    <!-- no translation found for zen_mode_visual_interruptions_settings_title (7738713773934576844) -->
+    <skip />
     <string name="sound_work_settings" msgid="6774324553228566442">"Imisindo yephrofayela yomsebenzi"</string>
     <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Sebenzisa imisindo yephrofayela yomuntu siqu"</string>
     <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Imisindo iyefana yomsebenzi namaphrofayela omuntu siqu"</string>
@@ -3004,6 +3005,8 @@
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Kusukela koxhumana nabo abanenkanyezi kuphela"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Lutho"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"Ama-alamu"</string>
+    <!-- no translation found for zen_mode_alarms_summary (3774926045611788635) -->
+    <skip />
     <string name="zen_mode_reminders" msgid="5458502056440485730">"Izikhumbuzi"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"Imibuthano"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Bonke abafonayo"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 100d295..bcaaf63 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -6249,6 +6249,8 @@
     <string name="help_url_double_tap_screen" translatable="false"></string>
     <string name="help_url_account_detail" translatable="false"></string>
     <string name="help_url_icc_lock" translatable="false"></string>
+    <string name="help_uri_process_stats_summary" translatable="false"></string>
+    <string name="help_uri_process_stats_apps" translatable="false"></string>
 
     <!-- User account title [CHAR LIMIT=30] -->
     <string name="user_account_title">Account for content</string>
@@ -6671,7 +6673,7 @@
     <string name="zen_mode_summary_combination"><xliff:g id="mode" example="Priority only">%1$s</xliff:g>: <xliff:g id="exit condition" example="Until you turn this off">%2$s</xliff:g></string>
 
     <!--  Do not disturb: Title for the Visual interruptions option and associated settings page. [CHAR LIMIT=30] -->
-    <string name="zen_mode_visual_interruptions_settings_title">Block visual disturbances</string>
+    <string name="zen_mode_visual_interruptions_settings_title">Block visual signals</string>
 
     <!-- Work Sounds: Work sound settings section header.  [CHAR LIMIT=50] -->
     <string name="sound_work_settings">Work profile sounds</string>
diff --git a/res/xml/encryption_and_credential.xml b/res/xml/encryption_and_credential.xml
index be643b1..715ea14 100644
--- a/res/xml/encryption_and_credential.xml
+++ b/res/xml/encryption_and_credential.xml
@@ -24,25 +24,21 @@
             android:order="100">
 
         <com.android.settingslib.RestrictedPreference android:key="credential_storage_type"
-                android:title="@string/credential_storage_type"
-                android:persistent="false" />
+                android:title="@string/credential_storage_type" />
 
         <Preference android:key="trusted_credentials"
                 android:title="@string/trusted_credentials"
                 android:summary="@string/trusted_credentials_summary"
-                android:persistent="false"
                 android:fragment="com.android.settings.TrustedCredentialsSettings"/>
 
         <com.android.settingslib.RestrictedPreference android:key="user_credentials"
                 android:title="@string/user_credentials"
                 android:summary="@string/user_credentials_summary"
-                android:persistent="false"
                 android:fragment="com.android.settings.UserCredentialsSettings"/>
 
         <com.android.settingslib.RestrictedPreference android:key="credentials_install"
                 android:title="@string/credentials_install"
-                android:summary="@string/credentials_install_summary"
-                android:persistent="false">
+                android:summary="@string/credentials_install_summary">
 
             <intent android:action="android.credentials.INSTALL"
                     android:targetPackage="com.android.certinstaller"
@@ -52,8 +48,7 @@
 
         <com.android.settingslib.RestrictedPreference android:key="credentials_reset"
                 android:title="@string/credentials_reset"
-                android:summary="@string/credentials_reset_summary"
-                android:persistent="false">
+                android:summary="@string/credentials_reset_summary">
 
             <intent android:action="com.android.credentials.RESET"
                     android:targetPackage="com.android.settings"
diff --git a/res/xml/security_settings_encrypted.xml b/res/xml/security_settings_encrypted.xml
index 391f0fe..0d3fe76 100644
--- a/res/xml/security_settings_encrypted.xml
+++ b/res/xml/security_settings_encrypted.xml
@@ -18,12 +18,10 @@
                   android:title="@string/security_settings_title">
 
     <PreferenceCategory
-        android:key="security_category"
+        android:key="security_category_for_encrypted_device"
         android:title="@string/crypt_keeper_settings_title">
 
         <Preference
-            android:enabled="false"
-            android:shouldDisableView="false"
             android:key="crypt_keeper_encrypt_title"
             android:title="@string/crypt_keeper_encrypt_title"
             android:summary="@string/crypt_keeper_encrypted_summary"/>
diff --git a/res/xml/security_settings_unencrypted.xml b/res/xml/security_settings_unencrypted.xml
index 7c51d25..27dbe96 100644
--- a/res/xml/security_settings_unencrypted.xml
+++ b/res/xml/security_settings_unencrypted.xml
@@ -18,14 +18,14 @@
                   android:title="@string/crypt_keeper_settings_title">
 
     <PreferenceCategory
-        android:key="security_category"
+        android:key="security_category_for_unencrypted_device"
         android:title="@string/crypt_keeper_settings_title">
 
         <Preference
             android:key="encryption"
             android:title="@string/crypt_keeper_encrypt_title"
             android:fragment="com.android.settings.CryptKeeperSettings" />
-    
+
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/src/com/android/settings/EncryptionAndCredential.java b/src/com/android/settings/EncryptionAndCredential.java
index 3cb2740..4892f7e 100644
--- a/src/com/android/settings/EncryptionAndCredential.java
+++ b/src/com/android/settings/EncryptionAndCredential.java
@@ -20,7 +20,6 @@
 import android.app.admin.DevicePolicyManager;
 import android.content.Context;
 import android.content.Intent;
-import android.content.res.Resources;
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.UserManager;
@@ -34,7 +33,6 @@
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
-import com.android.settings.search.SearchIndexableRaw;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.RestrictedPreference;
 
@@ -106,7 +104,6 @@
             }
         }
 
-
         // Credential storage
         mKeyStore = KeyStore.getInstance(); // needs to be initialized for onResume()
 
@@ -182,28 +179,22 @@
         @Override
         public List<SearchIndexableResource> getXmlResourcesToIndex(
                 Context context, boolean enabled) {
-            final List<SearchIndexableResource> index = new ArrayList<SearchIndexableResource>();
+            final List<SearchIndexableResource> index = new ArrayList<>();
 
-            final DevicePolicyManager dpm = (DevicePolicyManager)
-                    context.getSystemService(Context.DEVICE_POLICY_SERVICE);
-            final UserManager um = UserManager.get(context);
-
-            if (um.isAdminUser()) {
-                switch (dpm.getStorageEncryptionStatus()) {
-                    case DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE:
-                        // The device is currently encrypted.
-                        index.add(getSearchResource(context, R.xml.security_settings_encrypted));
-                        break;
-                    case DevicePolicyManager.ENCRYPTION_STATUS_INACTIVE:
-                        // This device supports encryption but isn't encrypted.
-                        index.add(getSearchResource(context, R.xml.security_settings_unencrypted));
-                        break;
-                }
-            }
+            // Add everything. We will suppress some of them in getNonIndexableKeys()
+            index.add(getSearchResource(context, R.xml.encryption_and_credential));
+            index.add(getSearchResource(context, R.xml.security_settings_encrypted));
+            index.add(getSearchResource(context, R.xml.security_settings_unencrypted));
 
             return index;
         }
 
+        @Override
+        protected boolean isPageSearchEnabled(Context context) {
+            final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
+            return um.isAdminUser();
+        }
+
         private SearchIndexableResource getSearchResource(Context context, int xmlResId) {
             final SearchIndexableResource sir = new SearchIndexableResource(context);
             sir.xmlResId = xmlResId;
@@ -211,54 +202,34 @@
         }
 
         @Override
-        public List<SearchIndexableRaw> getRawDataToIndex(Context context, boolean enabled) {
-            final List<SearchIndexableRaw> result = new ArrayList<SearchIndexableRaw>();
-            final Resources res = context.getResources();
-
-            final String screenTitle = res.getString(
-                R.string.encryption_and_credential_settings_title);
-
-            SearchIndexableRaw data = new SearchIndexableRaw(context);
-            data.title = screenTitle;
-            data.screenTitle = screenTitle;
-            result.add(data);
-
-            final UserManager um = UserManager.get(context);
-            if (!um.isAdminUser()) {
-                int resId = um.isLinkedUser() ?
-                        R.string.profile_info_settings_title : R.string.user_info_settings_title;
-
-                data = new SearchIndexableRaw(context);
-                data.title = res.getString(resId);
-                data.screenTitle = screenTitle;
-                result.add(data);
-            }
-
-            // Credential storage
-            if (!um.hasUserRestriction(UserManager.DISALLOW_CONFIG_CREDENTIALS)) {
-                KeyStore keyStore = KeyStore.getInstance();
-
-                final int storageSummaryRes = keyStore.isHardwareBacked() ?
-                        R.string.credential_storage_type_hardware :
-                        R.string.credential_storage_type_software;
-
-                data = new SearchIndexableRaw(context);
-                data.title = res.getString(storageSummaryRes);
-                data.screenTitle = screenTitle;
-                result.add(data);
-            }
-
-            return result;
-        }
-
-        @Override
         public List<String> getNonIndexableKeys(Context context) {
             final List<String> keys = super.getNonIndexableKeys(context);
-
-            final UserManager um = UserManager.get(context);
+            if (!isPageSearchEnabled(context)) {
+                return keys;
+            }
+            final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
 
             if (um.hasUserRestriction(UserManager.DISALLOW_CONFIG_CREDENTIALS)) {
                 keys.add(KEY_CREDENTIALS_MANAGER);
+                keys.add(KEY_RESET_CREDENTIALS);
+                keys.add(KEY_CREDENTIALS_INSTALL);
+                keys.add(KEY_CREDENTIAL_STORAGE_TYPE);
+                keys.add(KEY_USER_CREDENTIALS);
+            }
+
+            final DevicePolicyManager dpm = (DevicePolicyManager)
+                    context.getSystemService(Context.DEVICE_POLICY_SERVICE);
+            switch (dpm.getStorageEncryptionStatus()) {
+                case DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE:
+                    // The device is currently encrypted. Disable security_settings_unencrypted
+                    keys.addAll(getNonIndexableKeysFromXml(
+                            context, R.xml.security_settings_unencrypted));
+                    break;
+                default:
+                    // This device supports encryption but isn't encrypted.
+                    keys.addAll(getNonIndexableKeysFromXml(
+                            context, R.xml.security_settings_encrypted));
+                    break;
             }
 
             return keys;
diff --git a/src/com/android/settings/MasterClear.java b/src/com/android/settings/MasterClear.java
index fe0111b..1bdd6f4 100644
--- a/src/com/android/settings/MasterClear.java
+++ b/src/com/android/settings/MasterClear.java
@@ -22,7 +22,7 @@
 import android.accounts.AccountManager;
 import android.accounts.AuthenticatorDescription;
 import android.app.Activity;
-import android.app.FragmentManager;
+import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
@@ -38,6 +38,7 @@
 import android.provider.Settings;
 import android.support.annotation.VisibleForTesting;
 import android.telephony.euicc.EuiccManager;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -54,7 +55,6 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.password.ConfirmLockPattern;
-import com.android.settings.widget.CarrierDemoPasswordDialogFragment;
 import com.android.settingslib.RestrictedLockUtils;
 
 import java.util.List;
@@ -69,8 +69,7 @@
  *
  * This is the initial screen.
  */
-public class MasterClear extends OptionsMenuFragment
-        implements CarrierDemoPasswordDialogFragment.Callback {
+public class MasterClear extends OptionsMenuFragment {
     private static final String TAG = "MasterClear";
 
     private static final int KEYGUARD_REQUEST = 55;
@@ -137,15 +136,21 @@
      * If the user clicks to begin the reset sequence, we next require a
      * keyguard confirmation if the user has currently enabled one.  If there
      * is no keyguard available, we simply go to the final confirmation prompt.
+     *
+     * If the user is in demo mode, route to the demo mode app for confirmation.
      */
-    private final Button.OnClickListener mInitiateListener = new Button.OnClickListener() {
+    @VisibleForTesting
+    protected final Button.OnClickListener mInitiateListener = new Button.OnClickListener() {
 
-        public void onClick(View v) {
-            if ( Utils.isCarrierDemoUser(v.getContext())) {
-                // Require the carrier password before displaying the final confirmation.
-                final FragmentManager fm = getChildFragmentManager();
-                if (fm != null && !fm.isDestroyed()) {
-                    new CarrierDemoPasswordDialogFragment().show(fm, null /* tag */);
+        public void onClick(View view) {
+            final Context context = view.getContext();
+            if (Utils.isDemoUser(context)) {
+                final String packageName = Utils.getDemoModePackageName(context);
+                if (!TextUtils.isEmpty(packageName)) {
+                    final Intent requestFactoryReset = new Intent()
+                            .setPackage(packageName)
+                            .setAction(Intent.ACTION_FACTORY_RESET);
+                    context.startActivity(requestFactoryReset);
                 }
             } else if (!runKeyguardConfirmation(KEYGUARD_REQUEST)) {
                 showFinalConfirmation();
@@ -153,11 +158,6 @@
         }
     };
 
-    @Override
-    public void onPasswordVerified() {
-        showFinalConfirmation();
-    }
-
     /**
      * In its initial state, the activity presents a button for the user to
      * click in order to initiate a confirmation sequence.  This method is
@@ -395,7 +395,7 @@
         final UserManager um = UserManager.get(context);
         final boolean disallow = !um.isAdminUser() || RestrictedLockUtils.hasBaseUserRestriction(
                 context, UserManager.DISALLOW_FACTORY_RESET, UserHandle.myUserId());
-        if (disallow && !Utils.isCarrierDemoUser(context)) {
+        if (disallow && !Utils.isDemoUser(context)) {
             return inflater.inflate(R.layout.master_clear_disallowed_screen, null);
         } else if (admin != null) {
             View view = inflater.inflate(R.layout.admin_support_details_empty_view, null);
diff --git a/src/com/android/settings/MasterClearConfirm.java b/src/com/android/settings/MasterClearConfirm.java
index 7a85dbe..39bf01a 100644
--- a/src/com/android/settings/MasterClearConfirm.java
+++ b/src/com/android/settings/MasterClearConfirm.java
@@ -24,7 +24,6 @@
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.provider.Settings;
 import android.service.oemlock.OemLockManager;
 import android.service.persistentdata.PersistentDataBlockManager;
 import android.view.LayoutInflater;
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index cfa8377..2b2ca8c 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -74,6 +74,7 @@
 import android.provider.ContactsContract.Profile;
 import android.provider.ContactsContract.RawContacts;
 import android.provider.Settings;
+import android.provider.Settings.Secure;
 import android.support.annotation.StringRes;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceGroup;
@@ -1252,6 +1253,11 @@
         }
     }
 
+    public static boolean hasFingerprintHardware(Context context) {
+        FingerprintManager fingerprintManager = getFingerprintManagerOrNull(context);
+        return fingerprintManager != null && fingerprintManager.isHardwareDetected();
+    }
+
     /**
      * Launches an intent which may optionally have a user id defined.
      * @param fragment Fragment to use to launch the activity.
@@ -1271,14 +1277,13 @@
         }
     }
 
-    public static boolean isCarrierDemoUser(Context context) {
-        final String carrierDemoModeSetting =
-                context.getString(com.android.internal.R.string.config_carrierDemoModeSetting);
-        return UserManager.isDeviceInDemoMode(context)
-                && getUserManager(context).isDemoUser()
-                && !TextUtils.isEmpty(carrierDemoModeSetting)
-                && (Settings.Secure.getInt(context.getContentResolver(),
-                        carrierDemoModeSetting, 0) == 1);
+    public static boolean isDemoUser(Context context) {
+        return UserManager.isDeviceInDemoMode(context) && getUserManager(context).isDemoUser();
+    }
+
+    public static String getDemoModePackageName(Context context) {
+        return context.getResources().getString(
+                com.android.internal.R.string.config_demoModePackage);
     }
 
     /**
diff --git a/src/com/android/settings/applications/ProcessStatsSummary.java b/src/com/android/settings/applications/ProcessStatsSummary.java
index c00cd5f..cdb8a4c 100644
--- a/src/com/android/settings/applications/ProcessStatsSummary.java
+++ b/src/com/android/settings/applications/ProcessStatsSummary.java
@@ -103,6 +103,11 @@
     }
 
     @Override
+    protected int getHelpResource() {
+        return R.string.help_uri_process_stats_summary;
+    }
+
+    @Override
     public boolean onPreferenceClick(Preference preference) {
         if (preference == mAppListPreference) {
             Bundle args = new Bundle();
diff --git a/src/com/android/settings/applications/ProcessStatsUi.java b/src/com/android/settings/applications/ProcessStatsUi.java
index 72238f6..9f76fb2 100644
--- a/src/com/android/settings/applications/ProcessStatsUi.java
+++ b/src/com/android/settings/applications/ProcessStatsUi.java
@@ -96,6 +96,11 @@
     }
 
     @Override
+    protected int getHelpResource() {
+        return R.string.help_uri_process_stats_apps;
+    }
+
+    @Override
     public void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
     }
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java b/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
index 3415947..f156a5d 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
@@ -24,10 +24,8 @@
 import android.support.annotation.VisibleForTesting;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
-import android.text.Spannable;
-import android.text.SpannableString;
+import android.text.BidiFormatter;
 import android.text.TextUtils;
-import android.text.style.ForegroundColorSpan;
 import android.util.Log;
 
 import com.android.settings.R;
@@ -48,7 +46,6 @@
 
     public static final String KEY_DEVICE_NAME = "device_name";
 
-    private final int mAccentColor;
 
     @VisibleForTesting
     Preference mPreference;
@@ -70,7 +67,6 @@
     @VisibleForTesting
     BluetoothDeviceNamePreferenceController(Context context, LocalBluetoothAdapter localAdapter) {
         super(context);
-        mAccentColor = com.android.settingslib.Utils.getColorAccent(context);
         mLocalAdapter = localAdapter;
     }
 
@@ -133,12 +129,10 @@
             // TODO: show error message in preference subtitle
             return;
         }
-        final Spannable spannableName = new SpannableString(deviceName);
-        spannableName.setSpan(new ForegroundColorSpan(mAccentColor), 0,
-                spannableName.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
         final CharSequence summary = TextUtils.expandTemplate(
-                mContext.getText(R.string.bluetooth_device_name_summary), spannableName);
-
+                mContext.getText(R.string.bluetooth_device_name_summary),
+                BidiFormatter.getInstance().unicodeWrap(deviceName));
+        preference.setSelectable(false);
         preference.setSummary(summary);
     }
 
diff --git a/src/com/android/settings/bluetooth/Utils.java b/src/com/android/settings/bluetooth/Utils.java
index b370c11..26edd84 100755
--- a/src/com/android/settings/bluetooth/Utils.java
+++ b/src/com/android/settings/bluetooth/Utils.java
@@ -169,7 +169,7 @@
                                     R.string.bluetooth_talkback_input_peripheral));
 
                 case BluetoothClass.Device.Major.IMAGING:
-                    return new Pair<Integer, String>(R.drawable.ic_bt_imaging,
+                    return new Pair<Integer, String>(R.drawable.ic_settings_print,
                             r.getString(R.string.bluetooth_talkback_imaging));
 
                 default:
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index 809b83d..4d2bd66 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -40,6 +40,7 @@
 import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
 import com.android.settings.dashboard.suggestions.SuggestionsChecks;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.widget.ActionBarShadowController;
 import com.android.settingslib.drawer.CategoryKey;
 import com.android.settingslib.drawer.DashboardCategory;
 import com.android.settingslib.drawer.SettingsDrawerActivity;
@@ -192,12 +193,14 @@
         mDashboard.setHasFixedSize(true);
         mDashboard.addItemDecoration(new DashboardDecorator(getContext()));
         mDashboard.setListener(this);
-        Log.d(TAG, "adapter created");
         mAdapter = new DashboardAdapter(getContext(), bundle, mConditionManager.getConditions(),
             mSuggestionParser, this /* SuggestionDismissController.Callback */);
         mDashboard.setAdapter(mAdapter);
         mDashboard.setItemAnimator(new DashboardItemAnimator());
         mSummaryLoader.setSummaryConsumer(mAdapter);
+        ActionBarShadowController.attachToRecyclerView(
+                getActivity().findViewById(R.id.search_bar_container), getLifecycle(), mDashboard);
+
         if (DEBUG_TIMING) {
             Log.d(TAG, "onViewCreated took "
                     + (System.currentTimeMillis() - startTime) + " ms");
diff --git a/src/com/android/settings/dashboard/conditional/CellularDataCondition.java b/src/com/android/settings/dashboard/conditional/CellularDataCondition.java
index 6842422..64d263f 100644
--- a/src/com/android/settings/dashboard/conditional/CellularDataCondition.java
+++ b/src/com/android/settings/dashboard/conditional/CellularDataCondition.java
@@ -44,7 +44,7 @@
             setActive(false);
             return;
         }
-        setActive(!telephony.getDataEnabled());
+        setActive(!telephony.isDataEnabled());
     }
 
     @Override
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java
index d9feae9..2171c2a 100644
--- a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java
@@ -25,7 +25,6 @@
 import android.support.annotation.NonNull;
 import android.util.Log;
 
-import com.android.internal.hardware.AmbientDisplayConfiguration;
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.Settings.AmbientDisplayPickupSuggestionActivity;
 import com.android.settings.Settings.AmbientDisplaySuggestionActivity;
@@ -54,7 +53,6 @@
 
     private final SuggestionRanker mSuggestionRanker;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
-    private final AmbientDisplayConfiguration mAmbientDisplayConfig;
 
     @Override
     public boolean isSmartSuggestionEnabled(Context context) {
@@ -96,7 +94,6 @@
                 new SuggestionFeaturizer(new EventStore(appContext)));
         mMetricsFeatureProvider = FeatureFactory.getFactory(appContext)
                 .getMetricsFeatureProvider();
-        mAmbientDisplayConfig = new AmbientDisplayConfiguration(appContext);
     }
 
     @Override
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionsChecks.java b/src/com/android/settings/dashboard/suggestions/SuggestionsChecks.java
index 3e85d2c..6ff0413 100644
--- a/src/com/android/settings/dashboard/suggestions/SuggestionsChecks.java
+++ b/src/com/android/settings/dashboard/suggestions/SuggestionsChecks.java
@@ -65,12 +65,14 @@
         } else if (className.equals(WifiCallingSuggestionActivity.class.getName())) {
             return isWifiCallingUnavailableOrEnabled();
         } else if (className.equals(FingerprintSuggestionActivity.class.getName())) {
-            return isNotSingleFingerprintEnrolled() || !isFingerprintEnabled();
+            return !Utils.hasFingerprintHardware(mContext) || !isFingerprintEnabled()
+                    || isNotSingleFingerprintEnrolled();
         } else if (className.equals(ScreenLockSuggestionActivity.class.getName())) {
             return isDeviceSecured();
         } else if (className.equals(FingerprintEnrollSuggestionActivity.class.getName())) {
-            FingerprintManager manager = Utils.getFingerprintManagerOrNull(mContext);
-            if (manager == null || !isFingerprintEnabled()) {
+            final FingerprintManager manager = Utils.getFingerprintManagerOrNull(mContext);
+            if (manager == null || !isFingerprintEnabled()
+                    || !Utils.hasFingerprintHardware(mContext)) {
                 return true;
             }
             return manager.hasEnrolledFingerprints();
diff --git a/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java b/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java
index 5f97608..03bcc72 100644
--- a/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java
+++ b/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java
@@ -15,21 +15,26 @@
  */
 package com.android.settings.display;
 
-import static android.provider.Settings.Secure.DOZE_ALWAYS_ON;
-
-
 import android.content.Context;
+import android.content.Intent;
 import android.os.UserHandle;
 import android.provider.Settings;
 import android.support.v14.preference.SwitchPreference;
 import android.support.v7.preference.Preference;
 
 import com.android.internal.hardware.AmbientDisplayConfiguration;
+import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
+import com.android.settings.search.DatabaseIndexingUtils;
+import com.android.settings.search.InlineSwitchPayload;
+import com.android.settings.search.ResultPayload;
 
 public class AmbientDisplayAlwaysOnPreferenceController extends PreferenceController
         implements Preference.OnPreferenceChangeListener {
 
+    private final int ON = 1;
+    private final int OFF = 0;
+
     private static final String KEY_ALWAYS_ON = "ambient_display_always_on";
     private static final int MY_USER = UserHandle.myUserId();
 
@@ -59,8 +64,9 @@
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
-        int enabled = (boolean) newValue ? 1 : 0;
-        Settings.Secure.putInt(mContext.getContentResolver(), DOZE_ALWAYS_ON, enabled);
+        int enabled = (boolean) newValue ? ON : OFF;
+        Settings.Secure.putInt(
+                mContext.getContentResolver(), Settings.Secure.DOZE_ALWAYS_ON, enabled);
         if (mCallback != null) {
             mCallback.onPreferenceChanged();
         }
@@ -71,4 +77,15 @@
     public boolean isAvailable() {
         return mConfig.alwaysOnAvailable();
     }
+
+    @Override
+    public ResultPayload getResultPayload() {
+        final Intent intent = DatabaseIndexingUtils.buildSubsettingIntent(mContext,
+                AmbientDisplaySettings.class.getName(), KEY_ALWAYS_ON,
+                mContext.getString(R.string.ambient_display_screen_title));
+
+        return new InlineSwitchPayload(Settings.Secure.DOZE_ALWAYS_ON,
+                ResultPayload.SettingsSource.SECURE, ON /* onValue */, intent, isAvailable(),
+                ON /* defaultValue */);
+    }
 }
diff --git a/src/com/android/settings/display/AutoBrightnessPreferenceController.java b/src/com/android/settings/display/AutoBrightnessPreferenceController.java
index d4226e2..12f3a8b 100644
--- a/src/com/android/settings/display/AutoBrightnessPreferenceController.java
+++ b/src/com/android/settings/display/AutoBrightnessPreferenceController.java
@@ -36,6 +36,9 @@
 
     private final String mAutoBrightnessKey;
 
+    private final String SYSTEM_KEY = SCREEN_BRIGHTNESS_MODE;
+    private final int DEFAULT_VALUE = SCREEN_BRIGHTNESS_MODE_MANUAL;
+
     public AutoBrightnessPreferenceController(Context context, String key) {
         super(context);
         mAutoBrightnessKey = key;
@@ -55,15 +58,15 @@
     @Override
     public void updateState(Preference preference) {
         int brightnessMode = Settings.System.getInt(mContext.getContentResolver(),
-                SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL);
-        ((SwitchPreference) preference).setChecked(brightnessMode != SCREEN_BRIGHTNESS_MODE_MANUAL);
+                SYSTEM_KEY, DEFAULT_VALUE);
+        ((SwitchPreference) preference).setChecked(brightnessMode != DEFAULT_VALUE);
     }
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         boolean auto = (Boolean) newValue;
-        Settings.System.putInt(mContext.getContentResolver(), SCREEN_BRIGHTNESS_MODE,
-                auto ? SCREEN_BRIGHTNESS_MODE_AUTOMATIC : SCREEN_BRIGHTNESS_MODE_MANUAL);
+        Settings.System.putInt(mContext.getContentResolver(), SYSTEM_KEY,
+                auto ? SCREEN_BRIGHTNESS_MODE_AUTOMATIC : DEFAULT_VALUE);
         return true;
     }
 
@@ -73,8 +76,8 @@
                 DisplaySettings.class.getName(), mAutoBrightnessKey,
                 mContext.getString(R.string.display_settings));
 
-        return new InlineSwitchPayload(SCREEN_BRIGHTNESS_MODE,
+        return new InlineSwitchPayload(SYSTEM_KEY,
                 ResultPayload.SettingsSource.SYSTEM, SCREEN_BRIGHTNESS_MODE_AUTOMATIC, intent,
-                isAvailable());
+                isAvailable(), DEFAULT_VALUE);
     }
-}
+}
\ No newline at end of file
diff --git a/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java b/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java
index babf90e..8605b2e 100644
--- a/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java
+++ b/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java
@@ -45,6 +45,13 @@
     int getMaximumFailedPasswordsForWipe(@Nullable ComponentName admin, int userHandle);
 
     /**
+     * Calls {@code DevicePolicyManager.getDeviceOwnerComponentOnCallingUser()}.
+     *
+     * @see android.app.admin.DevicePolicyManager#getDeviceOwnerComponentOnCallingUser
+     */
+    ComponentName getDeviceOwnerComponentOnCallingUser();
+
+    /**
      * Calls {@code DevicePolicyManager.getDeviceOwnerComponentOnAnyUser()}.
      *
      * @see android.app.admin.DevicePolicyManager#getDeviceOwnerComponentOnAnyUser
diff --git a/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java b/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java
index 7906310..e11aaf6 100644
--- a/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java
+++ b/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java
@@ -42,6 +42,11 @@
     }
 
     @Override
+    public ComponentName getDeviceOwnerComponentOnCallingUser() {
+        return mDpm.getDeviceOwnerComponentOnCallingUser();
+    }
+
+    @Override
     public ComponentName getDeviceOwnerComponentOnAnyUser() {
         return mDpm.getDeviceOwnerComponentOnAnyUser();
     }
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
index 46ecb7e..a5e2f3c 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
@@ -158,11 +158,14 @@
 
     @Override
     public int getMaximumFailedPasswordsBeforeWipeInCurrentUser() {
-        final ComponentName profileOwner = mDpm.getProfileOwnerAsUser(MY_USER_ID);
-        if (profileOwner == null) {
+        ComponentName owner = mDpm.getDeviceOwnerComponentOnCallingUser();
+        if (owner == null) {
+            owner = mDpm.getProfileOwnerAsUser(MY_USER_ID);
+        }
+        if (owner == null) {
             return 0;
         }
-        return mDpm.getMaximumFailedPasswordsForWipe(profileOwner, MY_USER_ID);
+        return mDpm.getMaximumFailedPasswordsForWipe(owner, MY_USER_ID);
     }
 
     @Override
diff --git a/src/com/android/settings/fuelgauge/BatteryBroadcastReceiver.java b/src/com/android/settings/fuelgauge/BatteryBroadcastReceiver.java
index e57ed01..f7a2b9a 100644
--- a/src/com/android/settings/fuelgauge/BatteryBroadcastReceiver.java
+++ b/src/com/android/settings/fuelgauge/BatteryBroadcastReceiver.java
@@ -50,7 +50,7 @@
 
     @Override
     public void onReceive(Context context, Intent intent) {
-        updateBatteryStatus(intent);
+        updateBatteryStatus(intent, false /* forceUpdate */);
     }
 
     public void setBatteryChangedListener(OnBatteryChangedListener lsn) {
@@ -60,20 +60,21 @@
     public void register() {
         final Intent intent = mContext.registerReceiver(this,
                 new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
-        updateBatteryStatus(intent);
+        updateBatteryStatus(intent, true /* forceUpdate */);
     }
 
     public void unRegister() {
         mContext.unregisterReceiver(this);
     }
 
-    private void updateBatteryStatus(Intent intent) {
+    private void updateBatteryStatus(Intent intent, boolean forceUpdate) {
         if (intent != null && mBatteryListener != null && Intent.ACTION_BATTERY_CHANGED.equals(
                 intent.getAction())) {
             String batteryLevel = Utils.getBatteryPercentage(intent);
             String batteryStatus = Utils.getBatteryStatus(
                     mContext.getResources(), intent);
-            if (!batteryLevel.equals(mBatteryLevel) || !batteryStatus.equals(mBatteryStatus)) {
+            if (forceUpdate || !batteryLevel.equals(mBatteryLevel) || !batteryStatus.equals(
+                    mBatteryStatus)) {
                 mBatteryLevel = batteryLevel;
                 mBatteryStatus = batteryStatus;
                 mBatteryListener.onBatteryChanged();
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 7ea0bbd..b10a1df 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -522,7 +522,7 @@
             return;
         }
 
-        initAnomalyDetectionIfPossible();
+        restartAnomalyDetectionIfPossible();
 
         // reload BatteryInfo and updateUI
         restartBatteryInfoLoader();
@@ -647,9 +647,9 @@
     }
 
     @VisibleForTesting
-    void initAnomalyDetectionIfPossible() {
+    void restartAnomalyDetectionIfPossible() {
         if (getAnomalyDetectionPolicy().isAnomalyDetectionEnabled()) {
-            getLoaderManager().initLoader(ANOMALY_LOADER, Bundle.EMPTY, mAnomalyLoaderCallbacks);
+            getLoaderManager().restartLoader(ANOMALY_LOADER, Bundle.EMPTY, mAnomalyLoaderCallbacks);
         }
     }
 
diff --git a/src/com/android/settings/fuelgauge/anomaly/Anomaly.java b/src/com/android/settings/fuelgauge/anomaly/Anomaly.java
index dba964f..b070b26 100644
--- a/src/com/android/settings/fuelgauge/anomaly/Anomaly.java
+++ b/src/com/android/settings/fuelgauge/anomaly/Anomaly.java
@@ -68,6 +68,8 @@
     public final int uid;
     public final int targetSdkVersion;
     public final long wakelockTimeMs;
+    public final long bluetoothScanningTimeMs;
+    public final int wakeupAlarmCount;
     /**
      * {@code true} if background restriction is enabled
      *
@@ -88,6 +90,8 @@
         wakelockTimeMs = builder.mWakeLockTimeMs;
         targetSdkVersion = builder.mTargetSdkVersion;
         backgroundRestrictionEnabled = builder.mBgRestrictionEnabled;
+        bluetoothScanningTimeMs = builder.mBluetoothScanningTimeMs;
+        wakeupAlarmCount = builder.mWakeupAlarmCount;
     }
 
     private Anomaly(Parcel in) {
@@ -98,6 +102,8 @@
         wakelockTimeMs = in.readLong();
         targetSdkVersion = in.readInt();
         backgroundRestrictionEnabled = in.readBoolean();
+        wakeupAlarmCount = in.readInt();
+        bluetoothScanningTimeMs = in.readLong();
     }
 
     @Override
@@ -114,6 +120,8 @@
         dest.writeLong(wakelockTimeMs);
         dest.writeInt(targetSdkVersion);
         dest.writeBoolean(backgroundRestrictionEnabled);
+        dest.writeInt(wakeupAlarmCount);
+        dest.writeLong(bluetoothScanningTimeMs);
     }
 
     @Override
@@ -132,13 +140,36 @@
                 && TextUtils.equals(displayName, other.displayName)
                 && TextUtils.equals(packageName, other.packageName)
                 && targetSdkVersion == other.targetSdkVersion
-                && backgroundRestrictionEnabled == other.backgroundRestrictionEnabled;
+                && backgroundRestrictionEnabled == other.backgroundRestrictionEnabled
+                && wakeupAlarmCount == other.wakeupAlarmCount
+                && bluetoothScanningTimeMs == other.bluetoothScanningTimeMs;
     }
 
     @Override
     public int hashCode() {
         return Objects.hash(type, uid, displayName, packageName, wakelockTimeMs, targetSdkVersion,
-                backgroundRestrictionEnabled);
+                backgroundRestrictionEnabled, wakeupAlarmCount, bluetoothScanningTimeMs);
+    }
+
+    @Override
+    public String toString() {
+        return "type=" + toAnomalyTypeText(type) + " uid=" + uid + " package=" + packageName +
+                " displayName=" + displayName + " wakelockTimeMs=" + wakelockTimeMs +
+                " wakeupAlarmCount=" + wakeupAlarmCount + " bluetoothTimeMs="
+                + bluetoothScanningTimeMs;
+    }
+
+    private String toAnomalyTypeText(@AnomalyType int type) {
+        switch (type) {
+            case AnomalyType.WAKEUP_ALARM:
+                return "wakeupAlarm";
+            case AnomalyType.WAKE_LOCK:
+                return "wakelock";
+            case AnomalyType.BLUETOOTH_SCAN:
+                return "unoptimizedBluetoothScan";
+        }
+
+        return "";
     }
 
     public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
@@ -160,6 +191,8 @@
         private String mPackageName;
         private long mWakeLockTimeMs;
         private boolean mBgRestrictionEnabled;
+        private int mWakeupAlarmCount;
+        private long mBluetoothScanningTimeMs;
 
         public Builder setType(@AnomalyType int type) {
             mType = type;
@@ -196,6 +229,16 @@
             return this;
         }
 
+        public Builder setWakeupAlarmCount(int wakeupAlarmCount) {
+            mWakeupAlarmCount = wakeupAlarmCount;
+            return this;
+        }
+
+        public Builder setBluetoothScanningTimeMs(long bluetoothScanningTimeMs) {
+            mBluetoothScanningTimeMs = bluetoothScanningTimeMs;
+            return this;
+        }
+
         public Anomaly build() {
             return new Anomaly(this);
         }
diff --git a/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java b/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java
index 03d4d23..596eaf5 100644
--- a/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java
+++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java
@@ -25,8 +25,11 @@
 import android.util.Log;
 
 import com.android.internal.os.BatteryStatsHelper;
+import com.android.internal.util.ArrayUtils;
 import com.android.settings.utils.AsyncLoader;
 
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -95,15 +98,7 @@
                     mUserManager.getUserProfiles());
         }
 
-        final List<Anomaly> anomalies = new ArrayList<>();
-        for (@Anomaly.AnomalyType int type : Anomaly.ANOMALY_TYPE_LIST) {
-            if (mPolicy.isAnomalyDetectorEnabled(type)) {
-                anomalies.addAll(mAnomalyUtils.getAnomalyDetector(type).detectAnomalies(
-                        mBatteryStatsHelper, mPackageName));
-            }
-        }
-
-        return anomalies;
+        return mAnomalyUtils.detectAnomalies(mBatteryStatsHelper, mPolicy, mPackageName);
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java b/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java
index 8ac9e6f..491a3b4 100644
--- a/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java
+++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java
@@ -20,6 +20,7 @@
 import android.os.Build;
 import android.support.annotation.VisibleForTesting;
 
+import com.android.internal.os.BatteryStatsHelper;
 import com.android.settings.fuelgauge.anomaly.action.AnomalyAction;
 import com.android.settings.fuelgauge.anomaly.action.ForceStopAction;
 import com.android.settings.fuelgauge.anomaly.action.LocationCheckAction;
@@ -29,6 +30,9 @@
 import com.android.settings.fuelgauge.anomaly.checker.WakeLockAnomalyDetector;
 import com.android.settings.fuelgauge.anomaly.checker.WakeupAlarmAnomalyDetector;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Utility class for anomaly detection
  */
@@ -91,4 +95,27 @@
                 return null;
         }
     }
+
+    /**
+     * Detect whether application with {@code targetPackageName} has anomaly. When
+     * {@code targetPackageName} is null, start detection among all the applications.
+     *
+     * @param batteryStatsHelper contains battery stats, used to detect anomaly
+     * @param policy             contains configuration about anomaly check
+     * @param targetPackageName  represents the app need to be detected
+     * @return the list of anomalies
+     */
+    public List<Anomaly> detectAnomalies(BatteryStatsHelper batteryStatsHelper,
+            AnomalyDetectionPolicy policy, String targetPackageName) {
+        final List<Anomaly> anomalies = new ArrayList<>();
+        for (@Anomaly.AnomalyType int type : Anomaly.ANOMALY_TYPE_LIST) {
+            if (policy.isAnomalyDetectorEnabled(type)) {
+                anomalies.addAll(getAnomalyDetector(type).detectAnomalies(
+                        batteryStatsHelper, targetPackageName));
+            }
+        }
+
+        return anomalies;
+    }
+
 }
diff --git a/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetector.java b/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetector.java
index f66c61c..9fb4496 100644
--- a/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetector.java
+++ b/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetector.java
@@ -93,6 +93,7 @@
                         .setType(Anomaly.AnomalyType.BLUETOOTH_SCAN)
                         .setDisplayName(displayName)
                         .setPackageName(packageName)
+                        .setBluetoothScanningTimeMs(bluetoothTimeMs)
                         .build();
 
                 if (mAnomalyUtils.getAnomalyAction(anomaly).isActionActive(anomaly)) {
diff --git a/src/com/android/settings/fuelgauge/anomaly/checker/WakeLockAnomalyDetector.java b/src/com/android/settings/fuelgauge/anomaly/checker/WakeLockAnomalyDetector.java
index 85f6862..c2bcd9a 100644
--- a/src/com/android/settings/fuelgauge/anomaly/checker/WakeLockAnomalyDetector.java
+++ b/src/com/android/settings/fuelgauge/anomaly/checker/WakeLockAnomalyDetector.java
@@ -97,6 +97,7 @@
                         .setType(Anomaly.AnomalyType.WAKE_LOCK)
                         .setDisplayName(displayName)
                         .setPackageName(packageName)
+                        .setWakeLockTimeMs(backgroundDurationMs)
                         .build();
 
                 if (mAnomalyUtils.getAnomalyAction(anomaly).isActionActive(anomaly)) {
diff --git a/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetector.java b/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetector.java
index e0cc1c3..8823a17 100644
--- a/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetector.java
+++ b/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetector.java
@@ -84,8 +84,9 @@
                     continue;
                 }
 
-                final int wakeups = getWakeupAlarmCountFromUid(uid);
-                if ((wakeups / totalRunningHours) > mWakeupAlarmThreshold) {
+                final int wakeupAlarmCount = (int) (getWakeupAlarmCountFromUid(uid)
+                        / totalRunningHours);
+                if (wakeupAlarmCount > mWakeupAlarmThreshold) {
                     final String packageName = mBatteryUtils.getPackageName(uid.getUid());
                     final CharSequence displayName = Utils.getApplicationLabel(mContext,
                             packageName);
@@ -100,6 +101,7 @@
                             .setBackgroundRestrictionEnabled(
                                     mBatteryUtils.isBackgroundRestrictionEnabled(targetSdkVersion,
                                             uid.getUid(), packageName))
+                            .setWakeupAlarmCount(wakeupAlarmCount)
                             .build();
 
                     if (mAnomalyUtils.getAnomalyAction(anomaly).isActionActive(anomaly)) {
diff --git a/src/com/android/settings/gestures/AssistGesturePreferenceController.java b/src/com/android/settings/gestures/AssistGesturePreferenceController.java
index da25ce1..b91f230 100644
--- a/src/com/android/settings/gestures/AssistGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/AssistGesturePreferenceController.java
@@ -32,6 +32,8 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.core.lifecycle.events.OnResume;
 
+import static android.provider.Settings.Secure.ASSIST_GESTURE_ENABLED;
+
 public class AssistGesturePreferenceController extends GesturePreferenceController
         implements OnResume {
 
@@ -41,6 +43,8 @@
     private static final String PREF_KEY_VIDEO = "gesture_assist_video";
     private final String mAssistGesturePrefKey;
 
+    private final String SECURE_KEY = ASSIST_GESTURE_ENABLED;
+
     private final AssistGestureFeatureProvider mFeatureProvider;
     private boolean mWasAvailable;
 
@@ -142,8 +146,7 @@
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         final boolean enabled = (boolean) newValue;
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ASSIST_GESTURE_ENABLED, enabled ? ON : OFF);
+        Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY, enabled ? ON : OFF);
         updateState(preference);
         return true;
     }
@@ -161,7 +164,7 @@
     @Override
     protected boolean isSwitchPrefEnabled() {
         final int assistGestureEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.ASSIST_GESTURE_ENABLED, 1);
+                SECURE_KEY, ON);
         return assistGestureEnabled != 0;
     }
 
@@ -171,7 +174,7 @@
                 AssistGestureSettings.class.getName(), mAssistGesturePrefKey,
                 mContext.getString(R.string.display_settings));
 
-        return new InlineSwitchPayload(Settings.Secure.ASSIST_GESTURE_ENABLED,
-                ResultPayload.SettingsSource.SECURE, ON, intent, isAvailable());
+        return new InlineSwitchPayload(SECURE_KEY, ResultPayload.SettingsSource.SECURE,
+                ON /* onValue */, intent, isAvailable(), ON /* defaultValue */);
     }
 }
diff --git a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
index 8d4116a..970b6a7 100644
--- a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
@@ -22,14 +22,14 @@
 import android.provider.Settings;
 import android.support.v7.preference.Preference;
 
-import com.android.settings.DisplaySettings;
 import com.android.settings.R;
-import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.DatabaseIndexingUtils;
 import com.android.settings.search.InlineSwitchPayload;
 import com.android.settings.search.ResultPayload;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
+import static android.provider.Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED;
+
 public class DoubleTapPowerPreferenceController extends GesturePreferenceController {
 
     private final int ON = 0;
@@ -38,6 +38,8 @@
     private static final String PREF_KEY_VIDEO = "gesture_double_tap_power_video";
     private final String mDoubleTapPowerKey;
 
+    private final String SECURE_KEY = CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED;
+
     public DoubleTapPowerPreferenceController(Context context, Lifecycle lifecycle, String key) {
         super(context, lifecycle);
         mDoubleTapPowerKey = key;
@@ -71,15 +73,14 @@
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         boolean enabled = (boolean) newValue;
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, enabled ? ON : OFF);
+        Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY, enabled ? ON : OFF);
         return true;
     }
 
     @Override
     protected boolean isSwitchPrefEnabled() {
         final int cameraDisabled = Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0);
+                SECURE_KEY, ON);
         return cameraDisabled == 0;
     }
 
@@ -89,7 +90,7 @@
                 DoubleTapPowerSettings.class.getName(), mDoubleTapPowerKey,
                 mContext.getString(R.string.display_settings));
 
-        return new InlineSwitchPayload(Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED,
-                ResultPayload.SettingsSource.SECURE, ON, intent, isAvailable());
+        return new InlineSwitchPayload(SECURE_KEY, ResultPayload.SettingsSource.SECURE,
+                ON /* onValue */, intent, isAvailable(), ON /* defaultValue */);
     }
 }
diff --git a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
index 4de6e14..9ec06ae 100644
--- a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
@@ -25,12 +25,13 @@
 
 import com.android.internal.hardware.AmbientDisplayConfiguration;
 import com.android.settings.R;
-import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.DatabaseIndexingUtils;
 import com.android.settings.search.InlineSwitchPayload;
 import com.android.settings.search.ResultPayload;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
+import static android.provider.Settings.Secure.DOZE_PULSE_ON_DOUBLE_TAP;
+
 public class DoubleTapScreenPreferenceController extends GesturePreferenceController {
 
     private final int ON = 1;
@@ -39,6 +40,8 @@
     private static final String PREF_KEY_VIDEO = "gesture_double_tap_screen_video";
     private final String mDoubleTapScreenPrefKey;
 
+    private final String SECURE_KEY = DOZE_PULSE_ON_DOUBLE_TAP;
+
     private final AmbientDisplayConfiguration mAmbientConfig;
     @UserIdInt
     private final int mUserId;
@@ -70,8 +73,7 @@
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         final boolean enabled = (boolean) newValue;
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.DOZE_PULSE_ON_DOUBLE_TAP, enabled ? ON : OFF);
+        Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY, enabled ? ON : OFF);
         return true;
     }
 
@@ -91,7 +93,7 @@
                 DoubleTapScreenSettings.class.getName(), mDoubleTapScreenPrefKey,
                 mContext.getString(R.string.display_settings));
 
-        return new InlineSwitchPayload(Settings.Secure.DOZE_PULSE_ON_DOUBLE_TAP,
-                ResultPayload.SettingsSource.SECURE, ON, intent, isAvailable());
+        return new InlineSwitchPayload(SECURE_KEY, ResultPayload.SettingsSource.SECURE,
+                ON /* onValue */, intent, isAvailable(), ON /* defaultValue */);
     }
-}
+}
\ No newline at end of file
diff --git a/src/com/android/settings/gestures/PickupGesturePreferenceController.java b/src/com/android/settings/gestures/PickupGesturePreferenceController.java
index 9a4c846..e64c0cf 100644
--- a/src/com/android/settings/gestures/PickupGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/PickupGesturePreferenceController.java
@@ -30,6 +30,8 @@
 import com.android.settings.search.ResultPayload;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
+import static android.provider.Settings.Secure.DOZE_PULSE_ON_PICK_UP;
+
 public class PickupGesturePreferenceController extends GesturePreferenceController {
 
     private final int ON = 1;
@@ -38,6 +40,8 @@
     private static final String PREF_KEY_VIDEO = "gesture_pick_up_video";
     private final String mPickUpPrefKey;
 
+    private final String SECURE_KEY = DOZE_PULSE_ON_PICK_UP;
+
     private final AmbientDisplayConfiguration mAmbientConfig;
     @UserIdInt
     private final int mUserId;
@@ -80,7 +84,7 @@
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         final boolean enabled = (boolean) newValue;
         Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.DOZE_PULSE_ON_PICK_UP, enabled ? ON : OFF);
+                SECURE_KEY, enabled ? ON : OFF);
         return true;
     }
 
@@ -95,7 +99,7 @@
                 PickupGestureSettings.class.getName(), mPickUpPrefKey,
                 mContext.getString(R.string.display_settings));
 
-        return new InlineSwitchPayload(Settings.Secure.DOZE_PULSE_ON_PICK_UP,
-                ResultPayload.SettingsSource.SECURE, ON, intent, isAvailable());
+        return new InlineSwitchPayload(SECURE_KEY, ResultPayload.SettingsSource.SECURE,
+                ON /* onValue */, intent, isAvailable(), ON /* defaultValue */);
     }
 }
diff --git a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
index bb63f21..bc6950e 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
@@ -23,12 +23,14 @@
 import android.support.v7.preference.Preference;
 
 import com.android.settings.R;
-import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.Utils;
 import com.android.settings.search.DatabaseIndexingUtils;
 import com.android.settings.search.InlineSwitchPayload;
 import com.android.settings.search.ResultPayload;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
+import static android.provider.Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED;
+
 public class SwipeToNotificationPreferenceController extends GesturePreferenceController {
 
     private final int ON = 1;
@@ -37,6 +39,8 @@
     private static final String PREF_KEY_VIDEO = "gesture_swipe_down_fingerprint_video";
     private final String mSwipeDownFingerPrefKey;
 
+    private final String SECURE_KEY = SYSTEM_NAVIGATION_KEYS_ENABLED;
+
     public SwipeToNotificationPreferenceController(Context context, Lifecycle lifecycle,
             String key) {
         super(context, lifecycle);
@@ -50,7 +54,7 @@
     }
 
     private static boolean isGestureAvailable(Context context) {
-        return context.getResources()
+        return Utils.hasFingerprintHardware(context) && context.getResources()
                 .getBoolean(com.android.internal.R.bool.config_supportSystemNavigationKeys);
     }
 
@@ -71,16 +75,14 @@
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, (boolean) newValue ? ON : OFF);
+        Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY,
+                (boolean) newValue ? ON : OFF);
         return true;
     }
 
     @Override
     protected boolean isSwitchPrefEnabled() {
-        return Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, 1)
-                == 1;
+        return Settings.Secure.getInt(mContext.getContentResolver(), SECURE_KEY, OFF) == ON;
     }
 
     @Override
@@ -89,7 +91,7 @@
                 SwipeToNotificationSettings.class.getName(), mSwipeDownFingerPrefKey,
                 mContext.getString(R.string.display_settings));
 
-        return new InlineSwitchPayload(Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED,
-                ResultPayload.SettingsSource.SECURE, ON, intent, isAvailable());
+        return new InlineSwitchPayload(SECURE_KEY, ResultPayload.SettingsSource.SECURE,
+                ON /* onValue */, intent, isAvailable(), ON /* defaultValue */);
     }
 }
diff --git a/src/com/android/settings/location/LocationPreferenceController.java b/src/com/android/settings/location/LocationPreferenceController.java
index da7f299..bd7aea1 100644
--- a/src/com/android/settings/location/LocationPreferenceController.java
+++ b/src/com/android/settings/location/LocationPreferenceController.java
@@ -132,7 +132,6 @@
 
         return new InlineListPayload(Secure.LOCATION_MODE,
                 ResultPayload.SettingsSource.SECURE, intent, isAvailable(),
-                Secure.LOCATION_MODE_HIGH_ACCURACY + 1);
+                Secure.LOCATION_MODE_HIGH_ACCURACY + 1, Secure.LOCATION_MODE_OFF);
     }
-
 }
diff --git a/src/com/android/settings/network/AirplaneModePreferenceController.java b/src/com/android/settings/network/AirplaneModePreferenceController.java
index 8422ab4..05c428a 100644
--- a/src/com/android/settings/network/AirplaneModePreferenceController.java
+++ b/src/com/android/settings/network/AirplaneModePreferenceController.java
@@ -45,7 +45,6 @@
 
     private final Fragment mFragment;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
-    private final PackageManager mPackageManager;
     private AirplaneModeEnabler mAirplaneModeEnabler;
     private SwitchPreference mAirplaneModePreference;
 
@@ -53,7 +52,6 @@
     public AirplaneModePreferenceController(Context context, Fragment hostFragment) {
         super(context);
         mFragment = hostFragment;
-        mPackageManager = context.getPackageManager();
         mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
     }
 
@@ -88,7 +86,11 @@
 
     @Override
     public boolean isAvailable() {
-        return !mPackageManager.hasSystemFeature(PackageManager.FEATURE_TELEVISION);
+        return isAvailable(mContext);
+    }
+
+    public static boolean isAvailable(Context context) {
+        return !context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEVISION);
     }
 
     @Override
diff --git a/src/com/android/settings/network/MobileNetworkPreferenceController.java b/src/com/android/settings/network/MobileNetworkPreferenceController.java
index b91552e..bfe013b 100644
--- a/src/com/android/settings/network/MobileNetworkPreferenceController.java
+++ b/src/com/android/settings/network/MobileNetworkPreferenceController.java
@@ -39,18 +39,17 @@
 
     private static final String KEY_MOBILE_NETWORK_SETTINGS = "mobile_network_settings";
 
-    private final UserManager mUserManager;
     private final boolean mIsSecondaryUser;
     private final TelephonyManager mTelephonyManager;
     private Preference mPreference;
-    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+    @VisibleForTesting
     PhoneStateListener mPhoneStateListener;
 
     public MobileNetworkPreferenceController(Context context) {
         super(context);
-        mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+        UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
         mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
-        mIsSecondaryUser = !mUserManager.isAdminUser();
+        mIsSecondaryUser = !userManager.isAdminUser();
     }
 
     @Override
diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java
index 59e588d..e6b10c3 100644
--- a/src/com/android/settings/notification/ZenModeSettings.java
+++ b/src/com/android/settings/notification/ZenModeSettings.java
@@ -172,9 +172,7 @@
                 ? getString(R.string.switch_off_text)
                 : getString(R.string.zen_mode_rule_summary_enabled_combination, mode);
 
-        return isSystemRule ? ruleState
-                : getString(R.string.zen_mode_rule_summary_provider_combination,
-                        providerLabel, ruleState);
+        return ruleState;
     }
 
     private static ManagedServiceSettings.Config getConditionProviderConfig() {
diff --git a/src/com/android/settings/search/BaseSearchIndexProvider.java b/src/com/android/settings/search/BaseSearchIndexProvider.java
index 11b4db1..239de15 100644
--- a/src/com/android/settings/search/BaseSearchIndexProvider.java
+++ b/src/com/android/settings/search/BaseSearchIndexProvider.java
@@ -16,10 +16,12 @@
 
 package com.android.settings.search;
 
+import android.annotation.XmlRes;
 import android.content.Context;
 import android.content.res.XmlResourceParser;
 import android.provider.SearchIndexableResource;
 import android.support.annotation.CallSuper;
+import android.support.annotation.VisibleForTesting;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.Log;
@@ -94,18 +96,25 @@
         }
         final List<String> nonIndexableKeys = new ArrayList<>();
         for (SearchIndexableResource res : resources) {
-            final XmlResourceParser parser = context.getResources().getXml(res.xmlResId);
-            final AttributeSet attrs = Xml.asAttributeSet(parser);
-            try {
-                while (parser.next() != XmlPullParser.END_DOCUMENT) {
-                    final String key = XmlParserUtils.getDataKey(context, attrs);
-                    if (!TextUtils.isEmpty(key)) {
-                        nonIndexableKeys.add(key);
-                    }
+            nonIndexableKeys.addAll(getNonIndexableKeysFromXml(context, res.xmlResId));
+        }
+        return nonIndexableKeys;
+    }
+
+    @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
+    public List<String> getNonIndexableKeysFromXml(Context context, @XmlRes int xmlResId) {
+        final List<String> nonIndexableKeys = new ArrayList<>();
+        final XmlResourceParser parser = context.getResources().getXml(xmlResId);
+        final AttributeSet attrs = Xml.asAttributeSet(parser);
+        try {
+            while (parser.next() != XmlPullParser.END_DOCUMENT) {
+                final String key = XmlParserUtils.getDataKey(context, attrs);
+                if (!TextUtils.isEmpty(key)) {
+                    nonIndexableKeys.add(key);
                 }
-            } catch (IOException | XmlPullParserException e) {
-                Log.w(TAG, "Error parsing non-indexable from xml " + res.xmlResId);
             }
+        } catch (IOException | XmlPullParserException e) {
+            Log.w(TAG, "Error parsing non-indexable from xml " + xmlResId);
         }
         return nonIndexableKeys;
     }
diff --git a/src/com/android/settings/search/DatabaseIndexingManager.java b/src/com/android/settings/search/DatabaseIndexingManager.java
index 6a6c737..d2b2d23 100644
--- a/src/com/android/settings/search/DatabaseIndexingManager.java
+++ b/src/com/android/settings/search/DatabaseIndexingManager.java
@@ -166,18 +166,22 @@
      */
     public void performIndexing() {
         final Intent intent = new Intent(SearchIndexablesContract.PROVIDER_INTERFACE);
-        final List<ResolveInfo> list =
+        final List<ResolveInfo> providers =
                 mContext.getPackageManager().queryIntentContentProviders(intent, 0);
 
-        String localeStr = Locale.getDefault().toString();
-        String fingerprint = Build.FINGERPRINT;
-        final boolean isFullIndex = isFullIndex(localeStr, fingerprint);
+        final String localeStr = Locale.getDefault().toString();
+        final String fingerprint = Build.FINGERPRINT;
+        final String providerVersionedNames =
+                IndexDatabaseHelper.buildProviderVersionedNames(providers);
+
+        final boolean isFullIndex = IndexDatabaseHelper.isFullIndex(mContext, localeStr,
+                fingerprint, providerVersionedNames);
 
         if (isFullIndex) {
             rebuildDatabase();
         }
 
-        for (final ResolveInfo info : list) {
+        for (final ResolveInfo info : providers) {
             if (!DatabaseIndexingUtils.isWellKnownProvider(info, mContext)) {
                 continue;
             }
@@ -192,24 +196,10 @@
 
         updateDatabase(isFullIndex, localeStr);
 
+        //TODO(63922686): Setting indexed should be a single method, not 3 separate setters.
         IndexDatabaseHelper.setLocaleIndexed(mContext, localeStr);
         IndexDatabaseHelper.setBuildIndexed(mContext, fingerprint);
-    }
-
-    /**
-     * Perform a full index on an OTA or when the locale has changed
-     *
-     * @param locale is the default for the device
-     * @param fingerprint id for the current build.
-     * @return true when the locale or build has changed since last index.
-     */
-    @VisibleForTesting
-    boolean isFullIndex(String locale, String fingerprint) {
-        final boolean isLocaleIndexed = IndexDatabaseHelper.getInstance(mContext)
-                .isLocaleAlreadyIndexed(mContext, locale);
-        final boolean isBuildIndexed = IndexDatabaseHelper.getInstance(mContext)
-                .isBuildIndexed(mContext, fingerprint);
-        return !isLocaleIndexed || !isBuildIndexed;
+        IndexDatabaseHelper.setProvidersIndexed(mContext, providerVersionedNames);
     }
 
     /**
@@ -1318,4 +1308,4 @@
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/search/DatabaseIndexingUtils.java b/src/com/android/settings/search/DatabaseIndexingUtils.java
index a6f3cb1..40ba7ee 100644
--- a/src/com/android/settings/search/DatabaseIndexingUtils.java
+++ b/src/com/android/settings/search/DatabaseIndexingUtils.java
@@ -174,7 +174,7 @@
      * - have read/write {@link Manifest.permission#READ_SEARCH_INDEXABLES}
      * - be from a privileged package
      */
-    public static boolean isWellKnownProvider(ResolveInfo info, Context context) {
+    static boolean isWellKnownProvider(ResolveInfo info, Context context) {
         final String authority = info.providerInfo.authority;
         final String packageName = info.providerInfo.applicationInfo.packageName;
 
@@ -197,7 +197,22 @@
         return isPrivilegedPackage(packageName, context);
     }
 
-    public static boolean isPrivilegedPackage(String packageName, Context context) {
+    static String normalizeHyphen(String input) {
+        return (input != null) ? input.replaceAll(NON_BREAKING_HYPHEN, HYPHEN) : EMPTY;
+    }
+
+    static String normalizeString(String input) {
+        final String nohyphen = (input != null) ? input.replaceAll(HYPHEN, EMPTY) : EMPTY;
+        final String normalized = Normalizer.normalize(nohyphen, Normalizer.Form.NFD);
+
+        return REMOVE_DIACRITICALS_PATTERN.matcher(normalized).replaceAll("").toLowerCase();
+    }
+
+    static String normalizeKeywords(String input) {
+        return (input != null) ? input.replaceAll(LIST_DELIMITERS, SPACE) : EMPTY;
+    }
+
+    private static boolean isPrivilegedPackage(String packageName, Context context) {
         final PackageManager pm = context.getPackageManager();
         try {
             PackageInfo packInfo = pm.getPackageInfo(packageName, 0);
@@ -207,19 +222,4 @@
             return false;
         }
     }
-
-    public static String normalizeHyphen(String input) {
-        return (input != null) ? input.replaceAll(NON_BREAKING_HYPHEN, HYPHEN) : EMPTY;
-    }
-
-    public static String normalizeString(String input) {
-        final String nohyphen = (input != null) ? input.replaceAll(HYPHEN, EMPTY) : EMPTY;
-        final String normalized = Normalizer.normalize(nohyphen, Normalizer.Form.NFD);
-
-        return REMOVE_DIACRITICALS_PATTERN.matcher(normalized).replaceAll("").toLowerCase();
-    }
-
-    public static String normalizeKeywords(String input) {
-        return (input != null) ? input.replaceAll(LIST_DELIMITERS, SPACE) : EMPTY;
-    }
 }
diff --git a/src/com/android/settings/search/IndexDatabaseHelper.java b/src/com/android/settings/search/IndexDatabaseHelper.java
index 76346ec..d78b611 100644
--- a/src/com/android/settings/search/IndexDatabaseHelper.java
+++ b/src/com/android/settings/search/IndexDatabaseHelper.java
@@ -17,12 +17,17 @@
 package com.android.settings.search;
 
 import android.content.Context;
+import android.content.pm.ResolveInfo;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteOpenHelper;
 import android.os.Build;
+import android.support.annotation.VisibleForTesting;
+import android.text.TextUtils;
 import android.util.Log;
 
+import java.util.List;
+
 public class IndexDatabaseHelper extends SQLiteOpenHelper {
 
     private static final String TAG = "IndexDatabaseHelper";
@@ -32,6 +37,8 @@
 
     private static final String INDEX = "index";
 
+    private static final String PREF_KEY_INDEXED_PROVIDERS = "indexed_providers";
+
     public interface Tables {
         String TABLE_PREFS_INDEX = "prefs_index";
         String TABLE_SITE_MAP = "site_map";
@@ -245,23 +252,69 @@
         return version;
     }
 
-    public static void clearCachedIndexed(Context context) {
-        context.getSharedPreferences(INDEX, 0).edit().clear().commit();
+    /**
+     * Perform a full index on an OTA or when the locale has changed
+     *
+     * @param locale      is the default for the device
+     * @param fingerprint id for the current build.
+     * @return true when the locale or build has changed since last index.
+     */
+    @VisibleForTesting
+    static boolean isFullIndex(Context context, String locale, String fingerprint,
+            String providerVersionedNames) {
+        final boolean isLocaleIndexed = IndexDatabaseHelper.isLocaleAlreadyIndexed(context, locale);
+        final boolean isBuildIndexed = IndexDatabaseHelper.isBuildIndexed(context, fingerprint);
+        final boolean areProvidersIndexed = IndexDatabaseHelper
+                .areProvidersIndexed(context, providerVersionedNames);
+
+        return !(isLocaleIndexed && isBuildIndexed && areProvidersIndexed);
     }
 
-    public static void setLocaleIndexed(Context context, String locale) {
-        context.getSharedPreferences(INDEX, 0).edit().putBoolean(locale, true).commit();
+    @VisibleForTesting
+    static String buildProviderVersionedNames(List<ResolveInfo> providers) {
+        StringBuilder sb = new StringBuilder();
+        for (ResolveInfo info : providers) {
+            sb.append(info.providerInfo.packageName)
+                    .append(':')
+                    .append(info.providerInfo.applicationInfo.versionCode)
+                    .append(',');
+        }
+        return sb.toString();
     }
 
-    public static boolean isLocaleAlreadyIndexed(Context context, String locale) {
-        return context.getSharedPreferences(INDEX, 0).getBoolean(locale, false);
+    static void clearCachedIndexed(Context context) {
+        context.getSharedPreferences(INDEX, Context.MODE_PRIVATE).edit().clear().commit();
     }
 
-    public static boolean isBuildIndexed(Context context, String buildNo) {
-        return context.getSharedPreferences(INDEX, 0).getBoolean(buildNo, false);
+    static void setLocaleIndexed(Context context, String locale) {
+        context.getSharedPreferences(INDEX, Context.MODE_PRIVATE)
+                .edit()
+                .putBoolean(locale, true)
+                .apply();
     }
 
-    public static void setBuildIndexed(Context context, String buildNo) {
+    static void setProvidersIndexed(Context context, String providerVersionedNames) {
+        context.getSharedPreferences(INDEX, Context.MODE_PRIVATE)
+                .edit()
+                .putString(PREF_KEY_INDEXED_PROVIDERS, providerVersionedNames)
+                .apply();
+    }
+
+    static boolean isLocaleAlreadyIndexed(Context context, String locale) {
+        return context.getSharedPreferences(INDEX, Context.MODE_PRIVATE).getBoolean(locale, false);
+    }
+
+    static boolean areProvidersIndexed(Context context, String providerVersionedNames) {
+        final String indexedProviders = context.getSharedPreferences(INDEX, Context.MODE_PRIVATE)
+                .getString(PREF_KEY_INDEXED_PROVIDERS, null);
+        return TextUtils.equals(indexedProviders, providerVersionedNames);
+    }
+
+    static boolean isBuildIndexed(Context context, String buildNo) {
+        return context.getSharedPreferences(INDEX, Context.MODE_PRIVATE).getBoolean(buildNo, false);
+    }
+
+    static void setBuildIndexed(Context context, String buildNo) {
         context.getSharedPreferences(INDEX, 0).edit().putBoolean(buildNo, true).commit();
     }
 
diff --git a/src/com/android/settings/search/InlineListPayload.java b/src/com/android/settings/search/InlineListPayload.java
index 60113b9..c11c4a3 100644
--- a/src/com/android/settings/search/InlineListPayload.java
+++ b/src/com/android/settings/search/InlineListPayload.java
@@ -16,8 +16,8 @@
     private int mNumOptions;
 
     public InlineListPayload(String key, @PayloadType int payloadType, Intent intent,
-            boolean isDeviceSupported, int numOptions) {
-        super(key, payloadType, intent, isDeviceSupported);
+            boolean isDeviceSupported, int numOptions, int defaultValue) {
+        super(key, payloadType, intent, isDeviceSupported, defaultValue);
         mNumOptions = numOptions;
     }
 
diff --git a/src/com/android/settings/search/InlinePayload.java b/src/com/android/settings/search/InlinePayload.java
index 0807f62..03b8828 100644
--- a/src/com/android/settings/search/InlinePayload.java
+++ b/src/com/android/settings/search/InlinePayload.java
@@ -49,24 +49,31 @@
     final boolean mIsDeviceSupported;
 
     /**
+     * The default value for the setting.
+     */
+    final int mDefaultvalue;
+
+    /**
      * @param key uniquely identifies the stored setting.
      * @param source of the setting. Used to determine where to get and set the setting.
      * @param intent to the setting page.
      * @param isDeviceSupported is true when the setting is valid for the given device.
      */
     public InlinePayload(String key, @SettingsSource int source, Intent intent,
-            boolean isDeviceSupported) {
+            boolean isDeviceSupported, int defaultValue) {
         super(intent);
         mSettingKey = key;
         mSettingSource = source;
         mIsDeviceSupported = isDeviceSupported;
+        mDefaultvalue = defaultValue;
     }
 
     InlinePayload(Parcel parcel) {
-        super((Intent) parcel.readParcelable(Intent.class.getClassLoader()));
+        super(parcel.readParcelable(Intent.class.getClassLoader()));
         mSettingKey = parcel.readString();
         mSettingSource = parcel.readInt();
         mIsDeviceSupported = parcel.readInt() == TRUE;
+        mDefaultvalue = parcel.readInt();
     }
 
     @Override
@@ -75,6 +82,7 @@
         dest.writeString(mSettingKey);
         dest.writeInt(mSettingSource);
         dest.writeInt(mIsDeviceSupported ? TRUE : FALSE);
+        dest.writeInt(mDefaultvalue);
     }
 
     @Override
@@ -108,24 +116,19 @@
         switch(mSettingSource) {
             case SettingsSource.SECURE:
                 settingsValue = Settings.Secure.getInt(context.getContentResolver(),
-                        mSettingKey, -1);
+                        mSettingKey, mDefaultvalue);
                 break;
             case SettingsSource.SYSTEM:
                 settingsValue = Settings.System.getInt(context.getContentResolver(),
-                        mSettingKey, -1);
+                        mSettingKey, mDefaultvalue);
                 break;
 
             case SettingsSource.GLOBAL:
                 settingsValue = Settings.Global.getInt(context.getContentResolver(),
-                        mSettingKey, -1);
+                        mSettingKey, mDefaultvalue);
                 break;
         }
 
-        if (settingsValue == -1) {
-            throw new IllegalStateException("Unable to find setting from uri: "
-                    + mSettingKey.toString());
-        }
-
         return standardizeInput(settingsValue);
     }
 
diff --git a/src/com/android/settings/search/InlineSwitchPayload.java b/src/com/android/settings/search/InlineSwitchPayload.java
index 8916dde..bac0313 100644
--- a/src/com/android/settings/search/InlineSwitchPayload.java
+++ b/src/com/android/settings/search/InlineSwitchPayload.java
@@ -45,8 +45,8 @@
      * @param isDeviceSupported is true when the setting is valid for the given device.
      */
     public InlineSwitchPayload(String key, @SettingsSource int source,
-            int onValue, Intent intent, boolean isDeviceSupported) {
-        super(key, source, intent, isDeviceSupported);
+            int onValue, Intent intent, boolean isDeviceSupported, int defaultValue) {
+        super(key, source, intent, isDeviceSupported, defaultValue);
         // If on is stored as TRUE then the switch is standard.
         mIsStandard = onValue == TRUE;
     }
diff --git a/src/com/android/settings/search/SearchFragment.java b/src/com/android/settings/search/SearchFragment.java
index 7ceec62..69c2062 100644
--- a/src/com/android/settings/search/SearchFragment.java
+++ b/src/com/android/settings/search/SearchFragment.java
@@ -47,6 +47,7 @@
 import com.android.settings.core.InstrumentedFragment;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.widget.ActionBarShadowController;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -202,6 +203,8 @@
             params.setMarginStart(0);
             editFrame.setLayoutParams(params);
         }
+        ActionBarShadowController.attachToRecyclerView(
+                view.findViewById(R.id.search_bar_container), getLifecycle(), mResultsRecyclerView);
         return view;
     }
 
diff --git a/src/com/android/settings/search/SearchIndexableResources.java b/src/com/android/settings/search/SearchIndexableResources.java
index 9b84bf1..31d39b5 100644
--- a/src/com/android/settings/search/SearchIndexableResources.java
+++ b/src/com/android/settings/search/SearchIndexableResources.java
@@ -171,8 +171,7 @@
         addIndex(LocationSettings.class, R.xml.location_settings, R.drawable.ic_settings_location);
         addIndex(ScanningSettings.class, R.xml.location_scanning, R.drawable.ic_settings_location);
         addIndex(SecuritySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_security);
-        addIndex(EncryptionAndCredential.class, R.xml.encryption_and_credential,
-                R.drawable.ic_settings_security);
+        addIndex(EncryptionAndCredential.class, NO_DATA_RES_ID, R.drawable.ic_settings_security);
         addIndex(ScreenPinningSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_security);
         addIndex(UserAndAccountDashboardFragment.class, NO_DATA_RES_ID,
                 R.drawable.ic_settings_accounts);
diff --git a/src/com/android/settings/support/SupportDashboardActivity.java b/src/com/android/settings/support/SupportDashboardActivity.java
index d3fcf9a..819d5f7 100644
--- a/src/com/android/settings/support/SupportDashboardActivity.java
+++ b/src/com/android/settings/support/SupportDashboardActivity.java
@@ -47,8 +47,8 @@
             supportFeatureProvider.startSupportV2(this);
         } else {
             startActivity(new Intent(this, LegacySupportActivity.class));
+            finish();
         }
-        finish();
     }
 
     /**
diff --git a/src/com/android/settings/system/FactoryResetPreferenceController.java b/src/com/android/settings/system/FactoryResetPreferenceController.java
index a3cf10a..4379105 100644
--- a/src/com/android/settings/system/FactoryResetPreferenceController.java
+++ b/src/com/android/settings/system/FactoryResetPreferenceController.java
@@ -45,7 +45,7 @@
     /** Hide "Factory reset" settings for secondary users, except demo users. */
     @Override
     public boolean isAvailable() {
-        return mUm.isAdminUser() || Utils.isCarrierDemoUser(mContext);
+        return mUm.isAdminUser() || Utils.isDemoUser(mContext);
     }
 
     @Override
diff --git a/src/com/android/settings/widget/ActionBarShadowController.java b/src/com/android/settings/widget/ActionBarShadowController.java
index 75bdf0e..0c6b02f 100644
--- a/src/com/android/settings/widget/ActionBarShadowController.java
+++ b/src/com/android/settings/widget/ActionBarShadowController.java
@@ -18,6 +18,7 @@
 
 import android.app.ActionBar;
 import android.app.Activity;
+import android.support.annotation.VisibleForTesting;
 import android.support.v7.widget.RecyclerView;
 import android.view.View;
 
@@ -26,9 +27,20 @@
 import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.core.lifecycle.events.OnStop;
 
+/**
+ * A controller that adds shadow to actionbar when content view scrolls.
+ * <p/>
+ * It also works on custom views acting as an actionbar.
+ */
 public class ActionBarShadowController implements LifecycleObserver, OnStart, OnStop {
 
-    private ScrollChangeWatcher mScrollChangeWatcher;
+    @VisibleForTesting
+    static final float ELEVATION_HIGH = 8;
+    @VisibleForTesting
+    static final float ELEVATION_LOW = 0;
+
+    @VisibleForTesting
+    ScrollChangeWatcher mScrollChangeWatcher;
     private RecyclerView mRecyclerView;
     private boolean isScrollWatcherAttached;
 
@@ -37,6 +49,11 @@
         return new ActionBarShadowController(activity, lifecycle, recyclerView);
     }
 
+    public static ActionBarShadowController attachToRecyclerView(View anchorView,
+            Lifecycle lifecycle, RecyclerView recyclerView) {
+        return new ActionBarShadowController(anchorView, lifecycle, recyclerView);
+    }
+
     private ActionBarShadowController(Activity activity, Lifecycle lifecycle,
             RecyclerView recyclerView) {
         mScrollChangeWatcher = new ScrollChangeWatcher(activity);
@@ -45,6 +62,14 @@
         lifecycle.addObserver(this);
     }
 
+    private ActionBarShadowController(View anchorView, Lifecycle lifecycle,
+            RecyclerView recyclerView) {
+        mScrollChangeWatcher = new ScrollChangeWatcher(anchorView);
+        mRecyclerView = recyclerView;
+        attachScrollWatcher();
+        lifecycle.addObserver(this);
+    }
+
     @Override
     public void onStop() {
         detachScrollWatcher();
@@ -71,12 +96,19 @@
     /**
      * Update the drop shadow as the scrollable entity is scrolled.
      */
-    private final class ScrollChangeWatcher extends RecyclerView.OnScrollListener {
+    final class ScrollChangeWatcher extends RecyclerView.OnScrollListener {
 
-        private Activity mActivity;
+        private final Activity mActivity;
+        private final View mAnchorView;
 
         public ScrollChangeWatcher(Activity activity) {
             mActivity = activity;
+            mAnchorView = null;
+        }
+
+        public ScrollChangeWatcher(View anchorView) {
+            mAnchorView = anchorView;
+            mActivity = null;
         }
 
         // RecyclerView scrolled.
@@ -87,9 +119,13 @@
 
         public void updateDropShadow(View view) {
             final boolean shouldShowShadow = view.canScrollVertically(-1);
-            final ActionBar actionBar = mActivity.getActionBar();
-            if (actionBar != null) {
-                actionBar.setElevation(shouldShowShadow ? 8 : 0);
+            if (mAnchorView != null) {
+                mAnchorView.setElevation(shouldShowShadow ? ELEVATION_HIGH : ELEVATION_LOW);
+            } else {
+                final ActionBar actionBar = mActivity.getActionBar();
+                if (actionBar != null) {
+                    actionBar.setElevation(shouldShowShadow ? ELEVATION_HIGH : ELEVATION_LOW);
+                }
             }
         }
     }
diff --git a/src/com/android/settings/widget/CarrierDemoPasswordDialogFragment.java b/src/com/android/settings/widget/CarrierDemoPasswordDialogFragment.java
deleted file mode 100644
index 8482b9f..0000000
--- a/src/com/android/settings/widget/CarrierDemoPasswordDialogFragment.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.widget;
-
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.Fragment;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.res.TypedArray;
-import android.os.Bundle;
-import android.text.Editable;
-import android.text.InputType;
-import android.text.TextUtils;
-import android.text.TextWatcher;
-import android.util.Log;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.Button;
-import android.widget.EditText;
-
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.util.HexDump;
-import com.android.settings.R;
-
-import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-public class CarrierDemoPasswordDialogFragment extends InstrumentedDialogFragment {
-
-    private static final String TAG = "CarrierDemoPasswordDF";
-
-    private MessageDigest mMessageDigest;
-
-    public CarrierDemoPasswordDialogFragment() {
-        try {
-            mMessageDigest = MessageDigest.getInstance("SHA-256");
-        } catch (NoSuchAlgorithmException e) {
-            Log.e(TAG, "Unable to verify demo mode password", e);
-        }
-    }
-
-    @Override
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-        final AlertDialog dialog = new AlertDialog.Builder(getContext())
-                .setPositiveButton(R.string.retail_demo_reset_next,
-                        new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                        final Fragment parentFragment = getParentFragment();
-                        if (parentFragment instanceof Callback
-                                && which == DialogInterface.BUTTON_POSITIVE) {
-                            ((Callback) parentFragment).onPasswordVerified();
-                        }
-                    }
-                })
-                .setNegativeButton(android.R.string.cancel, null)
-                .setMessage(R.string.retail_demo_reset_message)
-                .setTitle(R.string.retail_demo_reset_title)
-                .create();
-
-        final Context context = dialog.getContext();
-        final EditText passwordField = new EditText(context);
-        passwordField.setSingleLine();
-        passwordField.setInputType(InputType.TYPE_CLASS_TEXT
-                | InputType.TYPE_TEXT_VARIATION_PASSWORD);
-        passwordField.addTextChangedListener(new TextWatcher() {
-            @Override
-            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-                // no-op
-            }
-
-            @Override
-            public void onTextChanged(CharSequence s, int start, int before, int count) {
-                verifyPassword(dialog, passwordField.getText().toString());
-            }
-
-            @Override
-            public void afterTextChanged(Editable s) {
-                // no-op
-            }
-        });
-
-        dialog.setOnShowListener(new DialogInterface.OnShowListener() {
-            @Override
-            public void onShow(DialogInterface dialogInterface) {
-                verifyPassword(dialog, passwordField.getText().toString());
-                passwordField.requestFocus();
-                final InputMethodManager imm = (InputMethodManager) getContext().getSystemService(
-                        Context.INPUT_METHOD_SERVICE);
-                imm.showSoftInput(passwordField, InputMethodManager.SHOW_IMPLICIT);
-            }
-        });
-        dialog.setCanceledOnTouchOutside(false);
-
-        final TypedArray a = context.obtainStyledAttributes(
-                new int[] { android.R.attr.dialogPreferredPadding });
-        final int sidePadding = a.getDimensionPixelSize(0, 0);
-        dialog.setView(passwordField, sidePadding, 0, sidePadding, 0);
-        a.recycle();
-
-        return dialog;
-    }
-
-    private void verifyPassword(AlertDialog dialog, String input) {
-        final Button positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
-        if (mMessageDigest == null || TextUtils.isEmpty(input)) {
-            positiveButton.setEnabled(false);
-            return;
-        }
-        final String passwordHash = getContext().getString(
-                com.android.internal.R.string.config_carrierDemoModePassword);
-        if (passwordHash == null || TextUtils.isEmpty(passwordHash)) {
-            // This device does not support carrier demo mode.
-            return;
-        }
-        final byte[] inputDigest = mMessageDigest.digest(input.getBytes());
-        final String inputHash = HexDump.toHexString(inputDigest, 0, inputDigest.length, false);
-        positiveButton.setEnabled(TextUtils.equals(passwordHash, inputHash));
-    }
-
-    @Override
-    public int getMetricsCategory() {
-        return MetricsEvent.CARRIER_DEMO_MODE_PASSWORD;
-    }
-
-    public interface Callback {
-        void onPasswordVerified();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/EncryptionAndCredentialTest.java b/tests/robotests/src/com/android/settings/EncryptionAndCredentialTest.java
index bc88b1a..7a3875e 100644
--- a/tests/robotests/src/com/android/settings/EncryptionAndCredentialTest.java
+++ b/tests/robotests/src/com/android/settings/EncryptionAndCredentialTest.java
@@ -16,23 +16,110 @@
 
 package com.android.settings;
 
+import static android.app.admin.DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE;
+import static android.app.admin.DevicePolicyManager.ENCRYPTION_STATUS_INACTIVE;
+import static com.android.settings.EncryptionAndCredential.SEARCH_INDEX_DATA_PROVIDER;
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+import android.app.admin.DevicePolicyManager;
+import android.content.Context;
+import android.os.UserManager;
+import android.provider.SearchIndexableResource;
+
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 
-import static com.google.common.truth.Truth.assertThat;
-
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.ArrayList;
+import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class EncryptionAndCredentialTest {
 
+    @Mock
+    private UserManager mUserManager;
+    @Mock
+    private DevicePolicyManager mDevicePolicyManager;
+
+    private ShadowApplication mApplication;
+    private Context mContext;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mApplication = ShadowApplication.getInstance();
+        mApplication.setSystemService(Context.DEVICE_POLICY_SERVICE, mDevicePolicyManager);
+        mApplication.setSystemService(Context.USER_SERVICE, mUserManager);
+        mContext = mApplication.getApplicationContext();
+    }
+
     @Test
     public void getMetricsCategory_shouldReturnEncryptionAndCredential() {
         EncryptionAndCredential fragment = new EncryptionAndCredential();
         assertThat(fragment.getMetricsCategory()).isEqualTo(MetricsEvent.ENCRYPTION_AND_CREDENTIAL);
     }
 
+    // Search provider tests
+    @Test
+    public void getXmlResourcesToIndex_shouldReturnAllXmls() {
+        final List<SearchIndexableResource> index =
+                SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+                        mContext, true /* enabled */);
+
+        assertThat(index).hasSize(3);
+    }
+
+    @Test
+    public void getNonIndexableKeys_pageIsDisabled_shouldReturnAllKeysAsNonIndexable() {
+        when(mUserManager.isAdminUser()).thenReturn(false);
+
+        final List<SearchIndexableResource> index =
+                SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(mContext, true /* enabled */);
+        final List<String> expectedKeys = new ArrayList<>();
+        for (SearchIndexableResource res : index) {
+            expectedKeys.addAll(((BaseSearchIndexProvider) SEARCH_INDEX_DATA_PROVIDER)
+                    .getNonIndexableKeysFromXml(mContext, res.xmlResId));
+        }
+        final List<String> keys = SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
+
+        assertThat(keys).containsExactlyElementsIn(expectedKeys);
+    }
+
+    @Test
+    public void getNonIndexableKeys_deviceEncrypted_shouldReturnUnencryptedKeys() {
+        when(mUserManager.isAdminUser()).thenReturn(true);
+        when(mDevicePolicyManager.getStorageEncryptionStatus()).thenReturn(
+                ENCRYPTION_STATUS_ACTIVE);
+
+        final List<String> expectedKeys = new ArrayList<>();
+        expectedKeys.addAll(((BaseSearchIndexProvider) SEARCH_INDEX_DATA_PROVIDER)
+                .getNonIndexableKeysFromXml(mContext, R.xml.security_settings_unencrypted));
+        final List<String> keys = SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
+
+        assertThat(keys).containsExactlyElementsIn(expectedKeys);
+    }
+
+    @Test
+    public void getNonIndexableKeys_deviceNotEncrypted_shouldReturnEncryptedKeys() {
+        when(mUserManager.isAdminUser()).thenReturn(true);
+        when(mDevicePolicyManager.getStorageEncryptionStatus())
+                .thenReturn(ENCRYPTION_STATUS_INACTIVE);
+
+        final List<String> expectedKeys = new ArrayList<>();
+        expectedKeys.addAll(((BaseSearchIndexProvider) SEARCH_INDEX_DATA_PROVIDER)
+                .getNonIndexableKeysFromXml(mContext, R.xml.security_settings_encrypted));
+        final List<String> keys = SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
+
+        assertThat(keys).containsExactlyElementsIn(expectedKeys);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/MasterClearTest.java b/tests/robotests/src/com/android/settings/MasterClearTest.java
index 8e8578f..edad391 100644
--- a/tests/robotests/src/com/android/settings/MasterClearTest.java
+++ b/tests/robotests/src/com/android/settings/MasterClearTest.java
@@ -27,6 +27,7 @@
 import android.app.Activity;
 import android.app.Fragment;
 import android.content.ContentResolver;
+import android.content.Intent;
 import android.os.Bundle;
 import android.provider.Settings;
 import android.view.LayoutInflater;
@@ -36,6 +37,8 @@
 import android.widget.ScrollView;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.ShadowUtils;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -43,11 +46,10 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowActivity;
 
-
-
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class MasterClearTest {
@@ -167,6 +169,22 @@
         assertThat(mMasterClear.hasReachedBottom(mScrollView)).isTrue();
     }
 
+    @Test
+    @Config(shadows = { ShadowUtils.class, SettingsShadowResources.class })
+    public void testInitiateMasterClear_inDemoMode_sendsIntent() {
+        SettingsShadowResources.overrideResource(
+            com.android.internal.R.string.config_demoModePackage, "package");
+
+        ShadowUtils.setIsDemoUser(true);
+
+        mMasterClear.mInitiateListener.onClick(
+                mContentView.findViewById(R.id.initiate_master_clear));
+        final Intent intent = mShadowActivity.getNextStartedActivity();
+        assertThat(Intent.ACTION_FACTORY_RESET).isEqualTo(intent.getAction());
+        final String packageName = Utils.getDemoModePackageName(RuntimeEnvironment.application);
+        assertThat(packageName).isEqualTo(intent.getPackage());
+    }
+
     private void initScrollView(int height, int scrollY, int childBottom) {
         when(mScrollView.getHeight()).thenReturn(height);
         when(mScrollView.getScrollY()).thenReturn(scrollY);
diff --git a/tests/robotests/src/com/android/settings/UtilsTest.java b/tests/robotests/src/com/android/settings/UtilsTest.java
index 93ab406..eaa380c 100644
--- a/tests/robotests/src/com/android/settings/UtilsTest.java
+++ b/tests/robotests/src/com/android/settings/UtilsTest.java
@@ -16,15 +16,18 @@
 import android.net.Network;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
+import android.os.UserManager;
 import android.os.storage.DiskInfo;
 import android.os.storage.StorageManager;
 import android.os.storage.VolumeInfo;
+import android.provider.Settings;
 import android.text.SpannableStringBuilder;
 import android.text.format.DateUtils;
 import android.text.style.TtsSpan;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 
+import com.android.settings.testutils.shadow.ShadowSecureSettings;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java
index 41fe2c2..0aeff2d 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java
@@ -26,8 +26,6 @@
 import android.content.Context;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
-import android.text.SpannableStringBuilder;
-import android.text.style.ForegroundColorSpan;
 
 import com.android.settings.TestConfig;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -74,14 +72,9 @@
         mController.updateDeviceName(mPreference, DEVICE_NAME);
 
         final CharSequence summary = mPreference.getSummary();
-        final Object[] spans = ((SpannableStringBuilder) summary).getSpans(0, summary.length(),
-                Object.class);
         assertThat(summary.toString())
                 .isEqualTo("Visible as 'Nightshade' to other devices");
-
-        // Test summary only has one color span
-        assertThat(spans).asList().hasSize(1);
-        assertThat(spans[0]).isInstanceOf(ForegroundColorSpan.class);
+        assertThat(mPreference.isSelectable()).isFalse();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
index 8a651a7..d60571c 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
@@ -15,6 +15,7 @@
  */
 package com.android.settings.bluetooth;
 
+import android.bluetooth.BluetoothClass;
 import android.bluetooth.BluetoothDevice;
 import android.content.Context;
 import android.os.UserManager;
@@ -136,4 +137,13 @@
 
         assertThat(mPreference.shouldHideSecondTarget()).isFalse();
     }
+
+    @Test
+    public void imagingDeviceIcon_isICSettingsPrint() {
+        when(mCachedBluetoothDevice.getBtClass()).thenReturn(
+                new BluetoothClass(BluetoothClass.Device.Major.IMAGING));
+        mPreference.onDeviceAttributesChanged();
+        assertThat(mPreference.getIcon()).isEqualTo(
+                mContext.getDrawable(R.drawable.ic_settings_print));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java
index 78c1d1a..df25a50 100644
--- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java
@@ -19,6 +19,7 @@
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyInt;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.never;
@@ -29,7 +30,10 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
+import android.hardware.fingerprint.FingerprintManager;
+
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.Settings.AmbientDisplaySuggestionActivity;
@@ -72,6 +76,12 @@
     private SuggestionParser mSuggestionParser;
     @Mock
     private Tile mSuggestion;
+    @Mock
+    private PackageManager mPackageManager;
+    @Mock
+    private FingerprintManager mFingerprintManager;
+    @Mock
+    private SharedPreferences mSharedPreferences;
 
     private FakeFeatureFactory mFactory;
     private SuggestionFeatureProviderImpl mProvider;
@@ -81,7 +91,12 @@
         MockitoAnnotations.initMocks(this);
         FakeFeatureFactory.setupForTest(mContext);
         mFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        // Explicit casting to object due to MockitoCast bug
+        when((Object) mContext.getSystemService(FingerprintManager.class))
+                .thenReturn(mFingerprintManager);
         when(mContext.getApplicationContext()).thenReturn(RuntimeEnvironment.application);
+
         mSuggestion.intent = new Intent().setClassName("pkg", "cls");
         mSuggestion.category = "category";
 
@@ -196,39 +211,56 @@
     }
 
     @Test
-    @Config(shadows = SettingsShadowResources.class)
-    public void isSuggestionCompleted_swipeToNotification_trueWhenNotAvailable() {
-        SettingsShadowResources.overrideResource(
-                com.android.internal.R.bool.config_supportSystemNavigationKeys, false);
+    public void isSuggestionCompleted_swipeToNotification_trueWhenNotHardwareNotAvailable() {
+        stubFingerprintSupported(true);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
+        when(mContext.getResources().
+                getBoolean(com.android.internal.R.bool.config_supportSystemNavigationKeys))
+                .thenReturn(true);
 
-        assertThat(mProvider.isSuggestionCompleted(RuntimeEnvironment.application,
-                new ComponentName(RuntimeEnvironment.application,
-                        SwipeToNotificationSuggestionActivity.class))).isTrue();
+        assertThat(mProvider.isSuggestionCompleted(mContext,
+                new ComponentName(mContext, SwipeToNotificationSuggestionActivity.class))).isTrue();
     }
 
     @Test
-    @Config(shadows = SettingsShadowResources.class)
+    public void isSuggestionCompleted_swipeToNotification_trueWhenNotAvailable() {
+        stubFingerprintSupported(true);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
+        when(mContext.getResources().
+                getBoolean(com.android.internal.R.bool.config_supportSystemNavigationKeys))
+                .thenReturn(false);
+
+        assertThat(mProvider.isSuggestionCompleted(mContext,
+                new ComponentName(mContext, SwipeToNotificationSuggestionActivity.class))).isTrue();
+    }
+
+    @Test
     public void isSuggestionCompleted_swipeToNotification_falseWhenNotVisited() {
-        SettingsShadowResources.overrideResource(
-                com.android.internal.R.bool.config_supportSystemNavigationKeys, true);
+        stubFingerprintSupported(true);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
+        when(mContext.getResources().
+                getBoolean(com.android.internal.R.bool.config_supportSystemNavigationKeys))
+                .thenReturn(true);
         // No stored value in shared preferences if not visited yet.
 
-        assertThat(mProvider.isSuggestionCompleted(RuntimeEnvironment.application,
-                new ComponentName(RuntimeEnvironment.application,
+        assertThat(mProvider.isSuggestionCompleted(mContext,
+                new ComponentName(mContext,
                         SwipeToNotificationSuggestionActivity.class))).isFalse();
     }
 
     @Test
-    @Config(shadows = SettingsShadowResources.class)
     public void isSuggestionCompleted_swipeToNotification_trueWhenVisited() {
-        SettingsShadowResources.overrideResource(
-                com.android.internal.R.bool.config_supportSystemNavigationKeys, true);
-        mProvider.getSharedPrefs(RuntimeEnvironment.application).edit().putBoolean(
-                SwipeToNotificationSettings.PREF_KEY_SUGGESTION_COMPLETE, true).commit();
+        stubFingerprintSupported(true);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
+        when(mContext.getResources().
+                getBoolean(com.android.internal.R.bool.config_supportSystemNavigationKeys))
+                .thenReturn(true);
+        when(mContext.getSharedPreferences(anyString(), anyInt())).thenReturn(mSharedPreferences);
+        when(mSharedPreferences.getBoolean(
+                SwipeToNotificationSettings.PREF_KEY_SUGGESTION_COMPLETE, false)).thenReturn(true);
 
-        assertThat(mProvider.isSuggestionCompleted(RuntimeEnvironment.application,
-                new ComponentName(RuntimeEnvironment.application,
-                        SwipeToNotificationSuggestionActivity.class))).isTrue();
+        assertThat(mProvider.isSuggestionCompleted(mContext,
+                new ComponentName(mContext, SwipeToNotificationSuggestionActivity.class))).isTrue();
     }
 
     @Test
@@ -313,6 +345,11 @@
                         PackageManager.DONT_KILL_APP);
     }
 
+    private void stubFingerprintSupported(boolean enabled) {
+        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT))
+                .thenReturn(enabled);
+    }
+
     @Test
     public void filterExclusiveSuggestions_shouldOnlyKeepFirst3() {
         final List<Tile> suggestions = new ArrayList<>();
diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionsChecksTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionsChecksTest.java
index 5f3c0f0..e775136 100644
--- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionsChecksTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionsChecksTest.java
@@ -78,6 +78,7 @@
     public void testFingerprintEnrollmentIntroductionIsCompleteWhenFingerprintAdded() {
         stubFingerprintSupported(true);
         when(mFingerprintManager.hasEnrolledFingerprints()).thenReturn(true);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         Tile tile = createFingerprintTile();
         assertThat(mSuggestionsChecks.isSuggestionComplete(tile)).isTrue();
     }
@@ -86,10 +87,20 @@
     public void testFingerprintEnrollmentIntroductionIsNotCompleteWhenNoFingerprintAdded() {
         stubFingerprintSupported(true);
         when(mFingerprintManager.hasEnrolledFingerprints()).thenReturn(false);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         Tile tile = createFingerprintTile();
         assertThat(mSuggestionsChecks.isSuggestionComplete(tile)).isFalse();
     }
 
+    @Test
+    public void testFingerprintEnrollmentIntroductionIsCompleteWhenHardwareNotDetected() {
+        stubFingerprintSupported(true);
+        when(mFingerprintManager.hasEnrolledFingerprints()).thenReturn(false);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
+        Tile tile = createFingerprintTile();
+        assertThat(mSuggestionsChecks.isSuggestionComplete(tile)).isTrue();
+    }
+
 
     @Test
     public void testFingerprintEnrollmentIntroductionIsCompleteWhenFingerprintNotSupported() {
@@ -102,6 +113,7 @@
     public void testFingerprintEnrollmentIntroductionIsCompleteWhenFingerprintDisabled() {
         stubFingerprintSupported(true);
         when(mFingerprintManager.hasEnrolledFingerprints()).thenReturn(false);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         when(mDevicePolicyManager.getKeyguardDisabledFeatures(any(), anyInt()))
                 .thenReturn(DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT);
 
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java
index d3c6a25..bd40240 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java
@@ -42,6 +42,7 @@
 import com.android.settings.testutils.shadow.SettingsShadowResources;
 import com.android.settingslib.deviceinfo.StorageVolumeProvider;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -70,6 +71,8 @@
 
     @Before
     public void setUp() throws Exception {
+        SettingsShadowResources.overrideResource(
+                com.android.internal.R.string.config_headlineFontFamily, "");
         mContext = spy(RuntimeEnvironment.application.getApplicationContext());
         FakeFeatureFactory.setupForTest(mContext);
         mFakeFeatureFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
@@ -84,6 +87,11 @@
         mHolder = PreferenceViewHolder.createInstanceForTests(view);
     }
 
+    @After
+    public void tearDown() {
+        SettingsShadowResources.reset();
+    }
+
     @Test
     public void testEmpty() throws Exception {
         mController.updateBytes(0, 32 * GIGABYTE);
diff --git a/tests/robotests/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceControllerTest.java
index f01190a..4d40300 100644
--- a/tests/robotests/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceControllerTest.java
@@ -22,13 +22,16 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.content.ContentResolver;
 import android.content.Context;
 import android.provider.Settings;
 import android.support.v14.preference.SwitchPreference;
 
 import com.android.internal.hardware.AmbientDisplayConfiguration;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
+import com.android.settings.search.InlinePayload;
+import com.android.settings.search.InlineSwitchPayload;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.ShadowSecureSettings;
 
 import org.junit.Before;
@@ -115,4 +118,34 @@
 
         assertThat(mController.isAvailable()).isFalse();
     }
+
+    @Test
+    public void testPreferenceController_ProperResultPayloadType() {
+        assertThat(mController.getResultPayload()).isInstanceOf(InlineSwitchPayload.class);
+    }
+
+    @Test
+    @Config(shadows = ShadowSecureSettings.class)
+    public void testSetValue_updatesCorrectly() {
+        int newValue = 1;
+        ContentResolver resolver = mContext.getContentResolver();
+        Settings.Secure.putInt(resolver, Settings.Secure.DOZE_ALWAYS_ON, 0);
+
+        ((InlinePayload) mController.getResultPayload()).setValue(mContext, newValue);
+        int updatedValue = Settings.Secure.getInt(resolver, Settings.Secure.DOZE_ALWAYS_ON, -1);
+
+        assertThat(updatedValue).isEqualTo(newValue);
+    }
+
+    @Test
+    @Config(shadows = ShadowSecureSettings.class)
+    public void testGetValue_correctValueReturned() {
+        int currentValue = 1;
+        ContentResolver resolver = mContext.getContentResolver();
+        Settings.Secure.putInt(resolver, Settings.Secure.DOZE_ALWAYS_ON, currentValue);
+
+        int newValue = ((InlinePayload) mController.getResultPayload()).getValue(mContext);
+
+        assertThat(newValue).isEqualTo(currentValue);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
index d506a8e..474b278 100644
--- a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
@@ -231,6 +231,7 @@
 
     @Test
     public void testGetMaximumFailedPasswordsForWipeInCurrentUser() {
+        when(mDevicePolicyManager.getDeviceOwnerComponentOnCallingUser()).thenReturn(null);
         when(mDevicePolicyManager.getProfileOwnerAsUser(MY_USER_ID)).thenReturn(null);
         when(mDevicePolicyManager.getMaximumFailedPasswordsForWipe(OWNER, MY_USER_ID))
                 .thenReturn(10);
@@ -238,6 +239,10 @@
 
         when(mDevicePolicyManager.getProfileOwnerAsUser(MY_USER_ID)).thenReturn(OWNER);
         assertThat(mProvider.getMaximumFailedPasswordsBeforeWipeInCurrentUser()).isEqualTo(10);
+
+        when(mDevicePolicyManager.getDeviceOwnerComponentOnCallingUser()).thenReturn(OWNER);
+        when(mDevicePolicyManager.getProfileOwnerAsUser(MY_USER_ID)).thenReturn(null);
+        assertThat(mProvider.getMaximumFailedPasswordsBeforeWipeInCurrentUser()).isEqualTo(10);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryBroadcastReceiverTest.java
index 60d7de3..a163a43 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryBroadcastReceiverTest.java
@@ -37,6 +37,7 @@
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -101,12 +102,14 @@
         doReturn(mChargingIntent).when(mContext).registerReceiver(any(), any());
 
         mBatteryBroadcastReceiver.register();
+        mBatteryBroadcastReceiver.register();
 
         assertThat(mBatteryBroadcastReceiver.mBatteryLevel).isEqualTo(
                 Utils.getBatteryPercentage(mChargingIntent));
         assertThat(mBatteryBroadcastReceiver.mBatteryStatus).isEqualTo(
                 Utils.getBatteryStatus(mContext.getResources(), mChargingIntent));
-        verify(mBatteryListener).onBatteryChanged();
+        // 2 times because register will force update the battery
+        verify(mBatteryListener, times(2)).onBatteryChanged();
     }
 
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
index 9243040..99b9ba9 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
@@ -483,9 +483,9 @@
         doReturn(mAnomalyDetectionPolicy).when(mFragment).getAnomalyDetectionPolicy();
         when(mAnomalyDetectionPolicy.isAnomalyDetectionEnabled()).thenReturn(true);
 
-        mFragment.initAnomalyDetectionIfPossible();
+        mFragment.restartAnomalyDetectionIfPossible();
 
-        verify(mLoaderManager).initLoader(eq(PowerUsageSummary.ANOMALY_LOADER), eq(Bundle.EMPTY),
+        verify(mLoaderManager).restartLoader(eq(PowerUsageSummary.ANOMALY_LOADER), eq(Bundle.EMPTY),
                 any());
     }
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyTest.java b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyTest.java
index 759f0fd..13a5b31 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyTest.java
@@ -23,6 +23,7 @@
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.annotation.Config;
@@ -36,10 +37,14 @@
     private static long WAKE_LOCK_TIME_MS = 1500;
     private static String PACKAGE_NAME = "com.android.settings";
     private static String DISPLAY_NAME = "settings";
+    private static long BLUETOOTH_TIME_MS = 2555555;
+    private static int WAKEUP_ALARM_COUNT = 100;
 
-    @Test
-    public void testBuilder_buildCorrectly() {
-        Anomaly anomaly = new Anomaly.Builder()
+    private Anomaly mAnomaly;
+
+    @Before
+    public void setUp() {
+        mAnomaly = new Anomaly.Builder()
                 .setType(TYPE)
                 .setUid(UID)
                 .setWakeLockTimeMs(WAKE_LOCK_TIME_MS)
@@ -47,14 +52,28 @@
                 .setDisplayName(DISPLAY_NAME)
                 .setTargetSdkVersion(SDK_VERSION)
                 .setBackgroundRestrictionEnabled(true)
+                .setBluetoothScanningTimeMs(BLUETOOTH_TIME_MS)
+                .setWakeupAlarmCount(WAKEUP_ALARM_COUNT)
                 .build();
+    }
 
-        assertThat(anomaly.type).isEqualTo(TYPE);
-        assertThat(anomaly.uid).isEqualTo(UID);
-        assertThat(anomaly.wakelockTimeMs).isEqualTo(WAKE_LOCK_TIME_MS);
-        assertThat(anomaly.packageName).isEqualTo(PACKAGE_NAME);
-        assertThat(anomaly.displayName).isEqualTo(DISPLAY_NAME);
-        assertThat(anomaly.targetSdkVersion).isEqualTo(SDK_VERSION);
-        assertThat(anomaly.backgroundRestrictionEnabled).isTrue();
+    @Test
+    public void testBuilder_buildCorrectly() {
+        assertThat(mAnomaly.type).isEqualTo(TYPE);
+        assertThat(mAnomaly.uid).isEqualTo(UID);
+        assertThat(mAnomaly.wakelockTimeMs).isEqualTo(WAKE_LOCK_TIME_MS);
+        assertThat(mAnomaly.packageName).isEqualTo(PACKAGE_NAME);
+        assertThat(mAnomaly.displayName).isEqualTo(DISPLAY_NAME);
+        assertThat(mAnomaly.targetSdkVersion).isEqualTo(SDK_VERSION);
+        assertThat(mAnomaly.backgroundRestrictionEnabled).isTrue();
+        assertThat(mAnomaly.wakeupAlarmCount).isEqualTo(WAKEUP_ALARM_COUNT);
+        assertThat(mAnomaly.bluetoothScanningTimeMs).isEqualTo(BLUETOOTH_TIME_MS);
+    }
+
+    @Test
+    public void testToString() {
+        assertThat(mAnomaly.toString()).isEqualTo(
+                "type=wakelock uid=111 package=com.android.settings displayName=settings"
+                        + " wakelockTimeMs=1500 wakeupAlarmCount=100 bluetoothTimeMs=2555555");
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetectorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetectorTest.java
index d21687c..f8d02ff 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetectorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetectorTest.java
@@ -155,6 +155,7 @@
         return new Anomaly.Builder()
                 .setUid(uid)
                 .setType(Anomaly.AnomalyType.BLUETOOTH_SCAN)
+                .setBluetoothScanningTimeMs(ANOMALY_BLUETOOTH_SCANNING_TIME)
                 .build();
     }
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/WakeLockAnomalyDetectorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/WakeLockAnomalyDetectorTest.java
index f53e8a0..d7682ea 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/WakeLockAnomalyDetectorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/WakeLockAnomalyDetectorTest.java
@@ -99,6 +99,8 @@
     private WakeLockAnomalyDetector mWakelockAnomalyDetector;
     private Context mContext;
     private List<BatterySipper> mUsageList;
+    private Anomaly mAnomaly;
+    private Anomaly mTargetAnomaly;
 
     @Before
     public void setUp() throws Exception {
@@ -152,41 +154,40 @@
         mUsageList.add(mTargetSipper);
         mUsageList.add(mInactiveSipper);
         doReturn(mUsageList).when(mBatteryStatsHelper).getUsageList();
+
+        mAnomaly = createWakeLockAnomaly(ANOMALY_UID);
+        mTargetAnomaly = createWakeLockAnomaly(TARGET_UID);
     }
 
     @Test
     public void testDetectAnomalies_containsAnomaly_detectIt() {
         doReturn(BatteryUtils.UID_NULL).when(mBatteryUtils).getPackageUid(nullable(String.class));
-        final Anomaly anomaly = new Anomaly.Builder()
-                .setUid(ANOMALY_UID)
-                .setType(Anomaly.AnomalyType.WAKE_LOCK)
-                .build();
-        final Anomaly targetAnomaly = new Anomaly.Builder()
-                .setUid(TARGET_UID)
-                .setType(Anomaly.AnomalyType.WAKE_LOCK)
-                .build();
 
         List<Anomaly> mAnomalies = mWakelockAnomalyDetector.detectAnomalies(mBatteryStatsHelper);
 
-        assertThat(mAnomalies).containsExactly(anomaly, targetAnomaly);
+        assertThat(mAnomalies).containsExactly(mAnomaly, mTargetAnomaly);
     }
 
     @Test
     public void testDetectAnomalies_containsTargetPackage_detectIt() {
         doReturn(TARGET_UID).when(mBatteryUtils).getPackageUid(TARGET_PACKAGE_NAME);
-        final Anomaly targetAnomaly = new Anomaly.Builder()
-                .setUid(TARGET_UID)
-                .setType(Anomaly.AnomalyType.WAKE_LOCK)
-                .build();
 
         List<Anomaly> mAnomalies = mWakelockAnomalyDetector.detectAnomalies(mBatteryStatsHelper,
                 TARGET_PACKAGE_NAME);
 
-        assertThat(mAnomalies).containsExactly(targetAnomaly);
+        assertThat(mAnomalies).containsExactly(mTargetAnomaly);
     }
 
     @Test
     public void testContainsThresholdFromPolicy() {
         assertThat(mWakelockAnomalyDetector.mWakeLockThresholdMs).isEqualTo(WAKELOCK_THRESHOLD_MS);
     }
+
+    private Anomaly createWakeLockAnomaly(int uid) {
+        return new Anomaly.Builder()
+                .setUid(uid)
+                .setType(Anomaly.AnomalyType.WAKE_LOCK)
+                .setWakeLockTimeMs(ANOMALY_WAKELOCK_TIME_MS)
+                .build();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetectorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetectorTest.java
index 27d8524..55be734 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetectorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetectorTest.java
@@ -69,6 +69,7 @@
             1 * DateUtils.HOUR_IN_MILLIS + 10 * DateUtils.MINUTE_IN_MILLIS;
     private static final int ANOMALY_WAKEUP_COUNT = 500;
     private static final int NORMAL_WAKEUP_COUNT = 61;
+    private static final int ANOMALY_WAKEUP_FREQUENCY = 428; // count per hour
     @Mock
     private BatteryStatsHelper mBatteryStatsHelper;
     @Mock
@@ -145,6 +146,7 @@
                 .setType(Anomaly.AnomalyType.WAKEUP_ALARM)
                 .setTargetSdkVersion(ANOMALY_SDK)
                 .setBackgroundRestrictionEnabled(ANOMALY_BACKGROUND_RESTRICTION_ON)
+                .setWakeupAlarmCount(ANOMALY_WAKEUP_FREQUENCY)
                 .build();
         mTargetAnomaly = new Anomaly.Builder()
                 .setUid(TARGET_UID)
@@ -152,6 +154,7 @@
                 .setType(Anomaly.AnomalyType.WAKEUP_ALARM)
                 .setTargetSdkVersion(TARGET_SDK)
                 .setBackgroundRestrictionEnabled(TARGET_BACKGROUND_RESTRICTION_ON)
+                .setWakeupAlarmCount(ANOMALY_WAKEUP_FREQUENCY)
                 .build();
 
         mWakeupAlarmAnomalyDetector = spy(
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
index b00a511..3b92ed1 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
@@ -18,7 +18,9 @@
 
 import android.content.ContentResolver;
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.content.res.Resources;
+import android.hardware.fingerprint.FingerprintManager;
 import android.provider.Settings;
 
 import com.android.settings.search.InlinePayload;
@@ -52,6 +54,10 @@
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mContext;
+    @Mock
+    private PackageManager mPackageManager;
+    @Mock
+    private FingerprintManager mFingerprintManager;
 
     private SwipeToNotificationPreferenceController mController;
     private static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint";
@@ -60,10 +66,27 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mController = new SwipeToNotificationPreferenceController(mContext, null, KEY_SWIPE_DOWN);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        // Explicit casting to object due to MockitoCast bug
+        when((Object) mContext.getSystemService(FingerprintManager.class))
+                .thenReturn(mFingerprintManager);
+    }
+
+    @Test
+    public void isAvailable_hardwareNotAvailable_shouldReturnFalse() {
+        stubFingerprintSupported(true);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
+        when(mContext.getResources().
+                getBoolean(com.android.internal.R.bool.config_supportSystemNavigationKeys))
+                .thenReturn(true);
+
+        assertThat(mController.isAvailable()).isFalse();
     }
 
     @Test
     public void isAvailable_configIsTrue_shouldReturnTrue() {
+        stubFingerprintSupported(true);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         when(mContext.getResources().
                 getBoolean(com.android.internal.R.bool.config_supportSystemNavigationKeys))
                 .thenReturn(true);
@@ -73,6 +96,8 @@
 
     @Test
     public void isAvailable_configIsFalse_shouldReturnFalse() {
+        stubFingerprintSupported(true);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         when(mContext.getResources().
                 getBoolean(com.android.internal.R.bool.config_supportSystemNavigationKeys))
                 .thenReturn(false);
@@ -82,6 +107,8 @@
 
     @Test
     public void testSwitchEnabled_configIsSet_shouldReturnTrue() {
+        stubFingerprintSupported(true);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         // Set the setting to be enabled.
         final Context context = ShadowApplication.getInstance().getApplicationContext();
         Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 1);
@@ -92,6 +119,8 @@
 
     @Test
     public void testSwitchEnabled_configIsNotSet_shouldReturnFalse() {
+        stubFingerprintSupported(true);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         // Set the setting to be disabled.
         final Context context = ShadowApplication.getInstance().getApplicationContext();
         Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 0);
@@ -139,4 +168,9 @@
 
         assertThat(newValue).isEqualTo(currentValue);
     }
+
+    private void stubFingerprintSupported(boolean enabled) {
+        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT))
+                .thenReturn(enabled);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
index 3e9c39c..39a0fb6 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
@@ -38,6 +38,8 @@
 import com.android.settings.testutils.shadow.ShadowEventLogWriter;
 import com.android.settings.testutils.shadow.ShadowUtils;
 
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.Robolectric;
@@ -66,6 +68,17 @@
         })
 public class SetupChooseLockPasswordTest {
 
+    @Before
+    public void setUp() throws Exception {
+        SettingsShadowResources.overrideResource(
+                com.android.internal.R.string.config_headlineFontFamily, "");
+    }
+
+    @After
+    public void tearDown() {
+        SettingsShadowResources.reset();
+    }
+
     @Test
     public void createActivity_shouldNotCrash() {
         // Basic sanity test for activity created without crashing
diff --git a/tests/robotests/src/com/android/settings/search/CursorToSearchResultConverterTest.java b/tests/robotests/src/com/android/settings/search/CursorToSearchResultConverterTest.java
index 1aed11d..f7628ca 100644
--- a/tests/robotests/src/com/android/settings/search/CursorToSearchResultConverterTest.java
+++ b/tests/robotests/src/com/android/settings/search/CursorToSearchResultConverterTest.java
@@ -220,7 +220,7 @@
         final Intent intent = new Intent();
         intent.putExtra(intentKey, intentVal);
         final InlineSwitchPayload payload = new InlineSwitchPayload(uri, source, 1 /* onValue */,
-                intent, true /* isDeviceSupported */);
+                intent, true /* isDeviceSupported */, 0 /* defautValue */);
 
         cursor.addRow(new Object[]{
                 KEY.hashCode(),      // Doc ID
diff --git a/tests/robotests/src/com/android/settings/search/DatabaseIndexingManagerTest.java b/tests/robotests/src/com/android/settings/search/DatabaseIndexingManagerTest.java
index 711b355..3641368 100644
--- a/tests/robotests/src/com/android/settings/search/DatabaseIndexingManagerTest.java
+++ b/tests/robotests/src/com/android/settings/search/DatabaseIndexingManagerTest.java
@@ -17,12 +17,28 @@
 
 package com.android.settings.search;
 
+import static android.provider.SearchIndexablesContract.INDEXABLES_RAW_COLUMNS;
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyList;
+import static org.mockito.Matchers.anyMap;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.content.ContentProvider;
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ProviderInfo;
 import android.content.pm.ResolveInfo;
@@ -35,10 +51,10 @@
 import android.util.ArrayMap;
 
 import com.android.settings.R;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.testutils.DatabaseTestUtils;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.ShadowDatabaseIndexingUtils;
 import com.android.settings.testutils.shadow.ShadowRunnableAsyncTask;
 
@@ -62,21 +78,6 @@
 import java.util.Map;
 import java.util.Set;
 
-import static android.provider.SearchIndexablesContract.INDEXABLES_RAW_COLUMNS;
-import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anyList;
-import static org.mockito.Matchers.anyMap;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
         shadows = {ShadowRunnableAsyncTask.class})
@@ -746,7 +747,7 @@
     // Test new public indexing flow
 
     @Test
-    @Config(shadows = {ShadowDatabaseIndexingUtils.class,})
+    @Config(shadows = {ShadowDatabaseIndexingUtils.class})
     public void testPerformIndexing_fullIndex_getsDataFromProviders() {
         DummyProvider provider = new DummyProvider();
         provider.onCreate();
@@ -758,7 +759,6 @@
 
         DatabaseIndexingManager manager =
                 spy(new DatabaseIndexingManager(mContext, PACKAGE_ONE));
-        doReturn(true).when(manager).isFullIndex(anyString(), anyString());
 
         manager.performIndexing();
 
@@ -769,17 +769,17 @@
     @Test
     @Config(shadows = {ShadowDatabaseIndexingUtils.class,})
     public void testPerformIndexing_incrementalIndex_noDataAdded() {
+        final List<ResolveInfo> providerInfo = getDummyResolveInfo();
+        skipFullIndex(providerInfo);
         DummyProvider provider = new DummyProvider();
         provider.onCreate();
         ShadowContentResolver.registerProvider(AUTHORITY_ONE, provider);
-
         // Test that Indexables are added for Full indexing
         when(mPackageManager.queryIntentContentProviders(any(Intent.class), anyInt()))
-                .thenReturn(getDummyResolveInfo());
+                .thenReturn(providerInfo);
 
         DatabaseIndexingManager manager =
                 spy(new DatabaseIndexingManager(mContext, PACKAGE_ONE));
-        doReturn(false).when(manager).isFullIndex(anyString(), anyString());
 
         manager.mDataToProcess.dataToUpdate.clear();
 
@@ -805,7 +805,6 @@
         // Initialize the Manager
         DatabaseIndexingManager manager =
                 spy(new DatabaseIndexingManager(mContext, PACKAGE_ONE));
-        doReturn(true).when(manager).isFullIndex(anyString(), anyString());
 
         // Insert data point which will be dropped
         final String oldTitle = "This is French";
@@ -845,7 +844,6 @@
 
         DatabaseIndexingManager manager =
                 spy(new DatabaseIndexingManager(mContext, PACKAGE_ONE));
-        doReturn(true).when(manager).isFullIndex(anyString(), anyString());
 
         manager.performIndexing();
 
@@ -854,6 +852,28 @@
 
     @Test
     @Config(shadows = {ShadowDatabaseIndexingUtils.class,})
+    public void testPerformIndexing_onPackageChange_shouldFullIndex() {
+        final List<ResolveInfo> providers = getDummyResolveInfo();
+        final String buildNumber = Build.FINGERPRINT;
+        final String locale = Locale.getDefault().toString();
+        skipFullIndex(providers);
+
+        // This snapshot is already indexed. Should return false
+        assertThat(IndexDatabaseHelper.isFullIndex(
+                mContext, locale, buildNumber,
+                IndexDatabaseHelper.buildProviderVersionedNames(providers)))
+                .isFalse();
+
+        // Change provider version number, this should trigger full index.
+        providers.get(0).providerInfo.applicationInfo.versionCode++;
+
+        assertThat(IndexDatabaseHelper.isFullIndex(mContext, locale, buildNumber,
+                IndexDatabaseHelper.buildProviderVersionedNames(providers)))
+                .isTrue();
+    }
+
+    @Test
+    @Config(shadows = {ShadowDatabaseIndexingUtils.class,})
     public void testPerformIndexing_onOta_buildNumberIsCached() {
         DummyProvider provider = new DummyProvider();
         provider.onCreate();
@@ -867,7 +887,6 @@
 
         DatabaseIndexingManager manager =
                 spy(new DatabaseIndexingManager(mContext, PACKAGE_ONE));
-        doReturn(true).when(manager).isFullIndex(anyString(), anyString());
 
         manager.performIndexing();
 
@@ -1037,6 +1056,13 @@
 
     // Util functions
 
+    private void skipFullIndex(List<ResolveInfo> providers) {
+        IndexDatabaseHelper.setLocaleIndexed(mContext, Locale.getDefault().toString());
+        IndexDatabaseHelper.setBuildIndexed(mContext, Build.FINGERPRINT);
+        IndexDatabaseHelper.setProvidersIndexed(mContext,
+                IndexDatabaseHelper.buildProviderVersionedNames(providers));
+    }
+
     private SearchIndexableRaw getFakeRaw() {
         return getFakeRaw(localeStr);
     }
@@ -1092,6 +1118,7 @@
         info.providerInfo.exported = true;
         info.providerInfo.authority = AUTHORITY_ONE;
         info.providerInfo.packageName = PACKAGE_ONE;
+        info.providerInfo.applicationInfo = new ApplicationInfo();
         infoList.add(info);
 
         return infoList;
diff --git a/tests/robotests/src/com/android/settings/search/DatabaseRowTest.java b/tests/robotests/src/com/android/settings/search/DatabaseRowTest.java
index 60afff5..a0d3163 100644
--- a/tests/robotests/src/com/android/settings/search/DatabaseRowTest.java
+++ b/tests/robotests/src/com/android/settings/search/DatabaseRowTest.java
@@ -114,7 +114,7 @@
     public void testRowWithInlinePayload_genericPayloadNotAdded() {
         final String URI = "test uri";
         final InlineSwitchPayload payload = new InlineSwitchPayload(URI, 0 /* mSettingSource */,
-                1 /* onValue */, null /* intent */, true /* isDeviceSupported */);
+                1 /* onValue */, null /* intent */, true /* isDeviceSupported */, 1 /* default */);
         mBuilder.setPayload(payload);
         final DatabaseRow row = generateRow();
         final InlineSwitchPayload unmarshalledPayload = ResultPayloadUtils
@@ -133,7 +133,7 @@
         intent.setComponent(component);
 
         final InlineSwitchPayload payload = new InlineSwitchPayload(URI, 0 /* mSettingSource */,
-                1 /* onValue */, intent, true /* isDeviceSupported */);
+                1 /* onValue */, intent, true /* isDeviceSupported */, 1 /* default */);
         mBuilder.setPayload(payload);
         final DatabaseRow row = generateRow();
         final InlineSwitchPayload unmarshalledPayload = ResultPayloadUtils
diff --git a/tests/robotests/src/com/android/settings/search/InlineListPayloadTest.java b/tests/robotests/src/com/android/settings/search/InlineListPayloadTest.java
index 60e24f9..bee8d93 100644
--- a/tests/robotests/src/com/android/settings/search/InlineListPayloadTest.java
+++ b/tests/robotests/src/com/android/settings/search/InlineListPayloadTest.java
@@ -37,7 +37,7 @@
         intent.putExtra(intentKey, intentVal);
 
         InlineListPayload payload = new InlineListPayload(uri, source,
-                intent, true /* isAvailable */, 1);
+                intent, true /* isAvailable */, 1 /* numOptions */, 1 /* default */);
 
         final Intent retainedIntent = payload.getIntent();
         assertThat(payload.mSettingKey).isEqualTo(uri);
@@ -80,7 +80,7 @@
     public void testInputStandardization_inputDoesntChange() {
         InlineListPayload payload = new InlineListPayload(DUMMY_SETTING,
                 ResultPayload.SettingsSource.SYSTEM, null /* intent */, true /* isDeviceSupport */,
-                3 /* numOptions */);
+                3 /* numOptions */, 0 /* default */);
         int input = 2;
 
         assertThat(payload.standardizeInput(input)).isEqualTo(input);
@@ -90,7 +90,7 @@
     public void testSetSystem_negativeValue_throwsError() {
         InlineListPayload payload = new InlineListPayload(DUMMY_SETTING,
                 ResultPayload.SettingsSource.SYSTEM, null /* intent */, true /* isDeviceSupport */,
-                3 /* numOptions */);
+                3 /* numOptions */, 0 /* default */);
 
         payload.setValue(mContext, -1);
     }
@@ -100,7 +100,7 @@
         int maxOptions = 4;
         InlineListPayload payload = new InlineListPayload(DUMMY_SETTING,
                 ResultPayload.SettingsSource.SYSTEM, null /* intent */, true /* isDeviceSupport */,
-                maxOptions /* numOptions */);
+                maxOptions /* numOptions */, 0 /* default */);
 
         payload.setValue(mContext, maxOptions + 1);
     }
diff --git a/tests/robotests/src/com/android/settings/search/InlinePayloadTest.java b/tests/robotests/src/com/android/settings/search/InlinePayloadTest.java
index b2a6211..1747cca 100644
--- a/tests/robotests/src/com/android/settings/search/InlinePayloadTest.java
+++ b/tests/robotests/src/com/android/settings/search/InlinePayloadTest.java
@@ -111,7 +111,7 @@
 
         public ConcreteInlinePayload(String key, @SettingsSource int source, Intent intent,
                 boolean isDeviceSupported) {
-            super(key, source, intent, isDeviceSupported);
+            super(key, source, intent, isDeviceSupported, 0 /* defaultValue */);
         }
 
         @Override
diff --git a/tests/robotests/src/com/android/settings/search/InlineSwitchPayloadTest.java b/tests/robotests/src/com/android/settings/search/InlineSwitchPayloadTest.java
index 2c16c13..b067ea6 100644
--- a/tests/robotests/src/com/android/settings/search/InlineSwitchPayloadTest.java
+++ b/tests/robotests/src/com/android/settings/search/InlineSwitchPayloadTest.java
@@ -61,7 +61,8 @@
         final Intent intent = new Intent();
         intent.putExtra(intentKey, intentVal);
 
-        InlineSwitchPayload payload = new InlineSwitchPayload(uri, source, 1, intent, true);
+        InlineSwitchPayload payload = new InlineSwitchPayload(uri, source, 1, intent, true,
+                1 /* default */);
         final Intent retainedIntent = payload.getIntent();
         assertThat(payload.mSettingKey).isEqualTo(uri);
         assertThat(payload.getType()).isEqualTo(type);
@@ -86,6 +87,7 @@
         parcel.writeInt(source);
         parcel.writeInt(InlineSwitchPayload.TRUE);
         parcel.writeInt(InlineSwitchPayload.TRUE);
+        parcel.writeInt(InlineSwitchPayload.TRUE);
         parcel.setDataPosition(0);
 
         InlineSwitchPayload payload = InlineSwitchPayload.CREATOR.createFromParcel(parcel);
@@ -103,7 +105,7 @@
     public void testGetSystem_flippedSetting_returnsFlippedValue() {
         // Stores 1s as 0s, and vis versa
         InlineSwitchPayload payload = new InlineSwitchPayload(DUMMY_SETTING, SettingsSource.SYSTEM,
-                FLIPPED_ON, null /* intent */, true);
+                FLIPPED_ON, null /* intent */, true, 1 /* default */);
         int currentValue = 1;
         Settings.System.putInt(mContext.getContentResolver(), DUMMY_SETTING, currentValue);
 
@@ -116,7 +118,7 @@
     public void testSetSystem_flippedSetting_updatesToFlippedValue() {
         // Stores 1s as 0s, and vis versa
         InlineSwitchPayload payload = new InlineSwitchPayload(DUMMY_SETTING, SettingsSource.SYSTEM,
-                FLIPPED_ON, null /* intent */, true);
+                FLIPPED_ON, null /* intent */, true, 1 /* default */);
         int newValue = 1;
         ContentResolver resolver = mContext.getContentResolver();
         Settings.System.putInt(resolver, SCREEN_BRIGHTNESS_MODE, newValue);
@@ -130,7 +132,7 @@
     @Test(expected = IllegalArgumentException.class)
     public void testSetSystem_negativeValue_ThrowsError() {
         InlineSwitchPayload payload = new InlineSwitchPayload(DUMMY_SETTING, SettingsSource.SYSTEM,
-                STANDARD_ON, null /* intent */, true);
+                STANDARD_ON, null /* intent */, true, 1 /* default */);
 
         payload.setValue(mContext, -1);
     }
@@ -138,7 +140,7 @@
     @Test(expected = IllegalArgumentException.class)
     public void testSetSystem_highValue_ThrowsError() {
         InlineSwitchPayload payload = new InlineSwitchPayload(DUMMY_SETTING, SettingsSource.SYSTEM,
-                STANDARD_ON, null /* intent */, true);
+                STANDARD_ON, null /* intent */, true, 1 /* default */);
 
         payload.setValue(mContext, 2);
     }
diff --git a/tests/robotests/src/com/android/settings/search/InlineSwitchViewHolderTest.java b/tests/robotests/src/com/android/settings/search/InlineSwitchViewHolderTest.java
index 093909b..94ee335 100644
--- a/tests/robotests/src/com/android/settings/search/InlineSwitchViewHolderTest.java
+++ b/tests/robotests/src/com/android/settings/search/InlineSwitchViewHolderTest.java
@@ -107,7 +107,8 @@
                 .setSummary(SUMMARY)
                 .setRank(1)
                 .setPayload(new InlineSwitchPayload("" /* uri */, 0 /* mSettingSource */,
-                        1 /* onValue */, null /* intent */, true /* isDeviceSupported */))
+                        1 /* onValue */, null /* intent */, true /* isDeviceSupported */,
+                        1 /* default */))
                 .addBreadcrumbs(new ArrayList<>())
                 .setIcon(mIcon)
                 .setPayload(mPayload)
diff --git a/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java
index b9c34f3..7310ae0 100644
--- a/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java
@@ -22,7 +22,6 @@
 import android.accounts.AccountManager;
 import android.content.Context;
 import android.os.UserManager;
-import android.provider.Settings;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
@@ -76,21 +75,16 @@
     @Config(shadows = { ShadowSecureSettings.class, ShadowUtils.class })
     public void isAvailable_nonSystemUser() {
         when(mUserManager.isAdminUser()).thenReturn(false);
-        ShadowUtils.setIsCarrierDemoUser(false);
+        ShadowUtils.setIsDemoUser(false);
 
         assertThat(mController.isAvailable()).isFalse();
     }
 
     @Test
     @Config(shadows = { ShadowSecureSettings.class, ShadowUtils.class })
-    public void isAvailable_carrierDemoUser() {
+    public void isAvailable_demoUser() {
         when(mUserManager.isAdminUser()).thenReturn(false);
-        ShadowUtils.setIsCarrierDemoUser(true);
-
-        final String carrierDemoModeSetting = "carrier_demo_mode";
-        when(mContext.getString(com.android.internal.R.string.config_carrierDemoModeSetting))
-                .thenReturn(carrierDemoModeSetting);
-        Settings.Secure.putInt(null, carrierDemoModeSetting, 1);
+        ShadowUtils.setIsDemoUser(true);
 
         assertThat(mController.isAvailable()).isTrue();
     }
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 208fae3..9b1e26e 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.testutils.shadow;
 
+import android.content.ComponentName;
 import android.content.Context;
 
 import com.android.settings.Utils;
@@ -28,7 +29,7 @@
 public class ShadowUtils {
 
     private static IFingerprintManager sFingerprintManager = null;
-    private static boolean sIsCarrierDemoUser;
+    private static boolean sIsDemoUser;
 
     @Implementation
     public static int enforceSameOwner(Context context, int userId) {
@@ -46,7 +47,7 @@
 
     public static void reset() {
         sFingerprintManager = null;
-        sIsCarrierDemoUser = false;
+        sIsDemoUser = false;
     }
 
     @Implementation
@@ -54,12 +55,12 @@
         return true;
     }
 
-    public static void setIsCarrierDemoUser(boolean isCarrierDemoUser) {
-        sIsCarrierDemoUser = isCarrierDemoUser;
+    public static void setIsDemoUser(boolean isDemoUser) {
+        sIsDemoUser = isDemoUser;
     }
 
     @Implementation
-    public static boolean isCarrierDemoUser(Context context) {
-        return sIsCarrierDemoUser;
+    public static boolean isDemoUser(Context context) {
+        return sIsDemoUser;
     }
 }
diff --git a/tests/robotests/src/com/android/settings/widget/ActionBarShadowControllerTest.java b/tests/robotests/src/com/android/settings/widget/ActionBarShadowControllerTest.java
index 2fbf03e..be50d77 100644
--- a/tests/robotests/src/com/android/settings/widget/ActionBarShadowControllerTest.java
+++ b/tests/robotests/src/com/android/settings/widget/ActionBarShadowControllerTest.java
@@ -17,12 +17,19 @@
 package com.android.settings.widget;
 
 
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 import android.app.ActionBar;
 import android.app.Activity;
 import android.support.v7.widget.RecyclerView;
+import android.view.View;
 
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 
@@ -31,17 +38,12 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.List;
 
-import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class ActionBarShadowControllerTest {
@@ -53,11 +55,13 @@
     @Mock
     private ActionBar mActionBar;
     private Lifecycle mLifecycle;
+    private View mView;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         when(mActivity.getActionBar()).thenReturn(mActionBar);
+        mView = new View(RuntimeEnvironment.application);
         mLifecycle = new Lifecycle();
     }
 
@@ -67,9 +71,23 @@
 
         ActionBarShadowController.attachToRecyclerView(mActivity, mLifecycle, mRecyclerView);
 
-        verify(mActionBar).setElevation(0);
+        verify(mActionBar).setElevation(ActionBarShadowController.ELEVATION_LOW);
     }
 
+    @Test
+    public void attachToRecyclerView_customViewAsActionBar_shouldUpdateElevationOnScroll() {
+        // Setup
+        mView.setElevation(50);
+        when(mRecyclerView.canScrollVertically(-1)).thenReturn(false);
+        final ActionBarShadowController controller =
+                ActionBarShadowController.attachToRecyclerView(mView, mLifecycle, mRecyclerView);
+        assertThat(mView.getElevation()).isEqualTo(ActionBarShadowController.ELEVATION_LOW);
+
+        // Scroll
+        when(mRecyclerView.canScrollVertically(-1)).thenReturn(true);
+        controller.mScrollChangeWatcher.onScrolled(mRecyclerView, 10 /* dx */, 10 /* dy */);
+        assertThat(mView.getElevation()).isEqualTo(ActionBarShadowController.ELEVATION_HIGH);
+    }
 
     @Test
     public void attachToRecyclerView_lifecycleChange_shouldAttachDetach() {
