diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 097f207..638a2b5 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -560,15 +560,6 @@
                 android:value="true" />
         </activity>
 
-        <activity android:name="DateTimeSettingsSetupWizard"
-                  android:label="@string/date_and_time"
-                  android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar"
-                  android:screenOrientation="behind">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-            </intent-filter>
-        </activity>
-
         <activity android:name="Settings$LocalePickerActivity"
                 android:label="@string/language_picker_title"
                 android:icon="@drawable/ic_settings_language"
diff --git a/res/layout-sw600dp/date_time_settings_setupwizard.xml b/res/layout-sw600dp/date_time_settings_setupwizard.xml
deleted file mode 100644
index 41e3021..0000000
--- a/res/layout-sw600dp/date_time_settings_setupwizard.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/layout_root"
-        android:layout_height="match_parent"
-        android:layout_width="match_parent"
-        android:paddingTop="96dip"
-        android:paddingStart="40dip"
-        android:paddingEnd="40dip"
-        android:paddingBottom="96dip"
-        android:orientation="vertical">
-
-    <FrameLayout android:id="@+id/timezone_dropdown_anchor"
-            android:layout_height="0px"
-            android:layout_width="match_parent"
-            android:layout_marginStart="40dip"
-            android:layout_marginEnd="40dip"/>
-
-    <LinearLayout android:layout_height="0px"
-                  android:layout_weight="1"
-                  android:layout_width="match_parent"
-                  android:orientation="vertical">
-
-        <fragment android:id="@+id/date_time_settings_fragment"
-                  class="com.android.settings.DateTimeSettings"
-                  android:layout_width="match_parent"
-                  android:layout_height="match_parent" />
-
-    </LinearLayout>
-
-    <RelativeLayout android:layout_height="wrap_content"
-                    android:layout_weight="0"
-                    android:layout_width="match_parent">
-
-        <View
-            android:id="@+id/bottom_divider"
-            android:layout_height="3dip"
-            android:layout_width="match_parent"
-            android:layout_marginTop="0dip"
-            android:layout_marginBottom="16dip"
-            android:background="@color/divider_color"
-            android:layout_above="@+id/next_button"/>
-
-        <Button android:id="@+id/next_button"
-            android:layout_width="wrap_content"
-            android:minWidth="208dip"
-            android:layout_height="48dip"
-            android:layout_marginTop="10dip"
-            android:layout_alignParentEnd="true"
-            android:text="@string/next_label"/>
-
-    </RelativeLayout>
-
-</LinearLayout>
diff --git a/res/layout-sw720dp/date_time_settings_setupwizard.xml b/res/layout-sw720dp/date_time_settings_setupwizard.xml
deleted file mode 100644
index 32c4d93..0000000
--- a/res/layout-sw720dp/date_time_settings_setupwizard.xml
+++ /dev/null
@@ -1,168 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
-  -->
-<RelativeLayout
-    android:id="@+id/layout_root"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingTop="@dimen/datetime_margin_top"
-    android:paddingStart="@dimen/screen_margin_sides"
-    android:paddingEnd="@dimen/screen_margin_sides"
-    android:paddingBottom="@dimen/datetime_margin_bottom">
-
-    <!-- Title: Set date & time-->
-    <TextView
-        android:id="@+id/title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:minHeight="48dip"
-        android:layout_alignParentStart="true"
-        android:layout_marginStart="16dip"
-        android:layout_alignParentTop="true"
-        android:textSize="32dip"
-        android:textColor="@color/title_color"
-        android:text="@string/date_and_time_settings_title_setup_wizard"
-        android:gravity="bottom" />
-
-    <!-- Divider -->
-    <View
-        android:id="@+id/top_divider"
-        android:layout_width="match_parent"
-        android:layout_height="3dip"
-        android:layout_below="@id/title"
-        android:layout_marginTop="6dip"
-        android:layout_marginBottom="17dip"
-        android:background="@color/divider_color" />
-
-    <RelativeLayout
-        android:id="@+id/timezone_auto_time"
-        android:layout_width="716dip"
-        android:layout_height="wrap_content"
-        android:layout_centerHorizontal="true"
-        android:layout_below="@id/top_divider">
-        <!-- timezone -->
-        <Button
-            android:id="@+id/time_zone_button"
-            style="?android:attr/dropDownSpinnerStyle"
-            android:layout_width="304dip"
-            android:layout_height="48dip"
-            android:layout_alignParentStart="true"
-            android:layout_alignBottom="@+id/date_time_auto"
-            android:gravity="start|center_vertical"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textSize="20dip" />
-
-        <LinearLayout
-            android:id="@+id/date_time_auto"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"
-            android:layout_toEndOf="@id/time_zone_button"
-            android:layout_marginStart="32dip"
-            android:layout_alignParentEnd="true">
-
-            <Switch
-                android:id="@+id/date_time_auto_button"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:minHeight="?android:attr/listPreferredItemHeight"
-                android:layout_marginStart="16dip"
-                android:text="@string/date_time_auto"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:textSize="20dip" />
-
-            <!-- Divider -->
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1px"
-                android:background="@color/divider_color" />
-        </LinearLayout>
-    </RelativeLayout>
-
-    <LinearLayout
-        android:layout_width="624dip"
-        android:layout_height="wrap_content"
-        android:layout_centerHorizontal="true"
-        android:layout_below="@+id/timezone_auto_time"
-        android:layout_marginTop="48dip"
-        android:orientation="horizontal">
-
-        <LinearLayout
-            android:layout_width="312dip"
-            android:layout_height="wrap_content"
-            android:orientation="vertical">
-            <TextView
-                android:id="@+id/date_picker_title"
-                android:layout_width="match_parent"
-                android:layout_height="48dip"
-                android:text="@string/date_picker_title"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:textSize="20dip"
-                android:clickable="false"
-                android:longClickable="false"
-                android:gravity="center" />
-            <DatePicker
-                android:id="@+id/date_picker"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_below="@id/date_picker_title" />
-        </LinearLayout>
-
-        <!-- divider -->
-        <View
-            android:id="@+id/center_divider"
-            android:layout_width="1dip"
-            android:layout_height="match_parent"
-            android:background="@color/divider_color" />
-
-        <LinearLayout
-            android:layout_width="312dip"
-            android:layout_height="wrap_content"
-            android:orientation="vertical">
-            <TextView
-                android:id="@+id/time_picker_title"
-                android:layout_width="match_parent"
-                android:layout_height="48dip"
-                android:text="@string/time_picker_title"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:textSize="20dip"
-                android:gravity="center" />
-
-            <TimePicker
-                android:id="@+id/time_picker"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_below="@id/time_picker_title" />
-        </LinearLayout>
-    </LinearLayout>
-
-    <View
-        android:id="@+id/bottom_divider"
-        android:layout_width="match_parent"
-        android:layout_height="3dip"
-        android:layout_alignStart="@id/timezone_auto_time"
-        android:layout_above="@+id/next_button"
-        android:layout_marginBottom="16dip"
-        android:background="@color/divider_color" />
-
-    <Button
-        android:id="@+id/next_button"
-        style="@style/setup_wizard_button"
-        android:layout_alignParentBottom="true"
-        android:layout_alignParentEnd="true"
-        android:text="@string/next_label" />
-</RelativeLayout>
diff --git a/res/layout/date_time_setup_custom_list_item_2.xml b/res/layout/date_time_custom_list_item_2.xml
similarity index 100%
rename from res/layout/date_time_setup_custom_list_item_2.xml
rename to res/layout/date_time_custom_list_item_2.xml
diff --git a/res/layout/date_time_settings_setupwizard.xml b/res/layout/date_time_settings_setupwizard.xml
deleted file mode 100644
index 7227f2b..0000000
--- a/res/layout/date_time_settings_setupwizard.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/layout_root"
-        android:layout_height="fill_parent"
-        android:layout_width="fill_parent"
-        android:orientation="vertical">
-
-    <View
-        android:id="@+id/timezone_dropdown_anchor"
-        android:layout_width="match_parent"
-        android:layout_marginStart="20dip"
-        android:layout_marginEnd="20dip"
-        android:layout_height="0px" />
-
-    <LinearLayout android:layout_height="0px"
-                  android:layout_weight="1"
-                  android:layout_width="fill_parent"
-                  android:orientation="vertical">
-        <fragment android:id="@+id/date_time_settings_fragment"
-                  class="com.android.settings.DateTimeSettings"
-                  android:layout_width="fill_parent"
-                  android:layout_height="fill_parent" />
-    </LinearLayout>
-
-    <RelativeLayout android:layout_height="wrap_content"
-                    android:layout_weight="0"
-                    android:padding="10dip"
-                    android:layout_width="fill_parent">
-
-        <Button android:id="@+id/next_button"
-            android:layout_width="150dip"
-            android:layout_height="wrap_content"
-            android:layout_alignParentEnd="true"
-            android:text="@string/next_label"
-        />
-
-    </RelativeLayout>
-
-</LinearLayout>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 5707c1b..5d54c47 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Vervang werkprofielklanke?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Vervang"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Jou huidige werkprofielklanke sal vervang word met jou persoonlike profiel se klanke"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Kennisgewingvoorkeure"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Gevorderd"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Werkkennisgewings"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Flikker kennisgewing-liggie"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Programme is nie geïnstalleer nie"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Geïnstalleerde programme"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Jou berging word nou deur die bergingbestuurder bestuur"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 4816de9..d95fb7c 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"በመገለጫ ድምጾች ይተኩ?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"ተካ"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"የአሁኑ የስራ መገለጫዎ ድምጾች በግል መገለጫ ድምጾችዎ ይተካሉ"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"የማሳወቂያ ምርጫዎች"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"የላቀ"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"የስራ ማሳወቂያዎች"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"የማሳወቂያ ብርሃን አሳይ"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"መተግበሪያዎች አልተጫኑም"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"የተጫኑ መተግበሪያዎች"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"የእርስዎ ማከማቻ አሁን በማከማቻ አስተዳዳሪ እየተዳደረ ነው"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 5ff4ef8..8ab3da2 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -2722,8 +2722,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"أتستبدل أصوات ملف العمل؟"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"استبدال"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"سيتم استبدال الأصوات الحالية للملف الشخصي للعمل بأصوات ملفك الشخصي على حسابك الشخصي."</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"تفضيلات الإشعارات"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"متقدمة"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"إشعارات العمل"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"ضوء الاشعار بالنبض"</string>
@@ -3417,4 +3416,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"التطبيقات غير مثبَّتة"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"التطبيقات المثبَّتة"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"تتم إدارة السعة التخزينية لجهازك الآن عن طريق مدير السعة التخزينية"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
index ae1fdc6..94180ac 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az-rAZ/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"İş profili səsləri əvəz edilsin?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Əvəz edin"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Cari iş profili səsləriniz şəxsi profil səsləri ilə əvəz olunacaq"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Bildiriş tərcihləri"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Qabaqcıl"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"İş bildirişləri"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Puls bildiriş işığı"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Tətbiq quraşdırılmayıb"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Quraşdırılmış tətbiqlər"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Yaddaşınız indi yaddaş meneceri tərəfindən idarə olunur"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 2938e65..3d4739d 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -3311,4 +3311,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Aplikacije koje nisu instalirane"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Instalirane aplikacije"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Memorijskim prostorom sada upravlja Menadžer memorijskog prostora"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-be-rBY/strings.xml b/res/values-be-rBY/strings.xml
index 41b81e5..be3df42 100644
--- a/res/values-be-rBY/strings.xml
+++ b/res/values-be-rBY/strings.xml
@@ -2678,8 +2678,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Замяніць гукі прац. профілю?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Замяніць"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Вашы бягучыя гукі працоўнага профілю будуць заменены гукамі вашага асабістага профілю"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Параметры апавяшчэнняў"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Пашыраныя"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Апавяшчэнні працоўнага профілю"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Мігценне індыкатара апавяшчэння"</string>
@@ -3347,4 +3346,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Праграмы не ўсталяваны"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Усталяваныя праграмы"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Ваша сховішча зараз знаходзіцца пад кіраваннем менеджара сховішча"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 180c787..188204b 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Приложения, които не са инсталирани"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Инсталирани приложения"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Хранилището ви вече се управлява от съответния мениджър"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index 56137cb..94dbdc1 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -2529,7 +2529,7 @@
     </plurals>
     <string name="network_dashboard_title" msgid="4771589228992391573">"নেটওয়ার্ক ও ইন্টারনেট"</string>
     <string name="connected_devices_dashboard_title" msgid="2355264951438890709">"সংযুক্ত ডিভাইস"</string>
-    <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"অ্যাপ্স &amp; বিজ্ঞপ্তিগুলি"</string>
+    <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"অ্যাপ্স &amp; বিজ্ঞপ্তি"</string>
     <string name="account_dashboard_title" msgid="38701889336378742">"ব্যবহারকারি &amp; অ্যাকাউন্টগুলি"</string>
     <string name="app_default_dashboard_title" msgid="8176215295082796426">"অ্যাপ ডিফল্টগুলি"</string>
     <string name="system_dashboard_summary" msgid="6112602136713843779">"ভাষা: <xliff:g id="LANGUAGE">%1$s</xliff:g>"</string>
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"কর্মস্থলের প্রোফাইলের ধ্বনিগুলিকে প্রতিস্থাপন করতে চান?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"প্রতিস্থাপন করুন"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"আপনার বর্তমান কর্মস্থালের প্রোফাইলের ধ্বনিগুলিকে আপনার ব্যক্তিগত প্রোফাইলের ধ্বনিগুলির সাথে প্রতিস্থাপন করা হবে"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"বিজ্ঞপ্তির পছন্দগুলি"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"উন্নত"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"কর্মস্থলের বিজ্ঞপ্তিগুলি"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"পাল্স বিজ্ঞপ্তির জন্য আলো"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"অ্যাপ্স ইনস্টল করা হয়নি"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"ইনস্টল করা অ্যাপ্স"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"আপনার সঞ্চয়স্থান এখন সঞ্চয়স্থান পরিচালকের দ্বারা পরিচালিত হচ্ছে"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-bs-rBA/strings.xml b/res/values-bs-rBA/strings.xml
index f4543e1..eb68649 100644
--- a/res/values-bs-rBA/strings.xml
+++ b/res/values-bs-rBA/strings.xml
@@ -2656,8 +2656,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Želite li zamijeniti zvuke radnog profila?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Zamijeni"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Postojeći zvuci vašeg radnog profila će se zamijeniti zvucima vašeg ličnog profila"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Pref. postavke obavještenja"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Napredno"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Obavještenja za posao"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Pulsirajuće svjetlo obavještenja"</string>
@@ -3312,4 +3311,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Neinstalirane aplikacije"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Instalirane aplikacije"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Vašom pohranom sada upravlja upravitelj pohrane"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 6a3c14c..24cb3da 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Aplicacions no instal·lades"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Aplicacions instal·lades"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Ara mateix, el gestor d\'emmagatzematge gestiona el teu emmagatzematge"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index ff297eb..883e843 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -3346,4 +3346,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Aplikace nejsou nainstalovány"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Nainstalované aplikace"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Úložiště je nyní spravováno správcem úložiště."</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 75668c8..5e22ab2 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Erstat lyde for arbejdsprofil?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Erstat"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Dine aktuelle lyde for din arbejdsprofil erstattes af lydene fra din private profil"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Underretningsindstillinger"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avanceret"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Arbejdsunderretninger"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Blink ved nye underretninger"</string>
@@ -3093,7 +3092,7 @@
     <string name="color_temperature_toast" msgid="4974218172133854827">"Du skal slå skærmen fra, før du kan anvende farveændringer"</string>
     <string name="ota_disable_automatic_update" msgid="2319639631655915050">"Automatiske systemopdateringer"</string>
     <string name="usage" msgid="2977875522080448986">"Forbrug"</string>
-    <string name="cellular_data_usage" msgid="2763710678354680712">"Dataforbrug for mobilenhed"</string>
+    <string name="cellular_data_usage" msgid="2763710678354680712">"Forbrug af mobildata"</string>
     <string name="wifi_data_usage" msgid="686754111095324306">"Dataforbrug via Wi-Fi"</string>
     <string name="ethernet_data_usage" msgid="5108764537574354616">"Forbrug af Ethernet-data"</string>
     <string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
@@ -3104,8 +3103,8 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> Dataadvarsel"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> Dataadvarsel / <xliff:g id="ID_2">%2$s</xliff:g> Datagrænse"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Faktureringscyklus"</string>
-    <string name="billing_cycle_summary" msgid="9009106526129293752">"Den månedlige cyklus starter den <xliff:g id="ID_1">%1$s</xliff:g> i hver måned"</string>
-    <string name="billing_cycle_fragment_summary" msgid="1940518156600077066">"Hver måned fra og med den <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="billing_cycle_summary" msgid="9009106526129293752">"Den månedlige cyklus starter den <xliff:g id="ID_1">%1$s</xliff:g>. i hver måned"</string>
+    <string name="billing_cycle_fragment_summary" msgid="1940518156600077066">"Hver måned fra og med den <xliff:g id="ID_1">%1$s</xliff:g>."</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Netværksbegrænsninger"</string>
     <string name="operator_warning" msgid="1862988028996859195">"Mobilselskabets dataopgørelse kan variere fra enhedens opgørelse."</string>
     <string name="data_used_template" msgid="3245919669966296505">"<xliff:g id="ID_1">%1$s</xliff:g> anvendt"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Apps, som ikke er installeret"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Installerede aps"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Din lagerplads administreres nu af lageradministratoren"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 9c18935..ddba737 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -2670,7 +2670,7 @@
     </plurals>
     <string name="no_notification_listeners" msgid="3487091564454192821">"Keine installierte App hat Benachrichtigungszugriff angefordert."</string>
     <string name="notification_listener_security_warning_title" msgid="5522924135145843279">"Benachrichtigungszugriff für <xliff:g id="SERVICE">%1$s</xliff:g> zulassen?"</string>
-    <string name="notification_listener_security_warning_summary" msgid="119203147791040151">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> kann alle Benachrichtigungen lesen, darunter auch persönliche Informationen wie Kontaktnamen und eingehende Nachrichten. Außerdem können Benachrichtigungen geschlossen oder Schaltflächen in den Benachrichtigungen betätigt werden. \n\nZusätzlich kann durch die App die \"Nicht stören\"-Funktion aktiviert bzw. deaktiviert werden. Verwandte Einstellungen können ebenfalls geändert werden."</string>
+    <string name="notification_listener_security_warning_summary" msgid="119203147791040151">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> kann alle Benachrichtigungen lesen, darunter auch persönliche Informationen wie Kontaktnamen und eingehende Nachrichten. Außerdem können Benachrichtigungen geschlossen und damit verbundene Aktionen ausgelöst werden. \n\nZusätzlich kann durch die App die \"Nicht stören\"-Funktion aktiviert bzw. deaktiviert werden. Verwandte Einstellungen können ebenfalls geändert werden."</string>
     <string name="notification_listener_disable_warning_summary" msgid="6738915379642948000">"Wenn du den Benachrichtigungszugriff für <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> deaktivierst, wird möglicherweise auch der \"Nicht stören\"-Zugriff deaktiviert."</string>
     <string name="notification_listener_disable_warning_confirm" msgid="8333442186428083057">"Deaktivieren"</string>
     <string name="notification_listener_disable_warning_cancel" msgid="8586417377104211584">"Abbrechen"</string>
@@ -3278,4 +3278,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Nicht installierte Apps"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Installierte Apps"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Dein Speicher wird jetzt vom Speichermanager verwaltet"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 8a88794..d267031 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Μη εγκατεστημένες εφαρμογές"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Εγκατεστημένες εφαρμογές"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Στο εξής, γίνεται διαχείριση του αποθηκευτικού σας χώρου από τον διαχειριστή αποθηκευτικού χώρου"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index ba7f4fd..9406f5b 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Apps not installed"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Installed apps"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Your storage is now being managed by the storage manager"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 41b53b2..804a36d 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Apps not installed"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Installed apps"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Your storage is now being managed by the storage manager"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 41b53b2..804a36d 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Apps not installed"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Installed apps"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Your storage is now being managed by the storage manager"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index e27b898..2a5e13a 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -3274,4 +3274,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Apps no instaladas"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Apps instaladas"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Tu almacenamiento ahora está a cargo del administrador de almacenamiento"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index e510f2f..584885c 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -3274,4 +3274,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Aplicaciones no instaladas"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Aplicaciones instaladas"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"El Administrador de Almacenamiento gestiona ahora el almacenamiento"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index 1c747dc..2610e9a 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Rakendused pole installitud"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Installitud rakendused"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Teie salvestusruumi haldab nüüd salvestusruumi haldur"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index 43efc66..d6500db1 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Laneko profilaren soinua ordeztu?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Ordeztu"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Laneko profilaren soinuak profil pertsonaleko soinuekin ordeztuko dira"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Jakinarazpenen hobespenak"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Ezarpen aurreratuak"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Laneko jakinarazpenak"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Jakinarazpen-argi keinukaria"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Instalatu gabeko aplikazioak"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Instalatutako aplikazioak"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Biltegi-kudeatzailea ari da biltegia kudeatzen"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 430cd31..75b2d11 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"صداهای نمایه کاری‌تان جایگزین شوند؟"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"جایگزینی"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"صداهای نمایه کاری کنونی‌تان با صداهای نمایه شخصی‌تان جایگزین می‌شوند"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"تنظیمات برگزیده اعلان"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"پیشرفته"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"اعلان‌های کار"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"چراغ اعلان چشمک بزند"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"برنامه‌های نصب‌نشده"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"برنامه‌های نصب‌شده"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"حافظه شما اکنون توسط مدیر حافظه مدیریت می‌شود"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index b997344..0138d90 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Korvataanko työprofiiliäänet?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Korvaa"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Työprofiilin nykyiset äänet korvataan henkilökohtaisen profiilin äänillä."</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Ilmoitusasetukset"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Lisäasetukset"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Työilmoitukset"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Vilkuta ilmoitusvaloa"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Sovelluksia ei asennettu"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Asennetut sovellukset"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Tallennustilan hallinta hallitsee nyt tallennustilaasi."</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 413f659..f52cad2 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -1261,7 +1261,7 @@
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Point d\'accès Wi-Fi mobile"</string>
     <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Via Bluetooth"</string>
     <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Partage de connexion"</string>
-    <string name="tether_settings_title_all" msgid="8356136101061143841">"Partage de connexion et point d\'accès mobile"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Partage de connexion"</string>
     <string name="tether_settings_disabled_on_data_saver" msgid="1576908608463904152">"Impossible de partager la connexion ou d\'utiliser des points d\'accès mobiles lorsque la fonction Économiseur de données est activée"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"Partage de connexion par USB"</string>
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Remplacer sons du profil prof.?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Remplacer"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Les sons actuels de votre profil professionnel seront remplacés par ceux de votre profil personnel."</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Préférences de notification"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Paramètres avancés"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notifications professionnelles"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Voyant de notification"</string>
@@ -2739,7 +2738,7 @@
     <string name="zen_mode_messages" msgid="5886440273537510894">"Messages"</string>
     <string name="zen_mode_all_messages" msgid="6449223378976743208">"Tous les messages"</string>
     <string name="zen_mode_selected_messages" msgid="8245990149599142281">"Messages sélectionnés"</string>
-    <string name="zen_mode_from_anyone" msgid="2638322015361252161">"De tous"</string>
+    <string name="zen_mode_from_anyone" msgid="2638322015361252161">"De tout le monde"</string>
     <string name="zen_mode_from_contacts" msgid="2232335406106711637">"Des contacts seulement"</string>
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"Des contacts favoris seulement"</string>
     <string name="zen_mode_from_none" msgid="8219706639954614136">"Aucun"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Applications non installées"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Applications installées"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Votre espace de stockage est maintenant géré par le gestionnaire de stockage"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index e397e67..2f85d63 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Applications pas installées"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Applications installées"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Votre espace de stockage est désormais géré par le gestionnaire d\'espace de stockage."</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index bc2d010..fc6f9c8 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -2531,7 +2531,7 @@
     <string name="connected_devices_dashboard_title" msgid="2355264951438890709">"Dispositivos conectados"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplicacións e notificacións"</string>
     <string name="account_dashboard_title" msgid="38701889336378742">"Usuario e contas"</string>
-    <string name="app_default_dashboard_title" msgid="8176215295082796426">"Valores predeterminados das aplicacións"</string>
+    <string name="app_default_dashboard_title" msgid="8176215295082796426">"Accións predeterminadas das aplicacións"</string>
     <string name="system_dashboard_summary" msgid="6112602136713843779">"Idioma: <xliff:g id="LANGUAGE">%1$s</xliff:g>"</string>
     <string name="search_results_title" msgid="1796252422574886932">"Configuración"</string>
     <string name="search_menu" msgid="6283419262313758339">"Configuración de busca"</string>
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Aplicacións non instaladas"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Aplicacións instaladas"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Agora o xestor de almacenamento administra o teu espazo"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index 5e8021c..90e369f 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -2636,8 +2636,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"કાર્ય પ્રોફાઇલ ધ્વનિઓ બદલીએ?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"બદલો"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"તમારી વર્તમાન કાર્ય પ્રોફાઇલ ધ્વનિઓ તમારી વ્યક્તિગત પ્રોફાઇલ ધ્વનિઓ સાથે બદલવામાં આવશે"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"સૂચના પસંદગીઓ"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"વિગતવાર"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"કાર્યની સૂચનાઓ"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"પલ્સ સૂચના પ્રકાશ"</string>
@@ -3279,4 +3278,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"ઍપ્લિકેશનો ઇન્સ્ટૉલ થયેલ નથી"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"ઇન્સ્ટૉલ કરેલ ઍપ્લિકેશનો"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"તમારું સ્ટોરેજ, હવે સ્ટોરેજ સંચાલક દ્વારા સંચાલિત કરવામાં આવી રહ્યું છે"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index e5b2789..f4653da 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"कार्य प्रोफाइल ध्वनियां बदलें?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"बदलें"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"आपकी वर्तमान कार्य प्रोफ़ाइल की ध्वनियां आपकी व्यक्तिगत प्रोफ़ाइल की ध्वनियों से बदल दी जाएंगी"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"नोटिफ़िकेशन प्राथमिकताएं"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"उन्नत"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"कार्य नोटिफ़िकेशन"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"पल्‍स नोटिफिकेशन लाइट"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"इंस्टॉल नहीं किए गए ऐप्‍लिकेशन"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"इंस्‍टॉल किए गए ऐप्‍लिकेशन"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"आपकी जगह का प्रबंधन अब जगह प्रबंधक द्वारा किया जा रहा है"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index a199500..2853c19 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -2656,8 +2656,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Zamjena zvuka radnog profila?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Zamijeni"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Trenutačni zvukovi radnog profila zamijenit će se zvukovima osobnog profila"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Postavke obavijesti"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Napredno"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Obavijesti s radnog profila"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Pulsno svjetlo obavijesti"</string>
@@ -3312,4 +3311,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Aplikacije nisu instalirane"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Instalirane aplikacije"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Vašom pohranom sada upravlja upravitelj pohrane"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 5ae84d6..554d9d5 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Az alkalmazások nincsenek telepítve"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Telepített alkalmazások"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Tárhelyét mostantól a tárhelykezelő kezeli"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 60578ff..24d6a1e 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Փոխարինե՞լ աշխատանքային պրոֆիլի ձայները:"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Փոխարինել"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Աշխատանքային պրոֆիլի ընթացիկ ձայները կփոխարինվեն անձնական հաշվի ձայներով"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Ծանուցումների կարգավորումներ"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Լրացուցիչ"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Աշխատանքային ծանուցումներ"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Ծանուցման լույսի թարթում"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Հավելվածները տեղադրված չեն"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Տեղադրված հավելվածներ"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Ձեր սարքի հիշողությունն այժմ կառավարվում է հիշողության կառավարիչի կողմից"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index c464ebc..12ce5fa 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Aplikasi tidak terpasang"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Aplikasi terpasang"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Penyimpanan kini dikelola oleh pengelola penyimpanan"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index c7b0b11..4d52069 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Forrit ekki uppsett"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Uppsett forrit"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Geymslurýminu þínu er nú stjórnað af geymslustjórnun"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index fab69eb..4f010f7 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Sostituire suoni lavoro?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Sostituisci"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"I suoni attuali del profilo di lavoro verranno sostituiti con i suoni del tuo profilo personale"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Preferenze di notifica"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avanzate"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notifiche di lavoro"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Luce intermittente"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"App non installate"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"App installate"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Il tuo spazio di archiviazione è ora gestito dalla Gestione memoria"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 28a6e20..8bf1a24 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -3348,4 +3348,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"אפליקציות לא מותקנות"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"אפליקציות מותקנות"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"האחסון שלך מנוהל כעת על ידי מנהל האחסון"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 66a657d..44d8308 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -2638,8 +2638,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"仕事用プロファイルの音の置換"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"置換"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"現在の仕事用プロファイルの音は個人用プロファイルの音に置き換えられます"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"通知設定"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"詳細設定"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"仕事用プロファイルの通知"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"光を点滅させて通知"</string>
@@ -3281,4 +3280,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"アプリがインストールされていません"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"インストール済みアプリ"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"お使いのストレージの管理はストレージ マネージャが行うようになりました"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index c7e359e..5ff4296 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"დაუინსტალირებული აპები"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"დაინსტალირებული აპები"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"თქვენს მეხსიერებას ახლა მეხსიერების მენეჯერი მართავს"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index 646f09e..05555bc 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Орнатылмаған қолданбалар"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Орнатылған қолданбалар"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Құрылғы жадын енді жад менеджері басқарады"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index 83d42f5..152e46f 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"ជំនួសសំឡេងប្រវត្តិការងារឬ?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"ជំនួស"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"សំឡេងប្រវត្តិរូបការងារបច្ចុប្បន្នរបស់អ្នកនឹងត្រូវបានជំនួសដោយសំឡេងប្រវត្តិរូបផ្ទាល់ខ្លួនរបស់អ្នក"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"ចំណូលចិត្តការជូនដំណឹង"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"កម្រិតខ្ពស់"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"ការជូនដំណឹងពីកន្លែងធ្វើការ"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"ពន្លឺ​ជូន​ដំណឹង​ភ្លឺបភ្លែត"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"មិនបានដំឡើងកម្មវិធីទេ"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"កម្មវិធី​បាន​ដំឡើង"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"នៅពេលនេះទំហំផ្ទុករបស់អ្នកត្រូវបានគ្រប់គ្រងដោយកម្មវិធីគ្រប់គ្រងទំហំផ្ទុក"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 61b9e1d..1b3cd3a 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಧ್ವನಿಗಳನ್ನು ಬದಲಾಯಿಸುವುದೇ?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"ಸ್ಥಾನಾಂತರಿಸು"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಧ್ವನಿಗಳನ್ನು ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಪ್ರೊಫೈಲ್ ಧ್ವನಿಯಾಗಿ ಸ್ಥಾನಾಂತರಿಸಲಾಗುತ್ತದೆ"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"ಅಧಿಸೂಚನೆ ಪ್ರಾಶಸ್ತ್ಯಗಳು"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"ಸುಧಾರಿತ"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"ಕೆಲಸದ ಅಧಿಸೂಚನೆಗಳು"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"ಪಲ್ಸ್ ಅಧಿಸೂಚನೆ ಬೆಳಕು"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಸ್ಥಾಪನೆಗೊಂಡಿಲ್ಲ"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"ಸ್ಥಾಪಿಸಲಾದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"ನಿಮ್ಮ ಸಂಗ್ರಹಣೆಯು ಈಗ ಸಂಗ್ರಹಣೆ ನಿರ್ವಾಹಕರಿಂದ ನಿರ್ವಹಿಸಿಲಾಗುತ್ತಿದೆ"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 3b6ae5b..1a945d9 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"직장 프로필 사운드 바꾸기"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"바꾸기"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"현재 직장 프로필 사운드가 개인 프로필 사운드로 대체됩니다."</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"알림 환경설정"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"고급"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"직장 알림"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"알림등 반복 표시"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"앱이 설치되어 있지 않음"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"설치된 앱"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"현재 저장용량 관리자가 저장용량을 관리하고 있습니다."</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index a0d06f2..1e23afc 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -2633,8 +2633,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Үндөр алмаштырылсынбы?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Алмаштыруу"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Учурдагы жумуш профилиңиздин үндөрү жеке профилиңиздин үндөрү менен алмаштырылат."</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Эскертменин параметрлери"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Өркүндөтүлгөн"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Жумуш боюнча эскертмелер"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Тармактын индикатору"</string>
@@ -3276,4 +3275,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Колдонмолор орнотулган эмес"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Орнотулган колдонмолор"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Учурда сактагычыңыз сактагычты көзөмөлдөгүч тарабынан башкарылууда"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index 2d5b789..60e750d 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"ແທນທີ່ສຽງໂປຣໄຟລ໌ບ່ອນເຮັດວຽກບໍ?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"ແທນທີ່"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"ສຽງໂປຣໄຟລ໌ບ່ອນເຮັດວຽກຂອງທ່ານໃນປັດຈຸບັນຈະຖືກແທນທີ່ດ້ວຍສຽງໂປຣໄຟລ໌ສ່ວນຕົວຂອງທ່ານ"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"ການຕັ້ງຄ່າການແຈ້ງເຕືອນ"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"​ຂັ້ນ​ສູງ"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"ການແຈ້ງເຕືອນວຽກ"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"ໄຟກະພິບແຈ້ງເຕືອນ"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Apps not installed"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"ແອັບຯທີ່ຕິດຕັ້ງແລ້ວ"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"ຕອນນີ້ອຸປະກອນຂອງທ່ານຖືກຈັດການໂດຍຕົວຈັດການບ່ອນຈັດເກັບຂໍ້ມູນແລ້ວ."</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index d2e09e0..ab375fc 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -3348,4 +3348,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Programos neįdiegtos"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Įdiegtos programos"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Saugyklą dabar tvarko saugyklos valdytojas"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index a6cf1a0..781f504 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -3311,4 +3311,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Lietotnes nav instalētas"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Instalētās lietotnes"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Tagad jūsu krātuvi pārvalda krātuves pārvaldnieks"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index fef1182..e0cbbbe 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Заменете звуци на раб. профил?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Замени"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Тековните звуци на работниот профил ќе бидат заменети со звуците од личниот профил"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Поставки за известувањата"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Напредни"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Известувања за работен профил"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Пулсирачко светло за известување"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Апликациите не се инсталирани"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Инсталирани апликации"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Управникот со меморија сега управува со вашата меморија"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index d6ed12e..e82bfe0 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"ഔദ്യോഗിക പ്രൊഫൈൽ ശബ്ദങ്ങൾ മാറ്റണോ?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"മാറ്റിസ്ഥാപിക്കുക"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"നിങ്ങളുടെ നിലവിലെ ഔദ്യോഗിക പ്രൊഫൈൽ ശബ്ദങ്ങൾക്ക് പകരമായി നിങ്ങളുടെ വ്യക്തിഗത പ്രൊഫൈൽ ശബ്ദങ്ങൾ ഉപയോഗിക്കപ്പെടും"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"അറിയിപ്പ് മുൻഗണനകൾ"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"വിപുലമായത്"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"ഔദ്യോഗിക അറിയിപ്പുകൾ"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"അറിയിപ്പുലൈറ്റ് പ്രകാശിപ്പിക്കൂ"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"ആപ്‌സ് ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ല"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"ഇൻസ്‌റ്റാളുചെയ്‌ത അപ്ലിക്കേഷനുകൾ"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"നിങ്ങളുടെ സ്റ്റോറേജ് ഇപ്പോൾ മാനേജുചെയ്യുന്നത് സ്റ്റോറേജ് ​​മാനേജരാണ്"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index ff83d6a..82a31e5 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Ажлын профайлын дууг солих уу?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Солих"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Таны ажлын профайлын одоогийн дууг таны хувийн профайлын дуугаар солих болно"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Мэдэгдлийн тохируулга"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Нарийвчилсан"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Ажлын мэдэгдэл"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Анивчих мэдэгдлийн гэрэл"</string>
@@ -3275,4 +3274,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Апп суулгаагүй байна"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Суулгасан апп"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Таны санг одоо сангийн менежер удирдаж байна"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index 8f3e1da..d78b8b9 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"कार्य प्रोफाईल ध्वनी पुनर्स्थित करायचे?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"पुनर्स्थित करा"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"आपले वर्तमान कार्य प्रोफाइल ध्वनी आपल्या वैयक्तिक प्रोफाइल ध्वनींनी पुनर्स्थित केले जातील"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"सूचना प्राधान्ये"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"प्रगत"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"कार्य सूचना"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"पल्स सूचना प्रकाश"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"अ‍ॅप्स स्थापित केलेले नाहीत"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"स्थापित केलेले अॅप्स"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"आपला संचय आता संचय व्यवस्थापक व्यवस्थापित करीत आहे"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index e3f572e..06a38d2 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Gantikan bunyi profil kerja?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Gantikan"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Bunyi profil kerja semasa akan digantikan dengan bunyi profil peribadi anda."</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Pilihan pemberitahuan"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Terperinci"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Pemberitahuan kerja"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Kelip lampu pemberitahuan"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Apl tidak dipasang"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Apl yang dipasang"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Storan anda kini diurus oleh pengurus storan"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index 5b473ce..2e481ff 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"အက်ပ်များကို ထည့်သွင်းမထားပါ"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"ထည့်သွင်းထားသည့် အက်ပ်များ"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"သင့်သိုလှောင်မှုကို သိုလှောင်မှုမန်နေဂျာက လက်ရှိစီမံခန့်ခွဲနေပါသည်"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 2df0648..9e8458f 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Bytte lyder for jobbprofilen?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Erstatt"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"De nåværende lydene for jobbprofilen din blir byttet ut med lydene for den personlige profilen din"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Innstillinger for varsler"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avansert"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Jobbvarsler"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"La varsellampen pulsere"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Apper som ikke er installert"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Installerte apper"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Lagringsplassen din blir nå administrert av lagringsadministratoren"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 0fa96ce..2960858 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -3278,4 +3278,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"अनुप्रयोगहरूको स्थापना गरिएको छैन"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"स्थापना गरिएका अनुप्रयोगहरू"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"तपाईंको भण्डारण अहिले भण्डारण प्रबन्धकद्वारा व्यवस्थापन भइरहेको छ"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 93db5c2..5959a9c 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Apps niet geïnstalleerd"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Geïnstalleerde apps"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Je opslag wordt nu beheerd door de opslagbeheerder"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index 1cc7bc2..764f2a3 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"ਕੀ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਧੁਨੀਆਂ ਬਦਲਣੀਆਂ ਹਨ?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"ਬਦਲੋ"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"ਤੁਹਾਡੀਆਂ ਵਰਤਮਾਨ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਧੁਨੀਆਂ ਤੁਹਾਡੀਆਂ ਨਿੱਜੀ ਪ੍ਰੋਫਾਈਲ ਧੁਨੀਆਂ ਦੇ ਨਾਲ ਬਦਲੀਆਂ ਜਾਣਗੀਆਂ"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"ਸੂਚਨਾ ਤਰਜੀਹਾਂ"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"ਉੱਨਤ"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"ਕੰਮ ਸਬੰਧੀ ਸੂਚਨਾਵਾਂ"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"ਪਲਸ ਸੂਚਨਾ ਲਾਈਟ"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"ਐਪਾਂ ਸਥਾਪਤ ਨਹੀਂ ਹਨ"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"ਸਥਾਪਤ ਕੀਤੀਆਂ ਐਪਾਂ"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"ਤੁਹਾਡੀ ਸਟੋਰੇਜ ਦਾ ਪ੍ਰਬੰਧਨ ਹੁਣ ਸਟੋਰੇਜ ਪ੍ਰਬੰਧਕ ਦੁਆਰਾ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 8df1f3d..98c3ee2 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -1719,7 +1719,7 @@
     <string name="accessibility_settings" msgid="3975902491934816215">"Ułatwienia dostępu"</string>
     <string name="accessibility_settings_title" msgid="2130492524656204459">"Ustawienia ułatwień dostępu"</string>
     <string name="vision_settings_title" msgid="4204111425716868288">"Ustawienia widoczności"</string>
-    <string name="vision_settings_description" msgid="5679491180156408260">"Możesz dostosować urządzenie do swoich potrzeb. Funkcje ułatwień dostępu możesz zawsze zmienić w Ustawieniach."</string>
+    <string name="vision_settings_description" msgid="5679491180156408260">"Możesz dostosować urządzenie do swoich potrzeb. Ułatwienia dostępu możesz zawsze zmienić w Ustawieniach."</string>
     <string name="accessibility_services_title" msgid="2592221829284342237">"Usługi"</string>
     <string name="talkback_title" msgid="7912059827205988080">"TalkBack"</string>
     <string name="talkback_summary" msgid="8331244650729024963">"Czytnik ekranu przeznaczony głównie dla osób niewidomych i słabowidzących"</string>
@@ -1732,7 +1732,7 @@
     <string name="accessibility_global_gesture_preference_title" msgid="6752037184140789970">"Skrót ułatwień dostępu"</string>
     <string name="accessibility_global_gesture_preference_summary_on" msgid="6180927399052022181">"Wł."</string>
     <string name="accessibility_global_gesture_preference_summary_off" msgid="8102103337813609849">"Wył."</string>
-    <string name="accessibility_global_gesture_preference_description" msgid="1605107799571936715">"Gdy ta funkcja jest włączona, możesz w dwóch prostych krokach włączyć funkcje ułatwień dostępu:\n\nKrok 1. Naciśnij i przytrzymaj przycisk zasilania, aż usłyszysz dźwięk lub poczujesz wibrację.\n\nKrok 2. Dotknij ekranu dwoma palcami i przytrzymaj je, aż usłyszysz potwierdzenie dźwiękowe.\n\nJeśli z urządzenia korzysta wiele osób, użycie tego skrótu na ekranie blokady powoduje tymczasowe włączenie ułatwień dostępu. Zostaną one aktywne do chwili odblokowania urządzenia."</string>
+    <string name="accessibility_global_gesture_preference_description" msgid="1605107799571936715">"Gdy ta funkcja jest włączona, możesz w dwóch prostych krokach włączyć ułatwienia dostępu:\n\nKrok 1. Naciśnij i przytrzymaj przycisk zasilania, aż usłyszysz dźwięk lub poczujesz wibrację.\n\nKrok 2. Dotknij ekranu dwoma palcami i przytrzymaj je, aż usłyszysz potwierdzenie dźwiękowe.\n\nJeśli z urządzenia korzysta wiele osób, użycie tego skrótu na ekranie blokady powoduje tymczasowe włączenie ułatwień dostępu. Zostaną one aktywne do chwili odblokowania urządzenia."</string>
     <string name="accessibility_toggle_high_text_contrast_preference_title" msgid="2567402942683463779">"Tekst o dużym kontraście"</string>
     <string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="7218498768415430963">"Automatyczna aktualizacja powiększenia ekranu"</string>
     <string name="accessibility_toggle_screen_magnification_auto_update_preference_summary" msgid="4392059334816220155">"Aktualizuj powiększenie ekranu przy zmianie aplikacji"</string>
@@ -2459,7 +2459,7 @@
     <string name="global_change_warning" product="tablet" msgid="8045013389464294039">"To ustawienie obowiązuje wszystkich użytkowników tego tabletu."</string>
     <string name="global_change_warning" product="default" msgid="2461264421590324675">"To ustawienie obowiązuje wszystkich użytkowników tego telefonu."</string>
     <string name="global_locale_change_title" msgid="5956281361384221451">"Zmień język"</string>
-    <string name="nfc_payment_settings_title" msgid="1807298287380821613">"Dotknij i zapłać"</string>
+    <string name="nfc_payment_settings_title" msgid="1807298287380821613">"Zbliż i zapłać"</string>
     <string name="nfc_payment_how_it_works" msgid="3028822263837896720">"Jak to działa"</string>
     <string name="nfc_payment_no_apps" msgid="5477904979148086424">"Płać telefonem w sklepie"</string>
     <string name="nfc_payment_default" msgid="8648420259219150395">"Płatność domyślna"</string>
@@ -2468,14 +2468,14 @@
     <string name="nfc_payment_use_default" msgid="3234730182120288495">"Użyj domyślnej"</string>
     <string name="nfc_payment_favor_default" msgid="5743781166099608372">"Zawsze"</string>
     <string name="nfc_payment_favor_open" msgid="1923314062109977944">"Z wyjątkiem, gdy jest otwarta inna aplikacja płatnicza"</string>
-    <string name="nfc_payment_pay_with" msgid="7524904024378144072">"Na terminalu „dotknij i zapłać” zapłać przy użyciu:"</string>
+    <string name="nfc_payment_pay_with" msgid="7524904024378144072">"Na terminalu „Zbliż i zapłać” zapłać przy użyciu:"</string>
     <string name="nfc_how_it_works_title" msgid="1984068457698797207">"Płacenie przy terminalu"</string>
     <string name="nfc_how_it_works_content" msgid="4749007806393224934">"Skonfiguruj aplikację płatniczą, a później przyłóż tylną część telefonu do terminala z symbolem płatności zbliżeniowej."</string>
     <string name="nfc_how_it_works_got_it" msgid="259653300203217402">"OK"</string>
     <string name="nfc_more_title" msgid="815910943655133280">"Więcej..."</string>
     <string name="nfc_payment_set_default_label" msgid="7315817259485674542">"Ustawić jako Twoją preferencję?"</string>
-    <string name="nfc_payment_set_default" msgid="8532426406310833489">"Zawsze używać aplikacji <xliff:g id="APP">%1$s</xliff:g>, gdy korzystasz z systemu „dotknij i zapłać”?"</string>
-    <string name="nfc_payment_set_default_instead_of" msgid="6993301165940432743">"Zawsze używać aplikacji <xliff:g id="APP_0">%1$s</xliff:g> zamiast <xliff:g id="APP_1">%2$s</xliff:g>, gdy korzystasz z systemu „dotknij i zapłać”?"</string>
+    <string name="nfc_payment_set_default" msgid="8532426406310833489">"Zawsze używać aplikacji <xliff:g id="APP">%1$s</xliff:g>, gdy korzystasz z systemu „Zbliż i zapłać”?"</string>
+    <string name="nfc_payment_set_default_instead_of" msgid="6993301165940432743">"Zawsze używać aplikacji <xliff:g id="APP_0">%1$s</xliff:g> zamiast <xliff:g id="APP_1">%2$s</xliff:g>, gdy korzystasz z systemu „Zbliż i zapłać”?"</string>
     <string name="restriction_settings_title" msgid="4233515503765879736">"Ograniczenia"</string>
     <string name="restriction_menu_reset" msgid="2067644523489568173">"Usuń ograniczenia"</string>
     <string name="restriction_menu_change_pin" msgid="740081584044302775">"Zmień PIN"</string>
@@ -2678,8 +2678,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Zastąpić dźwięki w profilu do pracy?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Zastąp"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Dźwięki w Twoim profilu do pracy zostaną zastąpione dźwiękami z Twojego profilu osobistego."</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Ustawienia powiadomień"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Zaawansowane"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Powiadomienia związane z pracą"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Pulsująca dioda"</string>
@@ -3347,4 +3346,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Aplikacje niezainstalowane"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Zainstalowane aplikacje"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Pamięcią zarządza teraz menedżer miejsca"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 072e344..c61065f 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Apps não instalados"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Apps instalados"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Seu armazenamento está sendo controlado pelo gerenciador de armazenamento"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 2000835..df88d18 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Aplicações não instaladas"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Aplicações instaladas"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"O seu armazenamento está agora a ser gerido pelo gestor de armazenamento"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 072e344..c61065f 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Apps não instalados"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Apps instalados"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Seu armazenamento está sendo controlado pelo gerenciador de armazenamento"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index e985ebe..bf063b1 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -3311,4 +3311,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Aplicații neinstalate"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Aplicații instalate"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Spațiul de stocare este acum gestionat de managerul spațiului de stocare"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 957b13d..a157b6d 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -2574,10 +2574,8 @@
     <string name="network_dashboard_title" msgid="4771589228992391573">"Сеть и Интернет"</string>
     <string name="connected_devices_dashboard_title" msgid="2355264951438890709">"Подключенные устройства"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Приложения и уведомления"</string>
-    <!-- no translation found for account_dashboard_title (38701889336378742) -->
-    <skip />
-    <!-- no translation found for app_default_dashboard_title (8176215295082796426) -->
-    <skip />
+    <string name="account_dashboard_title" msgid="38701889336378742">"Пользователь и аккаунты"</string>
+    <string name="app_default_dashboard_title" msgid="8176215295082796426">"Приложения по умолчанию"</string>
     <string name="system_dashboard_summary" msgid="6112602136713843779">"Язык: <xliff:g id="LANGUAGE">%1$s</xliff:g>"</string>
     <string name="search_results_title" msgid="1796252422574886932">"Настройки"</string>
     <string name="search_menu" msgid="6283419262313758339">"Поиск настроек"</string>
@@ -2680,8 +2678,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Изменить настройки?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Да"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Сигналы в рабочем профиле будут заменены звуками, выбранными в личном."</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Настройки оповещений"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Расширенные настройки"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Рабочие уведомления"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Световой индикатор"</string>
@@ -3349,4 +3346,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Приложения не установлены"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Установленные приложения"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Память устройства теперь управляется менеджером хранилища"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index 6817259..88dfedc 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -2636,8 +2636,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"කා. පැතිකඩ හඩ ප්‍රතිස්ථා. කර.?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"ප්‍රතිස්ථාපනය කරන්න"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"ඔබේ වත්මන් කාර්යාල පැතිකඩ හඬවල් ඔබේ පුද්ගලික පැතිකඩ හඬවල්වලින් ප්‍රතිස්ථාපනය වනු ඇත"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"දැනුම්දීම් මනාප"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"උසස්"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"වැඩ දැනුම්දීම්"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"ස්පන්ද දැනුම්දීම් එළිය"</string>
@@ -3279,4 +3278,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"යෙදුම් ස්ථාපනය කර නැත"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"ස්ථාපිත යෙදුම්"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"ඔබේ ගබඩාව දැන් ගබඩා කළමනාකරු විසින් පාලනය කරනු ලැබේ"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index eb09dae..d3030d9 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -3346,4 +3346,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Nenainštalované aplikácie"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Nainštalované aplikácie"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Vaše úložisko odteraz riadi správca úložiska"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 74a7027..d81a888 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -2678,8 +2678,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Zamenj. zvokov v del. profilu?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Zamenjaj"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Trenutne zvoke v delovnem profilu bodo nadomestili zvoki iz osebnega profila"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Nastavitve obvestil"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Dodatno"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Obvestila za delovni profil"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Lučka za obvestila z utripanjem"</string>
@@ -3347,4 +3346,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Nenameščene aplikacije"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Nameščene aplikacije"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Shrambo zdaj upravlja upravitelj shrambe"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
index b6538c1..e13de0a 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq-rAL/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Të zëvendësohen tingujt e profilit të punës?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Zëvendëso"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Tingujt aktualë të profilit tënd të punës do të zëvendësohen me tingujt e profilit tënd personal"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Preferencat e njoftimeve"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Të përparuara"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Njoftimet e punës"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Pulso dritën e njoftimeve"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Aplikacionet nuk janë të instaluara"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Aplikacionet e instaluara"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Hapësira jote ruajtëse tani po menaxhohet nga menaxheri i hapësirës ruajtëse"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index bd31527..5659b8e 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -3311,4 +3311,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Апликације које нису инсталиране"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Инсталиране апликације"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Меморијским простором сада управља Менаџер меморијског простора"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 944ecc7..3bded77 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Ersätta jobbprofilljuden?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Ersätt"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"De nuvarande ljuden i jobbprofilen ersätts med dem i den personliga profilen."</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Aviseringsinställningar"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avancerat"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Jobbaviseringar"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Blinkande ljusavisering"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Appar som är inte installerade"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Installerade appar"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Ditt lagringsutrymme hanteras nu av lagringshanteraren"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index ed78c8d..6507f91 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -2640,8 +2640,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Ungependa kubadilisha sauti za wasifu wako wa kazini?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Badilisha"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Sauti za wasifu wako wa sasa wa kazini zitabadilishwa na nafasi zao kuchuliwa na sauti za wasifu wako binafsi"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Mapendeleo ya arifa"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Mipangilio ya kina"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Arifa za kazini"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Arifu ya mwangaza wa palsi"</string>
@@ -3283,4 +3282,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Programu hazijasakinishwa"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Programu zilizosakinishwa"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Hifadhi yako sasa inasimamiwa na kidhibiti cha hifadhi"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index bc20756..b5fd51c 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"பணி விவர ஒலிகளை மாற்றவா?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"மாற்று"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"உங்கள் பணி விவர ஒலிகளானது தனிப்பட்ட சுயவிவர ஒலிகளாக மாற்றப்படும்"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"அறிவிப்பு விருப்பத்தேர்வுகள்"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"மேம்பட்டவை"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"பணி அறிவிப்புகள்"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"தொடர் அறிவிப்பு விளக்கு"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"பயன்பாடுகள் நிறுவப்படவில்லை"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"நிறுவிய பயன்பாடுகள்"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"உங்கள் சேமிப்பகம் இப்போது சேமிப்பக நிர்வாகியால் நிர்வகிக்கப்படுகிறது"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 67449fe..168acc4 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"కార్యాలయ ప్రొఫైల్ శబ్దాలు భర్తీ చేయాలా?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"భర్తీ చేయి"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"మీ ప్రస్తుత కార్యాలయ ప్రొఫైల్ శబ్దాలు మీ వ్యక్తిగత ప్రొఫైల్ శబ్దాలతో భర్తీ చేయబడతాయి"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"నోటిఫికేషన్ ప్రాధాన్యతలు"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"అధునాతనం"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"కార్యాలయ నోటిఫికేషన్‌లు"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"నోటిఫికేషన్ లైట్‌ను మిణుకుమిణుకుమనేలా చేయి"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"ఇన్‌స్టాల్ చేయని అనువర్తనాలు"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"ఇన్‌స్టాల్ చేయబడిన అనువర్తనాలు"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"మీ నిల్వ ఇప్పుడు నిల్వ నిర్వాహికి ద్వారా నిర్వహించబడుతోంది"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 04c903d..92b1ef0 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"เปลี่ยนเสียงในโปรไฟล์งานไหม"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"แทนที่"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"ระบบจะใช้เสียงในโปรไฟล์ส่วนตัวของคุณแทนเสียงในโปรไฟล์งานปัจจุบัน"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"ค่ากำหนดการแจ้งเตือน"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"ขั้นสูง"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"การแจ้งเตือนงาน"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"ไฟกระพริบแจ้งเตือน"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"ไม่ได้ติดตั้งแอป"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"แอปที่ติดตั้ง"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"ตัวจัดการพื้นที่เก็บข้อมูลกำลังจัดการพื้นที่เก็บข้อมูลของคุณ"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 0363928..de87e82 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Palitan tunog sa profile sa trabaho?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Palitan"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Papalitan ang kasalukuyang mga tunog sa profile sa trabaho ng mga tunog sa iyong personal na profile"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Mga kagustuhan sa notification"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Advanced"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Mga notification sa trabaho"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Pulse na ilaw ng notification"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Hindi naka-install ang mga app"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Mga naka-install na app"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Pinamamahalaan na ngayon ng storage manager ang iyong storage"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 6e36df6..4d8fd3d 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"İş profili seslerini değiştir?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Değiştir"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Mevcut iş profili sesleriniz kişisel profil seslerinizle değiştirilecek"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Bildirim tercihleri"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Gelişmiş"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"İş bildirimleri"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Bildirim ışığını yakıp söndür"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Yüklü olmayan uygulamalar"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Yüklü uygulamalar"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Depolama alanınız artık depolama yöneticisi tarafından yönetiliyor"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index d531bc5..fe8f408 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -3346,4 +3346,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Додатки не встановлено"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Установлені додатки"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Зараз пам’яттю керує диспетчер пам’яті"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index 23c01e6..c6de156 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -2622,8 +2622,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"دفتری پروفائل کی آوازیں بدلیں؟"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"بدلیں"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"آپ کی موجودہ دفتری پروفائل کی آوازیں آپ کی ذاتی پروفائل کی آوازوں سے تبدیل ہو جائیں گی۔"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"اطلاع کی ترجیحات"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"جدید ترین"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"دفتری اطلاعات"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"پلس اطلاعی روشنی"</string>
@@ -3265,4 +3264,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"ایپس انسٹال نہیں ہیں"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"انسٹال کردہ ایپس"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"آپ کی اسٹوریج کا نظم اب اسٹوریج مینیجر کی جانب سے کیا جا رہا ہے"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index a1ae883..0f9becc 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -3276,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Ilovalar o‘rnatilmagan"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"O‘rnatilgan ilovalar"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Xotirangiz hozirda xotira boshqaruvi tomonidan boshqarilmoqda"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 4536626..b3f6236 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Thay thế âm thanh hồ sơ công việc?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Thay thế"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Âm thanh hồ sơ công việc hiện tại của bạn sẽ được thay thế bằng âm thanh hồ sơ cá nhân của bạn"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Tùy chọn thông báo"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Nâng cao"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Thông báo công việc"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Đèn thông báo dạng xung"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Ứng dụng chưa cài đặt"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Ứng dụng đã cài đặt"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Bộ nhớ của bạn hiện đang được quản lý bởi trình quản lý bộ nhớ"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 174a314..996796f 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -2634,8 +2634,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"要替换工作资料提示音吗？"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"替换"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"系统将使用您的个人资料提示音替换您当前的工作资料提示音"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"通知偏好设置"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"高级"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"工作通知"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"收到通知时指示灯闪烁"</string>
@@ -3277,4 +3276,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"未安装的应用"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"已安装的应用"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"您的存储空间目前是由存储空间管理器管理"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index ef69d2f..13832f2 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -2639,8 +2639,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"要取代工作設定檔聲音嗎？"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"取代"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"目前的工作設定檔聲音會以個人設定檔聲音取代"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"通知偏好設定"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"進階"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"工作通知"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"啟用通知燈"</string>
@@ -3282,4 +3281,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"尚未安裝的應用程式"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"已安裝的應用程式"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"您的儲存空間即將由儲存空間管理員管理"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 98565de..3b7bdf1 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -2638,8 +2638,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"要取代 Work 設定檔音效嗎？"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"取代"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"你的個人設定檔音效將取代目前的 Work 設定檔音效"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"通知偏好設定"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"進階"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Work 通知"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"閃爍燈光通知"</string>
@@ -3281,4 +3280,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"未安裝的應用程式"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"已安裝的應用程式"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"你的儲存空間目前是由儲存空間管理員管理"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index b82f64a..e2a66d0 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -2635,8 +2635,7 @@
     <string name="work_sync_dialog_title" msgid="4235493986362911084">"Faka esikhundleni imisindo yephrofayela yomsebenzi?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Buyisela"</string>
     <string name="work_sync_dialog_message" msgid="1655410601622810837">"Imisindo yakho yamanje yephrofayela yomsebenzi izoshintshaniswa nemisindo yakho siqu yephrofayela"</string>
-    <!-- no translation found for configure_notification_settings (7447797716856573587) -->
-    <skip />
+    <string name="configure_notification_settings" msgid="7447797716856573587">"Okuncamelayo kwesaziso"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Okuthuthukisiwe"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Izaziso zomsebenzi"</string>
     <string name="notification_pulse_title" msgid="1247988024534030629">"Ukukhanya kwesaziso sephalsi"</string>
@@ -3278,4 +3277,8 @@
     <string name="web_action_section_title" msgid="806405168097593614">"Izinhlelo zokusebenza azifakiwe"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"Izinhlelo zokusebenza ezifakiwe"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Isitoreji sakho manje siphethwe umphathi wesitoreji"</string>
+    <!-- no translation found for account_for_section_header (5867553104728848377) -->
+    <skip />
+    <!-- no translation found for configure_section_header (7391183586410814450) -->
+    <skip />
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 967b74eb..010706f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5933,9 +5933,9 @@
     <string name="app_and_notification_dashboard_title">Apps &amp; notifications</string>
     <!-- Title for setting tile leading to User and accounts settings [CHAR LIMIT=40]-->
     <string name="account_dashboard_title">User &amp; accounts</string>
-    <!-- Title for setting tile leading to App defaults (which allows user set default app to
+    <!-- Title for setting tile leading to setting UI which allows user set default app to
     handle actions such as open web page, making phone calls, default SMS apps [CHAR  LIMIT=40]-->
-    <string name="app_default_dashboard_title">App defaults</string>
+    <string name="app_default_dashboard_title">Default apps</string>
     <!-- Summary text for system preference tile, showing current display language of device [CHAR LIMIT=NONE]-->
     <string name="system_dashboard_summary">Language: <xliff:g id="language">%1$s</xliff:g></string>
 
@@ -7939,4 +7939,11 @@
     <!-- Configure section header [CHAR LIMIT=30] -->
     <string name="configure_section_header">Configure</string>
 
+    <!-- Switch label to enable auto sync account [CHAR LIMIT=30] -->
+    <string name="auto_sync_account_title">Auto sync account data</string>
+    <!-- Switch label to enable auto sync personal account [CHAR LIMIT=30] -->
+    <string name="auto_sync_personal_account_title">Auto sync personal account data</string>
+    <!-- Switch label to enable auto sync work account [CHAR LIMIT=30] -->
+    <string name="auto_sync_work_account_title">Auto sync work account data</string>
+
 </resources>
diff --git a/res/xml/user_and_accounts_settings.xml b/res/xml/user_and_accounts_settings.xml
index fb09bb6..64b9292 100644
--- a/res/xml/user_and_accounts_settings.xml
+++ b/res/xml/user_and_accounts_settings.xml
@@ -32,12 +32,24 @@
             android:key="account_configuration_header"
             android:title="@string/configure_section_header">
 
-        <com.android.settingslib.RestrictedSwitchPreference
-                android:key="add_users_when_locked"
-                android:title="@string/user_add_on_lockscreen_menu"
-                android:summary="@string/user_add_on_lockscreen_menu_summary"
-                settings:useAdditionalSummary="true" />
-
     </PreferenceCategory>
 
+    <SwitchPreference
+            android:key="auto_sync_account_data"
+            android:title="@string/auto_sync_account_title" />
+
+    <SwitchPreference
+            android:key="auto_sync_work_account_data"
+            android:title="@string/account_settings_menu_auto_sync_work" />
+
+    <SwitchPreference
+            android:key="auto_sync_personal_account_data"
+            android:title="@string/account_settings_menu_auto_sync_personal" />
+
+    <com.android.settingslib.RestrictedSwitchPreference
+            android:key="add_users_when_locked"
+            android:title="@string/user_add_on_lockscreen_menu"
+            android:summary="@string/user_add_on_lockscreen_menu_summary"
+            settings:useAdditionalSummary="true" />
+
 </PreferenceScreen>
diff --git a/src/com/android/settings/DateTimeSettingsSetupWizard.java b/src/com/android/settings/DateTimeSettingsSetupWizard.java
deleted file mode 100644
index 64b9204..0000000
--- a/src/com/android/settings/DateTimeSettingsSetupWizard.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings;
-
-import android.app.Activity;
-import android.app.AlarmManager;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Bundle;
-import android.provider.Settings;
-import android.provider.Settings.SettingNotFoundException;
-import android.support.v14.preference.PreferenceFragment;
-import android.support.v7.preference.Preference;
-import android.util.Log;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.Window;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.Button;
-import android.widget.CompoundButton;
-import android.widget.CompoundButton.OnCheckedChangeListener;
-import android.widget.DatePicker;
-import android.widget.ListPopupWindow;
-import android.widget.SimpleAdapter;
-import android.widget.TimePicker;
-
-import java.util.Calendar;
-import java.util.TimeZone;
-
-public class DateTimeSettingsSetupWizard extends Activity
-        implements OnClickListener, OnItemClickListener, OnCheckedChangeListener,
-        PreferenceFragment.OnPreferenceStartFragmentCallback {
-    private static final String TAG = DateTimeSettingsSetupWizard.class.getSimpleName();
-
-    // force the first status of auto datetime flag.
-    private static final String EXTRA_INITIAL_AUTO_DATETIME_VALUE =
-            "extra_initial_auto_datetime_value";
-
-    // If we have enough screen real estate, we use a radically different layout with
-    // big date and time pickers right on the screen, which requires very different handling.
-    // Otherwise, we use the standard date time settings fragment.
-    private boolean mUsingXLargeLayout;
-
-    /* Available only in XL */
-    private CompoundButton mAutoDateTimeButton;
-    // private CompoundButton mAutoTimeZoneButton;
-
-    private Button mTimeZoneButton;
-    private ListPopupWindow mTimeZonePopup;
-    private SimpleAdapter mTimeZoneAdapter;
-    private TimeZone mSelectedTimeZone;
-
-    private TimePicker mTimePicker;
-    private DatePicker mDatePicker;
-    private InputMethodManager mInputMethodManager;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        requestWindowFeature(Window.FEATURE_NO_TITLE);
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.date_time_settings_setupwizard);
-
-        // we know we've loaded the special xlarge layout because it has controls
-        // not present in the standard layout
-        mUsingXLargeLayout = findViewById(R.id.time_zone_button) != null;
-        if (mUsingXLargeLayout) {
-            initUiForXl();
-        } else {
-            findViewById(R.id.next_button).setOnClickListener(this);
-        }
-        mTimeZoneAdapter = ZonePicker.constructTimezoneAdapter(this, false,
-            R.layout.date_time_setup_custom_list_item_2);
-
-        // For the normal view, disable Back since changes stick immediately
-        // and can't be canceled, and we already have a Next button. For xLarge,
-        // though, we save up our changes and set them upon Next, so Back can
-        // cancel. And also, in xlarge, we need the keyboard dismiss button
-        // to be available.
-        if (!mUsingXLargeLayout) {
-            final View layoutRoot = findViewById(R.id.layout_root);
-            layoutRoot.setSystemUiVisibility(View.STATUS_BAR_DISABLE_BACK);
-        }
-    }
-
-    public void initUiForXl() {
-        // Currently just comment out codes related to auto timezone.
-        // TODO: Remove them when we are sure they are unnecessary.
-        /*
-        final boolean autoTimeZoneEnabled = isAutoTimeZoneEnabled();
-        mAutoTimeZoneButton = (CompoundButton)findViewById(R.id.time_zone_auto);
-        mAutoTimeZoneButton.setChecked(autoTimeZoneEnabled);
-        mAutoTimeZoneButton.setOnCheckedChangeListener(this);
-        mAutoTimeZoneButton.setText(autoTimeZoneEnabled ? R.string.zone_auto_summaryOn :
-                R.string.zone_auto_summaryOff);*/
-
-        final TimeZone tz = TimeZone.getDefault();
-        mSelectedTimeZone = tz;
-        mTimeZoneButton = (Button)findViewById(R.id.time_zone_button);
-        mTimeZoneButton.setText(tz.getDisplayName());
-        mTimeZoneButton.setOnClickListener(this);
-
-        final boolean autoDateTimeEnabled;
-        final Intent intent = getIntent();
-        if (intent.hasExtra(EXTRA_INITIAL_AUTO_DATETIME_VALUE)) {
-            autoDateTimeEnabled = intent.getBooleanExtra(EXTRA_INITIAL_AUTO_DATETIME_VALUE, false);
-        } else {
-            autoDateTimeEnabled = isAutoDateTimeEnabled();
-        }
-
-        mAutoDateTimeButton = (CompoundButton)findViewById(R.id.date_time_auto_button);
-        mAutoDateTimeButton.setChecked(autoDateTimeEnabled);
-        mAutoDateTimeButton.setOnCheckedChangeListener(this);
-
-        mTimePicker = (TimePicker)findViewById(R.id.time_picker);
-        mTimePicker.setEnabled(!autoDateTimeEnabled);
-        mDatePicker = (DatePicker)findViewById(R.id.date_picker);
-        mDatePicker.setEnabled(!autoDateTimeEnabled);
-        mDatePicker.setCalendarViewShown(false);
-        DateTimeSettings.configureDatePicker(mDatePicker);
-
-        mInputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
-
-        ((Button)findViewById(R.id.next_button)).setOnClickListener(this);
-        final Button skipButton = (Button)findViewById(R.id.skip_button);
-        if (skipButton != null) {
-            skipButton.setOnClickListener(this);
-        }
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(Intent.ACTION_TIME_TICK);
-        filter.addAction(Intent.ACTION_TIME_CHANGED);
-        filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
-        registerReceiver(mIntentReceiver, filter, null, null);
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        unregisterReceiver(mIntentReceiver);
-    }
-
-    @Override
-    public void onClick(View view) {
-        switch (view.getId()) {
-        case R.id.time_zone_button: {
-            showTimezonePicker(R.id.time_zone_button);
-            break;
-        }
-        case R.id.next_button: {
-            if (mSelectedTimeZone != null) {
-                final TimeZone systemTimeZone = TimeZone.getDefault();
-                if (!systemTimeZone.equals(mSelectedTimeZone)) {
-                    Log.i(TAG, "Another TimeZone is selected by a user. Changing system TimeZone.");
-                    final AlarmManager alarm = (AlarmManager)
-                            getSystemService(Context.ALARM_SERVICE);
-                    alarm.setTimeZone(mSelectedTimeZone.getID());
-                }
-            }
-            if (mAutoDateTimeButton != null) {
-                Settings.Global.putInt(getContentResolver(), Settings.Global.AUTO_TIME,
-                      mAutoDateTimeButton.isChecked() ? 1 : 0);
-                if (!mAutoDateTimeButton.isChecked()) {
-                    DateTimeSettings.setDate(this, mDatePicker.getYear(), mDatePicker.getMonth(),
-                            mDatePicker.getDayOfMonth());
-                    DateTimeSettings.setTime(this,
-                            mTimePicker.getCurrentHour(), mTimePicker.getCurrentMinute());
-                }
-            }
-        }  // $FALL-THROUGH$
-        case R.id.skip_button: {
-            setResult(RESULT_OK);
-            finish();
-            break;
-        }
-        }
-    }
-
-    @Override
-    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-        final boolean autoEnabled = isChecked;  // just for readibility.
-        /*if (buttonView == mAutoTimeZoneButton) {
-            // In XL screen, we save all the state only when the next button is pressed.
-            if (!mUsingXLargeLayout) {
-                Settings.Global.putInt(getContentResolver(),
-                        Settings.Global.AUTO_TIME_ZONE,
-                        isChecked ? 1 : 0);
-            }
-            mTimeZone.setEnabled(!autoEnabled);
-            if (isChecked) {
-                findViewById(R.id.current_time_zone).setVisibility(View.VISIBLE);
-                findViewById(R.id.zone_picker).setVisibility(View.GONE);
-            }
-        } else */
-        if (buttonView == mAutoDateTimeButton) {
-            Settings.Global.putInt(getContentResolver(),
-                    Settings.Global.AUTO_TIME,
-                    isChecked ? 1 : 0);
-            mTimePicker.setEnabled(!autoEnabled);
-            mDatePicker.setEnabled(!autoEnabled);
-        }
-        if (autoEnabled) {
-            final View focusedView = getCurrentFocus();
-            if (focusedView != null) {
-                mInputMethodManager.hideSoftInputFromWindow(focusedView.getWindowToken(), 0);
-                focusedView.clearFocus();
-            }
-        }
-    }
-
-    @Override
-    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-        final TimeZone tz = ZonePicker.obtainTimeZoneFromItem(parent.getItemAtPosition(position));
-        if (mUsingXLargeLayout) {
-            mSelectedTimeZone = tz;
-            final Calendar now = Calendar.getInstance(tz);
-            if (mTimeZoneButton != null) {
-                mTimeZoneButton.setText(tz.getDisplayName());
-            }
-            mDatePicker.updateDate(now.get(Calendar.YEAR), now.get(Calendar.MONTH),
-                    now.get(Calendar.DAY_OF_MONTH));
-            mTimePicker.setCurrentHour(now.get(Calendar.HOUR_OF_DAY));
-            mTimePicker.setCurrentMinute(now.get(Calendar.MINUTE));
-        } else {
-            // in prefs mode, we actually change the setting right now, as opposed to waiting
-            // until Next is pressed in xLarge mode
-            final AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
-            alarm.setTimeZone(tz.getID());
-            DateTimeSettings settingsFragment = (DateTimeSettings) getFragmentManager().
-                    findFragmentById(R.id.date_time_settings_fragment);
-            settingsFragment.updateTimeAndDateDisplay(this);
-        }
-        mTimeZonePopup.dismiss();
-    }
-
-    /**
-     * If this is called, that means we're in prefs style portrait mode for a large display
-     * and the user has tapped on the time zone preference. If we were a PreferenceActivity,
-     * we'd then launch the timezone fragment in a new activity, but we aren't, and here
-     * on a tablet display, we really want more of a popup picker look' like the one we use
-     * for the xlarge version of this activity. So we just take this opportunity to launch that.
-     *
-     * TODO: For phones, we might want to change this to do the "normal" opening
-     * of the zonepicker fragment in its own activity. Or we might end up just
-     * creating a separate DateTimeSettingsSetupWizardPhone activity that subclasses
-     * PreferenceActivity in the first place to handle all that automatically.
-     */
-    @Override
-    public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) {
-        showTimezonePicker(R.id.timezone_dropdown_anchor);
-        return true;
-    }
-
-    private void showTimezonePicker(int anchorViewId) {
-        View anchorView = findViewById(anchorViewId);
-        if (anchorView == null) {
-            Log.e(TAG, "Unable to find zone picker anchor view " + anchorViewId);
-            return;
-        }
-        mTimeZonePopup = new ListPopupWindow(this, null);
-        mTimeZonePopup.setWidth(anchorView.getWidth());
-        mTimeZonePopup.setAnchorView(anchorView);
-        mTimeZonePopup.setAdapter(mTimeZoneAdapter);
-        mTimeZonePopup.setOnItemClickListener(this);
-        mTimeZonePopup.setModal(true);
-        mTimeZonePopup.show();
-    }
-
-    private boolean isAutoDateTimeEnabled() {
-        try {
-            return Settings.Global.getInt(getContentResolver(), Settings.Global.AUTO_TIME) > 0;
-        } catch (SettingNotFoundException e) {
-            return true;
-        }
-    }
-
-    /*
-    private boolean isAutoTimeZoneEnabled() {
-        try {
-            return Settings.Global.getInt(getContentResolver(),
-                    Settings.Global.AUTO_TIME_ZONE) > 0;
-        } catch (SettingNotFoundException e) {
-            return true;
-        }
-    }*/
-
-    private void updateTimeAndDateDisplay() {
-        if (!mUsingXLargeLayout) {
-            return;
-        }
-        final Calendar now = Calendar.getInstance();
-        mTimeZoneButton.setText(now.getTimeZone().getDisplayName());
-        mDatePicker.updateDate(now.get(Calendar.YEAR), now.get(Calendar.MONTH),
-                now.get(Calendar.DAY_OF_MONTH));
-        mTimePicker.setCurrentHour(now.get(Calendar.HOUR_OF_DAY));
-        mTimePicker.setCurrentMinute(now.get(Calendar.MINUTE));
-    }
-
-    private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            updateTimeAndDateDisplay();
-        }
-    };
-}
diff --git a/src/com/android/settings/FallbackHome.java b/src/com/android/settings/FallbackHome.java
index 5f7b639..89675e3 100644
--- a/src/com/android/settings/FallbackHome.java
+++ b/src/com/android/settings/FallbackHome.java
@@ -77,7 +77,7 @@
                     | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
         }
 
-        registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_USER_UNLOCKED));
+        registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_USER_PRESENT));
         maybeFinish();
     }
 
diff --git a/src/com/android/settings/ZonePicker.java b/src/com/android/settings/ZonePicker.java
index 6865090..b1778c6 100644
--- a/src/com/android/settings/ZonePicker.java
+++ b/src/com/android/settings/ZonePicker.java
@@ -76,7 +76,7 @@
     public static SimpleAdapter constructTimezoneAdapter(Context context,
             boolean sortedByName) {
         return constructTimezoneAdapter(context, sortedByName,
-                R.layout.date_time_setup_custom_list_item_2);
+                R.layout.date_time_custom_list_item_2);
     }
 
     /**
diff --git a/src/com/android/settings/accounts/AccountPreferenceBase.java b/src/com/android/settings/accounts/AccountPreferenceBase.java
index 65d5887..c6581ac 100644
--- a/src/com/android/settings/accounts/AccountPreferenceBase.java
+++ b/src/com/android/settings/accounts/AccountPreferenceBase.java
@@ -33,10 +33,10 @@
 import android.support.v7.preference.PreferenceScreen;
 import android.text.format.DateFormat;
 import android.util.Log;
-import android.view.ContextThemeWrapper;
 
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
+import com.android.settings.utils.LocalClassLoaderContextThemeWrapper;
 import com.android.settingslib.accounts.AuthenticatorHelper;
 
 import java.util.ArrayList;
@@ -156,7 +156,8 @@
                             desc.packageName, 0, mUserHandle);
                     final Theme baseTheme = getResources().newTheme();
                     baseTheme.applyStyle(com.android.settings.R.style.Theme_SettingsBase, true);
-                    final Context themedCtx = new ContextThemeWrapper(targetCtx, 0);
+                    final Context themedCtx =
+                            new LocalClassLoaderContextThemeWrapper(getClass(), targetCtx, 0);
                     themedCtx.getTheme().setTo(baseTheme);
                     prefs = getPreferenceManager().inflateFromResource(themedCtx,
                             desc.accountPreferencesId, parent);
diff --git a/src/com/android/settings/accounts/AccountSettings.java b/src/com/android/settings/accounts/AccountSettings.java
index e93c7fa..376aeef 100644
--- a/src/com/android/settings/accounts/AccountSettings.java
+++ b/src/com/android/settings/accounts/AccountSettings.java
@@ -20,9 +20,7 @@
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.app.ActivityManager;
-import android.app.AlertDialog;
 import android.app.Dialog;
-import android.app.DialogFragment;
 import android.content.BroadcastReceiver;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -107,7 +105,7 @@
     /**
      * Holds data related to the accounts belonging to one profile.
      */
-    private static class ProfileData {
+    public static class ProfileData {
         /**
          * The preference that displays the accounts.
          */
@@ -619,8 +617,8 @@
             if (ActivityManager.isUserAMonkey()) {
                 Log.d(TAG, "ignoring monkey's attempt to flip sync state");
             } else {
-                ConfirmAutoSyncChangeFragment.show(AccountSettings.this, !item.isChecked(),
-                        mUserHandle);
+                AutoSyncDataPreferenceController.ConfirmAutoSyncChangeFragment.show(
+                        AccountSettings.this, !item.isChecked(), mUserHandle, /*preference*/null);
             }
             return true;
         }
@@ -657,67 +655,6 @@
         }
     }
 
-    /**
-     * Dialog to inform user about changing auto-sync setting
-     */
-    public static class ConfirmAutoSyncChangeFragment extends InstrumentedDialogFragment {
-        private static final String SAVE_ENABLING = "enabling";
-        private static final String SAVE_USER_HANDLE = "userHandle";
-        private boolean mEnabling;
-        private UserHandle mUserHandle;
-
-        public static void show(AccountSettings parent, boolean enabling, UserHandle userHandle) {
-            if (!parent.isAdded()) return;
-
-            final ConfirmAutoSyncChangeFragment dialog = new ConfirmAutoSyncChangeFragment();
-            dialog.mEnabling = enabling;
-            dialog.mUserHandle = userHandle;
-            dialog.setTargetFragment(parent, 0);
-            dialog.show(parent.getFragmentManager(), TAG_CONFIRM_AUTO_SYNC_CHANGE);
-        }
-
-        @Override
-        public Dialog onCreateDialog(Bundle savedInstanceState) {
-            final Context context = getActivity();
-            if (savedInstanceState != null) {
-                mEnabling = savedInstanceState.getBoolean(SAVE_ENABLING);
-                mUserHandle = (UserHandle) savedInstanceState.getParcelable(SAVE_USER_HANDLE);
-            }
-
-            final AlertDialog.Builder builder = new AlertDialog.Builder(context);
-            if (!mEnabling) {
-                builder.setTitle(R.string.data_usage_auto_sync_off_dialog_title);
-                builder.setMessage(R.string.data_usage_auto_sync_off_dialog);
-            } else {
-                builder.setTitle(R.string.data_usage_auto_sync_on_dialog_title);
-                builder.setMessage(R.string.data_usage_auto_sync_on_dialog);
-            }
-
-            builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                    ContentResolver.setMasterSyncAutomaticallyAsUser(mEnabling,
-                            mUserHandle.getIdentifier());
-                }
-            });
-            builder.setNegativeButton(android.R.string.cancel, null);
-
-            return builder.create();
-        }
-
-        @Override
-        public void onSaveInstanceState(Bundle outState) {
-            super.onSaveInstanceState(outState);
-            outState.putBoolean(SAVE_ENABLING, mEnabling);
-            outState.putParcelable(SAVE_USER_HANDLE, mUserHandle);
-        }
-
-        @Override
-        public int getMetricsCategory() {
-            return MetricsEvent.DIALOG_CONFIRM_AUTO_SYNC_CHANGE;
-        }
-    }
-
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider() {
         @Override
diff --git a/src/com/android/settings/accounts/AutoSyncDataPreferenceController.java b/src/com/android/settings/accounts/AutoSyncDataPreferenceController.java
new file mode 100644
index 0000000..ba34b3b
--- /dev/null
+++ b/src/com/android/settings/accounts/AutoSyncDataPreferenceController.java
@@ -0,0 +1,161 @@
+/*
+ * 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.
+ */
+package com.android.settings.accounts;
+
+import android.app.ActivityManager;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.Fragment;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.os.Process;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+
+import android.util.Log;
+import com.android.internal.logging.MetricsProto;
+import com.android.settings.R;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+
+public class AutoSyncDataPreferenceController extends PreferenceController {
+
+    private static final String TAG = "AutoSyncDataController";
+    private static final String TAG_CONFIRM_AUTO_SYNC_CHANGE = "confirmAutoSyncChange";
+    private static final String KEY_AUTO_SYNC_ACCOUNT = "auto_sync_account_data";
+
+    protected UserManager mUserManager;
+    private UserHandle mUserHandle;
+    private Fragment mParentFragment;
+
+    public AutoSyncDataPreferenceController(Context context, Fragment parent) {
+        super(context);
+        mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+        mParentFragment = parent;
+        mUserHandle = Process.myUserHandle();
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        SwitchPreference switchPreference = (SwitchPreference) preference;
+        switchPreference.setChecked(ContentResolver.getMasterSyncAutomaticallyAsUser(
+                mUserHandle.getIdentifier()));
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (getPreferenceKey().equals(preference.getKey())) {
+            SwitchPreference switchPreference = (SwitchPreference) preference;
+            boolean checked = switchPreference.isChecked();
+            switchPreference.setChecked(!checked);
+            if (ActivityManager.isUserAMonkey()) {
+                Log.d(TAG, "ignoring monkey's attempt to flip sync state");
+            } else {
+                ConfirmAutoSyncChangeFragment.show(mParentFragment, checked, mUserHandle,
+                        switchPreference);
+            }
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return !mUserManager.isManagedProfile()
+                && (mUserManager.isLinkedUser()
+                || mUserManager.getProfiles(UserHandle.myUserId()).size() == 1);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_AUTO_SYNC_ACCOUNT;
+    }
+
+    /**
+     * Dialog to inform user about changing auto-sync setting
+     */
+    public static class ConfirmAutoSyncChangeFragment extends InstrumentedDialogFragment implements
+            DialogInterface.OnClickListener {
+        private static final String SAVE_ENABLING = "enabling";
+        private static final String SAVE_USER_HANDLE = "userHandle";
+        boolean mEnabling;
+        UserHandle mUserHandle;
+        SwitchPreference mPreference;
+
+        public static void show(Fragment parent, boolean enabling, UserHandle userHandle,
+                SwitchPreference preference) {
+            if (!parent.isAdded()) return;
+
+            final ConfirmAutoSyncChangeFragment dialog = new ConfirmAutoSyncChangeFragment();
+            dialog.mEnabling = enabling;
+            dialog.mUserHandle = userHandle;
+            dialog.setTargetFragment(parent, 0);
+            dialog.mPreference = preference;
+            dialog.show(parent.getFragmentManager(), TAG_CONFIRM_AUTO_SYNC_CHANGE);
+        }
+
+        @Override
+        public Dialog onCreateDialog(Bundle savedInstanceState) {
+            final Context context = getActivity();
+            if (savedInstanceState != null) {
+                mEnabling = savedInstanceState.getBoolean(SAVE_ENABLING);
+                mUserHandle = (UserHandle) savedInstanceState.getParcelable(SAVE_USER_HANDLE);
+            }
+
+            final AlertDialog.Builder builder = new AlertDialog.Builder(context);
+            if (!mEnabling) {
+                builder.setTitle(R.string.data_usage_auto_sync_off_dialog_title);
+                builder.setMessage(R.string.data_usage_auto_sync_off_dialog);
+            } else {
+                builder.setTitle(R.string.data_usage_auto_sync_on_dialog_title);
+                builder.setMessage(R.string.data_usage_auto_sync_on_dialog);
+            }
+
+            builder.setPositiveButton(android.R.string.ok, this);
+            builder.setNegativeButton(android.R.string.cancel, null);
+
+            return builder.create();
+        }
+
+        @Override
+        public void onSaveInstanceState(Bundle outState) {
+            super.onSaveInstanceState(outState);
+            outState.putBoolean(SAVE_ENABLING, mEnabling);
+            outState.putParcelable(SAVE_USER_HANDLE, mUserHandle);
+        }
+
+        @Override
+        public int getMetricsCategory() {
+            return MetricsProto.MetricsEvent.DIALOG_CONFIRM_AUTO_SYNC_CHANGE;
+        }
+
+        @Override
+        public void onClick(DialogInterface dialog, int which) {
+            if (which == DialogInterface.BUTTON_POSITIVE) {
+                ContentResolver.setMasterSyncAutomaticallyAsUser(mEnabling,
+                        mUserHandle.getIdentifier());
+                if (mPreference != null) {
+                    mPreference.setChecked(mEnabling);
+                }
+            }
+        }
+    }
+
+}
diff --git a/src/com/android/settings/accounts/AutoSyncPersonalDataPreferenceController.java b/src/com/android/settings/accounts/AutoSyncPersonalDataPreferenceController.java
new file mode 100644
index 0000000..673b453
--- /dev/null
+++ b/src/com/android/settings/accounts/AutoSyncPersonalDataPreferenceController.java
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ */
+package com.android.settings.accounts;
+
+import android.app.Fragment;
+import android.content.Context;
+import android.os.UserHandle;
+
+public class AutoSyncPersonalDataPreferenceController extends AutoSyncDataPreferenceController {
+
+    private static final String TAG = "AutoSyncPersonalData";
+    private static final String KEY_AUTO_SYNC_PERSONAL_ACCOUNT = "auto_sync_personal_account_data";
+
+    public AutoSyncPersonalDataPreferenceController(Context context, Fragment parent) {
+        super(context, parent);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return !mUserManager.isManagedProfile() && !mUserManager.isLinkedUser()
+                && mUserManager.getProfiles(UserHandle.myUserId()).size() > 1;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_AUTO_SYNC_PERSONAL_ACCOUNT;
+    }
+
+}
diff --git a/src/com/android/settings/accounts/AutoSyncWorkDataPreferenceController.java b/src/com/android/settings/accounts/AutoSyncWorkDataPreferenceController.java
new file mode 100644
index 0000000..899f77d
--- /dev/null
+++ b/src/com/android/settings/accounts/AutoSyncWorkDataPreferenceController.java
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+package com.android.settings.accounts;
+
+import android.app.Fragment;
+import android.content.Context;
+
+public class AutoSyncWorkDataPreferenceController extends AutoSyncPersonalDataPreferenceController {
+
+    private static final String TAG = "AutoSyncWorkData";
+    private static final String KEY_AUTO_SYNC_WORK_ACCOUNT = "auto_sync_work_account_data";
+
+    public AutoSyncWorkDataPreferenceController(Context context, Fragment parent) {
+        super(context, parent);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_AUTO_SYNC_WORK_ACCOUNT;
+    }
+
+}
diff --git a/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java b/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java
index bb4d8a1..642a63a 100644
--- a/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java
+++ b/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java
@@ -58,6 +58,9 @@
                 new AddUserWhenLockedPreferenceController(context);
         controllers.add(addUserWhenLockedPrefController);
         getLifecycle().addObserver(addUserWhenLockedPrefController);
+        controllers.add(new AutoSyncDataPreferenceController(context, this));
+        controllers.add(new AutoSyncPersonalDataPreferenceController(context, this));
+        controllers.add(new AutoSyncWorkDataPreferenceController(context, this));
         return controllers;
     }
 
diff --git a/src/com/android/settings/applications/AppStateNotificationBridge.java b/src/com/android/settings/applications/AppStateNotificationBridge.java
index b936351..5fff175 100644
--- a/src/com/android/settings/applications/AppStateNotificationBridge.java
+++ b/src/com/android/settings/applications/AppStateNotificationBridge.java
@@ -16,6 +16,7 @@
 package com.android.settings.applications;
 
 import android.app.Notification;
+import android.app.NotificationManager;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.os.UserHandle;
@@ -92,8 +93,8 @@
                 return false;
             }
             AppRow row = (AppRow) info.extraInfo;
-            return row.appImportance > NotificationListenerService.Ranking.IMPORTANCE_NONE
-                    && row.appImportance < NotificationListenerService.Ranking.IMPORTANCE_DEFAULT;
+            return row.appImportance > NotificationManager.IMPORTANCE_NONE
+                    && row.appImportance < NotificationManager.IMPORTANCE_DEFAULT;
         }
     };
 
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index f23d214..652b8ec 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -22,6 +22,7 @@
 import android.app.AlertDialog;
 import android.app.LoaderManager.LoaderCallbacks;
 import android.app.Notification;
+import android.app.NotificationManager;
 import android.app.admin.DevicePolicyManager;
 import android.content.ActivityNotFoundException;
 import android.content.BroadcastReceiver;
@@ -1099,15 +1100,15 @@
         List<String> summaryAttributes = new ArrayList<>();
         StringBuffer summary = new StringBuffer();
         if (showSlider) {
-            if (appRow.appImportance != Ranking.IMPORTANCE_UNSPECIFIED) {
+            if (appRow.appImportance != NotificationManager.IMPORTANCE_UNSPECIFIED) {
                 summaryAttributes.add(context.getString(
                         R.string.notification_summary_level, appRow.appImportance));
             }
         } else {
             if (appRow.banned) {
                 summaryAttributes.add(context.getString(R.string.notifications_disabled));
-            } else if (appRow.appImportance > Ranking.IMPORTANCE_NONE
-                    && appRow.appImportance < Ranking.IMPORTANCE_DEFAULT) {
+            } else if (appRow.appImportance > NotificationManager.IMPORTANCE_NONE
+                    && appRow.appImportance < NotificationManager.IMPORTANCE_DEFAULT) {
                 summaryAttributes.add(context.getString(R.string.notifications_silenced));
             }
         }
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index 2e8c7ad..c42ecb3 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -27,6 +27,7 @@
 import com.android.settings.SettingsActivity;
 import com.android.settingslib.drawer.CategoryManager;
 import com.android.settingslib.drawer.DashboardCategory;
+import com.android.settingslib.drawer.ProfileSelectDialog;
 import com.android.settingslib.drawer.Tile;
 
 import java.util.List;
@@ -97,6 +98,12 @@
         }
         if (!TextUtils.isEmpty(clsName)) {
             pref.setFragment(clsName);
+        } else if (tile.userHandle != null && tile.userHandle.size() > 1) {
+            pref.setOnPreferenceClickListener(preference -> {
+                ProfileSelectDialog.updateUserHandlesIfNeeded(activity, tile);
+                ProfileSelectDialog.show(activity.getFragmentManager(), tile);
+                return true;
+            });
         } else if (tile.intent != null) {
             final Intent intent = new Intent(tile.intent);
             pref.setOnPreferenceClickListener(preference -> {
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index 3bbec09..dddc4cc 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -288,7 +288,6 @@
     void refreshDashboardTiles(final String TAG) {
         final PreferenceScreen screen = getPreferenceScreen();
 
-        final Context context = getContext();
         final DashboardCategory category =
                 mDashboardFeatureProvider.getTilesForCategory(getCategoryKey());
         if (category == null) {
@@ -324,7 +323,7 @@
                         getActivity(), preference, tile, key);
             } else {
                 // Don't have this key, add it.
-                final Preference pref = new DashboardTilePreference(context);
+                final Preference pref = new Preference(getPrefContext());
                 mDashboardFeatureProvider.bindPreferenceToTile(getActivity(), pref, tile, key);
                 mProgressiveDisclosureMixin.addPreference(screen, pref);
                 mDashboardTilePrefKeys.add(key);
diff --git a/src/com/android/settings/dashboard/SearchResultsSummary.java b/src/com/android/settings/dashboard/SearchResultsSummary.java
index bd9948b..1c73a84 100644
--- a/src/com/android/settings/dashboard/SearchResultsSummary.java
+++ b/src/com/android/settings/dashboard/SearchResultsSummary.java
@@ -322,6 +322,7 @@
             mUpdateSuggestionsTask = null;
         }
         setSuggestionsCursor(null);
+        setSuggestionsVisibility(false);
     }
 
     private void setSuggestionsCursor(Cursor cursor) {
@@ -340,6 +341,7 @@
             mUpdateSearchResultsTask = null;
         }
         setResultsCursor(null);
+        setResultsVisibility(false);
     }
 
     private void setResultsCursor(Cursor cursor) {
diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java
index fb36c54..8e47af5 100644
--- a/src/com/android/settings/notification/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/AppNotificationSettings.java
@@ -102,7 +102,7 @@
             mChannelList = mBackend.getChannels(mPkg, mUid).getList();
 
             setupImportancePrefs(mAppRow.systemApp, mAppRow.appImportance, mAppRow.banned,
-                    NotificationManager.IMPORTANCE_MAX);
+                    NotificationManager.IMPORTANCE_HIGH);
             setupPriorityPref(mAppRow.appBypassDnd);
             setupVisOverridePref(mAppRow.appVisOverride);
 
diff --git a/src/com/android/settings/notification/ChannelNotificationSettings.java b/src/com/android/settings/notification/ChannelNotificationSettings.java
index a405de6..7f384a5 100644
--- a/src/com/android/settings/notification/ChannelNotificationSettings.java
+++ b/src/com/android/settings/notification/ChannelNotificationSettings.java
@@ -17,6 +17,7 @@
 package com.android.settings.notification;
 
 import android.app.Activity;
+import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.content.Intent;
 import android.net.Uri;
@@ -24,6 +25,7 @@
 import android.provider.Settings;
 import android.service.notification.NotificationListenerService.Ranking;
 import android.support.v7.preference.Preference;
+import android.view.View;
 
 import com.android.internal.logging.MetricsProto.MetricsEvent;
 import com.android.settings.AppHeader;
@@ -94,7 +96,7 @@
             setupVibrate();
             setupRingtone();
             mMaxImportance = mAppRow.appImportance == NotificationManager.IMPORTANCE_UNSPECIFIED
-                    ? NotificationManager.IMPORTANCE_MAX : mAppRow.appImportance;
+                    ? NotificationManager.IMPORTANCE_HIGH : mAppRow.appImportance;
             setupImportancePrefs(false, mChannel.getImportance(),
                     mChannel.getImportance() == NotificationManager.IMPORTANCE_NONE,
                     mMaxImportance);
@@ -141,6 +143,7 @@
             public boolean onPreferenceChange(Preference preference, Object newValue) {
                 final boolean lights = (Boolean) newValue;
                 mChannel.setLights(lights);
+                mChannel.lockFields(NotificationChannel.USER_LOCKED_LIGHTS);
                 mBackend.updateChannel(mPkg, mUid, mChannel);
                 return true;
             }
@@ -155,6 +158,7 @@
             public boolean onPreferenceChange(Preference preference, Object newValue) {
                 final boolean vibrate = (Boolean) newValue;
                 mChannel.setVibration(vibrate);
+                mChannel.lockFields(NotificationChannel.USER_LOCKED_VIBRATION);
                 mBackend.updateChannel(mPkg, mUid, mChannel);
                 return true;
             }
@@ -162,13 +166,14 @@
     }
 
     private void setupRingtone() {
-        mRingtone.setRingtone(mChannel.getDefaultRingtone());
+        mRingtone.setRingtone(mChannel.getRingtone());
         mRingtone.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
             @Override
             public boolean onPreferenceChange(Preference preference, Object newValue) {
                 Uri ringtone = Uri.parse((String) newValue);
                 mRingtone.setRingtone(ringtone);
-                mChannel.setDefaultRingtone(ringtone);
+                mChannel.setRingtone(ringtone);
+                mChannel.lockFields(NotificationChannel.USER_LOCKED_RINGTONE);
                 mBackend.updateChannel(mPkg, mUid, mChannel);
                 return false;
             }
diff --git a/src/com/android/settings/notification/ImportanceSeekBarPreference.java b/src/com/android/settings/notification/ImportanceSeekBarPreference.java
index 0617df9..568dc1c 100644
--- a/src/com/android/settings/notification/ImportanceSeekBarPreference.java
+++ b/src/com/android/settings/notification/ImportanceSeekBarPreference.java
@@ -19,6 +19,7 @@
 import com.android.settings.R;
 import com.android.settings.SeekBarPreference;
 
+import android.app.NotificationManager;
 import android.content.Context;
 import android.content.res.ColorStateList;
 import android.content.res.TypedArray;
@@ -119,12 +120,10 @@
     private void applyAuto(ImageView autoButton) {
         mAutoOn = !mAutoOn;
         if (!mAutoOn) {
-            setProgress(NotificationListenerService.Ranking.IMPORTANCE_DEFAULT);
-            mCallback.onImportanceChanged(
-                    NotificationListenerService.Ranking.IMPORTANCE_DEFAULT, true);
+            setProgress(NotificationManager.IMPORTANCE_DEFAULT);
+            mCallback.onImportanceChanged(NotificationManager.IMPORTANCE_DEFAULT, true);
         } else {
-            mCallback.onImportanceChanged(
-                    NotificationListenerService.Ranking.IMPORTANCE_UNSPECIFIED, true);
+            mCallback.onImportanceChanged(NotificationManager.IMPORTANCE_UNSPECIFIED, true);
         }
         applyAutoUi(autoButton);
     }
@@ -140,9 +139,8 @@
         mSeekBar.setAlpha(alpha);
 
         if (mAutoOn) {
-            setProgress(NotificationListenerService.Ranking.IMPORTANCE_DEFAULT);
-            mSummary = getProgressSummary(
-                    NotificationListenerService.Ranking.IMPORTANCE_UNSPECIFIED);
+            setProgress(NotificationManager.IMPORTANCE_DEFAULT);
+            mSummary = getProgressSummary(NotificationManager.IMPORTANCE_UNSPECIFIED);
         }
         mSummaryTextView.setText(mSummary);
     }
@@ -168,18 +166,17 @@
 
     private String getProgressSummary(int progress) {
         switch (progress) {
-            case NotificationListenerService.Ranking.IMPORTANCE_NONE:
+            case NotificationManager.IMPORTANCE_NONE:
                 return getContext().getString(R.string.notification_importance_blocked);
-            case NotificationListenerService.Ranking.IMPORTANCE_MIN:
+            case NotificationManager.IMPORTANCE_MIN:
                 return getContext().getString(R.string.notification_importance_min);
-            case NotificationListenerService.Ranking.IMPORTANCE_LOW:
+            case NotificationManager.IMPORTANCE_LOW:
                 return getContext().getString(R.string.notification_importance_low);
-            case NotificationListenerService.Ranking.IMPORTANCE_DEFAULT:
+            case NotificationManager.IMPORTANCE_DEFAULT:
                 return getContext().getString(R.string.notification_importance_default);
-            case NotificationListenerService.Ranking.IMPORTANCE_HIGH:
+            case NotificationManager.IMPORTANCE_HIGH:
+            case NotificationManager.IMPORTANCE_MAX:
                 return getContext().getString(R.string.notification_importance_high);
-            case NotificationListenerService.Ranking.IMPORTANCE_MAX:
-                return getContext().getString(R.string.notification_importance_max);
             default:
                 return getContext().getString(R.string.notification_importance_unspecified);
         }
diff --git a/src/com/android/settings/notification/NotificationBackend.java b/src/com/android/settings/notification/NotificationBackend.java
index 32eacc6..5d69203 100644
--- a/src/com/android/settings/notification/NotificationBackend.java
+++ b/src/com/android/settings/notification/NotificationBackend.java
@@ -18,6 +18,7 @@
 import android.app.INotificationManager;
 import android.app.Notification;
 import android.app.NotificationChannel;
+import android.app.NotificationManager;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
@@ -139,7 +140,7 @@
             return sINM.getImportance(pkg, uid);
         } catch (Exception e) {
             Log.w(TAG, "Error calling NoMan", e);
-            return NotificationListenerService.Ranking.IMPORTANCE_UNSPECIFIED;
+            return NotificationManager.IMPORTANCE_UNSPECIFIED;
         }
     }
 
diff --git a/src/com/android/settings/notification/NotificationSettingsBase.java b/src/com/android/settings/notification/NotificationSettingsBase.java
index 0925833..5d6f598 100644
--- a/src/com/android/settings/notification/NotificationSettingsBase.java
+++ b/src/com/android/settings/notification/NotificationSettingsBase.java
@@ -178,16 +178,18 @@
             setVisible(mSilent, false);
             mImportance.setDisabledByAdmin(mSuspendedAppsAdmin);
             mImportance.setMinimumProgress(
-                    notBlockable ? Ranking.IMPORTANCE_MIN : Ranking.IMPORTANCE_NONE);
+                    notBlockable ? NotificationManager.IMPORTANCE_MIN
+                            : NotificationManager.IMPORTANCE_NONE);
             mImportance.setMax(maxImportance);
             mImportance.setProgress(Math.min(importance, maxImportance));
-            mImportance.setAutoOn(importance == Ranking.IMPORTANCE_UNSPECIFIED);
+            mImportance.setAutoOn(importance == NotificationManager.IMPORTANCE_UNSPECIFIED);
             mImportance.setCallback(new ImportanceSeekBarPreference.Callback() {
                 @Override
                 public void onImportanceChanged(int progress, boolean fromUser) {
                     if (fromUser) {
                         if (mChannel != null) {
                             mChannel.setImportance(progress);
+                            mChannel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
                             mBackend.updateChannel(mPkg, mUid, mChannel);
                         } else {
                             mBackend.setImportance(mPkg, mUid, progress);
@@ -209,10 +211,11 @@
                                     Object newValue) {
                                 final boolean blocked = (Boolean) newValue;
                                 final int importance = blocked
-                                        ? Ranking.IMPORTANCE_NONE
-                                        : Ranking.IMPORTANCE_UNSPECIFIED;
+                                        ? NotificationManager.IMPORTANCE_NONE
+                                        : NotificationManager.IMPORTANCE_UNSPECIFIED;
                                 if (mChannel != null) {
                                     mChannel.setImportance(importance);
+                                    mChannel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
                                     mBackend.updateChannel(mPkg, mUid, mChannel);
                                 } else {
                                     mBackend.setImportance(mPkgInfo.packageName, mUid,
@@ -226,9 +229,10 @@
             // app silenced; cannot un-silence a channel
             if (maxImportance == NotificationManager.IMPORTANCE_LOW) {
                 setVisible(mSilent, false);
-                updateDependents(banned ? Ranking.IMPORTANCE_NONE : Ranking.IMPORTANCE_LOW);
+                updateDependents(banned ? NotificationManager.IMPORTANCE_NONE
+                        : NotificationManager.IMPORTANCE_LOW);
             } else {
-                mSilent.setChecked(importance == Ranking.IMPORTANCE_LOW);
+                mSilent.setChecked(importance == NotificationManager.IMPORTANCE_LOW);
                 mSilent.setOnPreferenceChangeListener(
                         new Preference.OnPreferenceChangeListener() {
                             @Override
@@ -236,10 +240,11 @@
                                     Object newValue) {
                                 final boolean silenced = (Boolean) newValue;
                                 final int importance = silenced
-                                        ? Ranking.IMPORTANCE_LOW
-                                        : Ranking.IMPORTANCE_UNSPECIFIED;
+                                        ? NotificationManager.IMPORTANCE_LOW
+                                        : NotificationManager.IMPORTANCE_UNSPECIFIED;
                                 if (mChannel != null) {
                                     mChannel.setImportance(importance);
+                                    mChannel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
                                     mBackend.updateChannel(mPkg, mUid, mChannel);
                                 } else {
                                     mBackend.setImportance(mPkgInfo.packageName, mUid,
@@ -249,7 +254,7 @@
                                 return true;
                             }
                         });
-                updateDependents(banned ? Ranking.IMPORTANCE_NONE : importance);
+                updateDependents(banned ? NotificationManager.IMPORTANCE_NONE : importance);
             }
         }
     }
@@ -263,6 +268,7 @@
                 final boolean bypassZenMode = (Boolean) newValue;
                 if (mChannel != null) {
                     mChannel.setBypassDnd(bypassZenMode);
+                    mChannel.lockFields(NotificationChannel.USER_LOCKED_PRIORITY);
                     mBackend.updateChannel(mPkg, mUid, mChannel);
                     return true;
                 } else {
@@ -280,7 +286,8 @@
         if (getLockscreenNotificationsEnabled() && getLockscreenAllowPrivateNotifications()) {
             final String summaryShowEntry =
                     getString(R.string.lock_screen_notifications_summary_show);
-            final String summaryShowEntryValue = Integer.toString(Ranking.VISIBILITY_NO_OVERRIDE);
+            final String summaryShowEntryValue =
+                    Integer.toString(NotificationManager.VISIBILITY_NO_OVERRIDE);
             entries.add(summaryShowEntry);
             values.add(summaryShowEntryValue);
             setRestrictedIfNotificationFeaturesDisabled(summaryShowEntry, summaryShowEntryValue,
@@ -306,7 +313,8 @@
         }
         mVisibilityOverride.setSummary("%s");
 
-        mVisibilityOverride.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
+        mVisibilityOverride.setOnPreferenceChangeListener(
+                new Preference.OnPreferenceChangeListener() {
             @Override
             public boolean onPreferenceChange(Preference preference, Object newValue) {
                 int sensitive = Integer.parseInt((String) newValue);
@@ -315,6 +323,7 @@
                 }
                 if (mChannel != null) {
                     mChannel.setLockscreenVisibility(sensitive);
+                    mChannel.lockFields(NotificationChannel.USER_LOCKED_VISIBILITY);
                     mBackend.updateChannel(mPkg, mUid, mChannel);
                 } else {
                     mBackend.setVisibilityOverride(mPkgInfo.packageName, mUid, sensitive);
@@ -367,14 +376,15 @@
 
     protected void updateDependents(int importance) {
         if (getPreferenceScreen().findPreference(mBlock.getKey()) != null) {
-            setVisible(mSilent, checkCanBeVisible(Ranking.IMPORTANCE_MIN, importance));
-            mSilent.setChecked(importance == Ranking.IMPORTANCE_LOW);
+            setVisible(mSilent, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN, importance));
+            mSilent.setChecked(importance == NotificationManager.IMPORTANCE_LOW);
         }
-        setVisible(mPriority, checkCanBeVisible(Ranking.IMPORTANCE_DEFAULT, importance)
-                || (checkCanBeVisible(Ranking.IMPORTANCE_LOW, importance)
+        setVisible(mPriority, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT, importance)
+                || (checkCanBeVisible(NotificationManager.IMPORTANCE_LOW, importance)
                 && mDndVisualEffectsSuppressed));
         setVisible(mVisibilityOverride,
-                checkCanBeVisible(Ranking.IMPORTANCE_MIN, importance) && isLockScreenSecure());
+                checkCanBeVisible(NotificationManager.IMPORTANCE_MIN, importance)
+                        && isLockScreenSecure());
     }
 
     protected void setVisible(Preference p, boolean visible) {
@@ -388,7 +398,7 @@
     }
 
     protected boolean checkCanBeVisible(int minImportanceVisible, int importance) {
-        if (importance == Ranking.IMPORTANCE_UNSPECIFIED) {
+        if (importance == NotificationManager.IMPORTANCE_UNSPECIFIED) {
             return true;
         }
         return importance >= minImportanceVisible;
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index fa2cdd4..8cd039f 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -63,6 +63,8 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
+import com.android.settings.accounts.AddUserWhenLockedPreferenceController;
+import com.android.settings.accounts.EmergencyInfoPreferenceController;
 import com.android.settings.dashboard.SummaryLoader;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
@@ -88,7 +90,6 @@
  */
 public class UserSettings extends SettingsPreferenceFragment
         implements OnPreferenceClickListener, OnClickListener, DialogInterface.OnDismissListener,
-        Preference.OnPreferenceChangeListener,
         EditUserInfoController.OnContentChangedCallback, Indexable {
 
     private static final String TAG = "UserSettings";
@@ -136,7 +137,6 @@
     private UserPreference mMePreference;
     private DimmableIconPreference mAddUser;
     private PreferenceGroup mLockScreenSettings;
-    private RestrictedSwitchPreference mAddUserWhenLocked;
     private Preference mEmergencyInfoPreference;
     private int mRemovingUserId = -1;
     private int mAddedUserId = 0;
@@ -150,6 +150,8 @@
 
     private EditUserInfoController mEditUserInfoController =
             new EditUserInfoController();
+    private EmergencyInfoPreferenceController mEnergencyInfoController;
+    private AddUserWhenLockedPreferenceController mAddUserWhenLockedController;
 
     // A place to cache the generated default avatar
     private Drawable mDefaultIconDrawable;
@@ -234,8 +236,9 @@
             }
         }
         mLockScreenSettings = (PreferenceGroup) findPreference("lock_screen_settings");
-        mAddUserWhenLocked = (RestrictedSwitchPreference) findPreference("add_users_when_locked");
         mEmergencyInfoPreference = findPreference(KEY_EMERGENCY_INFO);
+        mEnergencyInfoController = new EmergencyInfoPreferenceController(context);
+        mAddUserWhenLockedController = new AddUserWhenLockedPreferenceController(context);
         setHasOptionsMenu(true);
         IntentFilter filter = new IntentFilter(Intent.ACTION_USER_REMOVED);
         filter.addAction(Intent.ACTION_USER_INFO_CHANGED);
@@ -887,15 +890,10 @@
                         mUserCaps.mDisallowAddUser ? mUserCaps.mEnforcedAdmin : null);
             }
         }
-        if (mUserCaps.mIsAdmin &&
-                (!mUserCaps.mDisallowAddUser || mUserCaps.mDisallowAddUserSetByAdmin)) {
+
+        if (mAddUserWhenLockedController.isAvailable()) {
             mLockScreenSettings.setOrder(Preference.DEFAULT_ORDER);
             preferenceScreen.addPreference(mLockScreenSettings);
-            mAddUserWhenLocked.setChecked(Settings.Global.getInt(getContentResolver(),
-                    Settings.Global.ADD_USERS_WHEN_LOCKED, 0) == 1);
-            mAddUserWhenLocked.setOnPreferenceChangeListener(this);
-            mAddUserWhenLocked.setDisabledByAdmin(
-                    mUserCaps.mDisallowAddUser ? mUserCaps.mEnforcedAdmin : null);
         }
 
         if (emergencyInfoActivityPresent(getContext())) {
@@ -983,10 +981,8 @@
             } else {
                 onAddUserClicked(USER_TYPE_USER);
             }
-        } else if (pref == mEmergencyInfoPreference) {
-            Intent intent = new Intent(ACTION_EDIT_EMERGENCY_INFO);
-            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-            startActivity(intent);
+        } else {
+            mEnergencyInfoController.handlePreferenceTreeClick(pref);
         }
         return false;
     }
@@ -1032,18 +1028,6 @@
     }
 
     @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        if (preference == mAddUserWhenLocked) {
-            Boolean value = (Boolean) newValue;
-            Settings.Global.putInt(getContentResolver(), Settings.Global.ADD_USERS_WHEN_LOCKED,
-                    value != null && value ? 1 : 0);
-            return true;
-        }
-
-        return false;
-    }
-
-    @Override
     public int getHelpResource() {
         return R.string.help_url_users;
     }
diff --git a/src/com/android/settings/utils/LocalClassLoaderContextThemeWrapper.java b/src/com/android/settings/utils/LocalClassLoaderContextThemeWrapper.java
new file mode 100644
index 0000000..2569b6b
--- /dev/null
+++ b/src/com/android/settings/utils/LocalClassLoaderContextThemeWrapper.java
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.utils;
+
+import android.annotation.StyleRes;
+import android.content.Context;
+import android.view.ContextThemeWrapper;
+
+/**
+ * {@link ContextThemeWrapper} that provides a local classloader. This guarantees we have a
+ * valid {@link ClassLoader} when base context is from an external app.
+ */
+public class LocalClassLoaderContextThemeWrapper extends ContextThemeWrapper {
+
+    private Class mLocalClass;
+
+    public LocalClassLoaderContextThemeWrapper(Class clazz, Context base,
+            @StyleRes int themeResId) {
+        super(base, themeResId);
+        mLocalClass = clazz;
+    }
+
+    @Override
+    public ClassLoader getClassLoader() {
+        return mLocalClass.getClassLoader();
+    }
+}
diff --git a/src/com/android/settings/wifi/WifiEnabler.java b/src/com/android/settings/wifi/WifiEnabler.java
index 4a02197..d70d6ba 100644
--- a/src/com/android/settings/wifi/WifiEnabler.java
+++ b/src/com/android/settings/wifi/WifiEnabler.java
@@ -231,8 +231,13 @@
         if (mayDisableTethering(isChecked)) {
             mWifiManager.setWifiApEnabled(null, false);
         }
-        mMetricsFeatureProvider.action(mContext,
-                isChecked ? MetricsEvent.ACTION_WIFI_ON : MetricsEvent.ACTION_WIFI_OFF);
+        if (isChecked) {
+            mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_WIFI_ON);
+        } else {
+            // Log if user was connected at the time of switching off.
+            mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_WIFI_OFF,
+                    mConnected.get());
+        }
         if (!mWifiManager.setWifiEnabled(isChecked)) {
             // Error
             mSwitchBar.setEnabled(true);
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index dacd481..bdb3779 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -483,12 +483,13 @@
         }
         switch (item.getItemId()) {
             case MENU_ID_CONNECT: {
-                if (mSelectedAccessPoint.isSaved()) {
-                    connect(mSelectedAccessPoint.getConfig());
+                boolean isSavedNetwork = mSelectedAccessPoint.isSaved();
+                if (isSavedNetwork) {
+                    connect(mSelectedAccessPoint.getConfig(), isSavedNetwork);
                 } else if (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_NONE) {
                     /** Bypass dialog for unsecured networks */
                     mSelectedAccessPoint.generateOpenNetworkConfig();
-                    connect(mSelectedAccessPoint.getConfig());
+                    connect(mSelectedAccessPoint.getConfig(), isSavedNetwork);
                 } else {
                     showDialog(mSelectedAccessPoint, WifiConfigUiBase.MODE_CONNECT);
                 }
@@ -521,7 +522,7 @@
             if (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_NONE &&
                     !mSelectedAccessPoint.isSaved() && !mSelectedAccessPoint.isActive()) {
                 mSelectedAccessPoint.generateOpenNetworkConfig();
-                connect(mSelectedAccessPoint.getConfig());
+                connect(mSelectedAccessPoint.getConfig(), false /* isSavedNetwork */);
             } else if (mSelectedAccessPoint.isSaved()) {
                 showDialog(mSelectedAccessPoint, WifiConfigUiBase.MODE_VIEW);
             } else {
@@ -831,14 +832,14 @@
         if (config == null) {
             if (mSelectedAccessPoint != null
                     && mSelectedAccessPoint.isSaved()) {
-                connect(mSelectedAccessPoint.getConfig());
+                connect(mSelectedAccessPoint.getConfig(), true /* isSavedNetwork */);
             }
         } else if (configController.getMode() == WifiConfigUiBase.MODE_MODIFY) {
             mWifiManager.save(config, mSaveListener);
         } else {
             mWifiManager.save(config, mSaveListener);
             if (mSelectedAccessPoint != null) { // Not an "Add network"
-                connect(config);
+                connect(config, false /* isSavedNetwork */);
             }
         }
 
@@ -868,13 +869,17 @@
         changeNextButtonState(false);
     }
 
-    protected void connect(final WifiConfiguration config) {
-        mMetricsFeatureProvider.action(getActivity(), MetricsEvent.ACTION_WIFI_CONNECT);
+    protected void connect(final WifiConfiguration config, boolean isSavedNetwork) {
+        // Log subtype if configuration is a saved network.
+        mMetricsFeatureProvider.action(getActivity(), MetricsEvent.ACTION_WIFI_CONNECT,
+                isSavedNetwork);
         mWifiManager.connect(config, mConnectListener);
     }
 
-    protected void connect(final int networkId) {
-        mMetricsFeatureProvider.action(getActivity(), MetricsEvent.ACTION_WIFI_CONNECT);
+    protected void connect(final int networkId, boolean isSavedNetwork) {
+        // Log subtype if configuration is a saved network.
+        mMetricsFeatureProvider.action(getActivity(), MetricsEvent.ACTION_WIFI_CONNECT,
+                isSavedNetwork);
         mWifiManager.connect(networkId, mConnectListener);
     }
 
diff --git a/src/com/android/settings/wifi/WifiSettingsForSetupWizard.java b/src/com/android/settings/wifi/WifiSettingsForSetupWizard.java
index 2f35478..68f28ee 100644
--- a/src/com/android/settings/wifi/WifiSettingsForSetupWizard.java
+++ b/src/com/android/settings/wifi/WifiSettingsForSetupWizard.java
@@ -130,17 +130,17 @@
     }
 
     @Override
-    protected void connect(final WifiConfiguration config) {
+    protected void connect(final WifiConfiguration config, boolean isSavedNetwork) {
         WifiSetupActivity activity = (WifiSetupActivity) getActivity();
         activity.networkSelected();
-        super.connect(config);
+        super.connect(config, isSavedNetwork);
     }
 
     @Override
-    protected void connect(final int networkId) {
+    protected void connect(final int networkId, boolean isSavedNetwork) {
         WifiSetupActivity activity = (WifiSetupActivity) getActivity();
         activity.networkSelected();
-        super.connect(networkId);
+        super.connect(networkId, isSavedNetwork);
     }
 
     @Override
diff --git a/tests/unit/src/com/android/settings/DeviceInfoSettingsTest.java b/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java
similarity index 79%
rename from tests/unit/src/com/android/settings/DeviceInfoSettingsTest.java
rename to tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java
index cec3f74..c66c2b4 100644
--- a/tests/unit/src/com/android/settings/DeviceInfoSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java
@@ -18,19 +18,23 @@
 
 import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
-
 import com.android.settingslib.DeviceInfoUtils;
+import org.junit.runner.RunWith;
+import org.junit.Test;
+import org.robolectric.annotation.Config;
 
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class DeviceInfoSettingsTest extends AndroidTestCase {
 
-    @SmallTest
+    @Test
     public void testGetFormattedKernelVersion() throws Exception {
         if ("Unavailable".equals(DeviceInfoUtils.getFormattedKernelVersion())) {
             fail("formatKernelVersion can't cope with this device's /proc/version");
         }
     }
 
-    @SmallTest
+    @Test
     public void testFormatKernelVersion() throws Exception {
         assertEquals("Unavailable", DeviceInfoUtils.formatKernelVersion(""));
         assertEquals("2.6.38.8-gg784\n" +
@@ -53,5 +57,12 @@
                 DeviceInfoUtils.formatKernelVersion("Linux version " +
                         "2.6.38.8-a-b-jellybean+ (x@y) " +
                         "(gcc version 4.4.3 (GCC) ) #1 PREEMPT Tue Aug 28 22:10:46 CDT 2012"));
+        assertEquals("3.18.31-g3ce5faa-dirty\n" +
+                        "x@y #5\n" +
+                        "Fri Oct 28 14:38:13 PDT 2016",
+                DeviceInfoUtils.formatKernelVersion("Linux version " +
+                        "3.18.31-g3ce5faa-dirty (x@y) (Android clang " +
+                        "version 3.8.275480 (based on LLVM 3.8.275480)) " +
+                        "#5 SMP PREEMPT Fri Oct 28 14:38:13 PDT 2016"));
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accounts/AutoSyncDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AutoSyncDataPreferenceControllerTest.java
new file mode 100644
index 0000000..7fb6fd7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/AutoSyncDataPreferenceControllerTest.java
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ */
+package com.android.settings.accounts;
+
+import android.app.Fragment;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.UserInfo;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+import android.support.v14.preference.SwitchPreference;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+import java.util.ArrayList;
+import java.util.List;
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Answers.RETURNS_DEEP_STUBS;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+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 AutoSyncDataPreferenceControllerTest {
+
+    @Mock(answer = RETURNS_DEEP_STUBS)
+    private PreferenceScreen mScreen;
+    @Mock(answer = RETURNS_DEEP_STUBS)
+    private UserManager mUserManager;
+    @Mock(answer = RETURNS_DEEP_STUBS)
+    private Fragment mFragment;
+
+    private Context mContext;
+    private AutoSyncDataPreferenceController mController;
+    private AutoSyncDataPreferenceController.ConfirmAutoSyncChangeFragment mConfirmSyncFragment;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowApplication shadowContext = ShadowApplication.getInstance();
+        shadowContext.setSystemService(Context.USER_SERVICE, mUserManager);
+        mContext = shadowContext.getApplicationContext();
+        mController = new AutoSyncDataPreferenceController(mContext, mFragment);
+        mConfirmSyncFragment = new AutoSyncDataPreferenceController.ConfirmAutoSyncChangeFragment();
+        mConfirmSyncFragment.setTargetFragment(mFragment, 0);
+    }
+
+    @Test
+    public void displayPref_managedProfile_shouldNotDisplay() {
+        when(mUserManager.isManagedProfile()).thenReturn(true);
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void displayPref_linkedUser_shouldDisplay() {
+        when(mUserManager.isManagedProfile()).thenReturn(false);
+        when(mUserManager.isLinkedUser()).thenReturn(true);
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen, never()).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void displayPref_oneProfile_shouldDisplay() {
+        List<UserInfo> infos = new ArrayList<>();
+        infos.add(new UserInfo(1, "user 1", 0));
+        when(mUserManager.isManagedProfile()).thenReturn(false);
+        when(mUserManager.isLinkedUser()).thenReturn(false);
+        when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen, never()).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void displayPref_moreThanOneProfile_shouldNotDisplay() {
+        List<UserInfo> infos = new ArrayList<>();
+        infos.add(new UserInfo(1, "user 1", 0));
+        infos.add(new UserInfo(2, "user 2", 0));
+        when(mUserManager.isManagedProfile()).thenReturn(false);
+        when(mUserManager.isLinkedUser()).thenReturn(false);
+        when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void autoSyncData_shouldNotBeSetOnCancel() {
+        final ShadowApplication application = ShadowApplication.getInstance();
+        final Context context = application.getApplicationContext();
+        final SwitchPreference preference = new SwitchPreference(context);
+        preference.setChecked(false);
+        mController = new AutoSyncDataPreferenceController(context, mFragment);
+        mConfirmSyncFragment.mPreference = preference;
+        mConfirmSyncFragment.mEnabling = true;
+
+        mConfirmSyncFragment.onClick(null, DialogInterface.BUTTON_NEGATIVE);
+        assertThat(preference.isChecked()).isFalse();
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/AutoSyncPersonalDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AutoSyncPersonalDataPreferenceControllerTest.java
new file mode 100644
index 0000000..54ee658
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/AutoSyncPersonalDataPreferenceControllerTest.java
@@ -0,0 +1,114 @@
+/*
+ * 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.
+ */
+package com.android.settings.accounts;
+
+import android.app.Fragment;
+import android.content.Context;
+import android.content.pm.UserInfo;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.search.SearchIndexableRaw;
+
+import java.util.ArrayList;
+import java.util.List;
+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 static org.mockito.Answers.RETURNS_DEEP_STUBS;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.never;
+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 AutoSyncPersonalDataPreferenceControllerTest {
+
+    @Mock(answer = RETURNS_DEEP_STUBS)
+    private PreferenceScreen mScreen;
+    @Mock(answer = RETURNS_DEEP_STUBS)
+    private UserManager mUserManager;
+    @Mock(answer = RETURNS_DEEP_STUBS)
+    private Fragment mFragment;
+
+    private Context mContext;
+    private AutoSyncPersonalDataPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowApplication shadowContext = ShadowApplication.getInstance();
+        shadowContext.setSystemService(Context.USER_SERVICE, mUserManager);
+        mContext = shadowContext.getApplicationContext();
+        mController = new AutoSyncPersonalDataPreferenceController(mContext, mFragment);
+    }
+
+    @Test
+    public void displayPref_managedProfile_shouldNotDisplay() {
+        when(mUserManager.isManagedProfile()).thenReturn(true);
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void displayPref_linkedUser_shouldNotDisplay() {
+        when(mUserManager.isManagedProfile()).thenReturn(false);
+        when(mUserManager.isLinkedUser()).thenReturn(true);
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void displayPref_oneProfile_shouldNotDisplay() {
+        List<UserInfo> infos = new ArrayList<>();
+        infos.add(new UserInfo(1, "user 1", 0));
+        when(mUserManager.isManagedProfile()).thenReturn(false);
+        when(mUserManager.isLinkedUser()).thenReturn(false);
+        when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void displayPref_prefAvaiable_shouldDisplay() {
+        List<UserInfo> infos = new ArrayList<>();
+        infos.add(new UserInfo(1, "user 1", 0));
+        infos.add(new UserInfo(2, "user 2", 0));
+        when(mUserManager.isManagedProfile()).thenReturn(false);
+        when(mUserManager.isLinkedUser()).thenReturn(false);
+        when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen, never()).removePreference(any(Preference.class));
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
index 66f2289..0ab7675 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
@@ -18,10 +18,13 @@
 
 import android.app.Activity;
 import android.content.ComponentName;
+import android.content.Context;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.drawable.Icon;
 import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.UserManager;
 import android.support.v7.preference.Preference;
 
 import com.android.settings.SettingsActivity;
@@ -38,7 +41,12 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
+import java.util.ArrayList;
+
 import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -47,6 +55,9 @@
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Activity mActivity;
 
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private UserManager mUserManager;
+
     private DashboardFeatureProviderImpl mImpl;
 
     @Before
@@ -92,6 +103,24 @@
     }
 
     @Test
+    public void bindPreference_noFragmentMetadata_shouldBindToProfileSelector() {
+        final Preference preference = new Preference(
+                ShadowApplication.getInstance().getApplicationContext());
+        final Tile tile = new Tile();
+        tile.metaData = new Bundle();
+        tile.userHandle = new ArrayList<>();
+        tile.userHandle.add(mock(UserHandle.class));
+        tile.userHandle.add(mock(UserHandle.class));
+        tile.intent = new Intent();
+        when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+
+        mImpl.bindPreferenceToTile(mActivity, preference, tile, "123");
+        preference.getOnPreferenceClickListener().onPreferenceClick(null);
+
+        verify(mActivity).getFragmentManager();
+    }
+
+    @Test
     public void bindPreference_withNullKeyNullPriority_shouldGenerateKeyAndPriority() {
         final Preference preference = new Preference(
                 ShadowApplication.getInstance().getApplicationContext());
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
index ce4dd68..7c49749 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
@@ -16,13 +16,11 @@
 package com.android.settings.dashboard;
 
 import android.content.Context;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.drawable.Icon;
 import android.os.Bundle;
 import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceManager;
 import android.support.v7.preference.PreferenceScreen;
-import com.android.settings.SettingsActivity;
+
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.core.PreferenceController;
@@ -31,8 +29,7 @@
 import com.android.settingslib.drawer.CategoryKey;
 import com.android.settingslib.drawer.DashboardCategory;
 import com.android.settingslib.drawer.Tile;
-import java.util.ArrayList;
-import java.util.List;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -42,6 +39,12 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import java.util.ArrayList;
+import java.util.List;
+
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyString;
@@ -101,14 +104,14 @@
         mTestFragment.onCreatePreferences(new Bundle(), "rootKey");
 
         verify(mDisclosureMixin).addPreference(any(PreferenceScreen.class),
-                any(DashboardTilePreference.class));
+                any(Preference.class));
     }
 
     @Test
     public void displayTilesAsPreference_shouldNotAddTilesWithoutIntent() {
         mTestFragment.onCreatePreferences(new Bundle(), "rootKey");
 
-        verify(mTestFragment.mScreen, never()).addPreference(any(DashboardTilePreference.class));
+        verify(mTestFragment.mScreen, never()).addPreference(any(Preference.class));
     }
 
     @Test
@@ -116,7 +119,7 @@
         mDashboardCategory.tiles = null;
         mTestFragment.onCreatePreferences(new Bundle(), "rootKey");
 
-        verify(mTestFragment.mScreen, never()).addPreference(any(DashboardTilePreference.class));
+        verify(mTestFragment.mScreen, never()).addPreference(any(Preference.class));
     }
 
     @Test
@@ -163,14 +166,19 @@
 
     public static class TestFragment extends DashboardFragment {
 
+        private final PreferenceManager mPreferenceManager;
         private final Context mContext;
-        public PreferenceScreen mScreen;
-        private List<PreferenceController> mControllers;
+        private final List<PreferenceController> mControllers;
+
+        public final PreferenceScreen mScreen;
 
         public TestFragment(Context context) {
             mContext = context;
+            mPreferenceManager = mock(PreferenceManager.class);
             mScreen = mock(PreferenceScreen.class);
             mControllers = new ArrayList<>();
+
+            when(mPreferenceManager.getContext()).thenReturn(mContext);
         }
 
         @Override
@@ -207,6 +215,11 @@
         protected List<PreferenceController> getPreferenceControllers(Context context) {
             return mControllers;
         }
+
+        @Override
+        public PreferenceManager getPreferenceManager() {
+            return mPreferenceManager;
+        }
     }
 
 }
diff --git a/tests/robotests/src/com/android/settings/dashboard/conditional/DashboardTilePreferenceTest.java b/tests/robotests/src/com/android/settings/dashboard/conditional/DashboardTilePreferenceTest.java
deleted file mode 100644
index b726419..0000000
--- a/tests/robotests/src/com/android/settings/dashboard/conditional/DashboardTilePreferenceTest.java
+++ /dev/null
@@ -1,76 +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.
- */
-package com.android.settings.dashboard.conditional;
-
-
-import android.content.Context;
-import android.support.v7.preference.PreferenceViewHolder;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.LinearLayout;
-import com.android.settings.SettingsRobolectricTestRunner;
-import com.android.settings.TestConfig;
-import com.android.settings.dashboard.DashboardTilePreference;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowApplication;
-
-import static com.google.common.truth.Truth.assertThat;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
-public class DashboardTilePreferenceTest {
-
-    private ShadowApplication mShadowApplication;
-    private Context mContext;
-    private PreferenceViewHolder mHolder;
-    private DashboardTilePreference mPreference;
-
-    @Before
-    public void setUp() {
-        mShadowApplication = ShadowApplication.getInstance();
-        mContext = mShadowApplication.getApplicationContext();
-        mPreference = new DashboardTilePreference(mContext);
-
-        LayoutInflater inflater = LayoutInflater.from(mContext);
-        final View view = inflater.inflate(mPreference.getLayoutResource(),
-                new LinearLayout(mContext), false);
-
-        mHolder = new PreferenceViewHolder(view);
-    }
-
-    @Test
-    public void setHasDivider_shouldShowDivider() {
-        mPreference.setDividerAllowedAbove(true);
-        mPreference.setDividerAllowedBelow(true);
-        mPreference.onBindViewHolder(mHolder);
-
-        assertThat(mHolder.isDividerAllowedAbove()).isTrue();
-        assertThat(mHolder.isDividerAllowedBelow()).isTrue();
-    }
-
-    @Test
-    public void setHasNoDivider_shouldHideDivider() {
-        mPreference.setDividerAllowedAbove(false);
-        mPreference.setDividerAllowedBelow(false);
-        mPreference.onBindViewHolder(mHolder);
-
-        assertThat(mHolder.isDividerAllowedAbove()).isFalse();
-        assertThat(mHolder.isDividerAllowedBelow()).isFalse();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/utils/LocalClassLoaderContextThemeWrapperTest.java b/tests/robotests/src/com/android/settings/utils/LocalClassLoaderContextThemeWrapperTest.java
new file mode 100644
index 0000000..eb5be8f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/utils/LocalClassLoaderContextThemeWrapperTest.java
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.utils;
+
+import android.content.Context;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class LocalClassLoaderContextThemeWrapperTest {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mBaseContext;
+    private LocalClassLoaderContextThemeWrapper mContextThemeWrapper;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void getClassLoader_shouldUseLocalClassLoader() {
+        mContextThemeWrapper = new LocalClassLoaderContextThemeWrapper(
+                LocalClassLoaderContextThemeWrapperTest.class, mBaseContext, 0);
+
+        assertThat(mContextThemeWrapper.getClassLoader()).isSameAs(
+                LocalClassLoaderContextThemeWrapperTest.class.getClassLoader());
+    }
+}
