diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 8da8678..3c35428 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -319,7 +319,7 @@
                 android:configChanges="orientation|keyboardHidden|screenSize"
                 android:parentActivityName="Settings$WifiSettingsActivity">
             <intent-filter android:priority="1">
-                <action android:name="android.settings.WIFI_IF_SETTINGS" />
+                <action android:name="android.settings.WIFI_SAVED_NETWORK_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
             <intent-filter>
@@ -327,7 +327,7 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
-                android:value="com.android.settings.wifi.SavedAccessPointsSettings" />
+                android:value="com.android.settings.wifi.SavedAccessPointsWifiSettings" />
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -1590,7 +1590,11 @@
             android:icon="@drawable/ic_settings_about"
             android:taskAffinity="com.android.settings"
             android:parentActivityName="Settings">
-            <intent-filter android:priority="-1">
+            <intent-filter>
+                <action android:name="android.settings.ENTERPRISE_PRIVACY_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <intent-filter>
                 <action android:name="com.android.settings.action.SETTINGS" />
             </intent-filter>
             <meta-data android:name="com.android.settings.category"
diff --git a/res/drawable/ic_settings_24dp.xml b/res/drawable/ic_settings_24dp.xml
index 545bc2d..da34345 100644
--- a/res/drawable/ic_settings_24dp.xml
+++ b/res/drawable/ic_settings_24dp.xml
@@ -18,7 +18,8 @@
         android:width="24dp"
         android:height="24dp"
         android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
+        android:viewportHeight="24.0"
+        android:tint="?android:attr/colorControlNormal">
     <path
         android:pathData="M19.4,13.0c0.0,-0.3 0.1,-0.6 0.1,-1.0s0.0,-0.7 -0.1,-1.0l2.1,-1.7c0.2,-0.2 0.2,-0.4 0.1,-0.6l-2.0,-3.5C19.5,5.1 19.3,5.0 19.0,5.1l-2.5,1.0c-0.5,-0.4 -1.1,-0.7 -1.7,-1.0l-0.4,-2.6C14.5,2.2 14.2,2.0 14.0,2.0l-4.0,0.0C9.8,2.0 9.5,2.2 9.5,2.4L9.1,5.1C8.5,5.3 8.0,5.7 7.4,6.1L5.0,5.1C4.7,5.0 4.5,5.1 4.3,5.3l-2.0,3.5C2.2,8.9 2.3,9.2 2.5,9.4L4.6,11.0c0.0,0.3 -0.1,0.6 -0.1,1.0s0.0,0.7 0.1,1.0l-2.1,1.7c-0.2,0.2 -0.2,0.4 -0.1,0.6l2.0,3.5C4.5,18.9 4.7,19.0 5.0,18.9l2.5,-1.0c0.5,0.4 1.1,0.7 1.7,1.0l0.4,2.6c0.0,0.2 0.2,0.4 0.5,0.4l4.0,0.0c0.2,0.0 0.5,-0.2 0.5,-0.4l0.4,-2.6c0.6,-0.3 1.2,-0.6 1.7,-1.0l2.5,1.0c0.2,0.1 0.5,0.0 0.6,-0.2l2.0,-3.5c0.1,-0.2 0.1,-0.5 -0.1,-0.6L19.4,13.0zM12.0,15.5c-1.9,0.0 -3.5,-1.6 -3.5,-3.5s1.6,-3.5 3.5,-3.5s3.5,1.6 3.5,3.5S13.9,15.5 12.0,15.5z"
         android:fillColor="#ffffffff" />
diff --git a/res/layout/activity_list.xml b/res/layout/activity_list.xml
new file mode 100644
index 0000000..ca9e12b
--- /dev/null
+++ b/res/layout/activity_list.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             android:layout_width="match_parent"
+             android:layout_height="match_parent">
+
+    <ListView
+        android:id="@android:id/list"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+
+    <TextView
+        android:id="@android:id/empty"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:gravity="center"
+        android:text="@string/activity_list_empty"
+        android:visibility="gone"
+        android:textAppearance="?android:attr/textAppearanceMedium"/>
+
+</FrameLayout>
diff --git a/res/layout/preference_category_material_settings.xml b/res/layout/preference_category_material_settings.xml
new file mode 100644
index 0000000..13cefdb
--- /dev/null
+++ b/res/layout/preference_category_material_settings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+<!-- Based off frameworks/base/core/res/res/layout/preference_category_material.xml
+     except that this supports icon -->
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginBottom="16dp"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingTop="16dp">
+
+    <LinearLayout
+        android:id="@+id/icon_container"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:gravity="start|center_vertical"
+        android:orientation="horizontal">
+        <com.android.internal.widget.PreferenceImageView
+            android:id="@android:id/icon"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:maxWidth="18dp"
+            android:maxHeight="18dp"/>
+    </LinearLayout>
+
+    <TextView
+        android:id="@android:id/title"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAppearance="@android:style/TextAppearance.Material.Body2"
+        android:textColor="?android:attr/textColorPrimary"
+        android:paddingStart="60dp"
+        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"/>
+
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/preference_dropdown_material_settings.xml b/res/layout/preference_dropdown_material_settings.xml
new file mode 100644
index 0000000..ee4051d
--- /dev/null
+++ b/res/layout/preference_dropdown_material_settings.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+
+<!-- Based off frameworks/base/core/res/res/layout/preference_dropdown_material.xml
+     except that icon space in this layout is always reserved -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:gravity="center_vertical"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:background="?android:attr/selectableItemBackground"
+    android:clipToPadding="false">
+
+    <Spinner
+        android:id="@+id/spinner"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:visibility="invisible" />
+
+    <LinearLayout
+        android:id="@+id/icon_container"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:minWidth="60dp"
+        android:gravity="start|center_vertical"
+        android:orientation="horizontal"
+        android:paddingEnd="12dp"
+        android:paddingTop="4dp"
+        android:paddingBottom="4dp">
+        <android.support.v7.internal.widget.PreferenceImageView
+            android:id="@android:id/icon"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:maxWidth="48dp"
+            android:maxHeight="48dp" />
+    </LinearLayout>
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:paddingTop="16dp"
+        android:paddingBottom="16dp">
+
+        <TextView android:id="@android:id/title"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:textAppearance="@style/Preference_TextAppearanceMaterialSubhead"
+                  android:ellipsize="marquee" />
+
+        <TextView android:id="@android:id/summary"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:layout_below="@android:id/title"
+                  android:layout_alignLeft="@android:id/title"
+                  android:textAppearance="?android:attr/textAppearanceSmall"
+                  android:textColor="?android:attr/textColorSecondary"
+                  android:maxLines="10" />
+
+    </RelativeLayout>
+
+    <!-- Preference should place its actual preference widget here. -->
+    <LinearLayout android:id="@android:id/widget_frame"
+                  android:layout_width="wrap_content"
+                  android:layout_height="match_parent"
+                  android:gravity="end|center_vertical"
+                  android:paddingLeft="16dp"
+                  android:orientation="vertical" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/preference_material_settings.xml b/res/layout/preference_material_settings.xml
index b8a00f2..ae108da 100644
--- a/res/layout/preference_material_settings.xml
+++ b/res/layout/preference_material_settings.xml
@@ -16,18 +16,19 @@
 
 <!-- Based off frameworks/base/core/res/res/layout/preference_material.xml
      except that this has the negative margin on the image removed. -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:minHeight="?android:attr/listPreferredItemHeight"
     android:gravity="center_vertical"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-    android:background="?android:attr/activatedBackgroundIndicator"
+    android:background="?android:attr/selectableItemBackground"
     android:clipToPadding="false">
 
     <LinearLayout
-        android:id="@id/icon_frame"
+        android:id="@+id/icon_container"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:minWidth="60dp"
@@ -41,7 +42,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:maxWidth="48dp"
-            android:maxHeight="48dp" />
+            android:maxHeight="48dp"/>
     </LinearLayout>
 
     <RelativeLayout
@@ -51,30 +52,33 @@
         android:paddingTop="16dp"
         android:paddingBottom="16dp">
 
-        <TextView android:id="@android:id/title"
+        <TextView
+            android:id="@android:id/title"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:singleLine="true"
             android:textAppearance="?android:attr/textAppearanceListItem"
-            android:ellipsize="marquee" />
+            android:ellipsize="marquee"/>
 
-        <TextView android:id="@android:id/summary"
+        <TextView
+            android:id="@android:id/summary"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_below="@android:id/title"
             android:layout_alignStart="@android:id/title"
             android:textAppearance="?android:attr/textAppearanceListItemSecondary"
             android:textColor="?android:attr/textColorSecondary"
-            android:maxLines="10" />
+            android:maxLines="10"/>
 
     </RelativeLayout>
 
     <!-- Preference should place its actual preference widget here. -->
-    <LinearLayout android:id="@android:id/widget_frame"
+    <LinearLayout
+        android:id="@android:id/widget_frame"
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
         android:gravity="end|center_vertical"
         android:paddingStart="16dp"
-        android:orientation="vertical" />
+        android:orientation="vertical"/>
 
 </LinearLayout>
diff --git a/res/layout/preference_volume_slider.xml b/res/layout/preference_volume_slider.xml
index c5c7818..3eb0c97 100644
--- a/res/layout/preference_volume_slider.xml
+++ b/res/layout/preference_volume_slider.xml
@@ -14,14 +14,32 @@
      limitations under the License.
 -->
 
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
     android:gravity="center_vertical"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-    android:clickable="false" >
+    android:clickable="false"
+    android:orientation="horizontal">
+
+    <LinearLayout
+        android:id="@+id/icon_container"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:minWidth="44dp"
+        android:gravity="start|center_vertical"
+        android:orientation="horizontal"
+        android:paddingEnd="12dp"
+        android:paddingTop="4dp"
+        android:paddingBottom="4dp">
+        <com.android.internal.widget.PreferenceImageView
+            android:id="@android:id/icon"
+            android:layout_width="24dp"
+            android:layout_height="24dp"/>
+    </LinearLayout>
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -31,24 +49,27 @@
         android:layout_marginBottom="8dip">
 
         <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content">
-            <TextView android:id="@android:id/title"
-                android:layout_width="wrap_content"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+            <TextView
+                android:id="@android:id/title"
+                android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
+                android:paddingStart="16dp"
                 android:singleLine="true"
                 android:textAppearance="@android:style/TextAppearance.Material.Subhead"
                 android:textColor="?android:attr/textColorPrimary"
                 android:ellipsize="marquee"
-                android:fadingEdge="horizontal" />
+                android:fadingEdge="horizontal"/>
             <!-- Preference should place its actual preference widget here. -->
-            <LinearLayout android:id="@android:id/widget_frame"
+            <LinearLayout
+                android:id="@android:id/widget_frame"
                 android:layout_width="wrap_content"
                 android:layout_height="match_parent"
                 android:gravity="end|center_vertical"
                 android:paddingStart="16dp"
-                android:orientation="vertical" />
+                android:orientation="vertical"/>
         </LinearLayout>
 
         <FrameLayout
@@ -56,32 +77,24 @@
             android:layout_height="wrap_content"
             android:layout_marginTop="6dp">
 
-            <ImageView
-                android:id="@android:id/icon"
-                android:layout_gravity="center_vertical|start"
-                android:layout_width="24dp"
-                android:layout_height="24dp" />
-
-            <SeekBar android:id="@*android:id/seekbar"
-                android:layout_marginStart="24dp"
+            <SeekBar
+                android:id="@*android:id/seekbar"
                 android:layout_gravity="center_vertical"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
+                android:layout_height="wrap_content"/>
 
-            <TextView android:id="@+id/suppression_text"
+            <TextView
+                android:id="@+id/suppression_text"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_gravity="center_vertical|start"
                 android:textAlignment="viewStart"
-                android:layout_marginStart="24dp"
-                android:paddingStart="14dp"
                 android:singleLine="true"
                 android:ellipsize="end"
                 android:textAppearance="@android:style/TextAppearance.Material.Body1"
-                android:textColor="?android:attr/textColorSecondary" />
+                android:textColor="?android:attr/textColorSecondary"/>
 
         </FrameLayout>
-
     </LinearLayout>
 
-</FrameLayout>
+</LinearLayout>
diff --git a/res/layout/support_account_spinner_item.xml b/res/layout/support_account_spinner_item.xml
new file mode 100644
index 0000000..fe37a85
--- /dev/null
+++ b/res/layout/support_account_spinner_item.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     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.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/text1"
+    style="?android:attr/spinnerItemStyle"
+    android:singleLine="true"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:ellipsize="marquee"
+    android:textAppearance="?android:attr/textAppearanceSmall"
+    android:textAlignment="inherit"/>
diff --git a/res/layout/support_escalation_options.xml b/res/layout/support_escalation_options.xml
index 63cc85d..17e03ff 100644
--- a/res/layout/support_escalation_options.xml
+++ b/res/layout/support_escalation_options.xml
@@ -34,11 +34,25 @@
         android:gravity="center_horizontal"
         android:paddingTop="8dp"
         android:paddingBottom="30dp"
-        android:textAppearance="@style/TextAppearance.Small"
-        android:textColor="?android:attr/textColorSecondary"/>
+        android:textAppearance="?android:attr/textAppearanceSmall"/>
+    <TextView
+        android:id="@+id/account_request_prefix"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center_horizontal"
+        android:text="@string/support_account_request_prefix"
+        android:textAppearance="?android:attr/textAppearanceSmall"/>
+    <Spinner
+        android:id="@+id/account_spinner"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp"
+        android:layout_marginStart="16dp"
+        android:gravity="center_horizontal"/>
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_marginTop="30dp"
         android:gravity="center_horizontal"
         android:orientation="horizontal">
         <LinearLayout
@@ -60,8 +74,7 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="14dp"
-                android:textAppearance="@style/TextAppearance.Small"
-                android:textColor="?android:attr/textColorSecondary"/>
+                android:textAppearance="?android:attr/textAppearanceSmall"/>
         </LinearLayout>
         <LinearLayout
             android:layout_width="0dp"
@@ -82,8 +95,7 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="14dp"
-                android:textAppearance="@style/TextAppearance.Small"
-                android:textColor="?android:attr/textColorSecondary"/>
+                android:textAppearance="?android:attr/textAppearanceSmall"/>
         </LinearLayout>
     </LinearLayout>
 </LinearLayout>
diff --git a/res/layout/switch_bar.xml b/res/layout/switch_bar.xml
index 8b69a1d..11d7306 100644
--- a/res/layout/switch_bar.xml
+++ b/res/layout/switch_bar.xml
@@ -43,7 +43,6 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center_vertical"
-            android:background="@null"
             android:theme="@style/ThemeOverlay.SwitchBar.Settings" />
 
 </merge>
diff --git a/res/menu/search_options_menu.xml b/res/menu/search_options_menu.xml
deleted file mode 100644
index 25a79d4..0000000
--- a/res/menu/search_options_menu.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/search"
-        android:title="@string/search_menu"
-        android:icon="@*android:drawable/ic_search_api_material"
-        android:showAsAction="collapseActionView|ifRoom"
-        android:actionViewClass="android.widget.SearchView"/>
-</menu>
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index 67cdc83..4756865 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"skakel skerm aan"</item>
     <item msgid="3253368931113490863">"kry rekeninge"</item>
     <item msgid="780392378084812901">"laat loop op agtergrond"</item>
+    <item msgid="2629748510881309577">"toeganklikheidsvolume"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Ligging"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Skakel skerm aan"</item>
     <item msgid="5258373962467495905">"Kry rekeninge"</item>
     <item msgid="334625385979270703">"Laat loop op agtergrond"</item>
+    <item msgid="9039213578110332702">"Toeganklikheidsvolume"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Kort"</item>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 0c0892c..b641817 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tik om aan \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" te koppel."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Wil jy koppel aan \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Telefoonboek-toegangversoek"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s wil toegang hê tot jou kontakte en oproepgeskiedenis. Gee toegang aan %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wil by jou kontakte en oproepgeskiedenis ingaan. Gee toegang aan <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Moenie weer vra nie"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Moenie weer vra nie"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Boodskaptoegangversoek"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Instellings"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Instellings"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Instellingskortpad"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Geen passende aktiwiteite gevind nie."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Vliegtuigmodus"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Nog"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Draadloos en netwerke"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Gebruik <xliff:g id="NEW_APP">%1$s</xliff:g> in plaas van <xliff:g id="CURRENT_APP">%2$s</xliff:g> om jou netwerkverbindings te bestuur?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Gebruik <xliff:g id="NEW_APP">%s</xliff:g> om jou netwerkverbindings te bestuur?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Onbekende SIM-operateur"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s het geen bekende voorsieningwebwerf nie"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> het geen bekende voorsieningwebwerf nie"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Steek asseblief SIM-kaart in en herbegin"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Koppel asseblief aan die internet"</string>
     <string name="location_title" msgid="1029961368397484576">"My ligging"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Verskaffers van satellietbeelde:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Handleiding"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Kon nie die handleiding laai nie."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Derdepartylisensies"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Daar was \'n probleem om lisensies te loods."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Laai tans…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Veiligheidsinligting"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Batteryspaarder"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Skakel outomaties aan"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nooit"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"teen %1$s battery"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"met battery <xliff:g id="PERCENT">%1$s</xliff:g> vol"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Proses-statistieke"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Bleeksiel-statistieke vir lopende prosesse"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Berginggebruik"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Luivolume"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Kennisgewingvolume"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Foonluitoon"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Verstekkennisgewing-klank"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Verstekwekkerklank"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibreer ook vir oproepe"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Ander klanke"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Belbladtone"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Kan jy nie aanmeld nie?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Stuur stelselinligting"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Moenie weer wys nie"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Versoek tans as"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Voeg rekening by"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Werkprofielinstellings"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaksoektog"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Laat kontaksoektogte deur jou organisasie toe om bellers en kontakte te identifiseer"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Outo-sinkroniseer rekeningdata"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Outo-sinkroniseer persoonlike rekening se data"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Outo-sinkroniseer werkrekeningdata"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Rekeningsinkronisering"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privaatheid"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privaatheid"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Om toegang tot jou werkdata te verskaf, sal jou organisasie dalk instellings verander en sagteware op jou toestel installeer wat kan veroorsaak dat van jou persoonlike inhoud vir jou administrateur sigbaar sal wees. Kontak jou organisasie se administrateur vir meer besonderhede."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Watter tipes inligting kan jou organisasie sien?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Watter veranderinge beïnvloed wat jou organisasie kan sien?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Watter handelinge kan jou toegang tot dié toestel beïnvloed?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data wat met jou werkrekening geassosieer word, soos e-pos en kalender"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lys van alle programme op jou toestel"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Lys van al <xliff:g id="COUNT_1">%d</xliff:g> programme op jou toestel</item>
+      <item quantity="one">Lys van <xliff:g id="COUNT_0">%d</xliff:g> program op jou toestel</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Gebruik (tyd spandeer en hoeveelheid data gebruik) van elke program op jou toestel"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Verkeerloglêers op jou toestel"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Jou mees onlangse foutverslag"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Jou mees onlangse sekuriteitloglêer"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nooit"</string>
 </resources>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index f94e125..955e188 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ማያ ገጽ አብራ"</item>
     <item msgid="3253368931113490863">"መለያዎችን ያግኙ"</item>
     <item msgid="780392378084812901">"ዳራ ውስጥ አሂድ"</item>
+    <item msgid="2629748510881309577">"የተደራሽነት መጠን"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"አካባቢ"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"ማያ ገጽ አብራ"</item>
     <item msgid="5258373962467495905">"መለያዎችን ያግኙ"</item>
     <item msgid="334625385979270703">"ዳራ ውስጥ አሂድ"</item>
+    <item msgid="9039213578110332702">"የተደራሽነት መጠን"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"አጭር"</item>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 5430bc5..5486dce 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"ከ«<xliff:g id="DEVICE_NAME">%1$s</xliff:g>» ለመገናኘት ነካ ያድርጉ።"</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"ወደ\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ለማያያዝ ይፈልጋሉ?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"የስልክ ደብተር መዳረሻ ጥያቄ"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s የአንተን ዕውቂያዎች እና የጥሪ ታሪኮች ለመድረስ ይፈልጋል ። ለ%2$s መድረስ ይሰጥ?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> የእርስዎን እውቂያዎች እና የጥሪ ታሪክን መድረስ ይፈልጋል። መዳረሻ ለ<xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ይሰጥ?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"ዳግመኛ አትጠይቅ"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"ዳግመኛ አትጠይቅ"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"የመልዕክት መዳረሻ ጥያቄ"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"ቅንብሮች"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"ቅንብሮች"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"የቅንብሮች አቋራጭ"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"ምንም ተመሳሳይ እንቅስቃሴዎች አልተገኙም።"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"የአውሮፕላን ሁነታ"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"ተጨማሪ"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"ገመድ አልባ&amp; አውታረ መረቦች"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"የአውታረ መረብ ግንኙነቶችዎን ለማቀናበር ከ<xliff:g id="CURRENT_APP">%2$s</xliff:g> ይልቅ <xliff:g id="NEW_APP">%1$s</xliff:g>ን ይጠቀሙ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"የአውታረ መረብ ግንኙነቶችዎን ለማቀናበር <xliff:g id="NEW_APP">%s</xliff:g>ን ይጠቀሙ?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"ያልታወቀ የሲም አንቀሳቃሽ"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s የሚታወቅ የአቅርቦት ድር ጣቢያ የለውም"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> ምንም የሚታወቅ የማቅረቢያ ድር ጣቢያ የለውም"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"እባክዎ SIM ካርድ ያስገቡና ዳግም ያስጀምሩ"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"እባክዎ ከበይነ መረብ ጋር ያገናኙ"</string>
     <string name="location_title" msgid="1029961368397484576">"የእኔ  ሥፍራ"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"የሳተላይት ምስሎች አቅራቢዎች፦\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"መመሪያ"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"መመሪያውን መጫን ላይ አንድ ችግር ነበር።"</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"የሶስተኛ ወገን ፈቃዶች"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ፈቃዶቹንበመስቀል ላይ ችግር ነበር።"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"በመስቀል ላይ…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"የደህንነት መረጃ"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"የባትሪ ኃይል ቆጣቢ"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"በራስ ሰር አብራ"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"በፍፁም"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"በ%1$s ባትሪ"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> ባትሪ ላይ"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"የሂደት ስታትስቲክስ"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"እያሄዱ ስላሉ ሂደቶች ያሉ ዝርዝር ስታትስቲክስ"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"የማህደረ ትውስታ አጠቃቀም"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"የጥሪ ድምጽ መጠን"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"የማሳወቂያ ድምጽ መጠን"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"የስልክ ጥሪ ድምፅ"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"ነባሪ የማሳወቂያ ድምጽ"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"ነባሪ የማንቂያ ድምጽ"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"እንዲሁም ለጥሪዎችም ንዘር"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"ሌሎች ድምጾች"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"የመደወያ ሰሌዳ ድምጾች"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"መግባት አልቻሉም?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"የሥርዓት መረጃን ላክ"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"ዳግም አታሳይ"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"እንደሚከተለው በመጠየቅ ላይ"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"መለያ ያክሉ"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"የስራ መገለጫ ቅንብሮች"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"የእውቂያ ፍለጋ"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"በእርስዎ ድርጅት የሚደረጉ የእውቂያ ፍለጋዎች ደዋዮችን እና እውቂያዎችን እንዲለዩ ፍቀድ"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"የመለያ ውሂብን በራስ-አስምር"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"የግል መለያ ውሂብን በራስ-አስምር"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"የስራ መለያ ውሂብን በራስ-አስምር"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"የመለያ ስምሪት"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"ግላዊነት"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ግላዊነት"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"የስራ ውሂብዎ መዳረሻ ለማቅረብ የእርስዎ ድርጅት በመሣሪያዎ ላይ ቅንብሮችን ሊቀይር እና ሶፍትዌር ሊጭን ይችላል፣ ይህም አንዳንድ የግል ይዘትዎ ለአስተዳዳሪዎ እንዲታይ ሊያደርግ ይችላል። ተጨማሪ ዝርዝሮችን ለማግኘት የድርጅትዎን አስተዳዳሪ ያነጋግሩ።"</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"ምን አይነት መረጃዎች ነው ድርጅትዎ ሊመለከታቸው የሚችለው?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"ምን ለውጦች ናቸው የእርስዎ ድርጅትዎ ማየት በሚችላቸው ነገሮች ላይ ተጽዕኖ ሊኖራቸው የሚችለው?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ምን እርምጃዎች ናቸው በዚህ የመሣሪያ መዳረሻዎ ላይ ተጽዕኖ ሊኖራቸው የሚችለው?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"እንደ ኢሜይል እና ቀን መቁጠሪያ ያለ ከስራ መለያዎ ጋር የተጎዳኘ ውሂብ"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"በመሣሪያዎ ላይ ያሉ የሁሉም መተግበሪያዎች ዝርዝር"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">በመሣሪያዎ ላይ ያሉት ሁሉንም <xliff:g id="COUNT_1">%d</xliff:g> መተግበሪያዎች ይዘርዝሩ</item>
+      <item quantity="other">በመሣሪያዎ ላይ ያሉት ሁሉንም <xliff:g id="COUNT_1">%d</xliff:g> መተግበሪያዎች ይዘርዝሩ</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"በመሣሪያዎ ላይ ያለው የእያንዳንዱ መተግበሪያ አጠቃቀም (የወሰደው ጊዜ እና ጥቅም ላይ የዋለው የውሂብ መጠን)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"በእርስዎ መሣሪያ ላይ ያሉ የመሣሪያ ምዝግብ ማስታወሻዎች"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"የእርስዎ በጣም ቅርብ ጊዜ የሳንካ ሪፖርት"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"የእርስዎ የበጣም ቅርብ ጊዜ የደህንነት ምዝግብ ማስታወሻ"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"በጭራሽ"</string>
 </resources>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index 01ee3ec..71450db 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"تشغيل الشاشة"</item>
     <item msgid="3253368931113490863">"الحصول على الحسابات"</item>
     <item msgid="780392378084812901">"التشغيل في الخلفية"</item>
+    <item msgid="2629748510881309577">"مستوى صوت إمكانية الوصول"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"الموقع"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"تشغيل الشاشة"</item>
     <item msgid="5258373962467495905">"الحصول على الحسابات"</item>
     <item msgid="334625385979270703">"التشغيل في الخلفية"</item>
+    <item msgid="9039213578110332702">"مستوى صوت إمكانية الوصول"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"قصيرة"</item>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 16e36e9..3b51a82 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -154,7 +154,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"انقر للاتصال بـ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"هل تريد الاتصال بـ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"؟"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"طلب الدخول إلى دفتر الهاتف"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"‏يريد %1$s الدخول إلى جهات الاتصال وسجل المكالمات. هل تريد منحه حق الدخول إلى %2$s؟"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"يريد <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> الوصول إلى جهات الاتصال وسجل المكالمات. هل تريد منحه إمكانية الوصول <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>؟"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"لا تسألني مرة أخرى"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"لا تسألني مرة أخرى"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"طلب الدخول إلى الرسائل"</string>
@@ -278,6 +278,7 @@
     <string name="settings_label" msgid="1626402585530130914">"الإعدادات"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"الإعدادات"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"اختصار الإعدادات"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"لم يتم العثور على أي أنشطة متطابقة."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"وضع الطائرة"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"المزيد"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"اللاسلكي والشبكات"</string>
@@ -1341,7 +1342,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"هل تريد استخدام <xliff:g id="NEW_APP">%1$s</xliff:g> بدلاً من <xliff:g id="CURRENT_APP">%2$s</xliff:g> لإدارة اتصالات الشبكة لديك؟"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"هل تريد استخدام <xliff:g id="NEW_APP">%s</xliff:g> لإدارة اتصالات الشبكة لديك؟"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"‏مشغل SIM (مشغل شبكة الجوّال) غير معروف"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"‏ليس لدى %1$s موقع ويب معروف لإدارة حسابات"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"ليس لدى <xliff:g id="OPERATOR">%1$s</xliff:g> موقع ويب معروف لإدارة حسابات"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"‏الرجاء إدخال شريحة SIM وإعادة التشغيل"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"الرجاء الاتصال بالإنترنت"</string>
     <string name="location_title" msgid="1029961368397484576">"موقعي"</string>
@@ -1397,8 +1398,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"‏الشركات الموفرة لصور القمر الصناعي:\n‎©2014 CNES / Astrium، وDigitalGlobe وBluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"الكتيب"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"حدثت مشكلة أثناء تحميل الكتيب."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"تراخيص الجهات الأخرى"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"هناك مشكلة في تحميل التراخيص."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"جارٍ التحميل…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"معلومات الأمان"</string>
@@ -2000,7 +2000,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"موفِّر طاقة البطارية"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"التشغيل تلقائيًا"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"أبدًا"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"‏عند بلوغ %1$s من طاقة البطارية"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"البطارية عند مستوى <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"إحصائيات العمليات"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"الإحصائيات التقنية حول العمليات الجارية"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"استخدام الذاكرة"</string>
@@ -2694,10 +2694,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"مستوى صوت الرنين"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"مستوى صوت الإشعارات"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"نغمة رنين الهاتف"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"صوت الإشعار الافتراضي"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"صوت التنبيه الافتراضي"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"الاهتزاز أيضًا مع المكالمات"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"أصوات أخرى"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"نغمات لوحة الاتصال"</string>
@@ -3314,7 +3312,7 @@
     <string name="notification_log_details_ranking_null" msgid="244660392058720919">"ترتيب العناصر مفقود."</string>
     <string name="notification_log_details_ranking_none" msgid="599607025882587844">"لا يحتوي ترتيب العناصر على هذا المفتاح."</string>
     <string name="special_access" msgid="8275242424094109976">"الوصول الخاص"</string>
-    <string name="confirm_convert_to_fbe_warning" msgid="1487005506049137659">"هل تريد بالتأكيد مسح بيانات المستخدم والتحويل إلى تشفير الملفات؟"</string>
+    <string name="confirm_convert_to_fbe_warning" msgid="1487005506049137659">"هل تريد فعلًا مسح بيانات المستخدم والتحويل إلى تشفير الملفات؟"</string>
     <string name="button_confirm_convert_fbe" msgid="7101855374850373091">"مسح وتحويل"</string>
     <string name="reset_shortcut_manager_throttling" msgid="6495066467198668994">"‏هل تريد إعادة تعيين تقييد المعدل في ShortcutManager؟"</string>
     <string name="reset_shortcut_manager_throttling_complete" msgid="1826770872063707900">"‏تمت إعادة تعيين تقييد المعدل في ShortcutManager."</string>
@@ -3351,6 +3349,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"ألا تستطيع تسجيل الدخول؟"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"إرسال معلومات النظام"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"عدم عرض ذلك مجددًا"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"الطلب باعتبارك"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"إضافة حساب"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"إعدادات الملف الشخصي للعمل"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"البحث في جهات الاتصال"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"السماح بعمليات البحث عن جهات اتصال بواسطة مؤسستك لتحديد المتصلين وجهات الاتصال"</string>
@@ -3435,20 +3435,26 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"مزامنة بيانات الحساب تلقائيًا"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"مزامنة الحساب الشخصي تلقائيًا"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"مزامنة حساب العمل تلقائيًا"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"مزامنة الحساب"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"الخصوصية"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"الخصوصية"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"لتوفير إمكانية الوصول إلى بيانات عملك، يجوز أن تغيِّر مؤسستك الإعدادات وأن تثبِّت البرامج على جهازك، وهو ما قد يتسبب في ظهور بعض محتوياتك الشخصية للمشرف. اتصل بمشرف مؤسستك للحصول على المزيد من التفاصيل."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"ما أنواع المعلومات التي يمكن لمؤسستك الاطلاع عليها؟"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"ما التغييرات التي تؤثر في ما يظهر لمؤسستك؟"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ما الإجراءات التي قد تؤثر في إمكانية وصولك إلى هذا الجهاز؟"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"البيانات المقترنة مع حساب العمل، مثل البريد الإلكتروني والتقويم"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"قائمة تضم جميع التطبيقات على جهازك"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="zero">قائمة تضم جميع تطبيقات الجهاز وعددها <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="two">قائمة تضم جميع تطبيقات الجهاز وعددها <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="few">قائمة تضم جميع تطبيقات الجهاز وعددها <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="many">قائمة تضم جميع تطبيقات الجهاز وعددها <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="other">قائمة تضم جميع تطبيقات الجهاز وعددها <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="one">قائمة تضم جميع تطبيقات الجهاز وعددها <xliff:g id="COUNT_0">%d</xliff:g></item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"استخدام كل تطبيق على جهازك (الوقت المنقضي ومقدار البيانات المستخدمة)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"سجلات حركة المرور على جهازك"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"أحدث تقرير أخطاء"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"أحدث سجل أمني"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"أبدًا"</string>
 </resources>
diff --git a/res/values-az-rAZ/arrays.xml b/res/values-az-rAZ/arrays.xml
index 7e70de9..d3ef006 100644
--- a/res/values-az-rAZ/arrays.xml
+++ b/res/values-az-rAZ/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ekranı yandırın"</item>
     <item msgid="3253368931113490863">"hesabları əldə edin"</item>
     <item msgid="780392378084812901">"arka fonda işləyir"</item>
+    <item msgid="2629748510881309577">"əlçatımlılıq dərəcəsi"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Məkan"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Ekranı yandırın"</item>
     <item msgid="5258373962467495905">"Hesabları əldə edin"</item>
     <item msgid="334625385979270703">"Arxa fonda işlədin"</item>
+    <item msgid="9039213578110332702">"Əlçatımlılıq dərəcəsi"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Qısa"</item>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
index 2abf5de..658c61b 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az-rAZ/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ilə bağlantı yaratmaq üçün tıklayın."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" cihazına qoşulmaq istəyirsiniz?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Telefon kitabı giriş sorğusu"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s sizin kontaktlarınıza və zəng tarixçənizə giriş istəyir. %2$s adlı istifadəçi üçün girişə icazə verilsin?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> izin kontaktlarınıza və zəng tarixçənizə giriş istəyir. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> adlı istifadəçiyə girişə icazə verilsin?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Bir daha soruşmayın"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Daha soruşma"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Mesaj giriş sorğusu"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Ayarlar"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Ayarlar"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Ayarlar qısayolunu seçin"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Uyğun gələn fəaliyyət tapılmadı."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Uçuş rejimi"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Digər"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Simsiz &amp; şəbəkələr"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Şəbəkə bağlantılarını idarə etmək üçün <xliff:g id="CURRENT_APP">%2$s</xliff:g> əvəzinə <xliff:g id="NEW_APP">%1$s</xliff:g> istifadə edilsin?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Şəbəkə bağlantılarını idarə edilmək üçün <xliff:g id="NEW_APP">%s</xliff:g> istifadə edilsin?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Naməlum SIM operatoru"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s naməlum vebsayt təminatçısına malikdir"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> naməlum vebsayt təminatçısına malikdir"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Lütfən, SİM kart daxil edin və yenidən başladın"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Lütfən. internetə qoşulun"</string>
     <string name="location_title" msgid="1029961368397484576">"Mənim yerləşməm"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Peyk şəkillərini təqdim edənlər:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Dərslik"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Dərsliklərin yüklənməsində problem var."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Üçüncü tərəf lisenziyaları"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Lisenziyaların yüklənilməsində problem var."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Yüklənir…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Təhlükəsizlik məlumatı"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Enerji qənaəti"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Avtomatik aktivləşdir"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Heç vaxt"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"at %1$s enerji"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> batareya"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Proses Statistikası"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"İşləmə prosesləri haqqında çağırış statistikası"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Yaddaş istifadəsi"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Zəng həcmi"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Bildiriş səsi"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Telefon zəng səsi"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Varsayılan bildiriş səsi"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Defolt zəngli saat səsi"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Həmçinin, zənglər üçün vibrasiya olsun"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Digər səslər"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Klaviş tonları"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Daxil ola bilmədiniz?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Sistem məlumatı göndərin"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Yenidən göstərməyin"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Sorğulama növü:"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Hesab əlavə edin"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"İş profil ayarları"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontakt axtarışı"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Zəng edənləri və kontaktları təyin etmək üçün təşkilatınız tərəfindən kontakt axtarışlarına icazə verin"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Hesab datasını avtomatik sinxronlaşdırın"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Şəxsi hesab datasını avtomatik sinxronlaşdırın"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"İş hesab datasını avtomatik sinxronlaşdırın"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Hesab sinxronizasiyası"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Konfidensiallıq"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Konfidensiallıq"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"İş datasına girişi təmin etmək üçün, təşkilatınız, bəzi şəxsi məzmunun admin üçün görünən olmasına səbəb ola bilən ayar dəyişikliyi edə və cihazınıza tətbiq yükləyə bilər. Ətraflı məlumat üçün təşkilatın admini ilə əlaqə saxlayın."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Təşkilat hansı məlumatları görə bilər?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Hansı dəyişikliklər təşkilatın gördüklərinə təsir edir?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Hansı fəaliyyətlər Sizin bu hesaba girişinizə təsir edə bilər?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"E-poçt və təqvim kimi iş hesabı ilə əlaqədar data"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Cihazınızdakı tətbiqlərin siyahısı"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Cihazınızdakı bütün <xliff:g id="COUNT_1">%d</xliff:g> tətbiqin siyahısı</item>
+      <item quantity="one">Cihazınızdakı bütün <xliff:g id="COUNT_0">%d</xliff:g> tətbiqin siyahısı</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Cihazınızdakı hər bir tətbiqin istifadəsi (istifadə etdiyi vaxt və data miqdarı)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Cihazdakı trafik qeydiyyatı"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Ən son baq hesabatı"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ən son təhlükəsizlik qeydiyyatı"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Heç vaxt"</string>
 </resources>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index b36b281..66fda93 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"uključivanje ekrana"</item>
     <item msgid="3253368931113490863">"pristup nalozima"</item>
     <item msgid="780392378084812901">"rad u pozadini"</item>
+    <item msgid="2629748510881309577">"jačina zvuka za pristupačnost"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Lokacija"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Uključivanje ekrana"</item>
     <item msgid="5258373962467495905">"Pristup nalozima"</item>
     <item msgid="334625385979270703">"Rad u pozadini"</item>
+    <item msgid="9039213578110332702">"Jačina zvuka za pristupačnost"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Kratko"</item>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 4623175..24db5d3 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -151,7 +151,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Dodirnite da biste se povezali sa uređajem „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Da li želite da se povežete sa uređajem „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Zahtev za pristup telefonskom imeniku"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s želi da pristupi vašim kontaktima i istoriji poziva. Želite li da odobrite pristup za %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> želi da pristupi kontaktima i istoriji poziva. Želite li da date pristup uređaju <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ne pitaj ponovo"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ne pitaj ponovo"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Zahtev za pristup porukama"</string>
@@ -272,6 +272,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Podešavanja"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Podešavanja"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Prečica podešavanja"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Nije pronađena nijedna aktivnost koja se podudara."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Režim rada u avionu"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Još"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Bežična veza i mreže"</string>
@@ -1311,7 +1312,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Želite li da koristite aplikaciju <xliff:g id="NEW_APP">%1$s</xliff:g> umesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> za upravljanje mrežnim vezama?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Želite li da koristite aplikaciju <xliff:g id="NEW_APP">%s</xliff:g> za upravljanje mrežnim vezama?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nepoznati SIM operater"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nema poznatih veb-sajtova za dodelu"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nema poznat veb-sajt za dodelu"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Ubacite SIM karticu i restartujte"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Povežite se sa internetom"</string>
     <string name="location_title" msgid="1029961368397484576">"Moja lokacija"</string>
@@ -1367,8 +1368,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Dobavljači satelitskih slika:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Uputstvo"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Došlo je do problema pri učitavanju uputstva."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licence treće strane"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Došlo je do problema pri učitavanju licenci."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Učitava se…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Bezbednosne informacije"</string>
@@ -1949,7 +1949,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Štednja baterije"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Automatski uključi"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nikada"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"baterija je na %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"na <xliff:g id="PERCENT">%1$s</xliff:g> baterije"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Statistika procesa"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Štreberska statistika o aktivnim procesima"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Iskorišćenost memorije"</string>
@@ -2628,10 +2628,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Jačina zvuka zvona"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Jačina zvuka za obaveštenja"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Zvuk zvona telefona"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Podrazumevani zvuk obaveštenja"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Podrazumevani zvuk alarma"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibracija i za pozive"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Drugi zvukovi"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonovi numeričke tastature"</string>
@@ -3255,6 +3253,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Ne možete da se prijavite?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Pošaljite informacije o sistemu"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne prikazuj ponovo"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Zahtevate kao"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Dodaj nalog"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Podešavanja poslovnog profila"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pretraga kontakata"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Dozvolite da pretraživanje kontakata od strane vaše organizacije identifikuje pozivaoce i kontakte."</string>
@@ -3330,20 +3330,23 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Autom. sinhr. podatke sa naloga"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Autom. sinhr. lične podatke sa naloga"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Autom. sinhr. poslovne podatke sa naloga"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sinhronizacija naloga"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privatnost"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privatnost"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Da bi pružila pristup vašim poslovnim podacima, organizacija može da promeni podešavanja i instalira softver na uređaju, što bi deo ličnog sadržaja učinilo vidljivim administratoru. Kontaktirajte administratora organizacije za više detalja."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Koje tipove informacija može da vidi organizacija?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Koje promene utiču na to šta organizacija može da vidi?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Koje radnje mogu da utiču na vaš pristup ovom uređaju?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Podaci povezani sa poslovnim nalogom, poput imejla i kalendara"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista svih aplikacija na uređaju"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Lista svih aplikacija na uređaju: <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="few">Lista svih aplikacija na uređaju: <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="other">Lista svih aplikacija na uređaju: <xliff:g id="COUNT_1">%d</xliff:g></item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Korišćenje (potrošeno vreme i količina iskorišćenih podataka) za svaku aplikaciju na uređaju"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Evidencija saobraćaja na uređaju"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Najnoviji izveštaj o grešci"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Najnovija bezbednosna evidencija"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nikada"</string>
 </resources>
diff --git a/res/values-be-rBY/arrays.xml b/res/values-be-rBY/arrays.xml
index ead37a9..3f00a01 100644
--- a/res/values-be-rBY/arrays.xml
+++ b/res/values-be-rBY/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"уключаць экран"</item>
     <item msgid="3253368931113490863">"атрымліваць уліковыя запісы"</item>
     <item msgid="780392378084812901">"выконваць у фонавым рэжыме"</item>
+    <item msgid="2629748510881309577">"гучнасць для спецыяльных магчымасцей"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Месцазнаходжанне"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Уключаць экран"</item>
     <item msgid="5258373962467495905">"Атрымліваць уліковыя запісы"</item>
     <item msgid="334625385979270703">"Выконваць у фонавым рэжыме"</item>
+    <item msgid="9039213578110332702">"Гучнасць для спецыяльных магчымасцей"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Кароткая"</item>
diff --git a/res/values-be-rBY/strings.xml b/res/values-be-rBY/strings.xml
index b7fc8ce..3bdf299 100644
--- a/res/values-be-rBY/strings.xml
+++ b/res/values-be-rBY/strings.xml
@@ -152,7 +152,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Краніце, каб падлучыцца да прылады <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Падлучыцца да прылады \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Запыт доступу да тэлефоннай кнігі"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s спрабуе атрымаць доступ да вашых кантактаў і гісторыі выклікаў. Дазволіць доступ тэлефоннай кнiзе %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> спрабуе атрымаць доступ да вашых кантактаў і гісторыі выклікаў. Даць доступ да <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Больш не пытацца"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Больш не пытацца"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Запыт доступу да паведамленняў"</string>
@@ -274,6 +274,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Налады"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Налады"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Ярлык налад"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Адпаведныя дзеянні не знойдзены."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Рэжым самалёту"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Яшчэ"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Бесправадныя і правадныя сеткі"</string>
@@ -1321,7 +1322,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Выкарыстоўваць <xliff:g id="NEW_APP">%1$s</xliff:g> замест <xliff:g id="CURRENT_APP">%2$s</xliff:g> для кіравання сеткавымі падлучэннямі?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Выкарыстоўваць <xliff:g id="NEW_APP">%s</xliff:g> для кіравання вашымі падлучэннямі да сеткі?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Невядомы аператар SIM-карты"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"У %1$s няма вядомага вэб-сайта для прадаст. паслуг"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"У <xliff:g id="OPERATOR">%1$s</xliff:g> няма вядомага вэб-сайта для забеспячэння паслуг"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Калі ласка, устаўце SIM-карту і перазагрузіце"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Калі ласка, падлучыцеся да Інтэрнэту"</string>
     <string name="location_title" msgid="1029961368397484576">"Маё месцазнаходжанне"</string>
@@ -1377,8 +1378,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Пастаўшчыкі спадарожнікавых выяў:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Кіраўніцтва"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Не атрымлiваецца загрузіць кіраўніцтва."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Ліцэнзіі трэціх бакоў"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Немагчыма загрузіць ліцэнзіі."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Загрузка..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Інфармацыя аб бяспецы"</string>
@@ -1966,7 +1966,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Эканомія зараду акумулятара"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Уключаць аўтаматычна"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Ніколі"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"пры ўзроўні зараду %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"пры ўзроўні зараду акумулятара <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Статыстыка працэсаў"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Падрабязная статыстыка запушчаных працэсаў"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Аб\'ём выкарыстання памяці"</string>
@@ -2650,10 +2650,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Гучнасць выкліку"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Гучнасць апавяшчэнняў"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Мелодыя тэлефона"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Стандартны гук апавяшчэння"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Стандартны сігнал будзільніка"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Уключыць вібрацыю для выклікаў"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Іншыя гукі"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Гукі панэлі набору"</string>
@@ -3287,6 +3285,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Не можаце ўвайсці ў сістэму?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Адправіць інфармацыю пра сістэму"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Больш не паказваць"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Запыт ад"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Дадаць уліковы запіс"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Налады працоўнага профілю"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Пошук кантактаў"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Дазволіць вашай арганізацыі пошук кантактаў, каб вызначаць абанентаў і кантакты"</string>
@@ -3365,20 +3365,24 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Аўтасiнхр. даных улік. запісу"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Аўтасінхр. дан. асаб. ул. зап."</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Аўтасінхр. дан. прац. ул. зап."</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Сінхранізацыя ўліковага запісу"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Прыватнасць"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Прыватнасць"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Для забеспячэння доступу да вашых працоўных даных ваша арганізацыя можа змяніць налады і ўсталяваць пэўнае праграмнае забеспячэнне на вашу прыладу. У выніку гэтага некаторае асабістае змесціва зможа ўбачыць ваш адміністратар. Для атрымання дадатковай інфармацыі звярніцеся да адміністратара сваёй арганізацыі."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Якія віды інфармацыі можа бачыць ваша арганізацыя?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Якія змены ўплыв. на тое, што ваша арганізацыя можа бачыць?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Якія дзеянні могуць паўплыв. на ваш доступ да гэтай прылады?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Даныя, звязаныя з вашым працоўным уліковым запісам, такія як электронная пошта і каляндар"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Спіс усіх праграм на вашай прыладзе"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Спіс з <xliff:g id="COUNT_1">%d</xliff:g> праграмы на вашай прыладзе</item>
+      <item quantity="few">Спіс з усіх <xliff:g id="COUNT_1">%d</xliff:g> праграм на вашай прыладзе</item>
+      <item quantity="many">Спіс з усіх <xliff:g id="COUNT_1">%d</xliff:g> праграм на вашай прыладзе</item>
+      <item quantity="other">Спіс з <xliff:g id="COUNT_1">%d</xliff:g> праграмы на вашай прыладзе</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Выкарыстанне (патрачаны час і аб\'ём выкарыстаных даных) кожнай праграмы на вашай прыладзе"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Журналы трафіку на вашай прыладзе"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Ваша апошняя справаздача пра памылку"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ваш апошні журнал бяспекі"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Ніколі"</string>
 </resources>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index e0519cf..c4dc106 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"включване на екрана"</item>
     <item msgid="3253368931113490863">"създаване на профили"</item>
     <item msgid="780392378084812901">"пускане на заден план"</item>
+    <item msgid="2629748510881309577">"сила на звука за услугите за достъпност"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Местоположение"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Включване на екрана"</item>
     <item msgid="5258373962467495905">"Създаване на профили"</item>
     <item msgid="334625385979270703">"Пускане на заден план"</item>
+    <item msgid="9039213578110332702">"Сила на звука за услугите за достъпност"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Кратко"</item>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 41afd83..94523c5 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Докоснете за свързване с/ъс „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Искате ли да се свържете с/ъс „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Заявка за достъп до телефонния указател"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"От %1$s се иска достъп до вашите контакти и история на обажданията. Да се даде ли достъп до %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> иска да осъществи достъп до контактите и историята на обажданията ви. Искате ли да предоставите достъп до <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Без повторно питане"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Без повторно питане"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Заявка за достъп до съобщенията"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Настройки"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Настройки"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Пряк път за настройките"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Не бяха намерени съответстващи дейности."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Самолетен режим"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Още"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Кабелни и безжични мрежи"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Да се използва ли <xliff:g id="NEW_APP">%1$s</xliff:g> вместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управление на мрежовите ви връзки?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Да се използва ли <xliff:g id="NEW_APP">%s</xliff:g> за управление на мрежовите ви връзки?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Неизвестен SIM оператор"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Няма известен администриращ уебсайт за %1$s"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Няма известен администриращ уебсайт за <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Моля, поставете SIM карта и рестартирайте"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Моля, свържете се с интернет"</string>
     <string name="location_title" msgid="1029961368397484576">"Моето местоположение"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Доставчици на сателитни изображения:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Ръководство"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Възникна проблем при зареждане на ръководството."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Лицензи на трети страни"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Възникна проблем при зареждането на лицензите."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Зарежда се…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Информация за безопасност"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Режим за запазване на батерията"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Автоматично включване"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Никога"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"при %1$s батерия"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"при <xliff:g id="PERCENT">%1$s</xliff:g> батерия"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Статистически данни за процесите"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Подробни статистически данни за изпълняващите се процеси"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Използвана памет"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Сила на звука при звънене"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Сила на звука при известие"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Мелодия на телефон"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Стандартен звук за известяване"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Стандартен звук за будилника"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Вибриране и при обаждания"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Други звуци"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Тонове при набиране"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Не можете да влезете в профила си?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Изпращане на системна информация"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Да не се показва отново"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Заявка за поддръжка като"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Добавяне на профил"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Настройки за служебния потребителски профил"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Търсене на контакт"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Разрешете търсене на контакти от организацията ви с цел идентифициране на обаждащите се и контактите"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Данни от профила: Авт. синхрон"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Данни от личния профил: Авт. синхрон"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Данни от служ. профил: Авт. синхрон"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Синхронизиране на профила"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Поверителност"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Поверителност"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"За да предостави достъп до служебните ви данни, организацията ви може да промени настройките и да инсталира софтуер на устройството ви, което може да доведе до това, част от личното ви съдържание да бъде видимо за администратора ви. Свържете се с него за повече подробности."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Какъв тип информация може да вижда организацията ви?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Кои промени засягат това, какво може да вижда организацията ви?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Кои действия може да повлияят на достъпа ви до това у-во?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Свързани със служебния ви профил данни, като например имейл и календар"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Списък с всички приложения на устройството ви"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Списък с всичките <xliff:g id="COUNT_1">%d</xliff:g> приложения на устройството ви</item>
+      <item quantity="one">Списък с <xliff:g id="COUNT_0">%d</xliff:g> приложение на устройството ви</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Употреба (прекарано време и количество използвани данни) на всяко приложение на устройството ви"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Регистрационни файлове за трафика на устройството ви"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Най-скорошният ви сигнал за програмна грешка"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Най-скорошният ви регистрационен файл за сигурността"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Никога"</string>
 </resources>
diff --git a/res/values-bn-rBD/arrays.xml b/res/values-bn-rBD/arrays.xml
index d4d4d93..4c1e2e9 100644
--- a/res/values-bn-rBD/arrays.xml
+++ b/res/values-bn-rBD/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"স্ক্রিন চালু করুন"</item>
     <item msgid="3253368931113490863">"অ্যাকাউন্ট পেয়ে যান"</item>
     <item msgid="780392378084812901">"পটভূমি্তে অ্যাপ্স চলছে"</item>
+    <item msgid="2629748510881309577">"অ্যাক্সেসযোগ্যতার ভলিউম"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"অবস্থান"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"স্ক্রিন চালু করুন"</item>
     <item msgid="5258373962467495905">"অ্যাকাউন্ট পে‍য়ে যান"</item>
     <item msgid="334625385979270703">"পটভূমিতে অ্যাপ্স চলছে"</item>
+    <item msgid="9039213578110332702">"অ্যাক্সেসযোগ্যতার ভলিউম"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"স্বল্প"</item>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index 32edb33..bacfe93 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" এ সংযোগ করতে আলতো চাপুন।"</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"আপনি কি \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" এ সংযুক্ত করতে চান?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ফোন বইয়ের অ্যাক্সেসের অনুরোধ"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s আপনার পরিচিতিগুলি এবং পুরোনো কলের তালিকা অ্যাক্সেস  চায়। %2$s এ অ্যাক্সেস দেবেন?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> আপনার পরিচিতিগুলি এবং কলের ইতিহাস অ্যাক্সেস করতে চায়৷ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>কে অ্যাক্সেস করতে দেবেন?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"আবার জিজ্ঞাসা করবেন না"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"আবার জিজ্ঞাসা করবেন না"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"বার্তা অ্যাক্সেসের অনুরোধ"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"সেটিংস"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"সেটিংস"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"সেটিংস শর্টকাট"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"কোনো সমরূপ কার্যকলাপ খুঁজে পাওয়া যায়নি৷"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"বিমান মোড"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"আরো"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"ওয়্যারলেস ও নেটওয়ার্ক"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"আপনার নেটওয়ার্ক সংযোগ পরিচালনা করার জন্য <xliff:g id="CURRENT_APP">%2$s</xliff:g> এর পরিবর্তে <xliff:g id="NEW_APP">%1$s</xliff:g> ব্যবহার করবেন?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"আপনার নেটওয়ার্ক সংযোগ পরিচালনা করার জন্য <xliff:g id="NEW_APP">%s</xliff:g> ব্যবহার করবেন?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"সিম এর পরিষেবা প্রদানকারী অজানা"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s এর কোনো জানা প্রভিশনিং ওয়েবসাইট নেই"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> এর কোনো পরিচিত প্রভিশনিং ওয়েবসাইট নেই"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"দয়া করে সিম কার্ড ঢোকান এবং পুনর্সূচনা করুন"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"দয়া করে ইন্টারনেটের সঙ্গে সংযুক্ত হোন"</string>
     <string name="location_title" msgid="1029961368397484576">"আমার অবস্থান"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"উপগ্রহ চিত্র প্রদানকারী:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"ম্যানুয়াল"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"ম্যানুয়াল লোড হওয়ার সময়ে একটি সমস্যা হয়েছে।"</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"তৃতীয় পক্ষের লাইসেন্স"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"লাইসেন্সগুলি লোড হতে একটা সমস্যা হয়েছে।"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"লোড হচ্ছে..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"নিরাপত্তা তথ্য"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"ব্যাটারি সেভার"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"স্বয়ংক্রিয়ভাবে চালু হবে"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"কখনও নয়"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s ব্যাটারি থাকলে"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g>ব্যাটারি আছে"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"প্রক্রিয়ার পরিসংখ্যান"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"চলমান প্রক্রিয়াগুলি গিকি পরিসংখ্যান"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"মেমরি ব্যবহৃত"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"রিং ভলিউম"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"বিজ্ঞপ্তির ভলিউম"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"ফোন রিংটোন"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"ডিফল্ট বিজ্ঞপ্তি শব্দ"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"ডিফল্ট অ্যালার্মের শব্দ"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"এছাড়াও কল এলে স্পন্দিত করুন"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"অন্যান্য শব্দগুলি"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"ডায়াল প্যাডের টোনগুলি"</string>
@@ -2686,11 +2684,11 @@
     <string name="notification_listener_disable_warning_summary" msgid="6738915379642948000">"যদি আপনি <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> এর জন্য বিজ্ঞপ্তির অ্যাক্সেস বন্ধ করেন, তাহলে \'বিরক্ত করবেন না\' এর অ্যাক্সেসও বন্ধ হয়ে যেতে পারে৷"</string>
     <string name="notification_listener_disable_warning_confirm" msgid="8333442186428083057">"বন্ধ করুন"</string>
     <string name="notification_listener_disable_warning_cancel" msgid="8586417377104211584">"বাতিল করুন"</string>
-    <string name="vr_listeners_title" msgid="1318901577754715777">"VR সহায়তাকারী পরিষেবাগুলি"</string>
+    <string name="vr_listeners_title" msgid="1318901577754715777">"(ভিআর)VR সহায়তাকারী পরিষেবাগুলি"</string>
     <string name="no_vr_listeners" msgid="2689382881717507390">"vr সহায়তাকারী পরিষেবা হিসাবে চলার জন্য কোনো অ্যাপ্লিকেশান ইনস্টল করা নেই৷"</string>
-    <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"<xliff:g id="SERVICE">%1$s</xliff:g> এর জন্য VR পরিষেবার অ্যাক্সেসের অনুমতি দেবেন?"</string>
+    <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"<xliff:g id="SERVICE">%1$s</xliff:g> এর জন্য (ভিআর)VR পরিষেবার অ্যাক্সেসের অনুমতি দেবেন?"</string>
     <string name="vr_listener_security_warning_summary" msgid="6931541068825094653">"ভার্চুয়াল রিয়েলিটি মোডে আপনি যখন অ্যাপ্লিকেশানগুলি ব্যবহার করবেন তখন <xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> চালাতে পারবেন৷"</string>
-    <string name="display_vr_pref_title" msgid="8104485269504335481">"যখন ডিভাইসটি VR মোডে থাকে"</string>
+    <string name="display_vr_pref_title" msgid="8104485269504335481">"যখন ডিভাইসটি (ভিআর)VR মোডে থাকে"</string>
     <string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"অস্পষ্ট কমান (প্রস্তাবিত)"</string>
     <string name="display_vr_pref_off" msgid="2190091757123260989">"ফ্লিকার কমান"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"বিরক্ত করবেন না অ্যাক্সেস করুন"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"সাইন ইন করতে পারছেন না?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"সিস্টেমের তথ্য পাঠান"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"আর দেখাবেন না"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"এই রূপে অনুরোধ করা হচ্ছে"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"অ্যাকাউন্ট যোগ করুন"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"কর্মস্থলের প্রোফাইলের সেটিংস"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"পরিচিতির অনুসন্ধান"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"কলারদের এবং পরিচিতিগুলিকে চিহ্নিত করতে আপনার প্রতিষ্ঠান দ্বারা পরিচিতি অনুসন্ধানের অনুমতি দিন"</string>
@@ -3272,9 +3272,9 @@
     <string name="ambient_display_pickup_summary" product="tablet" msgid="2442551819015699120">"আপনার বিজ্ঞপ্তিগুলিকে দ্রুত চেক করতে আপনার ট্যাবলেটটিকে হাতে তুলে নিন"</string>
     <string name="ambient_display_pickup_summary" product="device" msgid="2369325441608811599">"আপনার বিজ্ঞপ্তিগুলিকে দ্রুত চেক করতে আপনার ডিভাইসটিকে হাতে তুলে নিন"</string>
     <string name="fingerprint_swipe_for_notifications_title" msgid="2750203868053669600">"বিজ্ঞপ্তিগুলির জন্য সোয়াইপ করুন"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"আপনার বিজ্ঞপ্তিগুলি চেক করতে, আপনার ফোনের পিছনে আঙ্গুলের ছাপ নেওয়ার সেন্সরে নীচের দিকে সোয়াইপ করুন৷"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="902719947767712895">"আপনার বিজ্ঞপ্তিগুলি চেক করতে, আপনার ট্যাবলেটের পিছনে আঙ্গুলের ছাপ নেওয়ার সেন্সরে নীচের দিকে সোয়াইপ করুন৷"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="5372926094116306647">"আপনার বিজ্ঞপ্তিগুলি চেক করতে, আপনার ডিভাইসের পিছনে আঙ্গুলের ছাপ নেওয়ার সেন্সরে নীচের দিকে সোয়াইপ করুন৷"</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"আপনার বিজ্ঞপ্তিগুলি চেক করতে, আপনার ফোনের পিছনে আঙ্গুলের ছাপ নেওয়ার সেন্সরে নিচের দিকে সোয়াইপ করুন৷"</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="902719947767712895">"আপনার বিজ্ঞপ্তিগুলি চেক করতে, আপনার ট্যাবলেটের পিছনে আঙ্গুলের ছাপ নেওয়ার সেন্সরে নিচের দিকে সোয়াইপ করুন৷"</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="5372926094116306647">"আপনার বিজ্ঞপ্তিগুলি চেক করতে, আপনার ডিভাইসের পিছনে আঙ্গুলের ছাপ নেওয়ার সেন্সরে নিচের দিকে সোয়াইপ করুন৷"</string>
     <string name="gesture_setting_on" msgid="3455094265233870280">"চালু আছে"</string>
     <string name="gesture_setting_off" msgid="5230169535435881894">"বন্ধ আছে"</string>
     <string name="oem_unlock_enable_disabled_summary_bootloader_unlocked" msgid="4265541229765635629">"বুটলোডার ইতিমধ্যেই আনলক করা হয়েছে"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"অ্যাকাউন্টের ডেটা স্বতঃসিঙ্ক"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"ব্যক্তিগত অ্যাকাউন্টের ডেটা স্বতঃসিঙ্ক"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"কাজের অ্যাকাউন্টের ডেটা স্বতঃসিঙ্ক"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"অ্যাকাউন্ট সিঙ্ক"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"গোপনীয়তা"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"গোপনীয়তা"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"আপনার কর্মস্থলের ডেটাতে অ্যাক্সেস প্রদান করার জন্য, আপনার প্রতিষ্ঠান আপনার ডিভাইসের সেটিংস পরিবর্তন করতে এবং সফ্টওয়্যার ইনস্টল করতে পারে, যার ফলে আপনার ব্যক্তিগত কিছু সামগ্রী আপনার প্রশাসকের কাছে দৃশ্যমান হতে পারে৷ আরো বিশদ বিবরণের জন্য আপনার প্রতিষ্ঠানের প্রশাসকের সাথে যোগাযোগ করুন৷"</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"আপনার প্রতিষ্ঠান কোন ধরনের তথ্য দেখতে পারে?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"\'কোন পরিবর্তনগুলি প্রভাব ফেলতে পারে\' বিষয়টিকে কি আপনার প্রতিষ্ঠান দেখতে পারে?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"এই ডিভাইসে আপনার অ্যাক্সেস করার ক্ষেত্রে কোন ক্রিয়াগুলি প্রভাব ফেলতে পারে?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"ইমেল এবং ক্যালেন্ডারের মতো আপনার কর্মক্ষেত্রের অ্যাকাউন্টের সাথে যুক্ত ডেটা"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"আপনার ডিভাইসে থাকা সমস্ত অ্যাপের তালিকা"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">আপনার ডিভাইসে থাকা সমস্ত <xliff:g id="COUNT_1">%d</xliff:g>টি অ্যাপের তালিকা</item>
+      <item quantity="other">আপনার ডিভাইসে থাকা সমস্ত <xliff:g id="COUNT_1">%d</xliff:g>টি অ্যাপের তালিকা</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"আপনার ডিভাইসের প্রতিটি অ্যাপ্লিকেশানের (ডেটা ব্যবহারের সময় এবং পরিমাণ) ব্যবহার"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"আপনার ডিভাইসের ট্রাফিক লগ"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"আপনার সর্বশেষ ত্রুটির প্রতিবেদন"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"আপনার সর্বশেষ নিরাপত্তা লগ"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"কখনই নয়"</string>
 </resources>
diff --git a/res/values-bs-rBA/arrays.xml b/res/values-bs-rBA/arrays.xml
index c3fcbbe..2185f2b 100644
--- a/res/values-bs-rBA/arrays.xml
+++ b/res/values-bs-rBA/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"uključi ekran"</item>
     <item msgid="3253368931113490863">"pregledaj račune"</item>
     <item msgid="780392378084812901">"radi u pozadini"</item>
+    <item msgid="2629748510881309577">"jačina zvuka za pristupačnost"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Lokacija"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Uključi ekran"</item>
     <item msgid="5258373962467495905">"Pregledaj račune"</item>
     <item msgid="334625385979270703">"Radi u pozadini"</item>
+    <item msgid="9039213578110332702">"Jačina zvuka za pristupačnost"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Kratak"</item>
@@ -458,7 +460,7 @@
     <item msgid="7438189122367820362">"Usluga (pokrenuta)"</item>
     <item msgid="918687422516982498">"Usluga (ponovno pokretanje)"</item>
     <item msgid="6807727069641853029">"Prijemnik"</item>
-    <item msgid="6782857406100845127">"Početna stranica"</item>
+    <item msgid="6782857406100845127">"Kuća"</item>
     <item msgid="2860945127596974299">"Posljednja aktivnost"</item>
     <item msgid="8610560843693675830">"Keširana (aktivnost)"</item>
     <item msgid="4338089220026248848">"Keširana (aktivnost klijenta)"</item>
diff --git a/res/values-bs-rBA/strings.xml b/res/values-bs-rBA/strings.xml
index 24e9ab5..5d2157e 100644
--- a/res/values-bs-rBA/strings.xml
+++ b/res/values-bs-rBA/strings.xml
@@ -151,7 +151,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Dodirnite za povezivanje s uređajem \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Da li se želite povezati na \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Zahtjev za pristup imeniku"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s želi pristupiti vašim kontaktima i historiji poziva. Želite dozvoliti pristup za %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Uređaj <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> želi pristupiti vašim kontaktima i historiji poziva. Želite li odobriti pristup uređaju <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ne pitaj ponovo"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ne pitaj ponovo"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Zahtjev za pristup porukama"</string>
@@ -272,6 +272,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Postavke"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Postavke"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Prečica za postavke"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Nije pronađena nijedna odgovarajuća aktivnost."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Način rada u avionu"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Više"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Bežična veza i mreže"</string>
@@ -310,7 +311,7 @@
     <string name="date_time_set_date_title" msgid="6928286765325608604">"Datum"</string>
     <string name="date_time_set_date" msgid="7021491668550232105">"Postavi datum"</string>
     <string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Sortiraj po abecedi"</string>
-    <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Sortiraj po vremenskim zonama"</string>
+    <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Poredaj po vremenskim zonama"</string>
     <string name="date_picker_title" msgid="1338210036394128512">"Datum"</string>
     <string name="time_picker_title" msgid="483460752287255019">"Vrijeme"</string>
     <string name="lock_after_timeout" msgid="4590337686681194648">"Automatski zaključaj"</string>
@@ -886,7 +887,7 @@
     <string name="wifi_calling_off_explanation" msgid="2597566001655908391">"Kada je opcija Wi-Fi pozivanje uključena, telefon može preusmjeravati pozive preko Wi-Fi mreža ili mreže vašeg operatera, u zavisnosti od toga kakve su vaše postavke i koji signal je jači. Prije nego što uključite ovu funkciju, provjerite sa svojim operaterom kakvi su troškovi i ostali detalji."</string>
     <string name="emergency_address_title" msgid="3571902448699714454">"Ažuriraj adresu za hitne slučajeve"</string>
     <string name="emergency_address_summary" msgid="306028701568728126">"Adresa koju hitna služba koristi kao vašu lokaciju ukoliko pozovete 911 (hitnu službu) koristeći Wi-Fi mrežu"</string>
-    <string name="home_settings" msgid="212375129455718176">"Početna stranica"</string>
+    <string name="home_settings" msgid="212375129455718176">"Početna"</string>
     <string name="display_settings_title" msgid="1708697328627382561">"Prikaz"</string>
     <string name="sound_settings" msgid="5534671337768745343">"Zvuk"</string>
     <string name="ringtone_summary" msgid="1688079785311826667">" "</string>
@@ -1311,7 +1312,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Želite li koristiti aplikaciju <xliff:g id="NEW_APP">%1$s</xliff:g> umjesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> za upravljanje mrežnim vezama?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Koristiti <xliff:g id="NEW_APP">%s</xliff:g> za upravljanje vašim mrežnim vezama?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nepoznati SIM operater"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nema poznatu web-lokaciju za dodelu"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nema poznatu web lokaciju za omogućavanje upotrebe"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Umetnite SIM karticu i ponovo pokrenite uređaj"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Povežite se na Internet"</string>
     <string name="location_title" msgid="1029961368397484576">"Moja lokacija"</string>
@@ -1367,8 +1368,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Pružaoci satelitskih slika:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Ručno"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Došlo je do problema sa učitavanjem priručnika."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licence trećih strana"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Pojavio se problem s učitavanjem licenci."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Učitavanje…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Sigurnosne informacije"</string>
@@ -1490,8 +1490,8 @@
     <string name="ask_compatibility" msgid="7225195569089607846">"Pitaj prilikom pokretanja"</string>
     <string name="enable_compatibility" msgid="5806819252068617811">"Skaliraj aplikaciju"</string>
     <string name="unknown" msgid="1592123443519355854">"Nepoznato"</string>
-    <string name="sort_order_alpha" msgid="1410278099123670628">"Sortiraj po nazivu"</string>
-    <string name="sort_order_size" msgid="7024513286636502362">"Sortiraj po veličini"</string>
+    <string name="sort_order_alpha" msgid="1410278099123670628">"Poredaj po nazivu"</string>
+    <string name="sort_order_size" msgid="7024513286636502362">"Poredaj po veličini"</string>
     <string name="show_running_services" msgid="5736278767975544570">"Prikaži pokrenute usluge"</string>
     <string name="show_background_processes" msgid="2009840211972293429">"Prikaži keširane procese"</string>
     <string name="default_emergency_app" msgid="1951760659640369980">"Aplikacija za hitne situacije"</string>
@@ -1710,7 +1710,7 @@
     <string name="battery_history_minutes_no_seconds" msgid="7780294302606853082">"<xliff:g id="MINUTES">%1$d</xliff:g> min"</string>
     <string name="usage_stats_label" msgid="5890846333487083609">"Statistika korištenja"</string>
     <string name="testing_usage_stats" msgid="7823048598893937339">"Statistika korištenja"</string>
-    <string name="display_order_text" msgid="8592776965827565271">"Sortiraj po:"</string>
+    <string name="display_order_text" msgid="8592776965827565271">"Poredaj po:"</string>
     <string name="app_name_label" msgid="5440362857006046193">"Aplikacija"</string>
     <string name="last_time_used_label" msgid="8459441968795479307">"Posljednji put korišteno"</string>
     <string name="usage_time_label" msgid="295954901452833058">"Vrijeme korištenja"</string>
@@ -1949,7 +1949,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Ušteda baterije"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Automatsko uključivanje"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nikad"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"kad je baterija na %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"na <xliff:g id="PERCENT">%1$s</xliff:g> baterije"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Statistika procesa"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Geeky statistike o pokrenutim procesima"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Iskorištena memorija"</string>
@@ -2628,10 +2628,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Jačina zvona"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Jačina zvuka za obavještenja"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Melodija zvona telefona"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Podrazumijevani zvuk obavještenja"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Zadani zvuk alarma"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibracija i za pozive"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Drugi zvukovi"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonovi tastature telefona"</string>
@@ -3009,8 +3007,8 @@
     <string name="memory_details" msgid="5943436005716991782">"Detalji"</string>
     <string name="memory_use_summary" msgid="5608257211903075754">"<xliff:g id="SIZE">%1$s</xliff:g> memorije korišteno u prosjeku u zadnja 3 sata"</string>
     <string name="no_memory_use_summary" msgid="2016900536806235588">"Nikakva memorija se ne koristi u posljednja tri sata"</string>
-    <string name="sort_avg_use" msgid="3998036180505143129">"Sortiraj po prosječnoj upotrebi"</string>
-    <string name="sort_max_use" msgid="4629247978290075124">"Sortiraj po maksimalnom korištenju"</string>
+    <string name="sort_avg_use" msgid="3998036180505143129">"Poredaj po prosječnoj upotrebi"</string>
+    <string name="sort_max_use" msgid="4629247978290075124">"Poredaj po maksimalnom korištenju"</string>
     <string name="memory_performance" msgid="5661005192284103281">"Performanse"</string>
     <string name="total_memory" msgid="2017287600738630165">"Ukupno memorije"</string>
     <string name="average_used" msgid="5338339266517245782">"Prosječna iskorištenost (%)"</string>
@@ -3255,6 +3253,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Ne možete se prijaviti?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Pošalji informacije o sistemu"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne prikazuj ponovo"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Tražite kao"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Dodaj račun"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Postavke radnog profila"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pretraživanje kontakata"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Dozvolite svojoj organizaciji da pretražuje kontakte kako bi identificirala pozivaoce i kontakte"</string>
@@ -3276,7 +3276,7 @@
     <string name="support_estimated_wait_time" msgid="6523081420029378051">"Sačekajte ~<xliff:g id="ESTIMATE">%1$s</xliff:g>"</string>
     <string name="bluetooth_talkback_computer" msgid="4875089335641234463">"Računar"</string>
     <string name="bluetooth_talkback_headset" msgid="5140152177885220949">"Slušalice s mikrofonom"</string>
-    <string name="bluetooth_talkback_phone" msgid="4260255181240622896">"Telefoniraj"</string>
+    <string name="bluetooth_talkback_phone" msgid="4260255181240622896">"Telefon"</string>
     <string name="bluetooth_talkback_imaging" msgid="551146170554589119">"Snimanje"</string>
     <string name="bluetooth_talkback_headphone" msgid="26580326066627664">"Slušalice"</string>
     <string name="bluetooth_talkback_input_peripheral" msgid="5165842622743212268">"Ulazni periferni uređaj"</string>
@@ -3330,20 +3330,23 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Auto. sinhr. podataka o računu"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Auto. sinhr. lič. podat. rač."</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Auto. sinhr. podat. posl. rač."</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sinhronizacija računa"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privatnost"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privatnost"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Za pružanje pristupa vašim poslovnim podacima, vaša organizacija može promijeniti postavke i na vaš uređaj instalirati novi softver, zbog čeka će administrator moći vidjeti neki vaš lični sadržaj. Obratite se administratoru organizacije da saznate više pojedinosti."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Koje vrste informacija može vidjeti vaša organizacija?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Koje izmjene utiču na to šta vaša organizacija može vidjeti?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Koje aktivnosti mogu uticati na vaš pristup uređaju?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Podaci koji su povezani s vašim računom, kao što su e-pošta ili kalendar"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Spisak svih aplikacija na vašem uređaju"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Spisak sve <xliff:g id="COUNT_1">%d</xliff:g> aplikacije na uređaju</item>
+      <item quantity="few">Spisak sve <xliff:g id="COUNT_1">%d</xliff:g> aplikacije na uređaju</item>
+      <item quantity="other">Spisak svih <xliff:g id="COUNT_1">%d</xliff:g> aplikacija na uređaju</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Upotreba (provedeno vrijeme i iskorištena količina podataka) svake aplikacije na vašem uređaju"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Zapisnici o saobraćaju na vašem uređaju"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Vaš posljednji izvještaj o greškama"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Vaš najnoviji zapisnik o stanju sigurnosti"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nikada"</string>
 </resources>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index c8983a6..ce32bb6 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"activar la pantalla"</item>
     <item msgid="3253368931113490863">"obtenir comptes"</item>
     <item msgid="780392378084812901">"executar en segon pla"</item>
+    <item msgid="2629748510881309577">"volum d\'accessibilitat"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Ubicació"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Activar la pantalla"</item>
     <item msgid="5258373962467495905">"Obtenir comptes"</item>
     <item msgid="334625385979270703">"Executar en segon pla"</item>
+    <item msgid="9039213578110332702">"Volum d\'accessibilitat"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Curt"</item>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index cd8e422..637ff6c 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Toca per connectar-te al dispositiu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Vols connectar-te a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Sol·licitud d\'accés a la llibreta de telèfons"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"A %1$s li agradaria accedir als teus contactes i a l\'historial de trucades. Vols donar accés a %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> vol accedir als teus contactes i a l\'historial de trucades. Vols que <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> hi pugui accedir?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"No m\'ho tornis a preguntar"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"No m\'ho tornis a preguntar"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Sol·licitud d\'accés al missatge"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Configuració"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Configuració"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Drecera de configuració"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"No s\'ha trobat cap activitat coincident."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Mode d\'avió"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Més"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Connexions sense fil i xarxes"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Confirmes que vols fer servir <xliff:g id="NEW_APP">%1$s</xliff:g>, i no pas <xliff:g id="CURRENT_APP">%2$s</xliff:g>, per gestionar les connexions de la xarxa?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Vols fer servir <xliff:g id="NEW_APP">%s</xliff:g> per gestionar les connexions de la xarxa?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operador de SIM desconegut"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s no té cap lloc web d\'administració conegut"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> no té cap lloc web d\'administració conegut"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Insereix la targeta SIM i reinicia"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Connecta a Internet"</string>
     <string name="location_title" msgid="1029961368397484576">"La meva ubicació"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Proveïdors d\'imatges per satèl·lit:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"S\'ha produït un problema en carregar el manual."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Llicències de tercers"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"S\'ha produït un problema en llegir les llicències."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"S\'està carregant…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Informació de seguretat"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Estalvi de bateria"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activa automàticament"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Mai"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"amb un %1$s de bateria"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"percentatge de bateria: <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Estadístiques sobre processos"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Estadístiques sobre els processos en execució"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Ús de la memòria"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volum del to"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volum de notificació"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"So de trucada"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"So de notificació predeterminat"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"So d\'alarma predeterminat"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibra també en trucades"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Altres sons"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tons del teclat"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"No pots iniciar la sessió?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Envia informació del sistema"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"No ho tornis a mostrar"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Sol·licitud en nom de:"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Afegeix un compte"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Configuració del perfil professional"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Cerca de contactes"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permet que la teva organització cerqui contactes per identificar els remitents i els contactes"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Sinc. aut. de dades del compte"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinc. aut. dades compte pers."</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinc. aut. dades compte feina"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sincronització del compte"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privadesa"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privadesa"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Per poder proporcionar-te accés a les dades de la feina, és possible que la teva organització canviï la configuració i instal·li programari al dispositiu, la qual cosa podria permetre a l\'administrador veure el teu contingut personal. Contacta amb l\'administrador de l\'organització per obtenir més informació."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Quin tipus d\'informació pot veure la teva organització?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Quins canvis afecten el que pot veure la teva organització?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Quines accions poden afectar l\'accés al dispositiu?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dades associades al teu compte professional, com ara el correu electrònic i el calendari"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Llista de totes les aplicacions que hi ha al dispositiu"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Llista de les aplicacions que hi ha al dispositiu (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="one">Llista de l\'aplicació que hi ha al dispositiu (<xliff:g id="COUNT_0">%d</xliff:g>)</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Ús (temps dedicat i dades utilitzades) de cada aplicació que hi ha al dispositiu"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Registres del trànsit al dispositiu"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Informe d\'errors més recent"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Registre de seguretat més recent"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Mai"</string>
 </resources>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index 1afc115..fe8b075 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"zapnout obrazovku"</item>
     <item msgid="3253368931113490863">"načíst účty"</item>
     <item msgid="780392378084812901">"spustit na pozadí"</item>
+    <item msgid="2629748510881309577">"hlasitost zvuků pro usnadnění přístupu"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Poloha"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Zapnout obrazovku"</item>
     <item msgid="5258373962467495905">"Načíst účty"</item>
     <item msgid="334625385979270703">"Spustit na pozadí"</item>
+    <item msgid="9039213578110332702">"Hlasitost zvuků pro usnadnění přístupu"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Krátká"</item>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 5aa641c..3818456 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -152,7 +152,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Klepnutím se připojíte k zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Chcete se připojit k zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Požadavek na přístup k telefonnímu seznamu"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Zařízení %1$s žádá o přístup k vašim kontaktům a historii hovorů. Povolit zařízení %2$s přístup?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Zařízení <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> chce získat přístup k vašim kontaktům a historii volání. Chcete zařízení <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> přístup udělit?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Příště se neptat"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Příště se neptat"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Požadavek na přístup ke zprávám"</string>
@@ -274,6 +274,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Nastavení"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Nastavení"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Zástupce nastavení"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Nebyly nalezeny žádné odpovídající aktivity."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Režim Letadlo"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Další"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Bezdrátová připojení a sítě"</string>
@@ -1321,7 +1322,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Chcete spravovat síťová připojení pomocí aplikace <xliff:g id="NEW_APP">%1$s</xliff:g> namísto aplikace <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Chcete spravovat síťová připojení pomocí aplikace <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operátor SIM karty není znám"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nemá žádný známý web pro správu účtů."</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Operátor <xliff:g id="OPERATOR">%1$s</xliff:g> nemá žádný známý web pro správu účtů"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Vložte SIM kartu a restartujte zařízení."</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Připojte se prosím k internetu."</string>
     <string name="location_title" msgid="1029961368397484576">"Moje poloha"</string>
@@ -1377,8 +1378,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Poskytovatelé satelitních snímků:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Příručka"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Při načítání příručky došlo k chybě."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licence třetích stran"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Při načítání licencí došlo k chybě."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Načítání..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Bezpečnostní informace"</string>
@@ -1966,7 +1966,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Spořič baterie"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Zapnout automaticky"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nikdy"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s baterie"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"při <xliff:g id="PERCENT">%1$s</xliff:g> baterie"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Statistiky procesů"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Podrobné statistiky běžících procesů"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Využití paměti"</string>
@@ -2650,10 +2650,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Hlasitost vyzvánění"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Hlasitost oznámení"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Vyzváněcí tón telefonu"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Výchozí zvuk oznámení"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Výchozí zvuk budíku"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"U hovorů také vibrovat"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Ostatní zvuky"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tóny číselníku"</string>
@@ -3287,6 +3285,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Nemůžete se přihlásit?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Odeslání systémových informací"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Příště již nezobrazovat"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Žádost bude odeslána pomocí účtu"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Přidat účet"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Nastavení pracovního profilu"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Vyhledávání kontaktů"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Povolit vyhledávání kontaktů organizací za účelem identifikace volajících a kontaktů"</string>
@@ -3365,20 +3365,24 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Aut. synchronizovat data účtu"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Aut. synch. data osobního účtu"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Aut. synch. data prac. účtu"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Synchronizace účtů"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Ochrana soukromí"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Ochrana soukromí"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Za účelem zpřístupnění pracovních dat vám organizace může změnit nastavení a nainstalovat do zařízení software. To může způsobit, že část vašeho soukromého obsahu bude moci zobrazit administrátor. Další informace vám poskytne administrátor organizace."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Jaké typy informací vaše organizace vidí?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Které změny mají vliv na to, co vaše organizace vidí?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Jaké akce mohou mít dopad na váš přístup k tomuto zařízení?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data přidružená k vašemu pracovnímu účtu, jako je například e-mail a kalendář"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Seznam všech aplikací v zařízení"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="few">Seznam všech <xliff:g id="COUNT_1">%d</xliff:g> aplikací v zařízení</item>
+      <item quantity="many">Seznam všech <xliff:g id="COUNT_1">%d</xliff:g> aplikace v zařízení</item>
+      <item quantity="other">Seznam všech <xliff:g id="COUNT_1">%d</xliff:g> aplikací v zařízení</item>
+      <item quantity="one">Seznam všech <xliff:g id="COUNT_0">%d</xliff:g> aplikací v zařízení</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Využití jednotlivých aplikací v zařízení (doba používání a množství využitých dat)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Protokoly provozu v zařízení"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Vaše nejnovější zpráva o chybě"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Váš nejnovější protokol zabezpečení"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nikdy"</string>
 </resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index 497d0df..5890c06 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"tænd skærmen"</item>
     <item msgid="3253368931113490863">"hent konti"</item>
     <item msgid="780392378084812901">"kør i baggrunden"</item>
+    <item msgid="2629748510881309577">"lydstyrke for hjælpefunktioner"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Placering"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Tænd skærmen"</item>
     <item msgid="5258373962467495905">"Hent konti"</item>
     <item msgid="334625385979270703">"Kør i baggrunden"</item>
+    <item msgid="9039213578110332702">"Lydstyrke for hjælpefunktioner"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Kort"</item>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 231da4a..61e4dfe 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tryk for at oprette forbindelse til \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Ønsker du at oprette forbindelse til \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Anmodning om adgang til telefonbog"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s vil gerne have adgang til dine kontaktpersoner og opkaldsoversigt. Vil du give %2$s adgang?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> anmoder om adgang til dine kontaktpersoner og din opkaldshistorik. Vil du give <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> adgang?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Spørg ikke igen"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Spørg ikke igen"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Anmodning om adgang til meddelelse"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Indstillinger"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Indstillinger"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Genvej til Indstillinger"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Der blev ikke fundet nogen matchende aktiviteter."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Flytilstand"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Mere"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Trådløs og netværk"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Vil du bruge <xliff:g id="NEW_APP">%1$s</xliff:g> i stedet for <xliff:g id="CURRENT_APP">%2$s</xliff:g> til at administrere dine netværksforbindelser?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Vil du bruge <xliff:g id="NEW_APP">%s</xliff:g> til at administrere dine netværksforbindelser?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"SIM fra ukendt mobilselskab"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s har intet kendt website til provisionering"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> har intet kendt website til levering"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Indsæt SIM-kort, og genstart"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Opret forbindelse til internettet"</string>
     <string name="location_title" msgid="1029961368397484576">"Min placering"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Leverandører af satellitbilleder:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Brugervejledning"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Der er problemer med at indlæse brugervejledningen."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Tredjepartslicenser"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Der er problemer med at indlæse licenserne."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Indlæser..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Sikkerhedsoplysninger"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Batterisparefunktion"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Slå automatisk til"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Aldrig"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ved %1$s batteri"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ved batteriniveau på <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Processtatistikker"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Nørdede statistikker om kørende processer"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"hukommelse brugt"</string>
@@ -1942,7 +1942,7 @@
     <string name="process_stats_type_foreground" msgid="7713118254089580536">"Forgrund"</string>
     <string name="process_stats_type_cached" msgid="6314925846944806511">"Cachelagret"</string>
     <string name="process_stats_os_label" msgid="4813434110442733392">"Android OS"</string>
-    <string name="process_stats_os_native" msgid="5322428494231768472">"Indbygget"</string>
+    <string name="process_stats_os_native" msgid="5322428494231768472">"Native"</string>
     <string name="process_stats_os_kernel" msgid="1938523592369780924">"Kerne"</string>
     <string name="process_stats_os_zram" msgid="677138324651671575">"Z-Ram"</string>
     <string name="process_stats_os_cache" msgid="6432533624875078233">"Cacher"</string>
@@ -1956,7 +1956,7 @@
     <string name="mem_state_subtitle" msgid="2407238869781011933">"Hukommelsestilstande"</string>
     <string name="mem_use_subtitle" msgid="7319468770222422412">"Anvendt hukommelse"</string>
     <string name="mem_use_kernel_type" msgid="8698327165935012484">"Kerne"</string>
-    <string name="mem_use_native_type" msgid="5976704902328347400">"Indbygget"</string>
+    <string name="mem_use_native_type" msgid="5976704902328347400">"Native"</string>
     <string name="mem_use_kernel_cache_type" msgid="6411475064463957513">"Kernecacher"</string>
     <string name="mem_use_zram_type" msgid="9087217476795358232">"ZRam-udskiftning"</string>
     <string name="mem_use_free_type" msgid="717708548454880840">"Tilgængelig"</string>
@@ -2417,7 +2417,7 @@
     <string name="user_enable_calling_confirm_message" msgid="8061594235219352787">"Opkaldshistorikken deles med denne bruger."</string>
     <string name="user_enable_calling_and_sms_confirm_title" msgid="7243308401401932681">"Vil du aktivere telefonopkald og sms?"</string>
     <string name="user_enable_calling_and_sms_confirm_message" msgid="4025082715546544967">"Opkalds- og sms-historikken deles med denne bruger."</string>
-    <string name="emergency_info_title" msgid="208607506217060337">"Oplysninger om nødopkald"</string>
+    <string name="emergency_info_title" msgid="208607506217060337">"Oplysninger i nødsituationer"</string>
     <string name="application_restrictions" msgid="8207332020898004394">"Tillad apps og indhold"</string>
     <string name="apps_with_restrictions_header" msgid="3660449891478534440">"Applikationer med begrænsninger"</string>
     <string name="apps_with_restrictions_settings_button" msgid="3841347287916635821">"Udvid indstillingerne for applikationen"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Lydstyrke for ringetone"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Lydstyrke for underretninger"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Ringetone ved opkald"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Standardlyd for underretninger"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Standardlyd for alarmer"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrer også ved opkald"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Andre lyde"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Toner for numerisk tastatur"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Kan du ikke logge ind?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Send systemoplysninger"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Vis ikke igen"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Anmoder som"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Tilføj konto"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Indstillinger for arbejdsprofil"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Søgning efter kontaktpersoner"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Tillad søgninger efter kontaktpersoner efter din organisation for at identificere kontaktpersoner og personer, der ringer"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Automatisk synk. af kontodata"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Aut. synk. af data på personlig konto"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Aut. synk. af arbejdskontodata"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Kontosynkronisering"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privatliv"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privatliv"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Din organisation kan ændre indstillinger og installere software på din enhed for at give adgang til dine arbejdsdata. Dette kan medføre, at noget af dit indhold er synligt for administratoren. Kontakt organisationens administrator for at få flere oplysninger."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Hvilken slags oplysninger kan din organisation se?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Hvilke ændringer påvirker, hvad din organisation kan se?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Hvilke handlinger kan påvirke din adgang til denne enhed?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data, der er tilknyttet din arbejdskonto, f.eks. e-mail og kalender"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Liste over alle apps på din enhed"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">En liste med <xliff:g id="COUNT_1">%d</xliff:g> app på din enhed</item>
+      <item quantity="other">En liste med alle <xliff:g id="COUNT_1">%d</xliff:g> apps på din enhed</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Brug (tids- og dataforbrug) af hver app på din enhed"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Logfiler med trafik på din enhed"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Din seneste fejlrapport"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Din seneste sikkerhedslogfil"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Aldrig"</string>
 </resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index ae1e71b..81a7980 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"Display aktivieren"</item>
     <item msgid="3253368931113490863">"Konten erstellen"</item>
     <item msgid="780392378084812901">"Im Hintergrund ausführen"</item>
+    <item msgid="2629748510881309577">"Laustärke der Bedienungshilfen"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Standort"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Display aktivieren"</item>
     <item msgid="5258373962467495905">"Konten erstellen"</item>
     <item msgid="334625385979270703">"Im Hintergrund ausführen"</item>
+    <item msgid="9039213578110332702">"Laustärke der Bedienungshilfen"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Kurz"</item>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index d2e374c..42e708b 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -149,7 +149,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Zum Verbinden mit \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" tippen."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Möchtest du eine Verbindung mit \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" herstellen?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Anforderung für Telefonbuchzugriff"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s möchte auf deine Kontakte und deine Anrufliste zugreifen. Möchtest du %2$s den Zugriff erlauben?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> fordert Zugriff auf deine Kontakte und Anrufliste an. Möchtest du <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> Zugriff gewähren?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Nicht mehr fragen"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Nicht mehr fragen"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Anforderung für Nachrichtenzugriff"</string>
@@ -269,6 +269,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Einstellungen"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Einstellungen"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Einstellungsverknüpfung"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Keine passenden Aktivitäten gefunden."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Flugmodus"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Mehr"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Drahtlos &amp; Netzwerke"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"<xliff:g id="NEW_APP">%1$s</xliff:g> statt <xliff:g id="CURRENT_APP">%2$s</xliff:g> zur Verwaltung von Netzwerkverbindungen nutzen?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"<xliff:g id="NEW_APP">%s</xliff:g> zur Verwaltung von Netzwerkverbindungen nutzen?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Unbekannter SIM-Anbieter"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Keine Bereitstellungs-Website für %1$s bekannt"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> hat keine bekannte Bereitstellungswebsite"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Lege die SIM ein und starte das Gerät neu."</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Bitte stelle eine Verbindung zum Internet her."</string>
     <string name="location_title" msgid="1029961368397484576">"Mein Standort"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satellitenbilder bereitgestellt von:\n© 2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Handbuch"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Problem beim Laden des Handbuchs."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Drittlizenzen"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Beim Laden der Lizenzen ist ein Problem aufgetreten."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Wird geladen..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Sicherheitsinformationen"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Energiesparmodus"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Automatisch aktivieren"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nie"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"bei Akku von %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"bei <xliff:g id="PERCENT">%1$s</xliff:g> Akku"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Prozessstatistiken"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Statistiken zu laufenden Prozessen"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Speichernutzung"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Klingeltonlautstärke"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Benachrichtigungslautstärke"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Klingelton"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Standardbenachrichtigungston"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Standard-Weckerton"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Bei Anrufen auch vibrieren"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Andere Töne"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Wähltastentöne"</string>
@@ -3225,6 +3223,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Anmeldung nicht möglich?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Systeminformationen senden"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Nicht noch einmal anzeigen"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Anfrage senden als"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Konto hinzufügen"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Einstellungen für Arbeitsprofil"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Suche nach Kontakten"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Suche nach Kontakten durch deine Organisation erlauben, um Anrufer und Kontakte zu identifizieren"</string>
@@ -3297,20 +3297,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Kontodaten autom. synchronisieren"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Daten des privaten Kontos autom. synchronisieren"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Daten des Arbeitskontos autom. synchronisieren"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Kontosynchronisierung"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Datenschutz"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Datenschutz"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Um Zugriff auf deine geschäftlichen Daten zu gewähren, kann deine Organisation Einstellungen ändern und Software auf deinem Gerät installieren. Dadurch können private Inhalte von dir für deinen Administrator sichtbar sein. Weitere Informationen erhältst du beim Administrator deiner Organisation."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Welche Art von Informationen kann deine Organisation sehen?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Welche Änderungen beeinflussen, was ihr sehen könnt?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Welche Aktionen beeinflussen den Zugriff auf dieses Gerät?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Daten zu deinem Arbeitskonto, etwa E-Mail und Kalender"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Liste aller Apps auf deinem Gerät"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Liste aller <xliff:g id="COUNT_1">%d</xliff:g> Apps auf deinem Gerät</item>
+      <item quantity="one">Liste der <xliff:g id="COUNT_0">%d</xliff:g> App auf deinem Gerät</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Nutzungsdaten für jede App auf deinem Gerät (Nutzungsdauer und genutzte Datenmenge)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Zugriffsprotokolle auf deinem Gerät"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Dein neuester Fehlerbericht"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Dein neuestes Sicherheitsprotokoll"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nie"</string>
 </resources>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 28c8d74..bb6c6e4 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ενεργοποίηση οθόνης"</item>
     <item msgid="3253368931113490863">"λήψη λογαριασμών"</item>
     <item msgid="780392378084812901">"εκτέλεση στο παρασκήνιο"</item>
+    <item msgid="2629748510881309577">"ένταση ήχου προσβασιμότητας"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Τοποθεσία"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Ενεργοποίηση οθόνης"</item>
     <item msgid="5258373962467495905">"Λήψη λογαριασμών"</item>
     <item msgid="334625385979270703">"Εκτέλεση στο παρασκήνιο"</item>
+    <item msgid="9039213578110332702">"Ένταση ήχου προσβασιμότητας"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Σύντομο"</item>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index c9b0884..99345ad 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Πατήστε για να συνδεθείτε στη συσκευή \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Θέλετε να συνδεθείτε στο \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\";"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Αίτημα πρόσβασης στον τηλεφωνικό κατάλογο"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Το %1$s ζητά πρόσβαση στις επαφές και στο ιστορικό κλήσεών σας. Να εκχωρηθεί πρόσβαση στο %2$s;"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Η συσκευή <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> επιθυμεί να αποκτήσει πρόσβαση στις επαφές και στο ιστορικό κλήσεων. Θέλετε να παραχωρήσετε πρόσβαση στη συσκευή <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>;"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Να μην ερωτηθώ ξανά"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Να μην ερωτηθώ ξανά"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Αίτημα πρόσβασης στο μήνυμα"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Ρυθμίσεις"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Ρυθμίσεις"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Συντόμευση ρυθμίσεων"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Δεν βρέθηκαν δραστηριότητες οι οποίες να συμφωνούν με τα κριτήρια."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Λειτουργία πτήσης"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Περισσότερα"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Ασύρματο και δίκτυα"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Χρήση της εφαρμογής <xliff:g id="NEW_APP">%1$s</xliff:g> αντί για την εφαρμογή <xliff:g id="CURRENT_APP">%2$s</xliff:g> για τη διαχείριση των συνδέσεων δικτύου σας;"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Χρήση της εφαρμογής <xliff:g id="NEW_APP">%s</xliff:g> για τη διαχείριση των συνδέσεων δικτύου σας;"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Κάρτα SIM άγνωστης εταιρείας κινητής τηλεφωνίας"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s δεν διαθέτει γνωστό ιστότοπο παροχής"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Ο τελεστής <xliff:g id="OPERATOR">%1$s</xliff:g> δεν διαθέτει γνωστό ιστότοπο παροχής"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Εισαγάγετε την κάρτα SIM και κάντε επανεκκίνηση"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Συνδεθείτε στο διαδίκτυο"</string>
     <string name="location_title" msgid="1029961368397484576">"Η τοποθεσία μου"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Πηγές δορυφορικών εικόνων:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Εγχειρίδιο χρήσης"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Παρουσιάστηκε κάποιο πρόβλημα κατά τη φόρτωση του εγχειριδίου χρήσης."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Άδειες τρίτου μέρους"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Παρουσιάστηκε ένα πρόβλημα κατά τη φόρτωση των αδειών."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Φόρτωση..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Πληροφορίες ασφάλειας"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Εξοικ/ση μπαταρίας"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Αυτόματη ενεργοποίηση"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Ποτέ"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Μπαταρία %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"στο <xliff:g id="PERCENT">%1$s</xliff:g> της μπαταρίας"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Στατιστικά στοιχεία διαδικασίας"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Χρήσιμα στατιστικά στοιχεία σχετικά με τις εκτελούμενες διαδικασίες"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Χρήση μνήμης"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ένταση ήχου κλήσης"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Ένταση ήχου ειδοποίησης"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Ήχος κλήσης τηλεφώνου"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Προεπιλεγμ. ήχος ειδοποίησης"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Προεπιλεγμ. ήχος ξυπνητηριού"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Δόνηση στις κλήσεις"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Άλλοι ήχοι"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Ήχοι πληκτρολογίου κλήσης"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Δεν μπορείτε να συνδεθείτε;"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Αποστολή πληροφοριών συστήματος"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Να μην εμφανιστεί ξανά"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Αίτημα ως"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Προσθήκη λογαριασμού"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Ρυθμίσεις προφίλ εργασίας"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Αναζήτηση επαφών"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Επιτρέψτε τις αναζητήσεις επαφών από τον οργανισμό σας, για την αναγνώριση καλούντων και επαφών"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Αυτ. συγχρ. δεδομένων λογαρ."</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Αυτ. συγχρ. δεδομ. πρ. λογαρ."</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Αυτ. συγχρ. δεδ. λογαρ. εργ."</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Συγχρονισμός λογαριασμού"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Απόρρητο"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Απόρρητο"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Προκειμένου να παρέχει πρόσβαση στα δεδομένα εργασίας σας, ο οργανισμός σας μπορεί να αλλάζει τις ρυθμίσεις και να εγκαθιστά λογισμικό στη συσκευή σας, πράγμα το οποίο θα μπορούσε να καταστήσει τμήμα του προσωπικού περιεχομένου σας ορατό στον διαχειριστή σας. Για περισσότερες λεπτομέρειες, επικοινωνήστε με τον διαχειριστή του οργανισμού σας."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Τι τύπους πληροφοριών μπορεί να δει ο οργανισμός σας;"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Αλλαγές που επηρεάζουν τα δεδομένα που βλέπει ο οργανισμός"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Ενέργειες που μπορεί να επηρεάσουν την πρόσβαση στη συσκευή"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Δεδομένα που σχετίζονται με τον λογαριασμό εργασίας σας, όπως ηλεκτρονικό ταχυδρομείο και ημερολόγιο"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Λίστα όλων των εφαρμογών που έχουν εγκατασταθεί στη συσκευή σας"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Λίστα και των <xliff:g id="COUNT_1">%d</xliff:g> εφαρμογών που είναι εγκατεστημένες στη συσκευή σας</item>
+      <item quantity="one">Λίστα και της <xliff:g id="COUNT_0">%d</xliff:g> εφαρμογής που είναι εγκατεστημένη στη συσκευή σας</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Χρήση (χρόνος που αφιερώθηκε και όγκος δεδομένων που χρησιμοποιήθηκε) κάθε εφαρμογής στη συσκευή σας"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Αρχεία καταγραφής επισκεψιμότητας στη συσκευή σας"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Η πιο πρόσφατη αναφορά σφάλματος που υποβάλατε"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Το πιο πρόσφατο αρχείο καταγραφής ασφαλείας"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Ποτέ"</string>
 </resources>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index e0085e7..43ce2b0 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"turn on screen"</item>
     <item msgid="3253368931113490863">"get accounts"</item>
     <item msgid="780392378084812901">"run in background"</item>
+    <item msgid="2629748510881309577">"accessibility volume"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Location"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Turn on screen"</item>
     <item msgid="5258373962467495905">"Get accounts"</item>
     <item msgid="334625385979270703">"Run in background"</item>
+    <item msgid="9039213578110332702">"Accessibility volume"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Short"</item>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index ad7fff5..bbce212 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tap to connect to \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Do you want to connect to \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Phone book access request"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s wants to access your contacts and call history. Give access to %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wants to access your contacts and call history. Give access to <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Don\'t ask again"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Don\'t ask again"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Message access request"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Settings"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Settings"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Settings shortcut"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"No matching activities found."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Aeroplane mode"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"More"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wireless &amp; networks"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> to manage your network connections?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Unknown SIM operator"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s has no known provisioning website"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Please insert SIM card and restart"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Please connect to the internet"</string>
     <string name="location_title" msgid="1029961368397484576">"My Location"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satellite imagery providers:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"There is a problem loading the manual."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Third-party licences"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"There is a problem loading the licences."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Loading…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Safety information"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Battery saver"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Turn on automatically"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Never"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"at %1$s battery"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"at <xliff:g id="PERCENT">%1$s</xliff:g> battery"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Process Stats"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Geeky stats about running processes"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Memory use"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Notification volume"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Phone ringtone"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Default notification sound"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Default alarm sound"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Also vibrate for calls"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Other sounds"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Dial pad tones"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Can\'t sign in?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Send system information"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Do not show this again"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Requesting as"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Add account"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Work profile settings"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Contact search"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Allow contact searches by your organisation to identify callers and contacts"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Auto-sync account data"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Auto-sync personal account data"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Auto-sync work account data"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Account sync"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacy"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacy"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"To provide access to your work data, your organisation may change settings and install software on your device, which could cause some of your personal content to be visible to your admin. Contact your organisation\'s admin for more details."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"What types of information can your organisation see?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"What changes affect what your organisation can see?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"What actions may impact your access to this device?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data associated with your work account, such as email and calendar"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"List of all apps on your device"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">List of all <xliff:g id="COUNT_1">%d</xliff:g> apps on your device</item>
+      <item quantity="one">List of all <xliff:g id="COUNT_0">%d</xliff:g> app on your device</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Usage (time spent and amount of data used) of each app on your device"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Traffic logs on your device"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Your most recent bug report"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Your most recent security log"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Never"</string>
 </resources>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index e0085e7..43ce2b0 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"turn on screen"</item>
     <item msgid="3253368931113490863">"get accounts"</item>
     <item msgid="780392378084812901">"run in background"</item>
+    <item msgid="2629748510881309577">"accessibility volume"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Location"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Turn on screen"</item>
     <item msgid="5258373962467495905">"Get accounts"</item>
     <item msgid="334625385979270703">"Run in background"</item>
+    <item msgid="9039213578110332702">"Accessibility volume"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Short"</item>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 0f5d59f..0dff880 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tap to connect to \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Do you want to connect to \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Phone book access request"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s wants to access your contacts and call history. Give access to %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wants to access your contacts and call history. Give access to <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Don\'t ask again"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Don\'t ask again"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Message access request"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Settings"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Settings"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Settings shortcut"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"No matching activities found."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Aeroplane mode"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"More"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wireless &amp; networks"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> to manage your network connections?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Unknown SIM operator"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s has no known provisioning website"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Please insert SIM card and restart"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Please connect to the internet"</string>
     <string name="location_title" msgid="1029961368397484576">"My Location"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satellite imagery providers:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"There is a problem loading the manual."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Third-party licences"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"There is a problem loading the licences."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Loading…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Safety information"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Battery saver"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Turn on automatically"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Never"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"at %1$s battery"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"at <xliff:g id="PERCENT">%1$s</xliff:g> battery"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Process Stats"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Geeky stats about running processes"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Memory use"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Notification volume"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Phone ringtone"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Default notification sound"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Default alarm sound"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Also vibrate for calls"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Other sounds"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Dial pad tones"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Can\'t sign in?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Send system information"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Do not show this again"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Requesting as"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Add account"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Work profile settings"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Contact search"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Allow contact searches by your organisation to identify callers and contacts"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Auto-sync account data"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Auto-sync personal account data"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Auto-sync work account data"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Account sync"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacy"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacy"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"To provide access to your work data, your organisation may change settings and install software on your device, which could cause some of your personal content to be visible to your admin. Contact your organisation\'s admin for more details."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"What types of information can your organisation see?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"What changes affect what your organisation can see?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"What actions may impact your access to this device?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data associated with your work account, such as email and calendar"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"List of all apps on your device"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">List of all <xliff:g id="COUNT_1">%d</xliff:g> apps on your device</item>
+      <item quantity="one">List of all <xliff:g id="COUNT_0">%d</xliff:g> app on your device</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Usage (time spent and amount of data used) of each app on your device"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Traffic logs on your device"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Your most recent bug report"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Your most recent security log"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Never"</string>
 </resources>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index e0085e7..43ce2b0 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"turn on screen"</item>
     <item msgid="3253368931113490863">"get accounts"</item>
     <item msgid="780392378084812901">"run in background"</item>
+    <item msgid="2629748510881309577">"accessibility volume"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Location"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Turn on screen"</item>
     <item msgid="5258373962467495905">"Get accounts"</item>
     <item msgid="334625385979270703">"Run in background"</item>
+    <item msgid="9039213578110332702">"Accessibility volume"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Short"</item>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 0f5d59f..0dff880 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tap to connect to \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Do you want to connect to \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Phone book access request"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s wants to access your contacts and call history. Give access to %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wants to access your contacts and call history. Give access to <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Don\'t ask again"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Don\'t ask again"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Message access request"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Settings"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Settings"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Settings shortcut"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"No matching activities found."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Aeroplane mode"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"More"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wireless &amp; networks"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> to manage your network connections?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Unknown SIM operator"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s has no known provisioning website"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Please insert SIM card and restart"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Please connect to the internet"</string>
     <string name="location_title" msgid="1029961368397484576">"My Location"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satellite imagery providers:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"There is a problem loading the manual."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Third-party licences"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"There is a problem loading the licences."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Loading…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Safety information"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Battery saver"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Turn on automatically"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Never"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"at %1$s battery"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"at <xliff:g id="PERCENT">%1$s</xliff:g> battery"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Process Stats"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Geeky stats about running processes"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Memory use"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Notification volume"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Phone ringtone"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Default notification sound"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Default alarm sound"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Also vibrate for calls"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Other sounds"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Dial pad tones"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Can\'t sign in?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Send system information"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Do not show this again"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Requesting as"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Add account"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Work profile settings"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Contact search"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Allow contact searches by your organisation to identify callers and contacts"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Auto-sync account data"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Auto-sync personal account data"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Auto-sync work account data"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Account sync"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacy"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacy"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"To provide access to your work data, your organisation may change settings and install software on your device, which could cause some of your personal content to be visible to your admin. Contact your organisation\'s admin for more details."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"What types of information can your organisation see?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"What changes affect what your organisation can see?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"What actions may impact your access to this device?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data associated with your work account, such as email and calendar"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"List of all apps on your device"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">List of all <xliff:g id="COUNT_1">%d</xliff:g> apps on your device</item>
+      <item quantity="one">List of all <xliff:g id="COUNT_0">%d</xliff:g> app on your device</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Usage (time spent and amount of data used) of each app on your device"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Traffic logs on your device"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Your most recent bug report"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Your most recent security log"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Never"</string>
 </resources>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 7d12d4a..46cf16a 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"encender pantalla"</item>
     <item msgid="3253368931113490863">"obtener cuentas"</item>
     <item msgid="780392378084812901">"ejecutar en segundo plano"</item>
+    <item msgid="2629748510881309577">"volumen de accesibilidad"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Ubicación"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Encender pantalla"</item>
     <item msgid="5258373962467495905">"Obtener cuentas"</item>
     <item msgid="334625385979270703">"Ejecutar en segundo plano"</item>
+    <item msgid="9039213578110332702">"Volumen de accesibilidad"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Corto"</item>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index abd972a..ef08313 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Presiona para conectarte a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"¿Deseas conectarte a “<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Solicitud de acceso a agenda telefónica"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s desea acceder a tus contactos y a tu historial de llamadas. ¿Deseas darle acceso a %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> quiere acceder a tu historial de llamadas y tus contactos. ¿Quieres otorgar acceso a <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"No volver a preguntar"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"No volver a preguntar"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Solicitud de acceso a mensajes"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Configuración"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Configuración"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Configuración"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"No se encontraron actividades coincidentes."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Modo avión"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Más"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Conexiones inalámbricas y redes"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"¿Deseas usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para administrar tus conexiones de red?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"¿Deseas usar <xliff:g id="NEW_APP">%s</xliff:g> para administrar tus conexiones de red?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operador SIM desconocido"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s no tiene ningún sitio de aprovisionamiento."</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> no tiene ningún sitio web de aprovisionamiento"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Inserta la tarjeta SIM y reinicia."</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Conéctate a Internet."</string>
     <string name="location_title" msgid="1029961368397484576">"Mi ubicación"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Proveedores de imágenes satelitales:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Se produjo un error al cargar el manual."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licencias de terceros"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Hay un problema para cargar las licencias."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Cargando…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Información de seguridad"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Ahorro de batería"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activar automáticamente"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nunca"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"con un %1$s de batería"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"con <xliff:g id="PERCENT">%1$s</xliff:g> de batería"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Estadísticas de procesos"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Estadísticas para geeks sobre procesos activos"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Uso de memoria"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volumen de tono"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volumen de notificación"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Tono de llamada"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Sonido predeterminado"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Alarma: sonido predeterminado"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrar también en llamadas"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Otros sonidos"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonos del teclado"</string>
@@ -3221,6 +3219,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"¿No puedes acceder?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Enviar información del sistema"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"No volver a mostrar"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Solicitando como"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Agregar cuenta"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Configuración del perfil de trabajo"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Búsqueda de contactos"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permitir que tu organización busque contactos para identificar a emisores y contactos"</string>
@@ -3293,20 +3293,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Sincronizar datos de la cuenta automáticamente"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sincronizar datos de la cuenta personal automáticamente"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sincronizar datos de la cuenta de trabajo automáticamente"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sincronización de la cuenta"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacidad"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacidad"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Para brindar acceso a tus datos de trabajo, es posible que tu organización cambie algunas opciones de configuración y también instale software en tu dispositivo, lo que podría causar que el administrador vea parte de tu contenido. Para obtener más información, comunícate con el administrador de tu organización."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"¿Qué tipo de información puede ver tu organización?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"¿Qué cambios afectan lo que puede ver tu organización?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"¿Qué acciones pueden afectar el acceso a este dispositivo?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Datos asociados a tu cuenta de trabajo, como el correo electrónico y el calendario"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista con todas las apps en tu dispositivo"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Lista con <xliff:g id="COUNT_1">%d</xliff:g> apps en tu dispositivo</item>
+      <item quantity="one">Lista con <xliff:g id="COUNT_0">%d</xliff:g> app en tu dispositivo</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Uso (tiempo empleado y cantidad de datos usados) de cada app del dispositivo"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Registros de tráfico en tu dispositivo"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Tu informe de errores más reciente"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Tu registro de seguridad más reciente"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nunca"</string>
 </resources>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index f396667..6ea68ee 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"activar pantalla"</item>
     <item msgid="3253368931113490863">"obtener cuentas"</item>
     <item msgid="780392378084812901">"ejecutar en segundo plano"</item>
+    <item msgid="2629748510881309577">"volumen de accesibilidad"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Ubicación"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Activar pantalla"</item>
     <item msgid="5258373962467495905">"Obtener cuentas"</item>
     <item msgid="334625385979270703">"Ejecutar en segundo plano"</item>
+    <item msgid="9039213578110332702">"Volumen de accesibilidad"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Breve"</item>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index adcc8e4..b6bf476 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Toca para establecer conexión con \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"¿Quieres conectarte a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Solicitud de acceso a agenda teléfonica"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s quiere acceder a tus contactos y a tu historial de llamadas. ¿Quieres permitir el acceso a %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> quiere acceder a los contactos y al historial de llamadas. ¿Quieres conceder acceso a <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"No volver a preguntar"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"No volver a preguntar"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Solicitud de acceso a mensajes"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Ajustes"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Ajustes"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Acceso a Ajustes"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"No se ha encontrado ninguna actividad que coincida."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Modo avión"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Más"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Conexiones inalámbricas y redes"</string>
@@ -554,7 +555,7 @@
     <string name="lockpattern_tutorial_cancel_label" msgid="6431583477570493261">"Cancelar"</string>
     <string name="lockpattern_tutorial_continue_label" msgid="3559793618653400434">"Siguiente"</string>
     <string name="lock_setup" msgid="3355847066343753943">"Se ha completado la configuración."</string>
-    <string name="device_admin_title" msgid="3562216873644263804">"Administración de dispositivos"</string>
+    <string name="device_admin_title" msgid="3562216873644263804">"Administración del dispositivo"</string>
     <string name="manage_device_admin" msgid="5059296715271077278">"Administradores de dispositivos"</string>
     <string name="manage_device_admin_summary" msgid="7672709110988761075">"Ver o desactivar administradores de dispositivos"</string>
     <string name="manage_trust_agents" msgid="4629279457536987768">"Agentes de confianza"</string>
@@ -1295,11 +1296,11 @@
     <string name="sms_change_default_dialog_title" msgid="1958688831875804286">"¿Cambiar aplicación de SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="1522783933230274787">"¿Usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como aplicación de SMS?"</string>
     <string name="sms_change_default_no_previous_dialog_text" msgid="602683880284921998">"¿Usar <xliff:g id="NEW_APP">%s</xliff:g> como aplicación de SMS?"</string>
-    <string name="network_scorer_change_active_dialog_title" msgid="3776301550387574975">"¿Cambiar Asistente de Wi‑Fi?"</string>
+    <string name="network_scorer_change_active_dialog_title" msgid="3776301550387574975">"¿Cambiar asistente de Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"¿Quieres usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para administrar tus conexiones de red?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"¿Quieres usar <xliff:g id="NEW_APP">%s</xliff:g> para administrar tus conexiones de red?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operador de SIM desconocido"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s no tiene ningún sitio web de aprovisionamiento"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> no tiene ningún sitio web de aprovisionamiento"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Inserta la tarjeta SIM y reinicia el dispositivo"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Debes conectarte a Internet"</string>
     <string name="location_title" msgid="1029961368397484576">"Mi ubicación"</string>
@@ -1355,8 +1356,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Proveedores de imágenes de satélite:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Error al intentar cargar las licencias."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licencias de terceros"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Se ha producido un problema al intentar cargar las licencias."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Cargando…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Información de seguridad"</string>
@@ -1731,7 +1731,7 @@
     <string name="accessibility_display_inversion_preference_subtitle" msgid="8658240868230680912">"(Experimental) Puede afectar al rendimiento"</string>
     <string name="accessibility_autoclick_preference_title" msgid="7014499339068449623">"Clic después de que el puntero deje de moverse"</string>
     <string name="accessibility_autoclick_delay_preference_title" msgid="3962261178385106006">"Retraso antes del clic"</string>
-    <string name="enable_quick_setting" msgid="2366999897816894536">"Mostrar en Ajustes rápidos"</string>
+    <string name="enable_quick_setting" msgid="2366999897816894536">"Mostrar en ajustes rápidos"</string>
     <string name="daltonizer_type" msgid="1124178250809091080">"Modo de corrección"</string>
     <plurals name="accessibilty_autoclick_preference_subtitle_extremely_short_delay" formatted="false" msgid="7340347830562315800">
       <item quantity="other">Retraso demasiado corto (<xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g> ms)</item>
@@ -1930,7 +1930,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Ahorro de batería"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activar automáticamente"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nunca"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"con un %1$s de batería"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"con un <xliff:g id="PERCENT">%1$s</xliff:g> de batería"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Estadísticas de procesos"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Estadísticas técnicas sobre procesos en ejecución"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Uso de memoria"</string>
@@ -2359,11 +2359,11 @@
     <string name="user_list_title" msgid="7937158411137563543">"Usuarios y perfiles"</string>
     <string name="user_add_user_or_profile_menu" msgid="6923838875175259418">"Añadir usuario o perfil"</string>
     <string name="user_add_user_menu" msgid="1675956975014862382">"Añadir usuario"</string>
-    <string name="user_summary_restricted_profile" msgid="6354966213806839107">"Perfil limitado"</string>
+    <string name="user_summary_restricted_profile" msgid="6354966213806839107">"Perfil restringido"</string>
     <string name="user_need_lock_message" msgid="5879715064416886811">"Para poder crear un perfil restringido, debes configurar una pantalla de bloqueo que proteja tus aplicaciones y datos personales."</string>
     <string name="user_set_lock_button" msgid="8311219392856626841">"Establecer bloqueo"</string>
     <string name="user_summary_not_set_up" msgid="8778205026866794909">"Sin configurar"</string>
-    <string name="user_summary_restricted_not_set_up" msgid="1628116001964325544">"No se ha configurado: perfil limitado"</string>
+    <string name="user_summary_restricted_not_set_up" msgid="1628116001964325544">"No se ha configurado: perfil restringido"</string>
     <string name="user_summary_managed_profile_not_set_up" msgid="1659125858619760573">"Sin configurar: perfil de trabajo"</string>
     <string name="user_admin" msgid="993402590002400782">"Administrador"</string>
     <string name="user_you" msgid="1639158809315025986">"Tú (<xliff:g id="NAME">%s</xliff:g>)"</string>
@@ -2373,7 +2373,7 @@
     <string name="user_add_user_item_summary" msgid="4702776187132008661">"Los usuarios tienen contenido y aplicaciones propios"</string>
     <string name="user_add_profile_item_summary" msgid="5931663986889138941">"Desde tu cuenta, puedes restringir el acceso a las aplicaciones y al contenido"</string>
     <string name="user_add_user_item_title" msgid="8212199632466198969">"Usuario"</string>
-    <string name="user_add_profile_item_title" msgid="8353515490730363621">"Perfil limitado"</string>
+    <string name="user_add_profile_item_title" msgid="8353515490730363621">"Perfil restringido"</string>
     <string name="user_add_user_title" msgid="2108112641783146007">"¿Añadir nuevo usuario?"</string>
     <string name="user_add_user_message_long" msgid="8562152293752222985">"Puedes crear más usuarios para compartir este dispositivo con otras personas. Cada usuario tiene su propio espacio, que puede personalizar con aplicaciones, fondos de pantalla, etc., y puede modificar opciones de configuración del dispositivo que afectan a todos los usuarios, como la conexión Wi‑Fi.\n\nCuando se añade un usuario, este debe configurar su espacio.\n\nCualquier usuario puede actualizar las aplicaciones del resto de usuarios."</string>
     <string name="user_add_user_message_short" msgid="1511354412249044381">"Al añadir un usuario nuevo, este debe configurar su espacio.\n\nCualquier usuario puede actualizar las aplicaciones del resto de usuarios."</string>
@@ -2604,10 +2604,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volumen del tono"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volumen de notificaciones"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Tono del teléfono"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Sonido de notificación predeterminado"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Sonido de alarma predeterminado"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrar también en llamadas"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Otros sonidos"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonos del teclado"</string>
@@ -3035,7 +3033,7 @@
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Gira la muñeca dos veces para abrir la aplicación Cámara"</string>
     <string name="camera_double_tap_power_gesture_title" msgid="1651873760405034645">"Botón de encendido dos veces para cámara"</string>
     <string name="camera_double_tap_power_gesture_desc" msgid="7355664631775680376">"Abre la cámara rápidamente sin desbloquear la pantalla"</string>
-    <string name="screen_zoom_title" msgid="5233515303733473927">"Tamaño de la pantalla"</string>
+    <string name="screen_zoom_title" msgid="5233515303733473927">"Tamaño del contenido de la pantalla"</string>
     <string name="screen_zoom_short_summary" msgid="7291960817349834688">"Aumenta o disminuye el tamaño de los elementos de la pantalla"</string>
     <string name="screen_zoom_keywords" msgid="9176477565403352552">"densidad de pantalla, zoom, escala"</string>
     <string name="screen_zoom_summary" msgid="6445488991799015407">"Aumenta o disminuye el tamaño de los elementos de la pantalla. Puede que algunas aplicaciones cambien de sitio."</string>
@@ -3221,6 +3219,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"¿No puedes iniciar sesión?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Enviar información del sistema"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"No volver a mostrar"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Solicitando como"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Añadir cuenta"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Ajustes de perfil de trabajo"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Búsqueda de contactos"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permitir que tu organización busque contactos para identificar llamadas y contactos"</string>
@@ -3293,20 +3293,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Sincr. autom. datos de cuenta"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sincr. autom. datos personales"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sincr. autom. datos trabajo"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sincronización de la cuenta"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacidad"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacidad"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Para proporcionar acceso a tus datos de trabajo, es posible que tu organización cambie opciones de configuración e instale software en tu dispositivo, lo que podría permitir a tu administrar ver parte de tu contenido personal. Ponte en contacto con el administrador de tu organización para obtener más información."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"¿Qué tipos de información puede ver tu organización?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"¿Qué cambios afectan a lo que puede ver tu organización?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"¿Qué acciones pueden afectar al acceso a este dispositivo?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Datos asociados a tu cuenta de trabajo, como el correo electrónico y el calendario"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista de todas las aplicaciones del dispositivo"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Lista del número de aplicaciones del dispositivo: <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="one">Lista del número de aplicaciones del dispositivo: <xliff:g id="COUNT_0">%d</xliff:g></item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Uso (tiempo empleado y cantidad de datos utilizados) de cada aplicación del dispositivo"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Registros de tráfico del dispositivo"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Tu informe de errores más reciente"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Tu registro de seguridad más reciente"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nunca"</string>
 </resources>
diff --git a/res/values-et-rEE/arrays.xml b/res/values-et-rEE/arrays.xml
index caa5a2c..c340b67 100644
--- a/res/values-et-rEE/arrays.xml
+++ b/res/values-et-rEE/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ekraani sisselülitamine"</item>
     <item msgid="3253368931113490863">"kontode hankimine"</item>
     <item msgid="780392378084812901">"taustal käitamine"</item>
+    <item msgid="2629748510881309577">"juurdepääsetavuse helitugevus"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Asukoht"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Ekraani sisselülitamine"</item>
     <item msgid="5258373962467495905">"Kontode hankimine"</item>
     <item msgid="334625385979270703">"Taustal käitamine"</item>
+    <item msgid="9039213578110332702">"Juurdepääsetavuse helitugevus"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Lühike"</item>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index e65a2f3..ee5cb1e 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Puudutage seadmega „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>” ühenduse loomiseks."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Kas soovite ühendada seadmega <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Taotlus telefoniraamatule juurdepääsuks"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s soovib juurdepääsu teie kontaktisikutele ja kõneajaloole. Kas lubate juurdepääsu kasutajale %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Seade <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> soovib juurdepääsu teie kontaktidele ja kõneajaloole. Kas anda seadmele <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> juurdepääs?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ära enam küsi"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ära enam küsi"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Taotlus sõnumile juurdepääsuks"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Seaded"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Seaded"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Seadete otsetee"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Sobivat tegevust ei leitud."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Lennurežiim"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Rohkem"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Traadita ühendus ja võrgud"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Kas kasutada võrguühenduste haldamiseks rakenduse <xliff:g id="CURRENT_APP">%2$s</xliff:g> asemel rakendust <xliff:g id="NEW_APP">%1$s</xliff:g>?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Kas kasutada võrguühenduste haldamiseks rakendust <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Tundmatu SIM-kaardi operaator"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Operaatoril %1$s pole teenusepakkumise veebisaite"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Operaatoril <xliff:g id="OPERATOR">%1$s</xliff:g> pole ettevalmistuse veebisaite"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Sisestage SIM-kaart ja taaskäivitage"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Looge Interneti-ühendus"</string>
     <string name="location_title" msgid="1029961368397484576">"Minu asukoht"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satelliitpiltide pakkujad:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Käsitsi"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Juhendi laadimisel ilmnes probleem."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Kolmanda osapoole litsentsid"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Litsentside laadimisega on probleem."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Laadimine ..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Ohutusteave"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Akusäästja"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Automaatne sisselülitamine"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Mitte kunagi"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s akutaseme juures"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"aku taseme <xliff:g id="PERCENT">%1$s</xliff:g> juures"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Protsessi statistika"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Tehnilised üksikasjad protsesside käitamise kohta"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Mälu kasutamine"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Helina helitugevus"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Märguande helitugevus"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Telefoni helin"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Märguande vaikeheli"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Äratuse vaikeheli"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibreeri ka kõnede puhul"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Muud helid"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Valimisklahvistiku toonid"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Kas te ei saa sisse logida?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Süsteemiteabe saatmine"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ära kuva enam"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Taotlemine kasutajana"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Konto lisamine"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Tööprofiili seaded"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktiotsing"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Lubage organisatsioonile helistajate ja kontaktide tuvastamiseks kontaktiotsingud"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Kontoandmete autom. sünkroon."</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Isikl. konto andm. aut. sünkr."</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Töö konto andm. autom. sünkr."</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Konto sünkroonimine"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privaatsus"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privaatsus"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Tööandmetele juurdepääsu andmiseks võib teie organisatsioon muuta teie seadmes seadeid ja installida sinna tarkvara. Seetõttu võib osa teie isiklikust sisust olla administraatorile nähtav. Lisateavet küsige organisatsiooni administraatorilt."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Mis tüüpi teavet teie organisatsioon näeb?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Mis muudatused mõjutavad, mida teie organisatsioon näeb?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Mis toimingud võivad mõjutada teie juurdepääsu seadmele?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Teie töökontoga seotud andmed, nt e-post ja kalender"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Loend kõigi teie seadmes olevate rakendustega"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Loend teie seadmes oleva <xliff:g id="COUNT_1">%d</xliff:g> rakendusega</item>
+      <item quantity="one">Loend teie seadmes oleva <xliff:g id="COUNT_0">%d</xliff:g> rakendusega</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Iga teie seadmes oleva rakenduse kasutus (kulutatud aeg ja andmemaht)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Teie seadmes olevad liikluslogid"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Teie kõige viimane veaaruanne"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Teie hiljutine turvalogi"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Mitte kunagi"</string>
 </resources>
diff --git a/res/values-eu-rES/arrays.xml b/res/values-eu-rES/arrays.xml
index 0a23b33..f3b6233 100644
--- a/res/values-eu-rES/arrays.xml
+++ b/res/values-eu-rES/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"aktibatu pantaila"</item>
     <item msgid="3253368931113490863">"lortu kontuak"</item>
     <item msgid="780392378084812901">"exekutatu atzeko planoan"</item>
+    <item msgid="2629748510881309577">"erabilerraztasun-eginbideen bolumena"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Kokapena"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Aktibatu pantaila"</item>
     <item msgid="5258373962467495905">"Lortu kontuak"</item>
     <item msgid="334625385979270703">"Exekutatu atzeko planoan"</item>
+    <item msgid="9039213578110332702">"Erabilerraztasun-eginbideen bolumena"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Laburra"</item>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index 9a6ec33..6c34e5d 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" gailura konektatzeko, sakatu hau."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" gailura konektatu nahi duzu?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Agendarako sarbide-eskaera"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s gailuak zure kontaktuak eta deien historia atzitu nahi ditu. %2$s gailurako sarbidea eman?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> gailuak zure kontaktuak eta deien historia atzitu nahi ditu. Sarbidea eman nahi diozu <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> gailuari?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ez galdetu berriro"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ez galdetu berriro"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Mezuetarako sarbide-eskaera"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Ezarpenak"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Ezarpenak"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Ezarpenen lasterbidea"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Ez da bat datorren jarduerarik aurkitu."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Hegaldi modua"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Gehiago"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Hari gabeko konexioak eta sareak"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Sareko konexioak kudeatzeko <xliff:g id="NEW_APP">%1$s</xliff:g> erabili nahi duzu, <xliff:g id="CURRENT_APP">%2$s</xliff:g> erabili beharrean?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"<xliff:g id="NEW_APP">%s</xliff:g> erabili nahi duzu sareko konexioak kudeatzeko?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"SIM operadore ezezaguna"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s operadoreak ez du hornikuntza-webgune ezagunik."</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> operadoreak ez du hornikuntza-webgune ezagunik"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Sartu SIM txartela eta berrabiarazi"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Konektatu Internetera"</string>
     <string name="location_title" msgid="1029961368397484576">"Nire kokapena"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satelite-irudien hornitzaileak:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Eskuliburua"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Arazo bat izan da eskuliburua kargatzean."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Hirugarrenen lizentziak"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Arazo bat izan da lizentziak kargatzean."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Kargatzen…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Segurtasun-informazioa"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Bateria aurrezlea"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Aktibatu automatikoki"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Inoiz ez"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Bateria: %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"bateriaren maila <xliff:g id="PERCENT">%1$s</xliff:g> denean"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Prozesu-estatistikak"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Exekutatzen ari diren prozesuei buruzko estatistika zehatzak"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Memoriaren erabilera"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Tonuaren bolumena"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Jakinarazpenen bolumena"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Telefonoaren tonu-jotzailea"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Jakinarazpen-soinu lehenetsia"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Alarmaren soinu lehenetsia"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Egin dar-dar deietan ere"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Beste soinu batzuk"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Markagailuaren tonuak"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Ezin duzu saioa hasi?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Bidali sistemari buruzko informazioa"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ez erakutsi berriro"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Kontu honen izenean egin da eskaera:"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Gehitu kontua"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Laneko profilaren ezarpenak"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktu-bilaketak"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Onartu erakundeko kontaktu-bilaketek deitzaileak eta kontaktuak identifikatzea"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Sinkronizatu automatikoki kontua"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinkronizatu automatikoki kontu pertsonala"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinkronizatu automatikoki laneko kontua"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Kontuaren sinkronizazioa"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Pribatutasuna"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Pribatutasuna"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Laneko datuetarako sarbidea emateko, ezarpenak alda eta softwarea instala diezazuke erakundeak gailuan eta, horrela, zure eduki pertsonala ikusteko gai izan liteke administratzailea. Xehetasun gehiago izan nahi badituzu, jarri erakundeko administratzailearekin harremanetan."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Zer motatako informazioa ikus dezake erakundeak?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Zer aldaketek dute eragina erakundeak ikus dezakeenarengan?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Zer ekintzek dute eragina gailurako nire sarbidearengan?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Laneko kontuarekin erlazionatutako datuak, adibidez, posta elektronikoa eta egutegia"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Gailuan dituzun aplikazio guztien zerrenda"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Gailuan dituzun <xliff:g id="COUNT_1">%d</xliff:g> aplikazioen zerrenda</item>
+      <item quantity="one">Gailuan duzun <xliff:g id="COUNT_0">%d</xliff:g> aplikazioa</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Gailuko aplikazio bakoitzaren erabilera (erabiltzen igarotako denbora eta erabilitako datu kopurua)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Gailuko trafikoaren erregistroak"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Azken akatsen txostena"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Azken segurtasun-erregistroa"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Inoiz ez"</string>
 </resources>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index 9ab696d..aaf2174 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"روشن کردن صفحه"</item>
     <item msgid="3253368931113490863">"دریافت حساب‌ها"</item>
     <item msgid="780392378084812901">"اجرا در پس‌زمینه"</item>
+    <item msgid="2629748510881309577">"میزان دسترس‌پذیری"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"موقعیت مکانی"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"روشن کردن صفحه"</item>
     <item msgid="5258373962467495905">"دریافت حساب‌ها"</item>
     <item msgid="334625385979270703">"اجرا در پس‌زمینه"</item>
+    <item msgid="9039213578110332702">"میزان دسترس‌پذیری"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"کوتاه"</item>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index e032ca2..25a17ba 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"برای اتصال به «<xliff:g id="DEVICE_NAME">%1$s</xliff:g>» ضربه بزنید."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"آیا می‌خواهید به \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" وصل شوید؟"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"درخواست دسترسی به دفترچه تلفن"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"‏%1$s می‌خواهد به مخاطبین و سابقه تماس شما دسترسی پیدا کند. اجازهٔ دسترسی به %2$s داده شود؟"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>می‌خواهد به مخاطیبن و سابقه تماس شما دسترسی پیدا کند. به <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> اجازه دسترسی می‌دهید؟"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"دوباره سؤال نشود"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"دوباره سؤال نشود"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"درخواست دسترسی به پیام"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"تنظیمات"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"تنظیمات"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"میان‌بر تنظیمات"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"فعالیتی مطابق با این مورد یافت نشد."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"حالت هواپیما"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"بیشتر"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"بی‌سیم و شبکه‌ها"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"از <xliff:g id="NEW_APP">%1$s</xliff:g> به‌جای <xliff:g id="CURRENT_APP">%2$s</xliff:g> استفاده می‌کنید تا ارتباطات شبکه‌تان را مدیریت کنید؟"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"برای مدیریت ارتباطات شبکه‌تان از <xliff:g id="NEW_APP">%s</xliff:g> استفاده می‌کنید؟"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"اپراتور سیم‌کارت ناشناس"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"‏%1$s وب‌سایت شناخته‌شده‌ای برای آماده‌سازی ندارد."</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> وب‌سایت شناخته‌شده‌ای برای آماده‌سازی ندارد"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"لطفاً سیم کارت را وارد کنید و دوباره راه‌اندازی کنید"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"لطفاً به اینترنت وصل شوید"</string>
     <string name="location_title" msgid="1029961368397484576">"موقعیت مکانی شما"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"‏ارائه‌دهندگان تصویر ماهواره‌ای:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"دفترچه راهنما"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"مشکلی در بارگیری دفترچه راهنما وجود دارد."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"مجوزهای شخص ثالث"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"مشکلی در بارگیری مجوزها وجود دارد."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"در حال بارگیری…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"اطلاعات ایمنی"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"بهینه‌سازی باتری"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"روشن شدن خودکار"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"هیچ‌وقت"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"‏در %1$s نیروی باتری"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"در <xliff:g id="PERCENT">%1$s</xliff:g> باتری"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"آمار فرآیند"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"آمار دقیق برای فرآیندهای در حال اجرا"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"استفاده از حافظه"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"میزان صدای زنگ"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"میزان صدای اعلان"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"آهنگ زنگ تلفن"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"صدای اعلان پیش‌فرض"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"صدای زنگ پیش‌فرض"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"برای تماس‌ لرزش هم داشته باشد"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"سایر صداها"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"آهنگ‌های صفحه شماره‌گیری"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"نمی‌توانید به سیستم وارد شوید؟"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"ارسال اطلاعات سیستم"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"دیگر نشان داده نشود"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"درخواست به‌عنوان"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"افزودن حساب"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"تنظیمات نمایه کاری"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"جستجوی مخاطب"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"جستجوهای مخاطب توسط سازمانتان برای شناسایی تماس‌گیرندگان و مخاطبین مجاز است"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"همگام‌سازی خودکار داده‌های حساب"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"همگام‌سازی خودکار داده‌‌های حساب شخصی"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"همگام‌سازی خودکار داده‌های حساب کاری"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"همگام‌سازی حساب"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"حریم خصوصی"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"حریم خصوصی"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"برای فراهم آوردن دسترسی به داده‌های کاری‌تان، ممکن است سازمان شما تنظیمات را تغییر دهد و نرم‌افزارهایی در دستگاهتان نصب کند و با این کار ممکن است بعضی از محتوای شخصی‌تان برای مدیر سیستم قابل مشاهده شود. برای جزئیات بیشتر با مدیر سازمانتان تماس بگیرید."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"چه اطلاعاتی را سازمان شما می‌تواند ببیند؟"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"چه تغییراتی روی آنچه که سازمانتان می‌تواند ببیند اثر می‌گذارد؟"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ممکن است چه عملکردهایی روی دسترسی به این دستگاه اثر بگذارند؟"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"داده‌های مرتبط با حساب کاری‌تان مثل رایانه و تقویم"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"فهرست همه برنامه‌ها در دستگاه شما"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">فهرست همه <xliff:g id="COUNT_1">%d</xliff:g> برنامه موجود در دستگاه شما</item>
+      <item quantity="other">فهرست همه <xliff:g id="COUNT_1">%d</xliff:g> برنامه موجود در دستگاه شما</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"مصرف (زمان صرف‌شده و میزان داده استفاده‌شده) هر برنامه در دستگاه شما"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"گزارش‌های ترافیک در دستگاه شما"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"جدیدترین گزارش اشکال شما"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"جدیدترین گزارش امنیت شما"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"هرگز"</string>
 </resources>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index 63c74e5..1a9f8f5 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"kytke näyttö päälle"</item>
     <item msgid="3253368931113490863">"hae tilit"</item>
     <item msgid="780392378084812901">"toimi taustalla"</item>
+    <item msgid="2629748510881309577">"esteettömyys äänenvoimakkuus"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Sijainti"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Kytke näyttö päälle"</item>
     <item msgid="5258373962467495905">"Hae tilit"</item>
     <item msgid="334625385979270703">"Toimi taustalla"</item>
+    <item msgid="9039213578110332702">"Esteettömyys äänenvoimakkuus"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Lyhyt"</item>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 7ebf0ff..d8d67dd 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Yhdistä laitteeseen <xliff:g id="DEVICE_NAME">%1$s</xliff:g> koskettamalla."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Haluatko yhdistää laitteeseen <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"PBAP-pyyntö"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s pyytää yhteystietojesi ja puheluhistoriasi käyttöoikeutta. Annetaanko käyttöoikeus (%2$s)?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> haluaa käyttää yhteystietoja ja soittohistoriaa. Sallitaanko sille laitteen <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> käyttö?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Älä kysy uudestaan"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Älä kysy uudestaan"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"MAP-pyyntö"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Asetukset"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Asetukset"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Asetukset-pikakuvake"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Sopivia toimintoja ei löytynyt."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Lentokonetila"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Lisää"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Langaton verkko ja verkot"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Hallinnoidaanko verkkoyhteyksiä sovelluksella <xliff:g id="NEW_APP">%1$s</xliff:g> sovelluksen <xliff:g id="CURRENT_APP">%2$s</xliff:g> sijaan?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Hallinnoidaanko verkkoyhteyksiä sovelluksella <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Tuntematon SIM-operaattori"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Ei tunnettua käyttäjien hallintasivustoa: %1$s"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Ei tunnettua käyttäjien hallintasivustoa: <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Aseta SIM-kortti ja käynnistä uudelleen"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Muodosta yhteys internetiin"</string>
     <string name="location_title" msgid="1029961368397484576">"Oma sijainti"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satelliittikuvat:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Käyttöopas"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ongelma ladattaessa käyttöopasta."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Kolmannen osapuolen lisenssit"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Käyttölupien lataamisessa esiintyi ongelma."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Ladataan…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Suojaustiedot"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Virransäästö"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Käynnistä automaattisesti"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Ei koskaan"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"kun akkua jäljellä %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"kun akun varaus on <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Käsittelytiedot"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Käsittelyn tarkat tiedot"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Muistin käyttö"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Soittoäänen voimakkuus"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Ilmoituksen äänenvoimakkuus"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Puhelimen soittoääni"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Ilmoituksen oletusääni"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Herätyksen oletusääni"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Värinä myös puheluille"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Muut äänet"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Näppäimistön näppäinäänet"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Eikö sisäänkirjautuminen onnistu?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Lähetä järjestelmätiedot"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Älä näytä uudelleen"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Pyytäjä"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Lisää tili"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Työprofiilin asetukset"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Yhteystietohaku"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Salli organisaatiosi yhteystietohakujen tunnistaa soittajia ja yhteystietoja."</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Tilitietojen autom. synkron."</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Omien tietojen autom. synkron."</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Työtietojen autom. synkron."</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Tilin synkronointi"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Tietosuoja"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Tietosuoja"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Jotta voit käyttää työtietojasi, organisaatiosi saattaa muuttaa asetuksia ja asentaa ohjelmistoja laitteellesi. Tämän vuoksi järjestelmänvalvoja saattaa nähdä joitain henkilökohtaisista tiedoistasi. Saat lisätietoja organisaatiosi järjestelmänvalvojalta."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Minkätyyppisiä tietoja organisaatiosi voi nähdä?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Mikä muutokset vaikuttavat organisaation näkemiin tietoihin?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Mitkä toimet voivat vaikuttaa laitteen käyttöösi?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Työtilin tiedot, esimerkiksi sähköpostit ja kalenteri"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Luettelo kaikista laitteesi sovelluksista"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Luettelo kaikista laitteen <xliff:g id="COUNT_1">%d</xliff:g> sovelluksesta</item>
+      <item quantity="one">Luettelo laitteen <xliff:g id="COUNT_0">%d</xliff:g> sovelluksesta</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Jokaisen laitteen sovelluksen käyttötiedot (käytetty aika ja data)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Laitteen liikennelokit"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Viimeisin vikailmoituksesi"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Viimeisin tietoturvaloki"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Ei koskaan"</string>
 </resources>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index 2d0bdad..512c53c 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"activer l\'écran"</item>
     <item msgid="3253368931113490863">"obtenir les comptes"</item>
     <item msgid="780392378084812901">"fonctionner en arrière-plan"</item>
+    <item msgid="2629748510881309577">"volume d\'accessibilité"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Position"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Activer l\'écran"</item>
     <item msgid="5258373962467495905">"Obtenir les comptes"</item>
     <item msgid="334625385979270703">"Fonctionner en arrière-plan"</item>
+    <item msgid="9039213578110332702">"Volume d\'accessibilité"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Court"</item>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 7dd379c..b502b7d 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Touchez ici pour vous connecter à « <xliff:g id="DEVICE_NAME">%1$s</xliff:g> »."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Voulez-vous vous connecter à « <xliff:g id="DEVICE_NAME">%1$s</xliff:g> »?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Demande d\'accès au répertoire téléphonique"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s souhaite accéder à vos contacts et à l\'historique de vos appels. Autoriser l\'accès à %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> demande l\'accès à vos contacts et à l\'historique de vos appels. Autoriser l\'accès à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ne plus me demander"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ne plus me demander"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Demande d\'accès aux messages"</string>
@@ -215,7 +215,7 @@
     <string name="oem_radio_info_label" msgid="6163141792477958941">"Infos/paramètres OEM"</string>
     <string name="band_mode_title" msgid="4071411679019296568">"Définir le mode de bande radio"</string>
     <string name="band_mode_loading" msgid="3555063585133586152">"Chargement de la liste de bandes en cours..."</string>
-    <string name="band_mode_set" msgid="5730560180249458484">"Paramètres"</string>
+    <string name="band_mode_set" msgid="5730560180249458484">"Définir"</string>
     <string name="band_mode_failed" msgid="1495968863884716379">"Échec"</string>
     <string name="band_mode_succeeded" msgid="2701016190055887575">"Opération effectuée"</string>
     <string name="sdcard_changes_instructions" msgid="4482324130377280131">"Les modifications prendront effet lors de la prochaine connexion du câble USB."</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Paramètres"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Paramètres"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Raccourci vers les paramètres"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Aucune activité correspondante trouvée."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Mode avion"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Plus"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Sans fil et réseaux"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Utilisez <xliff:g id="NEW_APP">%1$s</xliff:g> au lieu de <xliff:g id="CURRENT_APP">%2$s</xliff:g> pour gérer vos connexions réseau?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Utiliser <xliff:g id="NEW_APP">%s</xliff:g> pour gérer vos connexions réseau?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Fournisseur de la carte SIM inconnu"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Aucun site Web de configuration connu pour %1$s"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Aucun site Web de configuration connu pour <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Insérez la carte SIM, puis redémarrez."</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Connectez-vous à Internet."</string>
     <string name="location_title" msgid="1029961368397484576">"My Location"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Fournisseurs d\'images satellite :\n© CNES/Astrium, DigitalGlobe, Bluesky 2014"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manuel"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Problème lors du chargement du manuel."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licences tierces"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Un problème est survenu lors du chargement des licences."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Chargement en cours..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Informations de sécurité"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Économie d\'énergie"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activer automatiquement"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Jamais"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"lorsque la pile atteint %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"à <xliff:g id="PERCENT">%1$s</xliff:g> d\'autonomie restante"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Statistiques des processus"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Statistiques détaillées sur les processus en cours d\'exécution"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Mémoire utilisée"</string>
@@ -2231,7 +2231,7 @@
     <string name="data_usage_auto_sync_off_dialog" msgid="4025938250775413864">"Cette action limite la consommation de données et l\'utilisation de la pile, mais vous devrez synchroniser manuellement chaque compte pour recueillir les informations récentes. Par ailleurs, vous ne recevrez pas de notifications en cas de mise à jour."</string>
     <string name="data_usage_cycle_editor_title" msgid="1373797281540188533">"Date de réinitialisation du cycle de consommation"</string>
     <string name="data_usage_cycle_editor_subtitle" msgid="5512903797979928416">"Jour du mois :"</string>
-    <string name="data_usage_cycle_editor_positive" msgid="8821760330497941117">"Paramètres"</string>
+    <string name="data_usage_cycle_editor_positive" msgid="8821760330497941117">"Définir"</string>
     <string name="data_usage_warning_editor_title" msgid="3704136912240060339">"Définir l\'avertissement d\'utilisation des données"</string>
     <string name="data_usage_limit_editor_title" msgid="9153595142385030015">"Définir la limite de consommation des données"</string>
     <string name="data_usage_limit_dialog_title" msgid="3023111643632996097">"Limitation de la consommation de données mobiles"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume de la sonnerie"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volume des notifications"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Sonnerie du téléphone"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Son de notification par défaut"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Son par défaut pour l\'alarme"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibreur aussi pour les appels"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Autres sons"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonalités du clavier"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Vous n\'arrivez pas à vous connecter?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Envoyer les données système"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne plus afficher"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Effectuer la demande avec le compte"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Ajouter un compte"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Paramètres du profil professionnel"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Recherche de contacts"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Autoriser les recherches de contacts dans votre organisation à identifier les appelants et les contacts"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Synchro auto données du compte"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sync auto données compte perso"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sync auto données compte prof."</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Synchronisation du compte"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Confidentialité"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Confidentialité"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Pour vous fournir l\'accès aux données d\'entreprise, votre organisation peut modifier des paramètres et installer des logiciels sur votre appareil, ce qui pourrait rendre certains contenus personnels visibles par votre administrateur. Pour obtenir plus de détails, communiquez avec l\'administrateur de votre organisation."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Quels types de données votre organisation peut-elle voir?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Quels changements influent sur ce que votre org. peut voir?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Quelles actions peuvent influer sur votre accès à cet appareil?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Les données associées à votre compte professionnel, comme les courriels et l\'agenda"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Liste de toutes les applications installées sur votre appareil"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Liste de toutes les applications installées sur votre appareil (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="other">Liste de toutes les applications installées sur votre appareil (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Utilisation (la durée d\'utilisation et la quantité de données utilisée) de chaque application installée sur votre appareil"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Journaux de trafic sur votre appareil"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Votre rapport de bogue le plus récent"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Votre journal de sécurité le plus récent"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Jamais"</string>
 </resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 07d0ede..4c8ae2a 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"activer l\'écran"</item>
     <item msgid="3253368931113490863">"obtenir les comptes"</item>
     <item msgid="780392378084812901">"exécuter en arrière-plan"</item>
+    <item msgid="2629748510881309577">"volume d\'accessibilité"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Position"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Activer l\'écran"</item>
     <item msgid="5258373962467495905">"Obtenir les comptes"</item>
     <item msgid="334625385979270703">"Exécuter en arrière-plan"</item>
+    <item msgid="9039213578110332702">"Volume d\'accessibilité"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Court"</item>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 226c64a..361f771 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Appuyez pour vous connecter à l\'appareil \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Voulez-vous vous connecter à \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Demande d\'accès au répertoire"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s souhaite accéder à vos contacts et à l\'historique de vos appels. Autoriser l\'accès à %2$s ?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> requiert l\'accès à vos contacts et à l\'historique de vos appels. Autoriser l\'accès à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ne plus me demander"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ne plus me demander"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Demande d\'accès aux messages"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Paramètres"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Paramètres"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Raccourci vers les paramètres"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Aucune activité correspondante trouvée."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Mode Avion"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Plus"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Sans fil et réseaux"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Utiliser <xliff:g id="NEW_APP">%1$s</xliff:g> au lieu de <xliff:g id="CURRENT_APP">%2$s</xliff:g> pour gérer vos connexions réseau ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Utiliser <xliff:g id="NEW_APP">%s</xliff:g> pour gérer vos connexions réseau ?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Opérateur de carte SIM inconnu"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Aucun site Web de configuration connu pour %1$s"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Aucun site Web de gestion des comptes connu pour <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Insérez la carte SIM, puis redémarrez."</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Connectez-vous à Internet."</string>
     <string name="location_title" msgid="1029961368397484576">"Ma position"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Fournisseurs d\'images satellite :\n© CNES/Astrium, DigitalGlobe, Bluesky 2014"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manuel"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Un problème est survenu lors du chargement du manuel."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licences tierces"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Un problème est survenu lors du chargement des licences."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Chargement..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Informations de sécurité"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Économiseur de batterie"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activer automatiquement"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Jamais"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Lorsque la batterie atteint %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"niveau de la batterie : <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Statistiques relatives aux processus"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Statistiques détaillées relatives aux processus en cours d\'exécution"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Utilisation de la mémoire"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume de la sonnerie"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volume des notifications"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Sonnerie du téléphone"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Son de notification par défaut"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Son de l\'alarme par défaut"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrer aussi pour les appels"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Autres sons"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonalités du numéroteur"</string>
@@ -2794,7 +2792,7 @@
     <string name="switch_on_text" msgid="1124106706920572386">"Activé"</string>
     <string name="switch_off_text" msgid="1139356348100829659">"Désactivé"</string>
     <string name="screen_pinning_title" msgid="2292573232264116542">"Épinglage d\'écran"</string>
-    <string name="screen_pinning_description" msgid="3360904523688769289">"Lorsque ce paramètre est activé, vous pouvez épingler écran pour ancrer dans vue jusqu\'à annulation de l\'opération.\n\nPour épingler écran :\n\n1. Assurez-vous que l\'épinglage écran est activé.\n\n2. Ouvrez écran à épingler.\n\n3. Appuyez sur \"Aperçu\".\n\n4. Balayez écran vers haut, puis appuyez sur icône épinglage."</string>
+    <string name="screen_pinning_description" msgid="3360904523688769289">"Lorsque ce paramètre est activé, vous pouvez épingler l\'écran afin de l\'ancrer dans la vue jusqu\'à ce que vous annuliez l\'épinglage.\n\nPour épingler l\'écran, procédez comme suit :\n\n1. Assurez-vous que l\'épinglage de l\'écran est activé.\n\n2. Ouvrez l\'écran que vous voulez épingler.\n\n3. Appuyez sur \"Aperçu\".\n\n4. Balayez l\'écran vers le haut, puis appuyez sur l\'icône d\'épinglage."</string>
     <string name="screen_pinning_unlock_pattern" msgid="8282268570060313339">"Demander schéma de déverrouillage avant d\'annuler épinglage"</string>
     <string name="screen_pinning_unlock_pin" msgid="8757588350454795286">"Demander PIN avant annuler épinglage"</string>
     <string name="screen_pinning_unlock_password" msgid="2514079566873826434">"Demander le mot de passe avant d\'annuler l\'épinglage"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Vous ne pouvez pas vous connecter ?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Envoyer des informations sur le système"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne plus afficher"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Demande envoyée depuis le compte"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Ajouter un compte"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Paramètres du profil professionnel"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Recherche de contacts"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Autoriser les recherches de contacts dans votre organisation à identifier les appelants et les contacts"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Synchro auto données du compte"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Synchro auto données perso"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Synchro auto données pro"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Synchronisation du compte"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Confidentialité"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Confidentialité"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Afin d\'accéder à vos données professionnelles, votre organisation peut modifier des paramètres et installer des logiciels sur votre appareil. Ceci risque de rendre certains de vos contenus personnels visibles pour votre administrateur. Pour en savoir plus, contactez l\'administrateur de votre organisation."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Quels types d\'informations votre organisation peut-elle voir ?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Quels changements affectent ce que votre organisation peut voir ?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Quelles actions peuvent affecter votre accès à cet appareil ?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Informations associées à votre compte professionnel, telles que les e-mails et les données de l\'agenda"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Liste de toutes les applications installées sur votre appareil"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Liste de toute les applications installées sur votre appareil (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="other">Liste de toute les applications installées sur votre appareil (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Informations relatives à l\'utilisation (temps passé et quantité de données utilisée) de chaque application installée sur votre appareil"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Journaux de trafic sur votre appareil"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Votre dernier rapport de bug"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Votre dernier journal de sécurité"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Jamais"</string>
 </resources>
diff --git a/res/values-gl-rES/arrays.xml b/res/values-gl-rES/arrays.xml
index 734cff4..25c95a1 100644
--- a/res/values-gl-rES/arrays.xml
+++ b/res/values-gl-rES/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"activar pantalla"</item>
     <item msgid="3253368931113490863">"obter contas"</item>
     <item msgid="780392378084812901">"executar en segundo plano"</item>
+    <item msgid="2629748510881309577">"volume de accesibilidade"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Localización"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Activar pantalla"</item>
     <item msgid="5258373962467495905">"Obter contas"</item>
     <item msgid="334625385979270703">"Executar en segundo plano"</item>
+    <item msgid="9039213578110332702">"Volume de accesibilidade"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Curto"</item>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index 449df83..dd12d53 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Toca aquí para conectarte a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Queres conectarte a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Solicitude de acceso á axenda telefónica"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s quere acceder aos teus contactos e ao historial de chamadas. Queres conceder acceso a %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> quere acceder aos teus contactos e ao historial de chamadas. Queres darlle acceso a <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Non preguntar de novo"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Non preguntar de novo"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Solicitude de acceso á mensaxe"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Configuración"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Configuración"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Atallo de configuración"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Non se atoparon actividades que coincidan."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Modo avión"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Máis"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Sen fíos e redes"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Queres utilizar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para xestionar as túas conexións de rede?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Queres utilizar <xliff:g id="NEW_APP">%s</xliff:g> para xestionar as túas conexións de rede?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operador da SIM descoñecido"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s sen sitio web de aprovisionamento coñecido"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> non ten un sitio web de aprovisionamento coñecido"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Introduce unha tarxeta SIM e reinicia"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Conéctate a Internet"</string>
     <string name="location_title" msgid="1029961368397484576">"A miña localización"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Provedores de imaxes por satélite:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Hai un problema para cargar o manual."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenzas de terceiros"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Hai un problema para cargar as licenzas."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Cargando..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Información de seguridade"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Aforro de batería"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activar automaticamente"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nunca"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"cun %1$s de batería"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"coa batería ao <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Estatísticas de procesos"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Estatísticas frikis sobre procesos en execución"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Uso da memoria"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do timbre"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volume das notificacións"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Ton de chamada do teléfono"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Son de notificación predeterminado"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Son de alarma predeterminado"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrar tamén nas chamadas"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Outros sons"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tons do teclado de marcación"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Non podes iniciar sesión?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Enviar información do sistema"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Non mostrar de novo"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Solicitando como"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Engadir conta"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Configuración do perfil de traballo"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Busca de contactos"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permite buscas de contactos por parte da túa organización para identificar os emisores das chamadas e os contactos"</string>
@@ -3292,23 +3292,25 @@
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Agora o xestor de almacenamento administra o teu espazo"</string>
     <string name="account_for_section_header" msgid="5867553104728848377">"Contas"</string>
     <string name="configure_section_header" msgid="7391183586410814450">"Configurar"</string>
-    <string name="auto_sync_account_title" msgid="7647106425106072285">"Datos da conta de sincronización automática"</string>
+    <string name="auto_sync_account_title" msgid="7647106425106072285">"Sincronizar automaticamente os datos da conta"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Datos da conta persoal de sincronización automática"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Datos da conta laboral de sincronización automática"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sincronización da conta"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacidade"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacidade"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Para proporcionar acceso aos datos do traballo, a túa organización pode cambiar a configuración e instalar software no teu dispositivo, o cal podería provocar que o administrador poida ver parte do teu contido persoal. Ponte en contacto co administrador da túa organización para obter máis información."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Que tipo de información pode ver a túa organización?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Que cambios afectan ao que pode ver a túa organización?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Que accións afectan ao teu acceso a este dispositivo?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Datos asociados coa túa conta do traballo, como o correo electrónico e o calendario"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista de todas as aplicacións do teu dispositivo"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Lista das <xliff:g id="COUNT_1">%d</xliff:g> aplicacións do teu dispositivo</item>
+      <item quantity="one">Lista de <xliff:g id="COUNT_0">%d</xliff:g> aplicación do teu dispositivo</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Uso de cada aplicación do teu dispositivo, tendo en conta o tempo investido e a cantidade de datos utilizados"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Rexistros de tráfico do teu dispositivo"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"O teu informe de erros máis recente"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"O teu rexistro de seguranza máis recente"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nunca"</string>
 </resources>
diff --git a/res/values-gu-rIN/arrays.xml b/res/values-gu-rIN/arrays.xml
index 1aafd42..e9532fb 100644
--- a/res/values-gu-rIN/arrays.xml
+++ b/res/values-gu-rIN/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"સ્ક્રીન ચાલુ કરો"</item>
     <item msgid="3253368931113490863">"એકાઉન્ટ્સ મેળવો"</item>
     <item msgid="780392378084812901">"પૃષ્ઠભૂમિમાં ચલાવો"</item>
+    <item msgid="2629748510881309577">"ઍક્સેસિબિલિટી વૉલ્યૂમ"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"સ્થાન"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"સ્ક્રીન ચાલુ કરો"</item>
     <item msgid="5258373962467495905">"એકાઉન્ટ્સ મેળવો"</item>
     <item msgid="334625385979270703">"પૃષ્ઠભૂમિમાં ચલાવો"</item>
+    <item msgid="9039213578110332702">"ઍક્સેસિબિલિટી વૉલ્યૂમ"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"નાનો"</item>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index 8f0d06e..fded54d 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" સાથે કનેક્ટ કરવા માટે ટૅપ કરો."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"શું તમે \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" સાથે કનેક્ટ કરવા માંગો છો?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ફોન પુસ્તિકા ઍક્સેસની વિનંતી"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s તમારા સંપર્કો અને કૉલ ઇતિહાસને અ‍ૅક્સેસ કરવા માંગે છે. %2$s ને અ‍ૅક્સેસ આપીએ?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, તમારા સંપર્કો અને કૉલ ઇતિહાસને ઍક્સેસ કરવા માગે છે. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ને ઍક્સેસ આપીએ?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"ફરીથી પૂછશો નહીં"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"ફરીથી પૂછશો નહીં"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"સંદેશ ઍક્સેસ વિનંતી"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"સેટિંગ્સ"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"સેટિંગ્સ"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"સેટિંગ્સ શૉર્ટકટ"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"કોઈ મેળ ખાતી પ્રવૃત્તિઓ મળી નથી."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"એરપ્લેન મોડ"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"વધુ"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"વાયરલેસ અને નેટવર્ક્સ"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"તમારા નેટવર્ક્સ કનેક્શન્સનું સંચાલન કરવા માટે <xliff:g id="CURRENT_APP">%2$s</xliff:g> ને બદલે <xliff:g id="NEW_APP">%1$s</xliff:g> નો ઉપયોગ કરીએ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"તમારા નેટવર્ક કનેક્શન્સનું સંચાલન કરવા માટે <xliff:g id="NEW_APP">%s</xliff:g> નો ઉપયોગ કરો?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"અજાણ્યો SIM ઓપરેટર"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s પાસે જાણીતી જોગવાઈ કરતી વેબસાઇટ નથી"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> પાસે કોઈ જાણીતી જોગવાઈ કરતી વેબસાઇટ નથી"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"કૃપા કરીને SIM કાર્ડ શામેલ કરો અને પુનઃપ્રારંભ કરો"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"કૃપા કરીને ઇન્ટરનેટ સાથે કનેક્ટ કરો"</string>
     <string name="location_title" msgid="1029961368397484576">"મારું સ્થાન"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"ઉપગ્રહ છબી પ્રદાતાઓ:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"મેન્યુઅલ"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"મેન્યુઅલ લોડ કરવામાં સમસ્યા છે."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"તૃતીય-પક્ષ લાઇસન્સીસ"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"લાઇસન્સીસ લોડ કરવામાં સમસ્યા છે."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"લોડ કરી રહ્યું છે..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"સલામતી માહિતી"</string>
@@ -1932,9 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"બૅટરી સેવર"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"આપમેળે ચાલુ કરો"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ક્યારેય નહીં"</string>
-    <!-- String.format failed for translation -->
-    <!-- no translation found for battery_saver_turn_on_automatically_pct (7536784431655058267) -->
-    <skip />
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> બૅટરી પર"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"પ્રક્રિયા આંકડા"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"ચાલુ પ્રક્રિયાઓ વિશેનાં અવ્યવસ્થિત આંકડાઓ"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"મેમરીનો ઉપયોગ"</string>
@@ -2608,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"રિંગ વોલ્યુમ"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"સૂચના વૉલ્યૂમ"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"ફોન રિંગટોન"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"ડિફૉલ્ટ સૂચના માટે ધ્વનિ"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"ડિફૉલ્ટ એલાર્મ ધ્વનિ"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"કૉલ્સ માટે પણ વાઇબ્રેટ કરો"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"અન્ય ધ્વનિઓ"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"ડાયલપેડ ટોન્સ"</string>
@@ -3225,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"શું સાઇન ઇન કરી શકતાં નથી?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"સિસ્ટમ માહિતી મોકલો"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"ફરી બતાવશો નહીં"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"આ તરીકે વિનંતી કરી રહ્યું છે"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"એકાઉન્ટ ઉમેરો"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"કાર્ય પ્રોફાઇલ સેટિંગ્સ"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"સંપર્ક શોધ"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"કૉલર્સ અને સંપર્કોને ઓળખવા માટે તમારી સંસ્થા દ્વારા સંપર્ક શોધની મંજૂરી આપો"</string>
@@ -3297,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"એકાઉન્ટ ડેટા સ્વતઃ સમન્વયન"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"વ્યક્તિગત એકાઉન્ટ ડેટા સ્વતઃ સમન્વયન"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"કાર્યાલય એકાઉન્ટ ડેટા સ્વતઃ-સમન્વયન"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"એકાઉન્ટ સમન્વયન"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"ગોપનીયતા"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ગોપનીયતા"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"તમારા કાર્ય ડેટાની અ‍ૅક્સેસ આપવા માટે, તમારી સંસ્થા તમારા ઉપકરણ પર સેટિંગ્સ બદલી અને સોફ્ટવેર ઇન્સ્ટૉલ કરી શકે છે, કે જેનાથી તમારી કેટલીક વ્યક્તિગત સામગ્રી, તમારા વ્યવસ્થાપકને દૃશ્યક્ષમ થઈ શકશે. વધુ વિગતો માટે તમારી સંસ્થાના વ્યવસ્થાપકનો સંપર્ક કરો."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"તમારી સંસ્થા કઈ પ્રકારની માહિતી જોઈ શકે છે?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"તમારી સંસ્થા જે જોઈ શકે છે તેને કયા ફેરફારો પ્રભાવિત કરે છે?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"કઈ ક્રિયાઓ આ ઉપકરણ પરની તમારી ઍક્સેસને પ્રભાવિત કરી શકે છે?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"તમારા કાર્ય એકાઉન્ટ સાથે સંકળાયેલ ડેટા, જેમ કે ઇમેઇલ અને કૅલેન્ડર"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"તમારા ઉપકરણ પરની તમામ ઍપ્લિકેશનોની સૂચિ"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">તમારા ઉપકરણ પરની તમામ <xliff:g id="COUNT_1">%d</xliff:g> ઍપ્લિકેશનની સૂચિ</item>
+      <item quantity="other">તમારા ઉપકરણ પરની તમામ <xliff:g id="COUNT_1">%d</xliff:g> ઍપ્લિકેશનની સૂચિ</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"તમારા ઉપકરણ પર દરેક ઍપ્લિકેશનનો વપરાશ (પસાર કરેલ સમય અને ઉપયોગમાં લીધેલ ડેટાનું પ્રમાણ)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"તમારા ઉપકરણ પરના ટ્રાફિક લૉગ્સ"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"તમારી સૌથી તાજેતરની બગ રિપોર્ટ"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"તમારો સૌથી તાજેતરનો સુરક્ષા લૉગ"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"ક્યારેય નહીં"</string>
 </resources>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index 693be56..a361456 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"स्क्रीन चालू करें"</item>
     <item msgid="3253368931113490863">"खाते प्राप्त करें"</item>
     <item msgid="780392378084812901">"पृष्ठभूमि में चलाएं"</item>
+    <item msgid="2629748510881309577">"एक्सेस-योग्यता वॉल्यूम"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"स्थान"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"स्क्रीन चालू करें"</item>
     <item msgid="5258373962467495905">"खाते प्राप्त करें"</item>
     <item msgid="334625385979270703">"पृष्ठभूमि में चलाएं"</item>
+    <item msgid="9039213578110332702">"एक्सेस-योग्यता वॉल्यूम"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"कम"</item>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 8d56a0f..7b0ca4d 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" से कनेक्ट करने के लिए टैप करें."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"क्या आप \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" से कनेक्ट करना चाहते हैं?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"फ़ोन बुक एक्सेस अनुरोध"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s आपके संपर्कों और कॉल इतिहास में पहुंच प्राप्त करना चाहता है. %2$s पर पहुंच दें?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> आपके संपर्क और कॉल इतिहास एक्सेस करना चाहता है. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> को एक्सेस दें?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"फिर से न पूछें"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"फिर से न पूछें"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"संदेश एक्सेस अनुरोध"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"सेटिंग"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"सेटिंग"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"सेटिंग शॉर्टकट"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"कोई मिलती-जुलती गतिविधि नहीं मिली."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"हवाई जहाज मोड"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"अधिक"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"वायरलेस और नेटवर्क"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"आपके नेटवर्क कनेक्शन प्रबंधित करने के लिए <xliff:g id="CURRENT_APP">%2$s</xliff:g> के बजाय <xliff:g id="NEW_APP">%1$s</xliff:g> का उपयोग करें?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"आपके नेटवर्क कनेक्शन प्रबंधित करने के लिए <xliff:g id="NEW_APP">%s</xliff:g> का उपयोग करें?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"अज्ञात सिम ऑपरेटर"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s की कोई भी ज्ञात प्रावधान वेबसाइट नहीं है"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> की कोई भी ज्ञात प्रावधान वेबसाइट नहीं है"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"कृपया सिम कार्ड डालें और पुन: प्रारंभ करें"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"कृपया इंटरनेट से कनेक्ट करें"</string>
     <string name="location_title" msgid="1029961368397484576">"मेरा स्थान"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"उपग्रह इमेजरी प्रदाता:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"मैन्युअल"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"मैन्युअल को लोड करने में कोई समस्‍या है."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"तृतीय-पक्ष लाइसेंस"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"लाइसेंस लोड करने में एक समस्‍या है."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"लोड हो रहा है..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"सुरक्षा जानकारी"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"बैटरी सेवर"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"अपने आप चालू करें"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"कभी नहीं"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s बैटरी पर"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> बैटरी होने पर"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"प्रोसेस के आंकड़े"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"चल रही प्रक्रिया के बारे में आकंड़े"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"मेमोरी उपयोग"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"रिंग का वॉल्यूम"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"नोटिफिकेशन वॉल्‍यूम"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"फ़ोन रिंगटोन"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"डिफ़ॉल्ट नोटिफ़िकेशन ध्वनि"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"डिफ़ॉल्ट अलार्म ध्वनि"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"कॉल के लिए भी कंपन"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"अन्य ध्वनियां"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"डायल पैड टोन"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"प्रवेश नहीं कर पा रहे हैं?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"सिस्टम जानकारी भेजें"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"दोबारा ना दिखाएं"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"इस रूप में अनुरोध किया जा रहा है"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"खाता जोड़ें"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"कार्य प्रोफ़ाइल सेटिंग"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"संपर्क खोज"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"कॉलर और संपर्कों की पहचान करने के लिए अपने संगठन में संपर्क खोज करने दें"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"खाता डेटा स्वतः सिंक करें"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"निजी खाता डेटा स्वतः सिंक करें"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"कार्य खाता डेटा स्वतः सिंक करें"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"खाता सिंक"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"गोपनीयता"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"गोपनीयता"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"आपके कार्यस्थल डेटा का एक्सेस प्रदान करने के लिए, आपका संगठन सेटिंग में बदलाव कर सकता है और आपके डिवाइस पर सॉफ़्टवेयर इंस्टॉल कर सकता है जिसके कारण आपकी कुछ व्यक्तिगत सामग्री आपके व्यवस्थापक को दिखाई दे सकती है. अधिक विवरण के लिए अपने संगठन के व्यवस्थापक से संपर्क करें."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"आपके संगठन को किस प्रकार की जानकारी दिखाई दे सकती है?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"संगठन को दिखाई देने वाली जानकारी किन बदलावों से प्रभावित होती है?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"इस डिवाइस का एक्सेस किन कार्रवाइयों से प्रभावित हो सकता है?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"आपके कार्य खाते से संबद्ध डेटा, जैसे कि ईमेल और कैलेंडर"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"आपके डिवाइस पर मौजूद सभी ऐप्लिकेशन की सूची"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">आपके डिवाइस पर मौजूद सभी <xliff:g id="COUNT_1">%d</xliff:g> ऐप्लिकेशन की सूची</item>
+      <item quantity="other">आपके डिवाइस पर मौजूद सभी <xliff:g id="COUNT_1">%d</xliff:g> ऐप्लिकेशन की सूची</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"आपके डिवाइस पर मौजूद प्रत्येक ऐप्लिकेशन का उपयोग (दिए गए समय और उपयोग किए गए डेटा की मात्रा)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"आपके डिवाइस पर ट्रैफ़िक लॉग"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"आपकी हाल ही की बग रिपोर्ट"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"आपका हाल ही का सुरक्षा लॉग"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"कभी नहीं"</string>
 </resources>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index ec98fa5..acca38e 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"uključivanje zaslona"</item>
     <item msgid="3253368931113490863">"dohvaćanje računa"</item>
     <item msgid="780392378084812901">"izvođenje u pozadini"</item>
+    <item msgid="2629748510881309577">"glasnoća pristupačnosti"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Lokacija"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Uključi zaslon"</item>
     <item msgid="5258373962467495905">"Dohvati račune"</item>
     <item msgid="334625385979270703">"Izvodi u pozadini"</item>
+    <item msgid="9039213578110332702">"Glasnoća pristupačnosti"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Kratko"</item>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 88a8077..8707039 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -151,7 +151,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Dodirnite za povezivanje s uređajem \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Želite li se povezati s uređajem \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Zahtjev za pristup telefonskom imeniku"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Korisnik %1$s želio bi pristupiti vašim kontaktima i povijesti poziva. Dati pristup korisniku %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> želi pristupiti vašim kontaktima i povijesti poziva. Želite li da <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> dobije pristup?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Više me ne pitaj"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Više me ne pitaj"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Zahtjev za pristup porukama"</string>
@@ -272,6 +272,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Postavke"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Postavke"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Prečac postavki"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Nisu pronađene podudarne radnje."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Način rada u zrakoplovu"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Više"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Bežično povezivanje i mreže"</string>
@@ -1311,7 +1312,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Želite li upotrebljavati aplikaciju <xliff:g id="NEW_APP">%1$s</xliff:g>, a ne <xliff:g id="CURRENT_APP">%2$s</xliff:g>, za upravljanje mrežnim vezama?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Želite li upotrebljavati aplikaciju <xliff:g id="NEW_APP">%s</xliff:g> za upravljanje mrežnim vezama?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nepoznati operater SIM kartice"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nema poznatu web-lokaciju za niz usluga"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nema poznatu web-lokaciju za pružanje niza usluga"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Umetnite SIM karticu i pokrenite ponovo"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Povežite se s internetom"</string>
     <string name="location_title" msgid="1029961368397484576">"Moja lokacija"</string>
@@ -1367,8 +1368,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Davatelji satelitskih slika:\n©2014. CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Priručnik"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Došlo je do problema prilikom učitavanja priručnika."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licence trećih strana"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Došlo je do problema s učitavanjem licenci."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Učitavanje…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Sigurnosne informacije"</string>
@@ -1949,7 +1949,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Štednja baterije"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Uključi automatski"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nikada"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Na %1$s baterije"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"na <xliff:g id="PERCENT">%1$s</xliff:g> baterije"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Statistički podaci o procesima"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Detaljni statistički podaci o trenutačnim procesima"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Upotreba memorije"</string>
@@ -2628,10 +2628,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Glasnoća zvona"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Glasnoća obavijesti"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Melodija zvona telefona"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Zadani zvuk obavijesti"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Zadani zvuk alarma"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibracija i za pozive"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Ostali zvukovi"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonovi brojčanika"</string>
@@ -3255,6 +3253,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Ne možete se prijaviti?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Slanje informacija o sustavu"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne prikazuj ponovo"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Zahtjev šalje"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Dodaj račun"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Postavke radnog profila"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pretraživanje kontakata"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Omogućuje pretraživanjima kontakata vaše organizacije da identificiraju pozivatelje i kontakte"</string>
@@ -3330,20 +3330,23 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Autom. sink. podataka o računu"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Autom. sink. osobnog računa"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Autom. sink. radnog računa"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sinkronizacija računa"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privatnost"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privatnost"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Da bi vam omogućila pristup podacima s posla, vaša organizacija može promijeniti postavke i instalirati softver na vašem uređaju, pa bi dio vašeg osobnog sadržaja mogao biti vidljiv administratoru. Više pojedinosti možete saznati od administratora organizacije."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Koju vrstu podataka može vidjeti vaša organizacija?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Koje promjene utječu na ono što organizacija može vidjeti?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Koje radnje mogu utjecati na vaš pristup ovom uređaju?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Podaci povezani s vašim radnim računom, na primjer e-pošta i kalendar"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Popis svih aplikacija na uređaju"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Popis svih aplikacija na uređaju (<xliff:g id="COUNT_1">%d</xliff:g> aplikacija)</item>
+      <item quantity="few">Popis svih aplikacija na uređaju (<xliff:g id="COUNT_1">%d</xliff:g> aplikacije)</item>
+      <item quantity="other">Popis svih <xliff:g id="COUNT_1">%d</xliff:g> aplikacija na uređaju</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Upotreba (utrošeno vrijeme i količina podataka) svake aplikacije na uređaju"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Zapisnici o prometu na uređaju"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Vaše najnovije izvješće o programskoj pogrešci"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Najnoviji sigurnosni zapisnik"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nikada"</string>
 </resources>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index b012555..cff6bd4 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"képernyő bekapcsolása"</item>
     <item msgid="3253368931113490863">"fiókok beszerzése"</item>
     <item msgid="780392378084812901">"futtatás a háttérben"</item>
+    <item msgid="2629748510881309577">"kisegítő lehetőségek – hangerő"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Hely"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Képernyő bekapcsolása"</item>
     <item msgid="5258373962467495905">"Fiókok beszerzése"</item>
     <item msgid="334625385979270703">"Futtatás a háttérben"</item>
+    <item msgid="9039213578110332702">"Kisegítő lehetőségek – hangerő"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Rövid"</item>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 603dec2..1dc1dd9 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Koppintson rá a(z) „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>” eszközhöz való csatlakozáshoz."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Szeretne csatlakozni a következő eszközhöz: \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Telefonkönyv-hozzáférési kérelem"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"A(z) %1$s szeretne hozzáférni névjegyeihez és a híváselőzményekhez. Megadja a hozzáférést a(z) %2$s eszköznek?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"A(z) <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> szeretne hozzáférni az Ön névjegyeihez és híváslistájához. Megadja a hozzáférést a(z) <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> eszköznek?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ne jelenjen meg többé"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ne jelenjen meg többé"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Üzenet-hozzáférési kérelem"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Beállítások"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Beállítások"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Beállítások parancsikon"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Nincs megfelelő tevékenység."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Repülési üzemmód"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Továbbiak"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Vezeték nélküli és egyéb hálózatok"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Szeretné a(z) <xliff:g id="NEW_APP">%1$s</xliff:g> alkalmazást használni a(z) <xliff:g id="CURRENT_APP">%2$s</xliff:g> helyett a hálózati kapcsolatok kezelésére?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Szeretné a(z) <xliff:g id="NEW_APP">%s</xliff:g> alkalmazást használni a hálózati kapcsolatok kezelésére?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Ismeretlen szolgáltató"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s – nincs ismert hozzáférés-kezelő webhely"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nem rendelkezik hozzáférés-kezelő webhellyel"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Helyezze be a SIM-kártyát és indítsa újra"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Csatlakozzon az internethez"</string>
     <string name="location_title" msgid="1029961368397484576">"Saját pozíció"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"A műholdképek szolgáltatói:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Útmutató"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Probléma adódott az útmutató betöltésekor."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Harmadik felek licencei"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Gond van a licencek betöltésével."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Betöltés…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Biztonsági információk"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Akkumulátorkímélő mód"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Automatikus bekapcsolás"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Soha"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s-os töltöttségnél"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> töltöttségnél"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Folyamatstatisztikák"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"A futó folyamatok statisztikái"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Memóriahasználat"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Csengés hangereje"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Értesítés hangereje"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Telefon csengőhangja"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Alapértelmezett értesítőhang"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Alapértelmezett ébresztőhang"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"A hívásoknál rezegjen is"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Egyéb hangok"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"A tárcsázó hangjai"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Nem tud bejelentkezni?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Rendszeradatok elküldése"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne jelenjen meg újra"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Lekérés a következőként:"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Fiók hozzáadása"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Munkaprofil beállításai"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Névjegykeresés"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Névjegykeresés engedélyezése a szervezet számára a hívó felek és ismerősök azonosítása érdekében"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Fiókadat-szinkronizálás"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Személyesfiók-szinkronizálás"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Munkafiók-szinkronizálás"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Fiók szinkronizálása"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Adatvédelem"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Adatvédelem"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Előfordulhat, hogy szervezete módosítja az Ön beállításait, és szoftvereket telepít eszközére annak érdekében, hogy hozzáférést biztosítson munkahelyi adataihoz. Emiatt lehetséges, hogy személyes tartalmai láthatóvá válnak a rendszergazda számára. További információért lépjen kapcsolatba a szervezet rendszergazdájával."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Milyen típusú információkat láthat a szervezete?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Milyen változások befolyásolják, hogy mit láthat szervezete?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Milyen műveletek befolyásolják a hozzáférést az eszközhöz?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"A munkahelyi fiókjához tartozó adatok, pl. e-mail és naptár"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Az eszközön lévő összes alkalmazás listája"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Az eszközén lévő mind a(z) <xliff:g id="COUNT_1">%d</xliff:g> alkalmazásból álló lista</item>
+      <item quantity="one">Az eszközén lévő mind a(z) <xliff:g id="COUNT_0">%d</xliff:g> alkalmazásból álló lista</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Az egyes alkalmazások használata (a használati idő és a felhasznált adatok) eszközén"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Forgalmi naplók eszközén"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Az Ön legutóbbi hibajelentése"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Legutóbbi biztonsági naplója"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Soha"</string>
 </resources>
diff --git a/res/values-hy-rAM/arrays.xml b/res/values-hy-rAM/arrays.xml
index fa941b6..4bc7d6d 100644
--- a/res/values-hy-rAM/arrays.xml
+++ b/res/values-hy-rAM/arrays.xml
@@ -70,7 +70,7 @@
     <item msgid="8934131797783724664">"Սկանավորում…"</item>
     <item msgid="8513729475867537913">"Միանում է..."</item>
     <item msgid="515055375277271756">"Նույնականացում…"</item>
-    <item msgid="1943354004029184381">"IP հասցեն գտնվում է...."</item>
+    <item msgid="1943354004029184381">"IP հասցեի ստացում…"</item>
     <item msgid="4221763391123233270">"Միացված է"</item>
     <item msgid="624838831631122137">"Կասեցված է"</item>
     <item msgid="7979680559596111948">"Անջատվում է…"</item>
@@ -88,7 +88,7 @@
     <item msgid="8937994881315223448">"Միացված է <xliff:g id="NETWORK_NAME">%1$s</xliff:g>-ին"</item>
     <item msgid="1330262655415760617">"Անջատված"</item>
     <item msgid="7698638434317271902">"Անջատվում է <xliff:g id="NETWORK_NAME">%1$s</xliff:g>-ից…"</item>
-    <item msgid="197508606402264311">"Անջատված"</item>
+    <item msgid="197508606402264311">"Անջատած է"</item>
     <item msgid="8578370891960825148">"Անհաջող"</item>
     <item msgid="5660739516542454527">"Արգելափակված"</item>
     <item msgid="1805837518286731242">"Վատ ցանցից ժամանակավոր խուսափում"</item>
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"միացնել էկրանը"</item>
     <item msgid="3253368931113490863">"ստանալ հաշիվները"</item>
     <item msgid="780392378084812901">"աշխատել ֆոնային ռեժիմում"</item>
+    <item msgid="2629748510881309577">"մատչելիության ծավալ"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Տեղակայում"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Միացնել էկրանը"</item>
     <item msgid="5258373962467495905">"Ստանալ հաշիվները"</item>
     <item msgid="334625385979270703">"Աշխատել ֆոնային ռեժիմում"</item>
+    <item msgid="9039213578110332702">"Մատչելիության ծավալ"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Կարճաժամկետ"</item>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 7b45304..f7967de 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Հպեք` «<xliff:g id="DEVICE_NAME">%1$s</xliff:g>»-ին միանալու համար:"</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Ցանկանու՞մ եք միանալ «<xliff:g id="DEVICE_NAME">%1$s</xliff:g>»-ին:"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Հեռախոսագիրք մուտք գործելու հայց"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s-ը ուզում է մուտք գործել ձեր կոնտակտներ ու զանգերի պատմություն: Տա՞լ մուտքի իրավունք %2$s-ին:"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> սարքը ցանկանում է օգտագործել ձեր կոնտակտները և զանգերի պատմությունը: Տրամադրե՞լ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> սարքին այդ թույլտվությունը:"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Նորից չհարցնել"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Նորից չհարցնել"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Հաղորդագրություն մուտք գործելու հայց"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Կարգավորումներ"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Կարգավորումներ"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Կարգավորումների դյուրանցում"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Համընկնող գործողություններ չգտնվեցին:"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Ինքնաթիռի ռեժիմ"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Ավելին"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Անլար կապ և ցանցեր"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Օգտագործե՞լ <xliff:g id="NEW_APP">%1$s</xliff:g> ծրագիրը <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ի փոխարեն՝ ձեր ցանցային կապերը կառավարելու համար:"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Օգտագործե՞լ <xliff:g id="NEW_APP">%s</xliff:g> ծրագիրը՝ ձեր ցանցային կապերը կառավարելու համար:"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Անհայտ SIM օպերատոր"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s-ը չունի ոչ մի ծանոթ նախակարգման վեբկայք"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>-ը չունի ոչ մի ծանոթ նախակարգման վեբկայք"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Խնդրում ենք տեղադրել SIM քարտ և վերագործարկել"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Խնդրում ենք միանալ ինտերնետին"</string>
     <string name="location_title" msgid="1029961368397484576">"Իմ տեղադրությունը"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Արբանյակային պատկերների մատակարարներ՝\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Ձեռքով"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ձեռնարկը բեռնելու խնդիր կա:"</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Երրորդ կողմի լիցենզիաներ"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Խնդիր կա լիցենզիաները բեռնելիս:"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Բեռնում...."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Անվտանգության տեղեկատվություն"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Մարտկոցի էներգախնայիչ"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Ավտոմատ միանալ"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Երբեք"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s մարտկոց"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"մատկոցի <xliff:g id="PERCENT">%1$s</xliff:g> լիցքի դեպքում"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Գործընթացի վիճակագրություն"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Ընթացիկ գործընթացների տեխնիկական վիճակագրություն"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Օգտագործվող հիշողություն"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Զանգի բարձրությունը"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Ծանուցման ձայնի բարձրություն"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Հեռախոսի զանգերանգ"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Ծանուցման կանխադրված ձայնը"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Զարթուցիչի կանխադրված ձայնը"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Նաև թրթռալ զանգերի ժամանակ"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Այլ ձայներ"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Թվաշարի հնչերանգները"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Չե՞ք կարողանում մուտք գործել:"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Ուղարկել համակարգի մասին տեղեկատվություն"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Այլևս ցույց չտալ"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Հարցվում է որպես"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Ավելացնել հաշիվ"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Աշխատանքային պրոֆիլի կարգավորումներ"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Կոնտակտների որոնում"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Թույլատրել ձեր կազմակերպությանը որոնել կոնտակտներ՝ զանգողներին և կոնտակտները նույնականացնելու համար:"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Ինքնահամաժամել հաշվի տվյալները"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Ինքնահամաժամել անձնական հաշվի տվյալները"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Ինքնահամաժամել աշխատանքային հաշվի տվյալները"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Հաշվի համաժամացում"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Գաղտնիություն"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Գաղտնիություն"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Ձեր աշխատանքային տվյալների հասանելիությունն ապահովելու նպատակով ձեր կազմակերպությունը կարող է փոխել սարքի կարգավորումները և տեղադրել ծրագիր, ինչի արդյունքում ձեր անձնական տվյալները կարող են ադմինիստրատորին տեսանելի դառնալ: Լրացուցիչ տեղեկություններ ստանալու համար դիմեք ձեր կազմակերպության ադմինիստրատորին:"</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Ի՞նչ տեսակի տվյալներ կարող է տեսնել ձեր կազմակերպությունը:"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Ո՞ր փոփոխությոններն են ազդում ձեր կազմակերպության համար տեսանելի տվյալների վրա:"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Ի՞նչ գործողություններ կարող են ազդել այս սարք մուտք գործելու ձեր իրավունքի վրա:"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Ձեր աշխատանքային հաշվի հետ առնչվող տվյալներ, օրինակ՝ էլ. փոստ և օրացուից"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Ձեր սարքի բոլոր հավելվածների ցուցակը"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">List of all <xliff:g id="COUNT_1">%d</xliff:g> apps on your device</item>
+      <item quantity="other">Ձեր սարքի բոլոր <xliff:g id="COUNT_1">%d</xliff:g> հավելվածների ցուցակը</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Ձեր սարքի յուրաքանչյուր հավելվածի օգտագործումը (օգտագործման տևողությունը և օգտագործված տվյալների ծավալը)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Ձեր սարքի թրաֆիկի մատյանները"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Ձեր ամենավերջի վրիպակի զեկույցը"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ձեր ամենավերջին անվտանգության մատյանը"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Երբեք"</string>
 </resources>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index dce8434..351c363 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"aktifkan layar"</item>
     <item msgid="3253368931113490863">"dapatkan akun"</item>
     <item msgid="780392378084812901">"jalankan di latar belakang"</item>
+    <item msgid="2629748510881309577">"volume aksesibilitas"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Lokasi"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Aktifkan layar"</item>
     <item msgid="5258373962467495905">"Dapatkan akun"</item>
     <item msgid="334625385979270703">"Jalankan di latar belakang"</item>
+    <item msgid="9039213578110332702">"Volume aksesibilitas"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Singkat"</item>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index e495023..2827d07 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Ketuk untuk menyambung ke \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Sambungkan ke \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Permintaan akses buku telepon"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ingin mengakses kontak dan riwayat panggilan Anda. Berikan akses ke %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ingin mengakses kontak dan histori panggilan. Berikan akses ke <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Jangan tanya lagi"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Jangan tanya lagi"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Permintaan akses pesan"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Setelan"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Setelan"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Pintasan setelan"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Tidak ditemukan aktivitas yang sesuai."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Mode pesawat"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Lainnya"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Jaringan &amp; nirkabel"</string>
@@ -398,8 +399,8 @@
     <string name="crypt_keeper_encrypt_title" product="tablet" msgid="1060273569887301457">"Enkripsi tablet"</string>
     <string name="crypt_keeper_encrypt_title" product="default" msgid="1878996487755806122">"Enkripsi ponsel"</string>
     <string name="crypt_keeper_encrypted_summary" msgid="1868233637888132906">"Dienkripsi"</string>
-    <string name="crypt_keeper_desc" product="tablet" msgid="503014594435731275">"Anda dapat mengenkripsi akun, setelan, aplikasi yang diunduh serta datanya, media, dan file lainnya. Setelah mengenkripsi tablet, anggaplah Anda telah menyiapkan kunci layar (pola, PIN numerik, atau sandi), Anda perlu membuka layar untuk mendekripsi tablet setiap kali menyalakannya. Satu-satunya cara lain untuk mendekripsi adalah mengembalikannya ke setelan pabrik yang akan menghapus semua data Anda.\n\nProses enkripsi membutuhkan waktu satu jam atau lebih. Anda perlu memulainya dengan baterai yang terisi penuh dan mencolokkan tablet ke sumber listrik selama proses berlangsung. Jika Anda menghentikannya, semua atau beberapa data Anda akan hilang."</string>
-    <string name="crypt_keeper_desc" product="default" msgid="2579929266645543631">"Anda dapat mengenkripsi akun, setelan, aplikasi yang diunduh serta datanya, media, dan file lainnya. Setelah mengenkripsi ponsel, anggaplah Anda telah menyiapkan kunci layar (pola, PIN numerik, atau sandi), Anda perlu membuka layar untuk mendekripsi ponsel setiap kali menyalakannya. Satu-satunya cara lain untuk mendekripsi adalah mengembalikannya ke setelan pabrik yang akan menghapus semua data Anda.\n\nProses enkripsi membutuhkan waktu satu jam atau lebih. Anda perlu memulainya dengan baterai yang terisi penuh dan mencolokkan ponsel ke sumber listrik selama proses berlangsung. Jika Anda menghentikannya, semua atau beberapa data Anda akan hilang."</string>
+    <string name="crypt_keeper_desc" product="tablet" msgid="503014594435731275">"Anda dapat mengenkripsi akun, setelan, aplikasi yang didownload serta datanya, media, dan file lainnya. Setelah mengenkripsi tablet, anggaplah Anda telah menyiapkan kunci layar (pola, PIN numerik, atau sandi), Anda perlu membuka layar untuk mendekripsi tablet setiap kali menyalakannya. Satu-satunya cara lain untuk mendekripsi adalah mengembalikannya ke setelan pabrik yang akan menghapus semua data Anda.\n\nProses enkripsi membutuhkan waktu satu jam atau lebih. Anda perlu memulainya dengan baterai yang terisi penuh dan mencolokkan tablet ke sumber listrik selama proses berlangsung. Jika Anda menghentikannya, semua atau beberapa data Anda akan hilang."</string>
+    <string name="crypt_keeper_desc" product="default" msgid="2579929266645543631">"Anda dapat mengenkripsi akun, setelan, aplikasi yang didownload serta datanya, media, dan file lainnya. Setelah mengenkripsi ponsel, anggaplah Anda telah menyiapkan kunci layar (pola, PIN numerik, atau sandi), Anda perlu membuka layar untuk mendekripsi ponsel setiap kali menyalakannya. Satu-satunya cara lain untuk mendekripsi adalah mengembalikannya ke setelan pabrik yang akan menghapus semua data Anda.\n\nProses enkripsi membutuhkan waktu satu jam atau lebih. Anda perlu memulainya dengan baterai yang terisi penuh dan mencolokkan ponsel ke sumber listrik selama proses berlangsung. Jika Anda menghentikannya, semua atau beberapa data Anda akan hilang."</string>
     <string name="crypt_keeper_button_text" product="tablet" msgid="1189623490604750854">"Enkripsi tablet"</string>
     <string name="crypt_keeper_button_text" product="default" msgid="2008346408473255519">"Enkripsi ponsel"</string>
     <string name="crypt_keeper_low_charge_text" msgid="2029407131227814893">"Isi daya baterai Anda dan coba lagi."</string>
@@ -783,9 +784,9 @@
     <string name="wifi_cancel" msgid="6763568902542968964">"Batal"</string>
     <string name="wifi_skip_anyway" msgid="6965361454438011190">"Lewati saja"</string>
     <string name="wifi_dont_skip" msgid="3615535136327231588">"Kembali"</string>
-    <string name="wifi_skipped_message" product="tablet" msgid="6761689889733331124">"PERINGATAN: jika Anda melompati Wi‑Fi, tablet Anda hanya akan menggunakan data seluler untuk unduhan dan pembaruan awal. Untuk menghindari kemungkinan biaya data, sambungkan ke Wi‑Fi."</string>
-    <string name="wifi_skipped_message" product="device" msgid="1385490367826852775">"PERINGATAN: jika Anda melompati Wi‑Fi, perangkat Anda hanya akan menggunakan data seluler untuk unduhan dan pembaruan awal. Untuk menghindari kemungkinan biaya data, sambungkan ke Wi‑Fi."</string>
-    <string name="wifi_skipped_message" product="default" msgid="6084295135297772350">"PERINGATAN: jika Anda melompati Wi‑Fi, ponsel Anda hanya akan menggunakan data seluler untuk unduhan atau pembaruan awal. Untuk menghindari kemungkinan biaya data, sambungkan ke Wi‑Fi."</string>
+    <string name="wifi_skipped_message" product="tablet" msgid="6761689889733331124">"PERINGATAN: jika Anda melompati Wi‑Fi, tablet Anda hanya akan menggunakan data seluler untuk download dan pembaruan awal. Untuk menghindari kemungkinan biaya data, sambungkan ke Wi‑Fi."</string>
+    <string name="wifi_skipped_message" product="device" msgid="1385490367826852775">"PERINGATAN: jika Anda melompati Wi‑Fi, perangkat Anda hanya akan menggunakan data seluler untuk download dan pembaruan awal. Untuk menghindari kemungkinan biaya data, sambungkan ke Wi‑Fi."</string>
+    <string name="wifi_skipped_message" product="default" msgid="6084295135297772350">"PERINGATAN: jika Anda melompati Wi‑Fi, ponsel Anda hanya akan menggunakan data seluler untuk download atau pembaruan awal. Untuk menghindari kemungkinan biaya data, sambungkan ke Wi‑Fi."</string>
     <string name="wifi_and_mobile_skipped_message" product="tablet" msgid="6324917391996718760">"Jika Anda mengabaikan Wi‑Fi:\n\n"<li>"Tablet tidak akan memiliki sambungan internet."</li>\n\n<li>"Anda tidak akan mendapatkan pembaruan perangkat lunak jika tidak tersambung ke internet."</li>\n\n<li>"Anda tidak dapat mengaktifkan fitur perlindungan perangkat saat ini."</li></string>
     <string name="wifi_and_mobile_skipped_message" product="device" msgid="1110629752293998468">"Jika Anda mengabaikan Wi‑Fi:\n\n"<li>"Perangkat tidak akan memiliki sambungan internet."</li>\n\n<li>"Anda tidak akan mendapatkan pembaruan perangkat lunak jika tidak tersambung ke internet."</li>\n\n<li>"Anda tidak dapat mengaktifkan fitur perlindungan perangkat saat ini."</li></string>
     <string name="wifi_and_mobile_skipped_message" product="default" msgid="8271524692702309267">"Jika Anda mengabaikan Wi‑Fi:\n\n"<li>"Ponsel tidak akan memiliki sambungan internet."</li>\n\n<li>"Anda tidak akan mendapatkan pembaruan perangkat lunak jika tidak tersambung ke internet."</li>\n\n<li>"Anda tidak dapat mengaktifkan fitur perlindungan perangkat saat ini."</li></string>
@@ -1069,7 +1070,7 @@
     <string name="memory_calculating_size" msgid="2188358544203768588">"Menghitung..."</string>
     <string name="memory_apps_usage" msgid="5128673488173839077">"Aplikasi &amp; data aplikasi"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Media"</string>
-    <string name="memory_downloads_usage" msgid="3755173051677533027">"Unduhan"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Download"</string>
     <string name="memory_dcim_usage" msgid="558887013613822577">"Gambar, video"</string>
     <string name="memory_music_usage" msgid="1363785144783011606">"Audio (musik, nada dering, podcast, dll.)"</string>
     <string name="memory_media_misc_usage" msgid="6094866738586451683">"File lainnya"</string>
@@ -1155,7 +1156,7 @@
     <string name="storage_detail_other" msgid="8404938385075638238">"Lainnya"</string>
     <string name="storage_detail_system" msgid="4629506366064709687">"Sistem"</string>
     <string name="storage_detail_explore" msgid="7911344011431568294">"Jelajahi <xliff:g id="NAME">^1</xliff:g>"</string>
-    <string name="storage_detail_dialog_other" msgid="8907101974576694793">"Lainnya meliputi file bersama yang disimpan oleh aplikasi, file yang diunduh dari internet atau Bluetooth, file Android, dan sebagainya. \n\nUntuk melihat konten yang terlihat dari <xliff:g id="NAME">^1</xliff:g> ini, tap Jelajahi."</string>
+    <string name="storage_detail_dialog_other" msgid="8907101974576694793">"Lainnya meliputi file bersama yang disimpan oleh aplikasi, file yang didownload dari internet atau Bluetooth, file Android, dan sebagainya. \n\nUntuk melihat konten yang terlihat dari <xliff:g id="NAME">^1</xliff:g> ini, tap Jelajahi."</string>
     <string name="storage_detail_dialog_system" msgid="3417679651116003900">"Sistem meliputi file yang tidak dapat ditampilkan Android satu per satu."</string>
     <string name="storage_detail_dialog_user" msgid="1675756743326079688">"<xliff:g id="USER_0">^1</xliff:g> mungkin telah menyimpan foto, musik, film, aplikasi atau data lain yang menghabiskan <xliff:g id="SIZE">^2</xliff:g> penyimpanan. \n\nUntuk melihat detailnya, beralihlah ke <xliff:g id="USER_1">^1</xliff:g>."</string>
     <string name="storage_wizard_init_title" msgid="5085400514028585772">"Siapkan <xliff:g id="NAME">^1</xliff:g>"</string>
@@ -1241,8 +1242,8 @@
     <string name="reset_network_complete_toast" msgid="787829973559541880">"Setelan jaringan telah disetel ulang"</string>
     <string name="device_reset_title" msgid="2384019005638768076">"Setel ulang perangkat"</string>
     <string name="master_clear_title" msgid="5907939616087039756">"Kembalikan ke setelan pabrik"</string>
-    <string name="master_clear_desc" product="tablet" msgid="9146059417023157222">"Ini akan menghapus semua data dari "<b>"penyimpanan internal"</b>" tablet Anda, termasuk:\n\n"<li>"Akun Google Anda"</li>\n<li>"Data sistem dan apl serta setelan"</li>\n<li>"Apl unduhan"</li></string>
-    <string name="master_clear_desc" product="default" msgid="4800386183314202571">"Ini akan menghapus semua data dari "<b>"penyimpanan internal"</b>" ponsel Anda, termasuk:\n\n"<li>"Akun Google Anda"</li>\n<li>"Data sistem dan apl serta setelan"</li>\n<li>"Apl unduhan"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="9146059417023157222">"Ini akan menghapus semua data dari "<b>"penyimpanan internal"</b>" tablet Anda, termasuk:\n\n"<li>"Akun Google Anda"</li>\n<li>"Data sistem dan apl serta setelan"</li>\n<li>"Apl download"</li></string>
+    <string name="master_clear_desc" product="default" msgid="4800386183314202571">"Ini akan menghapus semua data dari "<b>"penyimpanan internal"</b>" ponsel Anda, termasuk:\n\n"<li>"Akun Google Anda"</li>\n<li>"Data sistem dan apl serta setelan"</li>\n<li>"Apl download"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Saat ini Anda telah masuk ke akun berikut ini:\n"</string>
     <string name="master_clear_other_users_present" product="default" msgid="5161423070702470742">\n\n"Ada pengguna lain yang aktif di perangkat ini.\n"</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musik"</li>\n<li>"Foto"</li>\n<li>"Data pengguna lainnya"</li></string>
@@ -1253,8 +1254,8 @@
     <string name="erase_external_storage_description" product="nosdcard" msgid="4728558173931599429">"Hapus semua data di penyimpanan USB internal, seperti musik atau foto."</string>
     <string name="erase_external_storage_description" product="default" msgid="1737638779582964966">"Hapus semua data di kartu SD, seperti musik atau foto"</string>
     <string name="master_clear_button_text" product="tablet" msgid="3130786116528304116">"Setel ulang tablet"</string>
-    <string name="master_clear_button_text" product="default" msgid="7550632653343157971">"Setel ulang telepon"</string>
-    <string name="master_clear_final_desc" msgid="7318683914280403086">"Hapus semua informasi pribadi dan aplikasi yang diunduh? Tindakan ini tidak dapat diurungkan!"</string>
+    <string name="master_clear_button_text" product="default" msgid="7550632653343157971">"Setel ulang ponsel"</string>
+    <string name="master_clear_final_desc" msgid="7318683914280403086">"Hapus semua informasi pribadi dan aplikasi yang didownload? Tindakan ini tidak dapat diurungkan!"</string>
     <string name="master_clear_final_button_text" msgid="5390908019019242910">"Hapus semua"</string>
     <string name="master_clear_failed" msgid="2503230016394586353">"Penyetelan ulang tidak dilakukan karena layanan System Clear tidak tersedia."</string>
     <string name="master_clear_confirm_title" msgid="7572642091599403668">"Setel ulang?"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> sebagai ganti <xliff:g id="CURRENT_APP">%2$s</xliff:g> untuk mengelola sambungan jaringan?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Gunakan <xliff:g id="NEW_APP">%s</xliff:g> untuk mengelola sambungan jaringan?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operator SIM tidak dikenal"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s tak punya situs web penyediaan yang dikenal"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> tidak punya situs web penyediaanyang dikenal"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Masukkan kartu SIM dan mulai ulang"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Sambungkan ke internet"</string>
     <string name="location_title" msgid="1029961368397484576">"Lokasiku"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Penyedia citra satelit:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ada masalah saat memuat manual."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Lisensi pihak ketiga"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Ada masalah saat memuat lisensi."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Memuat…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Informasi keselamatan"</string>
@@ -1493,7 +1493,7 @@
     <string name="filter_dlg_title" msgid="8693024463731076091">"Pilih opsi filter"</string>
     <string name="filter_apps_all" msgid="5142129378749391876">"Semua"</string>
     <string name="filter_apps_disabled" msgid="5364447573326472890">"Dinonaktifkan"</string>
-    <string name="filter_apps_third_party" msgid="7786348047690140979">"Terunduh"</string>
+    <string name="filter_apps_third_party" msgid="7786348047690140979">"Terdownload"</string>
     <string name="filter_apps_running" msgid="7767071454371350486">"Menjalankan"</string>
     <string name="filter_apps_onsdcard" product="nosdcard" msgid="4843063154701023349">"Penyimpanan USB"</string>
     <string name="filter_apps_onsdcard" product="default" msgid="1477351142334784771">"Pada kartu SD"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Penghemat baterai"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Aktifkan secara otomatis"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Tidak pernah"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"saat baterai %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"jika <xliff:g id="PERCENT">%1$s</xliff:g> baterai"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Statistik Proses"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Statistik teknis tentang proses yang berjalan"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Penggunaan memori"</string>
@@ -2250,7 +2250,7 @@
     <string name="data_usage_total_during_range_mobile" product="tablet" msgid="1925687342154538972">"<xliff:g id="RANGE">%2$s</xliff:g>: sekitar <xliff:g id="TOTAL">%1$s</xliff:g> yang digunakan menurut tablet. Hitungan data operator dapat berbeda."</string>
     <string name="data_usage_total_during_range_mobile" product="default" msgid="5063981061103812900">"<xliff:g id="RANGE">%2$s</xliff:g>: sekitar <xliff:g id="TOTAL">%1$s</xliff:g> yang digunakan menurut ponsel. Hitungan data operator dapat berbeda."</string>
     <string name="data_usage_metered_title" msgid="7383175371006596441">"Batasan jaringan"</string>
-    <string name="data_usage_metered_body" msgid="3262343834446126044">"Jaringan terukur diperlakukan seperti seluler jika data latar belakang dibatasi. Aplikasi mungkin memberi peringatan sebelum menggunakan jaringan ini untuk unduhan yang besar."</string>
+    <string name="data_usage_metered_body" msgid="3262343834446126044">"Jaringan terukur diperlakukan seperti seluler jika data latar belakang dibatasi. Aplikasi mungkin memberi peringatan sebelum menggunakan jaringan ini untuk download yang besar."</string>
     <string name="data_usage_metered_mobile" msgid="2326986339431119372">"Jaringan seluler"</string>
     <string name="data_usage_metered_wifi" msgid="1761738002328299714">"Jaringan Wi‑Fi terukur"</string>
     <string name="data_usage_metered_wifi_disabled" msgid="727808462375941567">"Untuk memilih jaringan terukur, aktifkan Wi‑Fi."</string>
@@ -2579,7 +2579,7 @@
     <string name="keywords_reset_apps" msgid="5293291209613191845">"setel ulang, preferensi, default"</string>
     <string name="keywords_emergency_app" msgid="3143078441279044780">"darurat, es, aplikasi, default"</string>
     <string name="keywords_default_phone_app" msgid="4213090563141778486">"ponsel, telepon, default"</string>
-    <string name="keywords_all_apps" msgid="7814015440655563156">"apl unduh aplikasi sistem"</string>
+    <string name="keywords_all_apps" msgid="7814015440655563156">"apl download aplikasi sistem"</string>
     <string name="keywords_app_permissions" msgid="4229936435938011023">"aplikasi, izin, keamanan"</string>
     <string name="keywords_default_apps" msgid="223872637509160136">"aplikasi, default"</string>
     <string name="keywords_ignore_optimizations" msgid="6102579291119055029">"abaikan, pengoptimalan, istirahatkan, aplikasi siaga"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume dering"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volume notifikasi"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Nada dering ponsel"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Suara notifikasi default"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Suara alarm default"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Getarkan juga untuk panggilan"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Suara lainnya"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Nada tombol nomor"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Tidak dapat masuk?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Kirim informasi sistem"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Jangan tampilkan lagi"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Meminta sebagai"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Tambahkan akun"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Setelan profil kerja"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Penelusuran kontak"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Izinkan penelusuran kontak oleh organisasi untuk mengidentifikasi penelepon dan kontak"</string>
@@ -3282,8 +3282,8 @@
     <string name="oem_unlock_enable_disabled_summary_connectivity_or_locked" msgid="5884723935668892613">"Sambungkan ke internet atau hubungi operator"</string>
     <string name="oem_unlock_enable_disabled_summary_sim_locked_device" msgid="4149387448213399630">"Tidak tersedia pada perangkat yang dikunci oleh operator"</string>
     <string name="automatic_storage_manager_freed_bytes" msgid="7517560170441007788">"<xliff:g id="SIZE">%1$s</xliff:g> total dibuat tersedia\n\nTerakhir dijalankan pada <xliff:g id="DATE">%2$s</xliff:g>"</string>
-    <string name="automatic_storage_manager_downloads_days_title" msgid="8899594124034695459">"Hapus unduhan"</string>
-    <string name="downloads_backup_preference_title" msgid="2312237179341156671">"Cadangan unduhan"</string>
+    <string name="automatic_storage_manager_downloads_days_title" msgid="8899594124034695459">"Hapus download"</string>
+    <string name="downloads_backup_preference_title" msgid="2312237179341156671">"Cadangan download"</string>
     <string name="downloads_backup_text" msgid="8351770128253816819"></string>
     <string name="web_action_enable_title" msgid="8502552575492048305">"Buka tautan di aplikasi"</string>
     <string name="web_action_enable_summary" msgid="4679844581193646863">"Buka tautan di aplikasi yang didukung, meski aplikasi tidak terpasang di perangkat"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Sinkron otomatis data akun"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinkron otomatis data akun pribadi"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinkron otomatis data akun kerja"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sinkronisasi akun"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privasi"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privasi"</string>
-    <string name="enterprise_privacy_header" msgid="5605095630252702716">"Untuk menyediakan akses ke data kerja, organisasi mungkin mengubah setelan dan memasang perangkat lunak di perangkat Anda, sehingga menyebabkan beberapa konten pribadi dapat dilihat oleh admin. Hubungi admin organisasi untuk detail selengkapnya."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_header" msgid="5605095630252702716">"Untuk menyediakan akses ke data kerja, organisasi mungkin mengubah setelan dan memasang software di perangkat Anda, sehingga menyebabkan beberapa konten pribadi dapat dilihat oleh admin. Hubungi admin organisasi untuk informasi selengkapnya."</string>
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Informasi jenis apa yang dapat dilihat organisasi?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Apa yang memengaruhi informasi yang dapat dilihat organisasi?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Tindakan apa yang mungkin memengaruhi akses ke perangkat ini?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data yang terkait dengan akun kerja, seperti email dan kalender"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Daftar semua aplikasi di perangkat"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Daftar semua <xliff:g id="COUNT_1">%d</xliff:g> aplikasi di perangkat</item>
+      <item quantity="one">Daftar semua <xliff:g id="COUNT_0">%d</xliff:g> aplikasi di perangkat</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Penggunaan (waktu yang dihabiskan dan jumlah data yang digunakan) tiap aplikasi di perangkat"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Log lalu lintas jaringan di perangkat"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Laporan bug terbaru"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Log keamanan terbaru"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Tidak pernah"</string>
 </resources>
diff --git a/res/values-is-rIS/arrays.xml b/res/values-is-rIS/arrays.xml
index d5bda57..be09e61 100644
--- a/res/values-is-rIS/arrays.xml
+++ b/res/values-is-rIS/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"kveikja á skjánum"</item>
     <item msgid="3253368931113490863">"fá reikninga"</item>
     <item msgid="780392378084812901">"keyra í bakgrunni"</item>
+    <item msgid="2629748510881309577">"hljóðstyrkur aðgengis"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Staðsetning"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Kveikja á skjánum"</item>
     <item msgid="5258373962467495905">"Fá reikninga"</item>
     <item msgid="334625385979270703">"Keyra í bakgrunni"</item>
+    <item msgid="9039213578110332702">"Hljóðstyrkur aðgengis"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Stutt"</item>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index 1e4cf41..f2fe89e 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Ýttu til að tengjast „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Viltu tengjast „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Beiðni um aðgang að símaskrá"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s vill fá aðgang að tengiliðunum þínum og símtalaferli. Veita %2$s aðgang?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> vill fá aðgang að tengiliðunum þínum og símtalaferlinum. Viltu veita <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> aðgang?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ekki spyrja aftur"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ekki spyrja aftur"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Beiðni um skilaboðaaðgang"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Stillingar"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Stillingar"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Flýtileið stillinga"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Engar aðgerðir með samsvörun fundust."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Flugstilling"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Meira"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Þráðlaus net og símkerfi"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Nota <xliff:g id="NEW_APP">%1$s</xliff:g> í stað <xliff:g id="CURRENT_APP">%2$s</xliff:g> til að stjórna nettengingunum þínum?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Nota <xliff:g id="NEW_APP">%s</xliff:g> til að stjórna nettengingunum þínum?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Óþekkt símafyrirtæki SIM-korts"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s er ekki með neitt þekkt úthlutunarvefsvæði"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> er ekki með neitt þekkt úthlutunarvefsvæði"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Settu SIM-kortið í og endurræstu"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Tengdu tækið við netið"</string>
     <string name="location_title" msgid="1029961368397484576">"Staðsetningin mín"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Gervihnattamyndir frá:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Handbók"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Vandamál kom upp við að hlaða handbókina."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Leyfi þriðju aðila"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Vandamál kom upp við að hlaða leyfin."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Hleður…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Öryggisupplýsingar"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Rafhlöðusparnaður"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Kveikja sjálfkrafa"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Aldrei"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"þegar hleðsla rafhlöðu er %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"við <xliff:g id="PERCENT">%1$s</xliff:g> rafhlöðu"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Tölfræði vinnsluferla"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Nördaleg tölfræði um opin vinnsluferli"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Minnisnotkun"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Hljóðstyrkur hringingar"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Hljóðstyrkur tilkynninga"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Hringitónn síma"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Sjálfgefið hljóð tilkynninga"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Sjálfgefið hljóð í vekjara"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Titra líka fyrir símtöl"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Önnur hljóð"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tónar takkaborðs"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Geturðu ekki skráð þig inn?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Senda kerfisupplýsingar"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ekki birta aftur"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Beðið um sem"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Bæta reikningi við"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Stillingar vinnusniðs"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Tengiliðaleit"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Leyfa fyrirtækinu þínu að leita í tengiliðum til að bera kennsl á þá sem hringja og tengiliði"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Samst. reikningsg. sjálfkrafa"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Samst. einkareikng. sjálfkr."</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Samst. vinnureikngögn sjálfkr."</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Samstilling reiknings"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Persónuvernd"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Persónuvernd"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Til að veita aðgang að vinnugögnunum þínum gæti fyrirtækið þitt breytt stillingum og sett upp forrit í tækinu þínu, sem gæti valdið því að persónulegt efni þitt yrði sýnilegt kerfisstjóra. Hafðu samband við kerfisstjóra fyrirtækisins til að fá frekari upplýsingar."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Hvers konar upplýsingar getur fyrirtækið þitt séð?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Hvaða breytingar hafa áhrif á hvað fyrirtækið þitt getur séð?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Hvaða aðgerðir gætu haft áhrif á aðgang þinn að tækinu þínu?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Gögn sem tengjast vinnureikningnum, eins og tölvupóst og dagatal"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista með öllum forritum í tækinu þínu"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Lista með öllum <xliff:g id="COUNT_1">%d</xliff:g> forritinu í tækinu þínu</item>
+      <item quantity="other">Lista með öllum <xliff:g id="COUNT_1">%d</xliff:g> forritunum á tækinu þínu</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Notkun (hversu miklum tíma er varið og hversu mikið af gögnum er notað) fyrir hvert forrit í tækinu þínu"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Umferðarannála í tækinu þínu"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Nýlegasta villutilkynningin"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Nýjasta öryggisannálinn þinn"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Aldrei"</string>
 </resources>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index 5b14b32..a934526 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"attivazione dello schermo"</item>
     <item msgid="3253368931113490863">"recupero di account"</item>
     <item msgid="780392378084812901">"esecuzione in background"</item>
+    <item msgid="2629748510881309577">"volume accessibilità"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Posizione"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Attivazione dello schermo"</item>
     <item msgid="5258373962467495905">"Recupero di account"</item>
     <item msgid="334625385979270703">"Esecuzione in background"</item>
+    <item msgid="9039213578110332702">"Volume accessibilità"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Breve"</item>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index cd69a48..b9d432f 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tocca per connetterti a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Vuoi connetterti a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Richiesta di accesso alla rubrica"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s desidera accedere ai tuoi contatti e alla tua cronologia chiamate. Consentire l\'accesso a %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> desidera accedere ai tuoi contatti e alla tua cronologia chiamate. Consentire l\'accesso al dispositivo <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Non chiedermelo più"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Non chiedermelo più"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Richiesta di accesso ai messaggi"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Impostazioni"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Impostazioni"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Scorciatoia Impostazioni"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Nessuna attività corrispondente trovata."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Modalità aereo"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Altro"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wireless e reti"</string>
@@ -761,7 +762,7 @@
     <string name="wifi_wps_available_second_item" msgid="8427520131718215301">" (WPS disponibile)"</string>
     <string name="wifi_wps_nfc_enter_password" msgid="2288214226916117159">"Inserisci la password di rete"</string>
     <string name="wifi_scan_always_turnon_message" msgid="203123538572122989">"Per migliorare la precisione della posizione e per altri scopi, <xliff:g id="APP_NAME">%1$s</xliff:g> chiede di attivare la ricerca della rete, anche quando il Wi-Fi è disattivato.\n\nConsetirlo a tutte le app che vogliono eseguire la ricerca?"</string>
-    <string name="wifi_scan_always_turnoff_message" msgid="5538901671131941043">"Per disattivare questa impostazione, vai alla sezione Avanzate nel menu di overflow."</string>
+    <string name="wifi_scan_always_turnoff_message" msgid="5538901671131941043">"Per disattivare questa impostazione, vai alla sezione Avanzate nel menu extra."</string>
     <string name="wifi_scan_always_confirm_allow" msgid="5355973075896817232">"Consenti"</string>
     <string name="wifi_scan_always_confirm_deny" msgid="4463982053823520710">"Rifiuta"</string>
     <string name="wifi_hotspot_title" msgid="7726205804813286950">"Accedere per connettersi?"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Utilizzare <xliff:g id="NEW_APP">%1$s</xliff:g> invece di <xliff:g id="CURRENT_APP">%2$s</xliff:g> per gestire le connessioni di rete?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Utilizzare <xliff:g id="NEW_APP">%s</xliff:g> per gestire le connessioni di rete?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operatore SIM sconosciuto"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Nessun sito web di provisioning per %1$s"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Nessun sito web di provisioning per <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Inserisci la scheda SIM e riavvia"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Connettiti a Internet"</string>
     <string name="location_title" msgid="1029961368397484576">"La mia posizione"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Fornitori di immagini satellitari:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manuale"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Si è verificato un problema durante il caricamento del manuale."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenze di terze parti"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Errore durante il caricamento delle licenze."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Caricamento..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Informazioni sulla sicurezza"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Risparmio energetico"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Attiva automaticamente"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Mai"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"al %1$s di batteria"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"al seguente livello di carica: <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Statistiche sui processi"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Statistiche tecniche sui processi in esecuzione"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Memoria usata"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume suoneria"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volume notifiche"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Suoneria telefono"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Suono di notifica predefinito"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Suono sveglia predefinito"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrazione per le chiamate"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Altri suoni"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Toni tastierino"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Non riesci ad accedere?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Invia informazioni sul sistema"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Non mostrare più"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Richiesta come"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Aggiungi account"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Impostazioni profilo di lavoro"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Ricerca di contatti"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Consenti ricerche di contatti in base all\'organizzazione per identificare chiamanti e contatti"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Sincr. automatica dati account"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sincr. automat. dati account pers."</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sincr. automat. dati account lavoro"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sincronizzazione account"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacy"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacy"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Per fornire l\'accesso ai tuoi dati di lavoro, la tua organizzazione può modificare le impostazioni e installare un programma software sul tuo dispositivo. In questo modo alcuni dei tuoi contenuti personali potrebbero essere visibili all\'amministratore. Contatta l\'amministratore dell\'organizzazione per ulteriori dettagli."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Quali tipi di dati sono visibili alla tua organizzazione?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Quali modifiche influiscono su ciò che può vedere la tua organizzazione?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Quali azioni influsicono sull\'accesso a questo dispositivo?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dati associati al tuo account di lavoro, ad esempio email e calendario."</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Elenco di tutte le app sul tuo dispositivo"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Elenco di tutte le app sul dispositivo (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="one">Elenco di tutte le app sul dispositivo (<xliff:g id="COUNT_0">%d</xliff:g>)</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Utilizzo (tempo di utilizzo e quantità di dati consumati) per ciascuna app sul tuo dispositivo"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Log relativi al traffico sul tuo dispositivo"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"La tua segnalazione di bug più recente"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Il tuo log di sicurezza più recente"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Mai"</string>
 </resources>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index bea70fd..087cccf 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"הפעלת מסך"</item>
     <item msgid="3253368931113490863">"קבלת חשבונות"</item>
     <item msgid="780392378084812901">"הרצה ברקע"</item>
+    <item msgid="2629748510881309577">"עוצמת קול של נגישות"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"מיקום"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"הפעלת מסך"</item>
     <item msgid="5258373962467495905">"קבלת חשבונות"</item>
     <item msgid="334625385979270703">"הרצה ברקע"</item>
+    <item msgid="9039213578110332702">"עוצמת קול של נגישות"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"קצר"</item>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 9cc0336..1b28fbb 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -152,7 +152,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"הקש כדי להתחבר אל \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"האם ברצונך להתחבר אל \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"בקשת גישה לספר טלפונים"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"‏%1$s רוצה לגשת לאנשי הקשר ולהיסטוריית השיחות שלך. האם להעניק ל-%2$s גישה?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> רוצה לגשת אל אנשי הקשר ולהיסטוריית השיחות שלך. האם לתת הרשאה ל-<xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"אל תשאל שוב"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"אל תשאל שוב"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"בקשת גישה להודעות"</string>
@@ -274,6 +274,7 @@
     <string name="settings_label" msgid="1626402585530130914">"הגדרות"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"הגדרות"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"קיצור דרך של הגדרות"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"לא נמצאו פעילויות תואמות."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"מצב טיסה"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"עוד"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"אלחוטי ורשתות"</string>
@@ -1321,7 +1322,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"האם להשתמש ב-<xliff:g id="NEW_APP">%1$s</xliff:g> במקום ב-<xliff:g id="CURRENT_APP">%2$s</xliff:g> כדי לנהל את חיבורי הרשת שלך?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"האם להשתמש ב-<xliff:g id="NEW_APP">%s</xliff:g> כדי לנהל את חיבורי הרשת שלך?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"‏מפעיל SIM לא ידוע"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"‏ל-%1$s אין אתר מוכר לניהול תצורה"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"ל-<xliff:g id="OPERATOR">%1$s</xliff:g> אין אתר ידוע לניהול תצורה"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"‏הכנס כרטיס SIM ואתחל"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"התחבר לאינטרנט"</string>
     <string name="location_title" msgid="1029961368397484576">"המיקום שלי"</string>
@@ -1377,8 +1378,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"‏ספקים של צילומי לוויין:\n‎©2014 CNES / Astrium‏, DigitalGlobe‏, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"ידני"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"יש בעיה בטעינת המדריך."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"רישיונות צד שלישי"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"יש בעיה בטעינת הרישיון."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"טוען..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"מידע על בטיחות"</string>
@@ -1966,7 +1966,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"חיסכון בסוללה"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"הפעל אוטומטית"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"אף פעם"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"‏בעוצמת סוללה של %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"סוללה ברמת טעינה של <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"סטטיסטיקה של תהליך"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"סטטיסטיקה של מומחי מחשבים על התהליכים הפועלים"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"זיכרון בשימוש"</string>
@@ -2652,10 +2652,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"עוצמת צלצול"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"עוצמת קול של הודעות"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"רינגטון של טלפון"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"צליל ברירת המחדל להודעות"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"צליל ברירת המחדל להתראה"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"הפעל גם רטט עבור שיחות"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"צלילים אחרים"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"צלילים של לוח חיוג"</string>
@@ -3289,6 +3287,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"לא מצליח להיכנס?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"שליחת פרטי מערכת"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"אל תציג שוב"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"מבקש בשם"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"הוסף חשבון"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"הגדרות של פרופיל עבודה"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"חיפוש אנשי קשר"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"אפשר לחיפושי אנשי קשר שמבצע הארגון לזהות מתקשרים ואנשי קשר"</string>
@@ -3329,33 +3329,24 @@
     <string name="gesture_preference_summary" product="default" msgid="8627850388011956901">"תנועות מהירות לשליטה בטלפון"</string>
     <string name="gesture_preference_summary" product="tablet" msgid="4717535378272065510">"תנועות מהירות לשליטה בטאבלט"</string>
     <string name="gesture_preference_summary" product="device" msgid="4205941452664950852">"תנועות מהירות לשליטה במכשיר"</string>
-    <!-- no translation found for double_tap_power_for_camera_title (64716226816032800) -->
-    <skip />
-    <!-- no translation found for double_tap_power_for_camera_summary (242037150983277829) -->
-    <skip />
+    <string name="double_tap_power_for_camera_title" msgid="64716226816032800">"הפעלה מיידית של המצלמה"</string>
+    <string name="double_tap_power_for_camera_summary" msgid="242037150983277829">"כדי לפתוח את המצלמה במהירות, לחץ פעמיים על לחצן ההפעלה. זה פועל בכל מסך."</string>
     <string name="double_twist_for_camera_mode_title" msgid="4877834147983530479">"מעבר בין מצלמות"</string>
     <string name="double_twist_for_camera_mode_summary" msgid="122977081337563340"></string>
     <string name="ambient_display_title" product="default" msgid="5144814600610448504">"הקשה כפולה לבדיקת הטלפון"</string>
     <string name="ambient_display_title" product="tablet" msgid="8688795028609563837">"הקשה כפולה לבדיקת הטאבלט"</string>
     <string name="ambient_display_title" product="device" msgid="3423781975742145894">"הקשה כפולה לבדיקת המכשיר"</string>
-    <!-- no translation found for ambient_display_summary (2521630136233865893) -->
-    <skip />
+    <string name="ambient_display_summary" msgid="2521630136233865893">"כדי לבדוק במהירות את ההודעות שלך, הקש פעמיים על המסך."</string>
     <string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"הרמה לבדיקת הטלפון"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"הרמה לבדיקת הטאבלט"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"הרמה לבדיקת המכשיר"</string>
-    <!-- no translation found for ambient_display_pickup_summary (8696432220086951466) -->
-    <skip />
-    <!-- no translation found for ambient_display_pickup_summary (2442551819015699120) -->
-    <skip />
-    <!-- no translation found for ambient_display_pickup_summary (2369325441608811599) -->
-    <skip />
+    <string name="ambient_display_pickup_summary" product="default" msgid="8696432220086951466">"כדי לבדוק במהירות את ההודעות שלך, הרם את הטלפון."</string>
+    <string name="ambient_display_pickup_summary" product="tablet" msgid="2442551819015699120">"כדי לבדוק במהירות את ההודעות שלך, הרם את הטאבלט."</string>
+    <string name="ambient_display_pickup_summary" product="device" msgid="2369325441608811599">"כדי לבדוק במהירות את ההודעות שלך, הרם את המכשיר."</string>
     <string name="fingerprint_swipe_for_notifications_title" msgid="2750203868053669600">"החלקה לקריאת הודעות"</string>
-    <!-- no translation found for fingerprint_swipe_for_notifications_summary (1770661868393713922) -->
-    <skip />
-    <!-- no translation found for fingerprint_swipe_for_notifications_summary (902719947767712895) -->
-    <skip />
-    <!-- no translation found for fingerprint_swipe_for_notifications_summary (5372926094116306647) -->
-    <skip />
+    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"כדי לבדוק את ההודעות, החלק מטה על חיישן טביעות האצבע בחלק האחורי של הטלפון."</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="902719947767712895">"כדי לבדוק את ההודעות, החלק מטה על חיישן טביעות האצבע בחלק האחורי של הטאבלט."</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="5372926094116306647">"כדי לבדוק את ההודעות, החלק מטה על חיישן טביעות האצבע בחלק האחורי של המכשיר."</string>
     <string name="gesture_setting_on" msgid="3455094265233870280">"פועל"</string>
     <string name="gesture_setting_off" msgid="5230169535435881894">"כבוי"</string>
     <string name="oem_unlock_enable_disabled_summary_bootloader_unlocked" msgid="4265541229765635629">"הנעילה של מנהל האתחול כבר בוטלה"</string>
@@ -3376,20 +3367,24 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"סנכרון אוטומטי לנתוני החשבון"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"סנכרון אוט\' לנתוני חשבון פרטי"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"סנכרון אוט\' לנתוני חשבון עבודה"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"סנכרון חשבון"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"פרטיות"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"פרטיות"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"כדי לספק לך גישה אל נתוני העבודה שלך, ייתכן שהארגון ישנה את ההגדרות ויתקין תוכנה במכשיר. פעולה זו עשויה לגרום לכך שחלק מהתוכן הפרטי שלך יהיה גלוי למנהל המערכת. צור קשר עם מנהל המערכת בארגון לפרטים נוספים."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"אילו סוגי מידע יכול הארגון שלך לראות?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"אילו שינויים משפיעים על הנתונים שהארגון שלך יכול לראות?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"אילו פעולות עשויות להשפיע על הגישה שלך למכשיר זה?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"נתונים המשויכים לחשבון העבודה שלך, כגון אימייל ויומן"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"רשימה של כל האפליקציות במכשיר"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="two">רשימה של <xliff:g id="COUNT_1">%d</xliff:g> האפליקציות הכלולות במכשיר</item>
+      <item quantity="many">רשימה של <xliff:g id="COUNT_1">%d</xliff:g> האפליקציות הכלולות במכשיר</item>
+      <item quantity="other">רשימה של <xliff:g id="COUNT_1">%d</xliff:g> האפליקציות הכלולות במכשיר</item>
+      <item quantity="one">רשימה של  אפליקציה <xliff:g id="COUNT_0">%d</xliff:g> הכלולה במכשיר</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"נתוני שימוש (משך זמן ההפעלה וכמות הנתונים שנעשה בה שימוש) של כל אפליקציה במכשיר"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"יומני תנועה במכשיר זה"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"הדוח האחרון שלך על באג"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"יומן האבטחה האחרון שלך"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"אף פעם"</string>
 </resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index 57f3e6f..2856897 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"画面をオン"</item>
     <item msgid="3253368931113490863">"アカウントの取得"</item>
     <item msgid="780392378084812901">"バックグラウンドで実行"</item>
+    <item msgid="2629748510881309577">"ユーザー補助機能の音量"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"位置情報"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"画面をオン"</item>
     <item msgid="5258373962467495905">"アカウントの取得"</item>
     <item msgid="334625385979270703">"バックグラウンドで実行"</item>
+    <item msgid="9039213578110332702">"ユーザー補助機能の音量"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"短め"</item>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index ff9cb99..ea85477 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」に接続するにはタップしてください。"</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」に接続してもよろしいですか？"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"電話帳へのアクセスのリクエスト"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$sが連絡先と通話履歴にアクセスしようとしています。%2$sにアクセスを許可しますか？"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> が連絡先と通話履歴にアクセスしようとしています。<xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> にアクセスを許可しますか？"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"次回から表示しない"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"次回から表示しない"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"メッセージへのアクセスのリクエスト"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"設定"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"設定"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"設定のショートカット"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"一致するアクティビティが見つかりません。"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"機内モード"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"もっと見る"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"無線とネットワーク"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ネットワーク接続の管理に<xliff:g id="CURRENT_APP">%2$s</xliff:g>ではなく<xliff:g id="NEW_APP">%1$s</xliff:g>を使用しますか？"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ネットワーク接続の管理に<xliff:g id="NEW_APP">%s</xliff:g>を使用しますか？"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"不明なSIM事業者"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$sには既知のプロビジョニングウェブサイトがありません"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> には既知のプロビジョニング ウェブサイトがありません"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"SIMカードを挿入して再起動してください"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"インターネットに接続してください"</string>
     <string name="location_title" msgid="1029961368397484576">"現在地"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"航空写真の提供:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"マニュアル"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"マニュアルの読み込み中に問題が発生しました。"</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"サードパーティ ライセンス"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ライセンスの読み込み中に問題が発生しました。"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"読み込み中..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"安全に関する情報"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"バッテリーセーバー"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"自動的にON"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"使用しない"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"電池残量%1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"電池残量が <xliff:g id="PERCENT">%1$s</xliff:g> になったとき"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"プロセスの統計情報"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"プロセスの実行に関する独自の統計情報"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"メモリ使用"</string>
@@ -2610,10 +2610,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"着信音の音量"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"通知の音量"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"着信音"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"デフォルトの通知音"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"デフォルトのアラーム音"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"着信時もバイブレーションON"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"その他の音"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"ダイヤルパッドの操作音"</string>
@@ -3121,7 +3119,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> データ警告"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> データ警告 / <xliff:g id="ID_2">%2$s</xliff:g> データ上限"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"請求期間"</string>
-    <string name="billing_cycle_summary" msgid="9009106526129293752">"月単位の請求期間の開始日は、毎月 <xliff:g id="ID_1">%1$s</xliff:g>です"</string>
+    <string name="billing_cycle_summary" msgid="9009106526129293752">"月単位の請求期間の開始日は、毎月 <xliff:g id="ID_1">%1$s</xliff:g> 日です"</string>
     <string name="billing_cycle_fragment_summary" msgid="1940518156600077066">"<xliff:g id="ID_1">%1$s</xliff:g> 日から月単位で請求"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"ネットワーク制限"</string>
     <string name="operator_warning" msgid="1862988028996859195">"端末で記録されるデータ使用量と携帯通信会社のデータ使用量は異なる場合があります"</string>
@@ -3227,6 +3225,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"ログインできない場合"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"システム情報の送信"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"今後表示しない"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"次のアカウントでリクエスト:"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"アカウントを追加"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"仕事用プロファイルの設定"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"連絡先の検索"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"発信者や連絡先を特定するために組織による連絡先の検索を許可します"</string>
@@ -3299,20 +3299,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"アカウント データを自動同期"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"個人用アカウント データを自動同期"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"仕事用アカウント データを自動同期"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"アカウントの同期"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"プライバシー"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"プライバシー"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"仕事データへのアクセスを可能にするために、組織によって端末の設定変更やソフトウェアのインストールが行われることがあります。その結果、一部の個人的なコンテンツを管理者に見られる可能性があります。詳しくは、組織の管理者にお問い合わせください。"</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"組織が表示できる情報の種類"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"組織が表示できる情報の種類に影響を及ぼす変更"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"この端末へのアクセスに影響を及ぼす可能性のある操作"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"メールアドレスやカレンダーなど、仕事用アカウントと関連付けられたデータ"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"端末上のすべてのアプリの一覧"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">端末上のすべてのアプリ（<xliff:g id="COUNT_1">%d</xliff:g> 個）の一覧</item>
+      <item quantity="one">端末上のすべてのアプリ（<xliff:g id="COUNT_0">%d</xliff:g> 個）の一覧</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"端末上の各アプリの使用量（時間と使用データ量）"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"端末のトラフィック ログ"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"最新のバグレポート"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"最新のセキュリティ ログ"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"未実行"</string>
 </resources>
diff --git a/res/values-ka-rGE/arrays.xml b/res/values-ka-rGE/arrays.xml
index 29d802d..13d37e3 100644
--- a/res/values-ka-rGE/arrays.xml
+++ b/res/values-ka-rGE/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ეკრანის ჩართვა"</item>
     <item msgid="3253368931113490863">"ანგარიშების მიღება"</item>
     <item msgid="780392378084812901">"ფონურ რეჟიმში გაშვება"</item>
+    <item msgid="2629748510881309577">"მარტივი წვდომის ხმის სიმძლავრე"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"მდებარეობა"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"ეკრანის ჩართვა"</item>
     <item msgid="5258373962467495905">"ანგარიშების მიღება"</item>
     <item msgid="334625385979270703">"ფონურ რეჟიმში გაშვება"</item>
+    <item msgid="9039213578110332702">"მარტივი წვდომის ხმის სიმძლავრე"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"მოკლე"</item>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index cb3cf11..f83c911 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"შეეხეთ „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“-თან დასაკავშირებლად."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"გსურთ „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“-თან დაკავშირება?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ტელეფონების წიგნზე წვდომის მოთხოვნა"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s სურს თქვენს კონტაქტებსა და ზარების ჟურნალთან დაკავშირება. ვუზრუნველყოთ %2$s წვდომით?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> თქვენს კონტაქტებსა და საუბრის ისტორიაზე წვდომას ითხოვს. გსურთ, მისცეთ წვდომა <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>-ს?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"აღარ მკითხო"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"აღარ მკითხო"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"შეტყობინებებზე წვდომის მოთხოვნა"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"პარამეტრები"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"პარამეტრები"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"პარამეტრების მალსახმობი"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"შესატყვისი აქტივობები ვერ მოიძებნა."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"თვითმფრინავის რეჟიმი"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"დამატებით"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"უსადენო კავშირი და ქსელები"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"გსურთ ქსელის სამართავად <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ის ნაცვლად <xliff:g id="NEW_APP">%1$s</xliff:g> გამოიყენოთ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"გსურთ ქსელის კავშირების სამართავად <xliff:g id="NEW_APP">%s</xliff:g>-ის გამოყენება?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"უცნობი SIM-ოპერატორი"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s-ს განთავსების ნაცნობი საიტი არ გააჩნია"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>-ს უზრუნველყოფის ნაცნობი ვებსაიტი არ გააჩნია"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"გთხოვთ, ჩადოთ SIM ბარათი და გადატვირთოთ"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"გთხოვთ, დააკავშიროთ ინტერნეტთან"</string>
     <string name="location_title" msgid="1029961368397484576">"ჩემი მდებარეობა"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"სატელიტური სურათების პროვაიდერები:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"სახელმძღვანელო"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"სახელმძღვანელოს ჩატვირთვისას წარმოიქმნა პრობლემა."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"მესამე მხარის ლიცენზიები"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ლიცენზიის ჩამოტვირთვასთან პრობლემაა."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"ჩატვირთვა…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"ინფორმაცია უსაფრთხოების შესახებ"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"ბატარეის მზოგი"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"ავტომატურად გამორთვა"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"არასოდეს"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ბატარეის %1$s-ზე"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ბატარეის <xliff:g id="PERCENT">%1$s</xliff:g>-ზე"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"პროცესის სტატისტიკა"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"მიმდინარე პროცესების შემაჯამებელი სტატისტიკა"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"გამოყენებული მეხსიერება"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"ზარის სიმძლავრე"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"შეტყობინების ხმა"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"ტელეფონის ზარი"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"შეტყობინებების ნაგულისხმევი ხმა"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"მაღვიძარას ნაგულისხმევი ხმა"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ზარებზე ასევე ვიბრირება"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"სხვა ხმები"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"ციფერბლატის ტონური რეჟიმი"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"ვერ შედიხართ?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"სისტემის ინფორმაციის გაგზავნა"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"აღარ გამოჩნდეს"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"მოთხოვნა, როგორც:"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"ანგარიშის დამატება"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"სამსახურის პროფილის პარამეტრები"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"კონტაქტების ძიება"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"აბონენტებისა და კონტაქტების ამოცნობის მიზნით, თქვენი ორგანიზაციისთვის კონტაქტების ძიების დაშვება"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"ანგარიშის მონაცემების ავტოსინქრონიზაცია"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"პირადი ანგარიშის მონაცემების ავტოსინქრონიზაცია"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"სამსახურის ანგარიშის მონაცემების ავტოსინქრონიზაცია"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"ანგარიშის სინქრონიზაცია"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"კონფიდენციალურობა"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"კონფიდენციალურობა"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"თქვენი სამსახურის მონაცემებზე წვდომის უზრუნველსაყოფად, თქვენმა ორგანიზაციამ შეიძლება შეცვალოს თქვენი მოწყობილობის პარამეტრები და მასზე პროგრამული უზრუნველყოფის ინსტალაცია მოახდინოს, რის შემდეგაც თქვენი პერსონალური კონტენტის ნაწილი შეიძლება თქვენი ადმინისტრატორისთვის ხილული გახდეს. დეტალური ინფორმაციისთვის დაუკავშირდით თქვენი ორგანიზაციის ადმინისტრატორს."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"რა ტიპის ინფორმაციაა ხილული თქვენი ორგანიზაციისთვის?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"რას ექნება გავლენა თქვენი ორგანიზაციისთვის ხილულ კონტენტზე?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"რომელ ქმედებებს შეუძლია ამ მოწყობილობაზე წვდომაზე გავლენა?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"თქვენს სამსახურის ანგარიშთან დაკავშირებული მონაცემები, როგორიცაა ელფოსტა და კალენდარი"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"თქვენს მოწყობილობაზე არსებული ყველა აპის სია"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">თქვენს მოწყობილობაზე არსებული <xliff:g id="COUNT_1">%d</xliff:g>-ვე აპის სია</item>
+      <item quantity="one">თქვენს მოწყობილობაზე არსებული <xliff:g id="COUNT_0">%d</xliff:g>-ვე აპის სია</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"თქვენს მოწყობილობაზე არსებული თითოეული აპის გამოყენება (დახარჯული დრო და გამოყენებული მონაცემები)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"თქვენი მოწყობილობის ტრაფიკის ჟურნალები"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"ხარვეზის შესახებ ყველაზე ბოლო ანგარიში"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"უსაფრთხოების ყველაზე ბოლო ჟურნალი"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"არასოდეს"</string>
 </resources>
diff --git a/res/values-kk-rKZ/arrays.xml b/res/values-kk-rKZ/arrays.xml
index c398609..d810aad 100644
--- a/res/values-kk-rKZ/arrays.xml
+++ b/res/values-kk-rKZ/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"экранды қосу"</item>
     <item msgid="3253368931113490863">"есептік жазбаларды алу"</item>
     <item msgid="780392378084812901">"фонда іске қосу"</item>
+    <item msgid="2629748510881309577">"арнайы мүмкіндіктердің дыбыс деңгейі"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Орын"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Экранды қосу"</item>
     <item msgid="5258373962467495905">"Есептік жазбаларды алу"</item>
     <item msgid="334625385979270703">"Фонда іске қосу"</item>
+    <item msgid="9039213578110332702">"Арнайы мүмкіндіктердің дыбыс деңгейі"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Қысқа"</item>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index dacc5ae..546db13 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" қосылу үшін түртіңіз."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" құрылғысына жалғануды қалайсыз ба?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Телефон кітапшасына кіру өтініші"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s контактілеріңізге және қоңырау тарихына кіруді қалайды. %2$s кірсін бе?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> контактілерге және қоңырау тарихына кіргісі келеді. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> құрылғысына рұқсат берілсін бе?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Қайта сұрамаңыз"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Қайта сұрамаңыз"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Хабарға кіру өтініші"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Параметрлер"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Параметрлер"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Параметрлердің төте пернелері"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Сәйкес әрекеттер табылмады."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Ұшақ режимі"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Басқалары"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Сымсыз желілер"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Желілік байланыстарды басқару үшін <xliff:g id="CURRENT_APP">%2$s</xliff:g> орнына <xliff:g id="NEW_APP">%1$s</xliff:g> қолданбасын пайдалану керек пе?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Желілік байланыстарды басқару үшін <xliff:g id="NEW_APP">%s</xliff:g> қолданбасын пайдалану керек пе?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Белгісіз SIM операторы"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s операторының ешқандай танымал жабдықтаушы веб-сайты жоқ"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> операторының қызмет көрсетуші вебсайты жоқ"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"SIM картасын енгізіп, қайта бастаңыз"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Интернетке қосылыңыз"</string>
     <string name="location_title" msgid="1029961368397484576">"Mенің аймағым"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Жерсерік кескіндерін жеткізушілер:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Қолмен"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Нұсқаулықты жүктеу кезінде мәселе болды."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Үшінші тараптық лицензиялар"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Лицензияларды жүктеу барысында мәселе орын алды."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Жүктелуде..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Қауіпсіздік ақпараты"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Батарея үнемдегіш"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Автоматты түрде қосу"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Ешқашан"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s батареяда"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"батарея заряды <xliff:g id="PERCENT">%1$s</xliff:g> болғанда"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Үрдіс статистикалары"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Қосылған үрдістерге қатысты статистикалар"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Жад қолдану"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Қоңыраудың дыбыс деңгейі"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Хабарландырудың дыбыс деңгейі"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Телефон әуені"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Әдепкі хабарландыру сигналы"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Әдепкі дабыл сигналы"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Қоңырау кезіндегі діріл"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Басқа дыбыстар"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Нөмір тергіш дыбысы"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Кіре алмадыңыз ба?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Жүйе туралы ақпаратты жіберу"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Енді көрсетпеу"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Келесі болып сұралуда:"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Есептік жазбаны енгізу"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Жұмыс профилінің параметрлері"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Контакт іздеу"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Қоңырау шалушылар мен контактілерді анықтау үшін ұйым бойынша контакт іздеуге рұқсат беру"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Есептік жазба деректерін автоматты синхрондау"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Жеке есептік жазба деректерін автоматты синхрондау"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Жұмыс есептік жазбасы деректерін автоматты синхрондау"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Есептік жазбаны синхрондау"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Құпиялылық"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Құпиялылық"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Жұмыс деректеріне кіру рұқсатын беру үшін ұйымыңыз параметрлерді өзгертіп, бағдарламалық құралды құрылғыңызға орнатады. Мұның нәтижесінде кейбір жеке мәліметтеріңізді әкімші көруі мүмкін. Оған хабарласып, толығырақ ақпарат алыңыз."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Ұйымыңыз қандай ақпаратты көре алады?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Қандай өзгерістер ұйымның қай ақпаратты көре алатынына әсерін тигізеді?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Қандай әрекеттер құрылғыға кіруіңізге әсерін тигізуі мүмкін?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Электрондық пошта мен күнтізбе сияқты жұмыс есептік жазбасына байланысты деректер"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Құрылғыдағы барлық қолданбалардың тізімі"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Құрылғыдағы <xliff:g id="COUNT_1">%d</xliff:g> қолданбаның тізімі</item>
+      <item quantity="one">Құрылғыдағы <xliff:g id="COUNT_0">%d</xliff:g> қолданбаның тізімі</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Құрылғыда әр қолданбаның пайдаланылуы туралы мәліметтер (жұмсалған уақыты және пайдаланылған деректер көлемі)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Құрылғыдағы трафик журналдары"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Ең соңғы қате туралы есеп"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ең соңғы қауіпсіздік журналы"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Ешқашан"</string>
 </resources>
diff --git a/res/values-km-rKH/arrays.xml b/res/values-km-rKH/arrays.xml
index 0958547..2d9d3be 100644
--- a/res/values-km-rKH/arrays.xml
+++ b/res/values-km-rKH/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"បើកអេក្រង់"</item>
     <item msgid="3253368931113490863">"ទទួលគណនី"</item>
     <item msgid="780392378084812901">"រត់នៅក្នុងផ្ទៃខាងក្រោយ"</item>
+    <item msgid="2629748510881309577">"កម្រិតសំឡេងភាពងាយស្រួល"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"ទី​តាំង​"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"បើកអេក្រង់"</item>
     <item msgid="5258373962467495905">"ទទួលគណនី"</item>
     <item msgid="334625385979270703">"រត់នៅក្នុងផ្ទៃខាងក្រោយ"</item>
+    <item msgid="9039213578110332702">"កម្រិតសំឡេងភាពងាយស្រួល"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"ខ្លី"</item>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index 8c8cbef..26802f3 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"ប៉ះដើម្បីតភ្ជាប់ជាមួយ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"តើ​អ្នក​ចង់​តភ្ជាប់​ទៅ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ស្នើ​សុំ​ចូល​ដំណើរការ​សៀវភៅ​ទូរស័ព្ទ"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ចង់​ចូល​ទំនាក់ទំនង​ និង​ប្រវត្តិ​ហៅ​របស់​អ្នក។ ផ្ដល់​សិទ្ធិ​ឲ្យ %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ចង់ចូលប្រើទំនាក់ទំនង និងប្រវត្តិហៅទូរសព្ទរបស់អ្នក។ អនុញ្ញាតឲ្យ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ចូលប្រើដែរទេ?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"កុំ​សួរ​ម្ដងទៀត"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"កុំ​សួរ​ម្ដងទៀត"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"ស្នើ​សុំ​​​ចូល​ដំណើរ​ការ​សារ"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"ការ​កំណត់"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"ការ​កំណត់"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"កំណត់​ផ្លូវកាត់"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"រកមិនឃើញសកម្មភាពផ្គូផ្គងទេ។"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"ពេលជិះយន្តហោះ"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"ច្រើន​ទៀត"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"ឥត​ខ្សែ &amp; បណ្ដាញ"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ប្រើ <xliff:g id="NEW_APP">%1$s</xliff:g> ជំនួស​ឲ្យ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ដើម្បី​គ្រប់គ្រង​ការ​ភ្ជាប់​បណ្ដាញ​របស់​អ្នក?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ប្រើ <xliff:g id="NEW_APP">%s</xliff:g> ដើម្បី​គ្រប់គ្រង​ការ​ភ្ជាប់​បណ្ដាញ​របស់​អ្នក?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"មិន​ស្គាល់​ប្រតិបត្តិ​ករ​ស៊ីមកាត"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s គ្មាន​តំបន់​បណ្ដាញ​ដែល​ផ្ដល់​បាន​​ស្គាល់​"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> មិនមានគេហទំព័រសម្រាប់ផ្តល់សិទ្ធិចូលប្រើដែលស្គាល់នោះទេ"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"សូម​បញ្ចូល​ស៊ីមកាត និង​ចាប់ផ្ដើម​ឡើង​វិញ"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"សូម​ភ្ជាប់​អ៊ីនធឺណិត"</string>
     <string name="location_title" msgid="1029961368397484576">"ទីតាំង​ខ្ញុំ"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"កម្មវិធី​ផ្ដល់​សេវា​រូបភាព​ផ្កាយ​រណប​៖\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"ឯកសារណែនាំ"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"មានបញ្ហាក្នុងការបើកឯកសារណែនាំ"</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"អាជ្ញាប័ណ្ណភាគីទីបី"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"មាន​បញ្ហា​ក្នុង​ការ​ផ្ទុក​អាជ្ញាប័ណ្ណ។"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"កំពុង​ផ្ទុក..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"ព័ត៌មាន​សុវត្ថិភាព"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"កម្មវិធី​សន្សំ​ថ្ម"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"បើក​ដោយ​ស្វ័យ​ប្រវត្តិ"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"កុំ"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"​​នៅ​ថ្ម %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"នៅពេលដែលថ្មសល់ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"ស្ថិតិ​​ដំណើរការ"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"ស្ថិតិ Geeky អំពី​ដំណើរការ​"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"ការ​ប្រើ​​អង្គ​ចងចាំ​"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"កម្រិត​សំឡេង​រោទ៍"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"កម្រិត​សំឡេង​ការ​ជូន​ដំណឹង"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"សំឡេង​រោទ៍​ទូរស័ព្ទ"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"សំឡេង​ជូន​ដំណឹង​លំនាំដើម"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"សំឡេងម៉ោងរោទិ៍លំនាំដើម"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ញ័រ​សម្រាប់​ការ​ហៅ​ដែរ"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"សំឡេង​ផ្សេង​ទៀត"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"សំឡេង​បន្ទះ​លេខ"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"មិនអាចចូលគណនីបានឬ?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"ផ្ញើព័ត៌មានប្រព័ន្ធ"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"កុំបង្ហាញម្តងទៀត"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"ស្នើ​សុំ​ជា​"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"បញ្ចូលគណនី"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"ការកំណត់ប្រវត្តិរូបការងារ"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"ការស្វែងរកទំនាក់ទំនង"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"អនុញ្ញាតការស្វែងរកទំនាក់ទំនងដោយស្ថាប័នរបស់អ្នកដើម្បីកំណត់អត្តសញ្ញាណអ្នកហៅ និងលេខទំនាក់ទំនង"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"ធ្វើសមកាលកម្មទិន្នន័យគណនីដោយស្វ័យប្រវត្តិ"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"ធ្វើសមកាលកម្មទិន្នន័យគណនីផ្ទាល់ខ្លួនដោយស្វ័យប្រវត្តិ"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"ធ្វើសមកាលកម្មទិន្នន័យគណនីការងារដោយស្វ័យប្រវត្តិ"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"ធ្វើសមកាលកម្មគណនី"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"ឯកជនភាព"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ឯកជនភាព"</string>
-    <string name="enterprise_privacy_header" msgid="5605095630252702716">"ដើម្បីផ្តល់លទ្ធភាពចូលប្រើទិន្នន័យការងាររបស់អ្នក ស្ថាប័នរបស់អ្នកអាចនឹងប្តូរការកំណត់ ហើយដំឡើងកម្មវិធីនៅលើឧបករណ៍របស់អ្នក ដែលវាអាចធ្វើឲ្យអ្នកគ្រប់គ្រងរបស់អ្នកមើលឃើញមាតិកាផ្ទាល់ខ្លួនមួយចំនួនរបស់អ្នក។ សូមទាក់ទងទៅអ្នកគ្រប់គ្រងរបស់ស្ថាប័នអ្នក សម្រាប់ព័ត៌មានលម្អិតបន្ថែម។"</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_header" msgid="5605095630252702716">"ដើម្បីផ្តល់លទ្ធភាពចូលប្រើទិន្នន័យការងាររបស់អ្នក ស្ថាប័នរបស់អ្នកអាចនឹងប្តូរការកំណត់ ហើយដំឡើងកម្មវិធីនៅលើឧបករណ៍របស់អ្នក ដែលអាចធ្វើឲ្យអ្នកគ្រប់គ្រងរបស់អ្នកមើលឃើញមាតិកាផ្ទាល់ខ្លួនមួយចំនួនរបស់អ្នក។ សូមទាក់ទងទៅអ្នកគ្រប់គ្រងរបស់ស្ថាប័នអ្នក សម្រាប់ព័ត៌មានលម្អិតបន្ថែម។"</string>
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"តើព័ត៌មានប្រភេទណាដែលស្ថាប័នរបស់អ្នកអាចមើលឃើញ?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"តើការផ្លាស់ប្តូរអ្វីខ្លះដែលប៉ះពាល់ដល់លទ្ធភាពនៃការមើលឃើញរបស់ស្ថាប័នអ្នក?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"តើសកម្មភាពអ្វីខ្លះដែលអាចប៉ះពាល់ដល់ការចូលប្រើឧបករណ៍នេះរបស់អ្នក​?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"ទិន្នន័យដែលពាក់ព័ន្ធនឹងគណនីការងាររបស់អ្នក ដូចជាអ៊ីមែល និងប្រតិទិន"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"បញ្ជីនៃកម្មវិធីទាំងអស់នៅលើឧបករណ៍របស់អ្នក"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">បញ្ជីនៃកម្មវិធីទាំង <xliff:g id="COUNT_1">%d</xliff:g> នៅលើឧបករណ៍របស់អ្នក</item>
+      <item quantity="one">បញ្ជីនៃកម្មវិធីទាំង <xliff:g id="COUNT_0">%d</xliff:g> នៅលើឧបករណ៍របស់អ្នក</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"ការប្រើប្រាស់ (រយៈពេលនៃការប្រើប្រាស់ និងបរិមាណទិន្នន័យដែលបានប្រើប្រាស់) កម្មវិធីនីមួយៗនៅលើឧបករណ៍របស់អ្នក"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"កំណត់ហេតុចរាចរណ៍នៅលើឧបករណ៍របស់អ្នក"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"របាយការណ៍អំពីបញ្ហាថ្មីបំផុតរបស់អ្នក"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"កំណត់ហេតុសុវត្ថិភាពថ្មីបំផុតរបស់អ្នក"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"កុំឲ្យសោះ"</string>
 </resources>
diff --git a/res/values-kn-rIN/arrays.xml b/res/values-kn-rIN/arrays.xml
index 2ac2e1f..737d468 100644
--- a/res/values-kn-rIN/arrays.xml
+++ b/res/values-kn-rIN/arrays.xml
@@ -277,7 +277,7 @@
     <item msgid="6325739889222559394">"ಮಾಧ್ಯಮ ವಾಲ್ಯೂಮ್"</item>
     <item msgid="5762123934816216821">"ಎಚ್ಚರಿಕೆ ವಾಲ್ಯೂಮ್"</item>
     <item msgid="785049718065337473">"ಅಧಿಸೂಚನೆ ವಾಲ್ಯೂಮ್"</item>
-    <item msgid="6700305533746877052">"bluetooth ವಾಲ್ಯೂಮ್"</item>
+    <item msgid="6700305533746877052">"ಬ್ಲೂಟೂತ್ ವಾಲ್ಯೂಮ್"</item>
     <item msgid="2029227495214047094">"ಎಚ್ಚರವಹಿಸಿ"</item>
     <item msgid="26109888160231211">"ಪರಿವೀಕ್ಷಣೆ ಸ್ಥಾನ"</item>
     <item msgid="5753382310468855812">"ಪರಿವೀಕ್ಷಣೆಯ ಹೆಚ್ಚಿನ ಸಾಮರ್ಥ್ಯದ ಸ್ಥಾನ"</item>
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ಸ್ಕ್ರೀನ್ ಆನ್ ಮಾಡಿ"</item>
     <item msgid="3253368931113490863">"ಖಾತೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ"</item>
     <item msgid="780392378084812901">"ಹಿನ್ನೆಲೆಯಲ್ಲಿ ರನ್ ಮಾಡಿ"</item>
+    <item msgid="2629748510881309577">"ಪ್ರವೇಶಿಸುವಿಕೆ ವಾಲ್ಯೂಮ್‌"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"ಸ್ಥಾನ"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"ಸ್ಕ್ರೀನ್ ಆನ್ ಮಾಡಿ"</item>
     <item msgid="5258373962467495905">"ಖಾತೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ"</item>
     <item msgid="334625385979270703">"ಹಿನ್ನೆಲೆಯಲ್ಲಿ ರನ್ ಮಾಡಿ"</item>
+    <item msgid="9039213578110332702">"ಪ್ರವೇಶಿಸುವಿಕೆ ವಾಲ್ಯೂಮ್‌"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"ಚಿಕ್ಕದು"</item>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index af5393b..cbb5bc9 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ಗೆ ಸಂಪರ್ಕಪಡಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ಗೆ ಸಂಪರ್ಕಪಡಿಸಲು ನೀವು ಬಯಸುವಿರಾ?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ಫೋನ್‌ ಬುಕ್‌ ಪ್ರವೇಶಿಸುವಿಕೆಯ ವಿನಂತಿ"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ನಿಮ್ಮ ಸಂಪರ್ಕಗಳು ಮತ್ತು ಕರೆಯ ಇತಿಹಾಸವನ್ನು ಪ್ರವೇಶಿಸಲು ಬಯಸುತ್ತದೆ. %2$s ಗೆ ಪ್ರವೇಶ ನೀಡುವುದೇ?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ನಿಮ್ಮ ಸಂಪರ್ಕಗಳು ಮತ್ತು ಕರೆ ಇತಿಹಾಸ ಪ್ರವೇಶಿಸಲು ಬಯಸುತ್ತದೆ. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ಗೆ ಪ್ರವೇಶ ನೀಡುವುದೇ?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"ಮತ್ತೆ ಕೇಳಬೇಡಿ"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"ಮತ್ತೆ ಕೇಳಬೇಡ"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"ಸಂದೇಶ ಪ್ರವೇಶಿಸುವಿಕೆಯ ವಿನಂತಿ"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಶಾರ್ಟ್‌ಕಟ್‌"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"ಯಾವುದೇ ಹೊಂದಾಣಿಕೆಯ ಚಟುವಟಿಕೆಗಳು ಕಂಡುಬಂದಿಲ್ಲ."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"ಏರ್‌ಪ್ಲೇನ್ ಮೋಡ್"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"ಇನ್ನಷ್ಟು"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"ವಯರ್‌ಲೆಸ್ &amp; ನೆಟ್‌ವರ್ಕ್‌ಗಳು"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕಗಳನ್ನು ನಿರ್ವಹಿಸಲು <xliff:g id="CURRENT_APP">%2$s</xliff:g> ಬದಲಿಗೆ <xliff:g id="NEW_APP">%1$s</xliff:g> ಬಳಸುವುದೇ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕಗಳನ್ನು ನಿರ್ವಹಿಸಲು <xliff:g id="NEW_APP">%s</xliff:g> ಬಳಸುವುದೇ?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"ಅಪರಿಚಿತ ಸಿಮ್‌ ಆಪರೇಟರ್‌"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s ಯಾವುದೇ ತಿಳಿದಿರುವ ಪೂರೈಕೆಯ ವೆಬ್‌ಸೈಟ್‌ಗಳಿಲ್ಲ"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> ಯಾವುದೇ ತಿಳಿದಿರುವ ಪೂರೈಕೆಯ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಹೊಂದಿಲ್ಲ"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"ದಯವಿಟ್ಟು ಸಿಮ್‌ ಕಾರ್ಡ್‌ ಅನ್ನು ಸೇರಿಸಿ ಮತ್ತು ಮರುಪ್ರಾರಂಭಿಸಿ"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"ದಯವಿಟ್ಟು ಇಂಟರ್ನೆಟ್‌ಗೆ ಸಂಪರ್ಕಪಡಿಸಿ"</string>
     <string name="location_title" msgid="1029961368397484576">"ನನ್ನ ಸ್ಥಾನ"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"ಉಪಗ್ರಹ ಚಿತ್ರಣ ಪೂರೈಕೆದಾರರು:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"ಹಸ್ತಚಾಲಿತ"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"ಹಸ್ತಚಾಲಿತವಾಗಿ ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ಸಮಸ್ಯೆ ಕಂಡುಬಂದಿದೆ."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"ಥರ್ಡ್‌ ಪಾರ್ಟಿ ಪರವಾನಗಿಗಳು"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ಪರವಾನಗಿಗಳನ್ನು ಲೋಡ್‌ ಮಾಡುವಲ್ಲಿ ಸಮಸ್ಯೆ ಇದೆ."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"ಲೋಡ್ ಆಗುತ್ತಿದೆ..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"ಸುರಕ್ಷತೆ ಮಾಹಿತಿ"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"ಬ್ಯಾಟರಿ ಸೇವರ್‌‌"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆನ್ ಆಗುವಿಕೆ"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ಎಂದಿಗೂ ಬೇಡ"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s ಬ್ಯಾಟರಿ ಇರುವಾಗ"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ಬ್ಯಾಟರಿಯಲ್ಲಿ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"ಪ್ರಕ್ರಿಯೆಯ ಅಂಕಿಅಂಶಗಳು"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"ಚಾಲನೆಯಲ್ಲಿರುವ ಪ್ರಕ್ರಿಯೆಗಳ ಕುರಿತು Geeky ಅಂಕಿಅಂಶಗಳು"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"ಸ್ಮರಣೆ ಬಳಕೆ"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"ರಿಂಗ್ ವಾಲ್ಯೂಮ್"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"ಅಧಿಸೂಚನೆ ವಾಲ್ಯೂಮ್"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"ಫೋನ್ ರಿಂಗ್‌ಟೋನ್"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"ಡೀಫಾಲ್ಟ್ ಅಧಿಸೂಚನೆ ಧ್ವನಿ"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"ಡಿಫಾಲ್ಟ್ ಅಲಾರಮ್ ಧ್ವನಿ"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ಕರೆಗಳಿಗೂ ಸಹ ವೈಬ್ರೇಟ್‌"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"ಇತರ ಧ್ವನಿಗಳು"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"ಡಯಲ್‌ ಪ್ಯಾಡ್‌ ಟೋನ್‌ಗಳು"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"ಸೈನ್ ಇನ್ ಆಗಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲವೇ?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"ಸಿಸ್ಟಂ ಮಾಹಿತಿಯನ್ನು ಕಳುಹಿಸಿ"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"ಮತ್ತೆ ತೋರಿಸಬೇಡ"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"ಇದರಂತೆ ವಿನಂತಿಸಲಾಗುತ್ತಿದೆ"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"ಖಾತೆ ಸೇರಿಸಿ"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"ಸಂಪರ್ಕ ಹುಡುಕಿ"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"ಕರೆದಾತರು ಮತ್ತು ಸಂಪರ್ಕಗಳನ್ನು ಗುರುತಿಸಲು ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಮೂಲಕ ಸಂಪರ್ಕ ಹುಡುಕಾಟಗಳಿಗೆ ಅನುಮತಿಸಿ"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"ಸ್ವಯಂ-ಸಿಂಕ್ ಖಾತೆಯ ಡೇಟಾ"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"ಸ್ವಯಂ-ಸಿಂಕ್ ವೈಯಕ್ತಿಕ ಖಾತೆ ಡೇಟಾ"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"ಸ್ವಯಂ-ಸಿಂಕ್ ಕೆಲಸದ ಖಾತೆಯ ಡೇಟಾ"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"ಖಾತೆ ಸಿಂಕ್"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"ಗೌಪ್ಯತೆ"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ಗೌಪ್ಯತೆ"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"ನಿಮ್ಮ ಕೆಲಸದ ಡೇಟಾಗೆ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸಲು, ನಿಮ್ಮ ಸಂಸ್ಥೆಯು ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಿಸಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸಾಫ್ಟ್‌ವೇರ್ ಸ್ಥಾಪಿಸಬಹುದು, ಇದರಿಂದ ನಿಮ್ಮ ಕೆಲವು ವೈಯಕ್ತಿಕ ವಿಷಯವು ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಗೆ ಗೋಚರಿಸುವಂತಾಗುತ್ತದೆ. ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗಾಗಿ ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"ಯಾವ ಪ್ರಕಾರದ ಮಾಹಿತಿಯನ್ನು ನಿಮ್ಮ ಸಂಸ್ಥೆಯು ನೋಡಬಹುದು?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"ಯಾವ ಬದಲಾವಣೆಗಳು ಪರಿಣಾಮ ಬೀರಬಹುದು, ನಿಮ್ಮ ಸಂಸ್ಥೆಯು ಯಾವುದನ್ನು ನೋಡಬಹುದು?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ಈ ಸಾಧನಕ್ಕೆ ನಿಮ್ಮ ಪ್ರವೇಶವು ಯಾವ ರೀತಿಯಲ್ಲಿ ಪರಿಣಾಮ ಬೀರಬಹುದು?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"ಇಮೇಲ್‌ ಮತ್ತು ಕ್ಯಾಲೆಂಡರ್‌‌ನಂತಹ ನಿಮ್ಮ ಕೆಲಸದ ಖಾತೆ ಜೊತೆಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ ಡೇಟಾ"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಪಟ್ಟಿ"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಎಲ್ಲಾ <xliff:g id="COUNT_1">%d</xliff:g> ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಪಟ್ಟಿ</item>
+      <item quantity="other">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಎಲ್ಲಾ <xliff:g id="COUNT_1">%d</xliff:g> ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಪಟ್ಟಿ</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಪ್ರತಿ ಅಪ್ಲಿಕೇಶನ್‌ನ ಬಳಕೆ (ವ್ಯಯಿಸಿದ ಸಮಯ ಮತ್ತು ಬಳಸಲಾದ ಡೇಟಾದ ಪ್ರಮಾಣ)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಟ್ರಾಫಿಕ್‌ ಲಾಗ್‌ಗಳು"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"ನಿಮ್ಮ ಇತ್ತೀಚಿನ ಬಗ್‌ ವರದಿ"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"ನಿಮ್ಮ ಅತ್ಯಂತ ಇತ್ತೀಚಿನ ಭದ್ರತಾ ಲಾಗ್"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"ಎಂದಿಗೂ ಇಲ್ಲ"</string>
 </resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index 770e300..a91c2d7 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"화면 켜기"</item>
     <item msgid="3253368931113490863">"계정 가져오기"</item>
     <item msgid="780392378084812901">"백그라운드에서 실행"</item>
+    <item msgid="2629748510881309577">"접근성 볼륨"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"위치"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"화면 켜기"</item>
     <item msgid="5258373962467495905">"계정 가져오기"</item>
     <item msgid="334625385979270703">"백그라운드에서 실행"</item>
+    <item msgid="9039213578110332702">"접근성 볼륨"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"짧게"</item>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index fa01259..0775426 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\'<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\'에 연결하려면 탭하세요."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\'<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\'에 연결하시겠습니까?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"전화번호부 액세스 요청"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s이(가) 주소록과 통화 기록에 액세스하려고 합니다. %2$s에 액세스 권한을 제공하시겠습니까?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>에서 주소록과 통화 기록에 액세스하려고 합니다. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>에 액세스 권한을 부여하시겠습니까?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"다시 묻지 않음"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"다시 묻지 않음"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"메시지 액세스 요청"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"설정"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"설정"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"설정 바로가기"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"일치하는 활동이 없습니다."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"비행기 모드"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"더보기"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"무선 및 네트워크 설정"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> 대신 <xliff:g id="NEW_APP">%1$s</xliff:g>을(를) 사용하여 네트워크 연결을 관리하시겠습니까?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"<xliff:g id="NEW_APP">%s</xliff:g>을(를) 사용하여 네트워크 연결을 관리하시겠습니까?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"알 수 없는 SIM 연산자입니다."</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s에 알려진 프로비저닝 웹사이트가 없습니다."</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>에 알려진 프로비저닝 웹사이트가 없습니다."</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"SIM 카드를 삽입하고 다시 시작하세요."</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"인터넷에 연결하세요."</string>
     <string name="location_title" msgid="1029961368397484576">"사용자 위치"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"위성 이미지 제공업체:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"수동"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"설명서를 로드하는 중에 문제가 발생했습니다."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"타사 라이선스"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"라이선스를 로드하는 동안 문제가 발생했습니다."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"로드 중..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"안전 정보"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"배터리 세이버"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"자동으로 사용 설정"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"사용 안함"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s 배터리"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"배터리 잔량 <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"프로세스 통계"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"프로세스 실행에 관한 통계"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"메모리 사용량"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"벨소리 볼륨"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"알림 볼륨"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"전화 벨소리"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"기본 알림 소리"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"기본 알람 소리"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"전화 올 때 벨소리와 함께 진동"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"기타 소리"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"다이얼패드 신호음"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"로그인할 수 없나요?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"시스템 정보 보내기"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"다시 표시 안 함"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"요청 계정:"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"계정 추가"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"직장 프로필 설정"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"연락처 검색"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"조직에서 연락처를 검색하여 발신자 및 연락처를 확인할 수 있도록 허용합니다."</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"계정 데이터 자동 동기화"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"개인 계정 데이터 자동 동기화"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"직장 계정 데이터 자동 동기화"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"계정 동기화"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"개인정보 보호"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"개인정보 보호"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"직장 데이터 액세스 권한을 부여하려면 조직에서 설정을 변경하고 기기에 소프트웨어를 설치해야 할 수 있습니다. 이렇게 하면 내 개인 콘텐츠 일부를 관리자가 볼 수 있게 됩니다. 자세한 내용을 알아보려면 조직의 관리자에게 문의하세요."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"조직에서 어떤 유형의 정보를 볼 수 있나요?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"어떤 변경사항이 조직에서 볼 수 있는 정보에 영향을 미치나요?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"어떤 작업이 이 기기에 액세스하는 데 영향을 미칠 수 있나요?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"이메일, 캘린더와 같이 직장 계정과 연결된 데이터"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"기기에 설치된 모든 앱 목록"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">기기에 설치된 모든 앱 <xliff:g id="COUNT_1">%d</xliff:g>개 목록</item>
+      <item quantity="one">기기에 설치된 모든 앱 <xliff:g id="COUNT_0">%d</xliff:g>개 목록</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"기기의 각 앱 사용량(사용 시간, 사용 데이터양)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"기기의 트래픽 로그"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"최근 버그 신고"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"최근 보안 로그"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"사용 안함"</string>
 </resources>
diff --git a/res/values-ky-rKG/arrays.xml b/res/values-ky-rKG/arrays.xml
index 217daf7..841becb 100644
--- a/res/values-ky-rKG/arrays.xml
+++ b/res/values-ky-rKG/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"экранды күйгүзүү"</item>
     <item msgid="3253368931113490863">"каттоо эсептерин алуу"</item>
     <item msgid="780392378084812901">"фондо ойнотуу"</item>
+    <item msgid="2629748510881309577">"атайын мүмкүнчүлүктөрдүн үнүнүн катуулугу"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Орду"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Экранды күйгүзүү"</item>
     <item msgid="5258373962467495905">"Каттоо эсептерин алуу"</item>
     <item msgid="334625385979270703">"Фондо ойнотуу"</item>
+    <item msgid="9039213578110332702">"Атайын мүмкүнчүлүктөрдүн үнүнүн катуулугу"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Кыска"</item>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index 8f9b3f5..18f7156 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -149,7 +149,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" менен туташуу үчүн таптап коюңуз."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" түзмөгүнө туташкыңыз келеби?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Байланыштарга жетки алуу сурамы"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s сиздин байланыштарыңызга жана чалуулар тизмеңизге жетки алгысы келет. %2$s уруксат берилсинби?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> байланыштарыңыз менен чалуу таржымалыңызды пайдалануу мүмкүнчүлүгүн суранып жатат. Ага <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> түзмөгүн пайдалануу мүмкүнчүлүгү берилсинби?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Кайра сураба"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Кайра сураба"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Билдирүүлөрдү көрүү талабы"</string>
@@ -268,7 +268,8 @@
     <string name="done" msgid="6942539184162713160">"Даяр"</string>
     <string name="settings_label" msgid="1626402585530130914">"Жөндөөлөр"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Жөндөөлөр"</string>
-    <string name="settings_shortcut" msgid="3936651951364030415">"Тууралоолордун тез чакырмасы"</string>
+    <string name="settings_shortcut" msgid="3936651951364030415">"Жөндөөлөр"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Туура келген аракеттер табылган жок."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Учак режими"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Дагы"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Зымсыз тармактар"</string>
@@ -885,7 +886,7 @@
     <string name="ring_volume_title" msgid="5592466070832128777">"Шыңгырдын катуулугу"</string>
     <string name="vibrate_in_silent_title" msgid="3897968069156767036">"Үнсүз режимде дирилдесин"</string>
     <string name="notification_sound_title" msgid="5137483249425507572">"Эскертменин абалкы үнү"</string>
-    <string name="incoming_call_volume_title" msgid="8073714801365904099">"Рингтон"</string>
+    <string name="incoming_call_volume_title" msgid="8073714801365904099">"Шыңгыр"</string>
     <string name="notification_volume_title" msgid="2012640760341080408">"Эскертме"</string>
     <string name="checkbox_notification_same_as_incoming_call" msgid="1073644356290338921">"Эскертмелер үчүн кирүүчү чалуунун үн көлөмү колдонулсун"</string>
     <string name="home_work_profile_not_supported" msgid="7457951997970419085">"Жумуш профилдерин колдоого албайт"</string>
@@ -1300,7 +1301,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Тармактык туташууларыңызды башкаруу үчүн, <xliff:g id="CURRENT_APP">%2$s</xliff:g> ордуна <xliff:g id="NEW_APP">%1$s</xliff:g> колдоносузбу?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Тармактык туташууларыңызды башкаруу үчүн <xliff:g id="NEW_APP">%s</xliff:g> колдоносузбу?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Белгисиз SIM оператору"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s операторунда белгилүү камсыздоочу вебсайт жок"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> операторунда белгилүү камсыздоочу вебсайт жок"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"SIM-картаны салып, кайра иштетиңиз"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Интернетке кошулуңуз"</string>
     <string name="location_title" msgid="1029961368397484576">"Жайгашкан жерим"</string>
@@ -1356,8 +1357,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Спутник сүрөттөрүн камсыздагычтар:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Нускама"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Нускаманы жүктөөдө көйгөй чыкты."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Үчүнчү тараптын уруксаттамалары"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Уруксаттамалар жүктөлүп жатканда көйгөй келип чыкты."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Жүктөлүүдө…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Коопсуздук маалыматы"</string>
@@ -1931,7 +1931,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Батареяны үнөмдөгүч"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Автоматтык түрдө күйгүзүү"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Эч качан"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"батареянын кубаты %1$s болгондо"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> батарея менен"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Процесстин статистикасы"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Иштеп жаткан процесстердин өзгөчө статистикасы"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Эс тутумдун пайдаланылышы"</string>
@@ -2605,10 +2605,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Шыңгырдын катуулугу"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Эскертме үнүнүн катуулугу"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Телефондун рингтону"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Демейки эскертменин добушу"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Демейки ойготкуч добушу"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Дирилдеп чалынсын"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Башка үндөр"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Тергич үндөрү"</string>
@@ -3222,6 +3220,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Кире албай жатасызбы?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Тутум маалыматын жөнөтүү"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Экинчи көрсөтүлбөсүн"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Төмөнкү катары талап кылууда"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Каттоо эсебин кошуу"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Жумуш профилинин жөндөөлөрү"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Байланыштарды издөө"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Чалуучуларды жана байланыштарды аныктоо үчүн ишканаңыз байланыштарды издешине уруксат бериңиз"</string>
@@ -3294,20 +3294,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Аккаунтту авто-шайкештештирүү"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Жеке аккаунтту авто-шайкешт."</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Жумуш аккаунтун авто-шайкешт."</string>
-    <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Купуялык"</string>
-    <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Купуялык"</string>
-    <string name="enterprise_privacy_header" msgid="5605095630252702716">"Жумушуңузга байланыштуу дайындарга мүмкүнчүлүк берүү үчүн ишканаңыз жөндөөлөрдү өзгөртүп, түзмөгүңүзгө программа орнотушу мүмкүн жана ошол себептен, жеке мазмунуңуздун айрымдары администраторуңузга көрүнүп калышы мүмкүн. Көбүрөөк маалымат үчүн ишканаңыздын администраторуна кайрылыңыз."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="account_sync_title" msgid="7214747784136106491">"Каттоо эсебин шайкештештирүү"</string>
+    <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Купуялуулук"</string>
+    <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Купуялуулук"</string>
+    <string name="enterprise_privacy_header" msgid="5605095630252702716">"Жумушка керектүү жөндөөлөрдү өзгөртүп же түзмөгүңүзгө программа орнотуп жатканда, айрым жеке дайындарыңыз администраторуңузга көрүнүп калышы мүмкүн. Көбүрөөк маалымат үчүн ишканаңыздын администраторуна кайрылыңыз."</string>
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Уюмуңуз маалыматтын кандай түрлөрүн көрө алат?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Уюмуңуз кайсы маалыматты көрө аларына кандай өзгөрүүлөр таасирин тийгизет?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Сиздин бул түзмөккө кирүүңүзгө кандай аракеттер таасирин тийгизиши мүмкүн?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Электрондук почта жана Жылнаама сыяктуу жумуш каттоо эсебиңиз менен байланышкан дайындар"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Түзмөгүңүздөгү бардык колдонмолордун тизмеси"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Түзмөгүңүздөгү <xliff:g id="COUNT_1">%d</xliff:g> колдонмодон турган тизме</item>
+      <item quantity="one">Түзмөгүңүздөгү <xliff:g id="COUNT_0">%d</xliff:g> колдонмодон турган тизме</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Түзмөгүңүздөгү ар бир колдонмонун колдонулушу (сарпталган убакыт жана колдонулган дайындардын суммасы)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Түзмөгүңүздөгү трафиктин таржымалы"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Мүчүлүштүк тууралуу акыркы кабарлооңуз"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Түзмөгүңүздүн эң акыркы коопсуздук таржымалы"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Эч качан"</string>
 </resources>
diff --git a/res/values-lo-rLA/arrays.xml b/res/values-lo-rLA/arrays.xml
index 4c8d1ff..f1b952d 100644
--- a/res/values-lo-rLA/arrays.xml
+++ b/res/values-lo-rLA/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ເປີດໜ້າຈໍ"</item>
     <item msgid="3253368931113490863">"ຮັບບັນຊີ"</item>
     <item msgid="780392378084812901">"ນຳໃຊ້ໃນພື້ນຫຼັງ"</item>
+    <item msgid="2629748510881309577">"accessibility volume"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"ຕຳແໜ່ງ"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"ເປີດໜ້າຈໍ"</item>
     <item msgid="5258373962467495905">"ຮັບບັນຊີ"</item>
     <item msgid="334625385979270703">"ນຳໃຊ້ໃນພື້ນຫຼັງ"</item>
+    <item msgid="9039213578110332702">"Accessibility volume"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"ສັ້ນ"</item>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index a9f1042..705aed1 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"ແຕະເພື່ອເຊື່ອມຕໍ່ກັບ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"ທ່ານຕ້ອງການເຊື່ອມຕໍ່ຫາ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ບໍ່?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ຮ້ອງຂໍການເຂົ້າເຖິງປຶ້ມໂທລະສັບ"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ຕ້ອງການເຂົ້າເຖິງລາຍຊື່ຜູ່ຕິດຕໍ່ ແລະປະຫວັດການໂທຂອງທ່ານ. ອະນຸມັດການເຂົ້າເຖິງ %2$s ຫຼືບໍ່?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wants to access your contacts and call history. Give access to <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"ບໍ່ຕ້ອງຖາມຄືນ"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"ບໍ່ຕ້ອງຖາມຄືນ"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"ຮ້ອງຂໍການເຂົ້າເຖິງຂໍ້ຄວາມ"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"ການຕັ້ງຄ່າ"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"ການຕັ້ງຄ່າ"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"ທາງລັດການຕັ້ງຄ່າ"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"ບໍ່ພົບກິດຈະກຳທີ່ກົງກັນ."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"ໂໝດຢູ່ໃນຍົນ"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"ເພີ່ມເຕີມ"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"ລະບົບໄຮ້ສາຍ &amp; ເຄືອຂ່າຍ"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ໃຊ້ <xliff:g id="NEW_APP">%1$s</xliff:g> ແທນ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ເພື່ອ​ຈັດ​ການ​ການ​ເຊື່ອມ​ຕໍ່​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ໃຊ້ <xliff:g id="NEW_APP">%s</xliff:g> ເພື່ອ​ຈັດ​ການ​ການ​ເຊື່ອມ​ຕໍ່​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ​ບໍ?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"​ຜູ່​ໃຫ້​ບໍ​ລິ​ການ SIM ທີ່ບໍ່​ຮູ້​ຈັກ"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s ບໍ່ມີເວັບໄຊການຈັດສັນ ທີ່ລະບົບຮູ້ຈັກ"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"ກະ​ລຸ​ນາ​ໃສ່​ຊິມກາດ ​ແລະເປີດເຄື່ອງຄືນໃໝ່"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"ກະ​ລຸ​ນາ​ເຊື່ອມ​ຕໍ່​ກັບ​ອິນ​ເຕີ​ເນັດ"</string>
     <string name="location_title" msgid="1029961368397484576">"ທີ່ຢູ່ຂອງຂ້ອຍ"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"ຜູ່​ສະ​ໜອງ​ພາບ​ຖ່າຍ​ດາວ​ທຽມ:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"ຕັ້ງຄ່າເອງ"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"ເກີດບັນຫາໃນການໂຫລດຄູ່​ມື."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Third-party licenses"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ເກີດບັນຫາໃນການໂຫຼດຂໍ້ມູນລິຂະສິດ."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"ກຳລັງໂຫລດ..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"ຂໍ້ມູນດ້ານຄວາມປອດໄພ"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"ປະຢັດ​ແບັດເຕີຣີ"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"ເປີດ​ໃຊ້​ອັດ​ຕະ​ໂນ​ມັດ"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ບໍ່​ມີ​ປິດ"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ເມື່ອ​ແບັດ​ເຕີ​ຣີເຫຼືອ %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"at <xliff:g id="PERCENT">%1$s</xliff:g>battery"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"ສະຖິຕິໂປຣເຊສ"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"ສະຖານະ Geeky ກ່ຽວກັບໂປຣເຊສທີ່ກຳລັງເຮັດວຽກຢູ່"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"ໜ່ວຍຄວາມຈຳທີ່ໃຊ້"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"​ລະ​ດັບ​ສຽງ​ໂທ​ລະ​ສັບ"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"ລະ​ດັບ​ສຽງ​ແຈ້ງ​ເຕືອນ"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"ຣິງໂທນໂທລະສັບ"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"ສຽງແຈ້ງເຕືອນເລີ່ມຕົ້ນ"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"ສຽງ​ໂມງ​ປຸກ​ຕາມຄ່າເລີ່ມຕົ້ນ"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ສັ່ນ​ເຕືອນ​ເມື່ອ​ມີ​ການ​ໂທ​ເຂົ້າ"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"ສຽງ​ອື່ນໆ"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"ສຽງ​ປຸ່ມ​ກົດ"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"ບໍ່ສາມາດເຂົ້າສູ່ລະບົບບໍ?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"ສົ່ງຂໍ້ມູນລະບົບ"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"ບໍ່ຕ້ອງສະແດງອີກ"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"​ກຳ​ລັງ​ຮ້ອງ​ຂໍ​ໃນ​ນາມ"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"ເພີ່ມບັນຊີ"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"ການຕັ້ງຄ່າໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"ຊອກຫາລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"ອະນຸຍາດໃຫ້ລາຍຊື່ຜູ້ຕິດຕໍ່ຊອກຫາໂດຍອົງກອນຂອງທ່ານໄດ້ເພື່ອຢືນຢັນຜູ້ໂທ ແລະ ລາຍຊື່ຜູ້ຕິດຕໍ່ຕ່າງໆ"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"ຊິ້ງຂໍ້ມູນບັນຊີອັດຕະໂນມັດ"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"ຊິ້ງຂໍ້ມູນບັນຊີສ່ວນຕົວອັດຕະໂນມັດ"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"ຊິ້ງຂໍ້ມູນບັນຊີບ່ອນເຮັດວຽກອັດຕະໂນມັດ"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"ການຊິ້ງຂໍ້ມູນບັນຊີ"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"ຄວາມເປັນສ່ວນຕົວ"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ຄວາມເປັນສ່ວນຕົວ"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"ເພື່ອສະໜອງສິດການເຂົ້າເຖິງຂໍ້ມູນບ່ອນເຮັດວຽກຂອງທ່ານ, ອົງກອນຂອງທ່ານສາມາດປ່ຽນການຕັ້ງຄ່າ ແລະ ຕິດຕັ້ງຊອບແວໃສ່ອຸປະກອນຂອງທ່ານໄດ້, ເຊິ່ງອາດເຮັດໃຫ້ເນື້ອຫາສ່ວນຕົວບາງຢ່າງຂອງທ່ານເບິ່ງເຫັນໄດ້ໂດຍຜູ້ເບິ່ງແຍງລະບົບ. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານສຳລັບຂໍ້ມູນເພີ່ມເຕີມ."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"What types of information can your organization see?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"What changes affect what your organization can see?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"What actions may impact your access to this device?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data associated with your work account, such as email and calendar"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"List of all apps on your device"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">List of all <xliff:g id="COUNT_1">%d</xliff:g> apps on your device</item>
+      <item quantity="one">List of all <xliff:g id="COUNT_0">%d</xliff:g> app on your device</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Usage (time spent and amount of data used) of each app on your device"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Traffic logs on your device"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Your most recent bug report"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Your most recent security log"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"ບໍ່ມີກຳນົດ"</string>
 </resources>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 1b4a01f..370614c 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"įjungti ekraną"</item>
     <item msgid="3253368931113490863">"gauti paskyras"</item>
     <item msgid="780392378084812901">"vykdyti fone"</item>
+    <item msgid="2629748510881309577">"pritaikymo neįgaliesiems garsas"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Vietovė"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Įjungti ekraną"</item>
     <item msgid="5258373962467495905">"Gauti paskyras"</item>
     <item msgid="334625385979270703">"Vykdyti fone"</item>
+    <item msgid="9039213578110332702">"Pritaikymo neįgaliesiems garsas"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Trumpa"</item>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 39afc33..7d14305 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -152,7 +152,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Palieskite, kad prisijungtumėte prie „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Ar norite prisijungti prie „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Prieigos prie telefonų knygos užklausa"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s nori pasiekti jūsų kontaktus ir skambučių istoriją. Suteikti prieigą %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"„<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>“ nori pasiekti jūsų kontaktus ir skambučių istoriją. Suteikti „<xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>“ prieigą?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Daugiau neklausti"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Daugiau neklausti"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Prieigos prie pranešimų užklausa"</string>
@@ -274,6 +274,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Nustatymai"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Nustatymai"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Spartusis nustatymų klavišas"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Nerasta jokios atitinkančios veiklos."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Lėktuvo režimas"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Daugiau"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Belaidis ryšys ir tinklai"</string>
@@ -1321,7 +1322,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Naudoti <xliff:g id="NEW_APP">%1$s</xliff:g> vietoje <xliff:g id="CURRENT_APP">%2$s</xliff:g> tinklo ryšiams tvarkyti?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Naudoti <xliff:g id="NEW_APP">%s</xliff:g> tinklo ryšiams tvarkyti?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nežinomas SIM operatorius"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"„%1$s“ neturi aprūpinimo svetainės"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"„<xliff:g id="OPERATOR">%1$s</xliff:g>“ neturi jokios žinomos aprūpinimo svetainės"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Įdėkite SIM kortelę ir paleiskite iš naujo"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Prisijunkite prie interneto"</string>
     <string name="location_title" msgid="1029961368397484576">"Mano vieta"</string>
@@ -1377,8 +1378,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Palydovinių vaizdų teikėjai:\n© CNES / „Astrium“, „DigitalGlobe“, „Bluesky“, 2014 m."</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Neautomatiškai"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Įkeliant vadovą iškilo problema."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Trečiųjų šalių licencijos"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Įkeliant licencijas iškilo problema."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Įkeliama…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Saugos informacija"</string>
@@ -1966,7 +1966,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Akumuliatoriaus tausojimo priemonė"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Įjungti automatiškai"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Niekada"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"kai yra %1$s akumuliatoriaus energijos"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"kai akumuliatoriaus įkrovos lygis yra <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Procesų statistika"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Entuziastų pateikta statistika apie vykstančius procesus"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Naudojama atmintis"</string>
@@ -2650,10 +2650,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Skambučio garsumas"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Pranešimo garsumas"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Telefono skambėjimo tonas"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Numatytasis pranešimo garsas"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Numatytasis signalo garsas"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Taip pat vibruoti, kai skamb."</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Kiti garsai"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Skambinimo skydelio tonai"</string>
@@ -3289,6 +3287,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Negalite prisijungti?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Siųsti sistemos informaciją"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Daugiau nerodyti"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Užklausa pateikiama kaip"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Pridėti paskyrą"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Darbo profilio nustatymai"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktų paieška"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Leiskite nustatyti skambintojus ir kontaktus atliekant organizacijos kontaktų paiešką"</string>
@@ -3367,20 +3367,24 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Autom. sinchr. pask. duomenis"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Aut. sinchr. asm. pask. duom."</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Aut. sinchr. darbo pask. duom."</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Paskyros sinchronizavimas"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privatumas"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privatumas"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Norėdama suteikti prieigą prie jūsų darbo duomenų, organizacija gali pakeisti nustatymus ir įdiegti programinę įrangą jūsų įrenginyje, todėl administratorius gali matyti kai kurį asmeninį turinį. Jei reikia daugiau išsamios informacijos, susisiekite su organizacijos administratoriumi."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Kokio tipo informaciją organizacija gali matyti?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Kokie pakeit. turi įtakos tam, ką organizacija gali matyti?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Kokie veiksmai gali paveikti prieigą prie šio įrenginio?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Su darbo paskyra susiję duomenys, pvz., el. pašto ir kalendoriaus"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Visų įrenginyje esančių programų sąrašas"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Visų įrenginyje esančių programų (<xliff:g id="COUNT_1">%d</xliff:g>) sąrašas</item>
+      <item quantity="few">Visų įrenginyje esančių programų (<xliff:g id="COUNT_1">%d</xliff:g>) sąrašas</item>
+      <item quantity="many">Visų įrenginyje esančių programų (<xliff:g id="COUNT_1">%d</xliff:g>) sąrašas</item>
+      <item quantity="other">Visų įrenginyje esančių programų (<xliff:g id="COUNT_1">%d</xliff:g>) sąrašas</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Kiekvienos įrenginyje esančios programos naudojimas (praleistas laikas ir sunaudotų duomenų kiekis)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Srauto žurnalai jūsų įrenginyje"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Pats naujausias pranešimas apie riktą"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Pats naujausias saugos žurnalas"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Niekada"</string>
 </resources>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index 8174071..c394322 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ieslēgt ekrānu"</item>
     <item msgid="3253368931113490863">"iegūt kontus"</item>
     <item msgid="780392378084812901">"darbināt fonā"</item>
+    <item msgid="2629748510881309577">"pieejamības paziņojumu skaļums"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Atrašanās vieta"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Ieslēgt ekrānu"</item>
     <item msgid="5258373962467495905">"Iegūt kontus"</item>
     <item msgid="334625385979270703">"Darbināt fonā"</item>
+    <item msgid="9039213578110332702">"Pieejamības paziņojumu skaļums"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Īss"</item>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index df01aa5..254dafb 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -151,7 +151,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Pieskarieties, lai izveidotu savienojumu ar ierīci “<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Vai vēlaties izveidot savienojumu ar ierīci <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Pieprasījums piekļūt tālruņu grāmatai"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Ierīce %1$s vēlas piekļūt jūsu kontaktpersonām un zvanu vēsturei. Vai sniegt piekļuvi ierīcei %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> vēlas piekļūt jūsu kontaktpersonu datiem un zvanu vēsturei. Vai piešķirt šo piekļuvi ierīcei <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Nejautāt atkārtoti"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Nejautāt atkārtoti"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Pieprasījums piekļūt ziņojumam"</string>
@@ -272,6 +272,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Iestatījumi"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Iestatījumi"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Saīsne Iestatījumi"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Netika atrasta neviena atbilstoša darbība."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Lidojuma režīms"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Vairāk"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Bezvadu sakari un tīkli"</string>
@@ -1311,7 +1312,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Vai tīkla savienojumu pārvaldībai izmantot lietotni <xliff:g id="NEW_APP">%1$s</xliff:g>, nevis <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Vai tīkla savienojumu pārvaldībai izmantot lietotni <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nezināms SIM operators"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Operatora %1$s nodrošināšanas vietne nav zināma."</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Operatoram <xliff:g id="OPERATOR">%1$s</xliff:g> nav zināmas nodrošināšanas vietnes."</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Lūdzu, ievietojiet SIM karti un restartējiet."</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Lūdzu, izveidojiet savienojumu ar internetu."</string>
     <string name="location_title" msgid="1029961368397484576">"Mana atrašanās vieta"</string>
@@ -1367,8 +1368,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satelītuzņēmumu nodrošinātāji:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Rokasgrāmata"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Radās ar rokasgrāmatas ielādi saistīta problēma."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Trešo pušu licences"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Radās ar licenču ielādi saistīta problēma."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Notiek ielāde…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Informācija par drošību"</string>
@@ -1949,7 +1949,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Akumulatora enerģijas taupīšanas režīms"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Ieslēgt automātiski"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nekad"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ar akumulatora jaudu %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ar akumulatora uzlādes līmeni <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Procesu statistika"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Statistika par darbības procesiem"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Atmiņas lietojums"</string>
@@ -2628,10 +2628,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Zvana skaļums"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Paziņojumu skaļums"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Tālruņa zvana signāls"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Paziņojuma noklusējuma skaņa"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Signāla noklusējuma skaņa"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrācija zvaniem"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Citas skaņas"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Numura sastādīšanas tastatūras skaņas"</string>
@@ -3255,6 +3253,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Vai neizdodas pierakstīties?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Sistēmas informācijas nosūtīšana"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Vairs nerādīt"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Pieprasījums tiks iesniegts, izmantojot kontu"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Pievienot kontu"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Darba profila iestatījumi"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktpersonu meklēšana"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Atļaut identificēt zvanītājus un kontaktpersonas, kad organizācijā tiek meklētas kontaktpersonas"</string>
@@ -3330,20 +3330,23 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Autom. sinhronizēt konta datus"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Aut. sinhr. pers. konta datus"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Aut. sinhr. darba konta datus"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Konta sinhronizācija"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Konfidencialitāte"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Konfidencialitāte"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Lai nodrošinātu piekļuvi jūsu darba datiem, jūsu organizācija var mainīt iestatījumus un instalēt programmatūru jūsu ierīcē. Tādējādi administratoram var būt redzama daļa jūsu personiskā satura. Lai iegūtu detalizētāku informāciju, sazinieties ar organizācijas administratoru."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Kāda veida informāciju var skatīt jūsu organizācija?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Kādas izmaiņas ietekmē organizācijai redzamo informāciju?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Kādas darbības var ietekmēt jūsu piekļuvi šai ierīcei?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Ar jūsu darba kontu saistīti dati, piemēram, e-pasta un kalendāra dati"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Visu jūsu ierīcē instalēto lietotņu saraksts"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="zero">Visu jūsu ierīcē instalēto lietotņu (<xliff:g id="COUNT_1">%d</xliff:g>) saraksts</item>
+      <item quantity="one">Visu jūsu ierīcē instalēto lietotņu (<xliff:g id="COUNT_1">%d</xliff:g>) saraksts</item>
+      <item quantity="other">Visu jūsu ierīcē instalēto lietotņu (<xliff:g id="COUNT_1">%d</xliff:g>) saraksts</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Katras jūsu ierīcē instalētās lietotnes lietojuma dati (pavadītais laiks un izmantoto datu daudzums)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Jūsu ierīces datplūsmas žurnāli"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Jūsu pēdējais kļūdas pārskats"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Jūsu pēdējais drošības žurnāls"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nekad"</string>
 </resources>
diff --git a/res/values-mk-rMK/arrays.xml b/res/values-mk-rMK/arrays.xml
index 719aec9..a1836f6 100644
--- a/res/values-mk-rMK/arrays.xml
+++ b/res/values-mk-rMK/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"вклучи го екранот"</item>
     <item msgid="3253368931113490863">"земи сметки"</item>
     <item msgid="780392378084812901">"извршувај во заднина"</item>
+    <item msgid="2629748510881309577">"јачина на звук на пристапноста"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Локација"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Вклучи го екранот"</item>
     <item msgid="5258373962467495905">"Земи сметки"</item>
     <item msgid="334625385979270703">"Извршувај во заднина"</item>
+    <item msgid="9039213578110332702">"Јачина на звук на пристапноста"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Кратко"</item>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index 3ee377a..af2111d 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Допрeте за да се поврзе со „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Дали сакате да се поврзете со „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Барање за пристап кон телефонски именик"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s сака да пристапи кон вашите контакти и историја на повици. Дозволи пристап на %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> сака да пристапи кон вашите контакти и историјата на повици. Дозволи пристап на <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Не прашувај повторно"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Не прашувај повторно"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Порака за барање пристап"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Поставки"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Поставки"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Кратенка за подесувања"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Не се пронајдени активности што се соовпаѓаат."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Режим на работа во авион"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Повеќе"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Безжичен и мрежи"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Да се користи <xliff:g id="NEW_APP">%1$s</xliff:g> наместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управување со мрежните врски?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Да се користи <xliff:g id="NEW_APP">%s</xliff:g> за управување на вашите мрежни врски?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Непознат СИМ-оператор"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s нема познато одредување на веб-сајт"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> нема познато обезбедување веб-сајт"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Вметнете СИМ картичката и рестартирајте"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Поврзете се на интернет"</string>
     <string name="location_title" msgid="1029961368397484576">"Моја локација"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Даватели на сателитски снимки:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Упатство"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Постои проблем со вчитување на упатството."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Лиценци на трети лица"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Постои проблем при вчитување на лиценците."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Се вчитува..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Безбедносни информации"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Штедач на батерија"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Вклучи автоматски"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Никогаш"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"на %1$s батерија"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"при <xliff:g id="PERCENT">%1$s</xliff:g> батерија"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Статистика на процес"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Паметна статистика за процеси кои се извршуваат"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Употреба на меморија"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Јачина на звук на ѕвонење"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Јачина на звук на известување"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Мелодија на телефон"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Стандарден звук за известување"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Стандарден звук за аларм"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Вибрации и за повици"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Други звуци"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Тонови на тастатура за бирање"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Не може да се најавите?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Испрати системски информации"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Не покажувај повторно"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Бара како"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Додај сметка"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Поставки на работен профил"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Пребарување контакти"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Дозволете при пребарувањата контакти на вашата организација да се препознаваат повикувачи и контакти"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Автосинхр. податоци за сметка"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Автосинхр. лични податоци"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Автосинхр. подат. за службена"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Синхронизирање сметка"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Приватност"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Приватност"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"За да се обезбеди пристап до деловните податоци, вашата организација може да ги промени поставките и да инсталира софтвер на вашиот уред, што би можело да предизвика некои од вашите лични податоци да бидат видливи за администраторот. За повеќе детали, контактирајте со администраторот во организацијата."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Кои видови информации може да ги види вашата организација?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Кои промени влијаат на она што го гледа организацијата?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Кои дејства може да влијаат на вашиот пристап до уредов?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Податоци поврзани со вашата службена сметка, како е-пошта и календар"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Список со сите апликации на уредот"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Список со сите <xliff:g id="COUNT_1">%d</xliff:g> апликации на уредот</item>
+      <item quantity="other">Список со сите <xliff:g id="COUNT_1">%d</xliff:g> апликации на уредот</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Користење (поминато време и искористена количина на податоци) на секоја апликација на уредот"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Дневници за сообраќајот на уредот"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Вашиот најнов извештај за грешки"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Вашиот најнов безбедносен дневник"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Никогаш"</string>
 </resources>
diff --git a/res/values-ml-rIN/arrays.xml b/res/values-ml-rIN/arrays.xml
index 119a991..7a3c581 100644
--- a/res/values-ml-rIN/arrays.xml
+++ b/res/values-ml-rIN/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"സ്ക്രീൻ ഓണാക്കുക"</item>
     <item msgid="3253368931113490863">"അക്കൗണ്ടുകൾ സ്വന്തമാക്കുക"</item>
     <item msgid="780392378084812901">"പശ്ചാത്തലത്തിൽ റൺ ചെയ്യുക"</item>
+    <item msgid="2629748510881309577">"പ്രവേശനക്ഷമതാ വോളിയം"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"ലൊക്കേഷൻ"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"സ്ക്രീൻ ഓണാക്കുക"</item>
     <item msgid="5258373962467495905">"അക്കൗണ്ടുകൾ സ്വന്തമാക്കുക"</item>
     <item msgid="334625385979270703">"പശ്ചാത്തലത്തിൽ റൺ ചെയ്യുക"</item>
+    <item msgid="9039213578110332702">"പ്രവേശനക്ഷമതാ വോളിയം"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"ഹ്രസ്വം"</item>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index 3300569..1358502 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" എന്ന ഉപകരണത്തിലേക്ക് കണ‌ക്റ്റുചെയ്യാൻ ടാപ്പുചെയ്യുക."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" എന്നതിൽ കണക്‌റ്റുചെയ്യണോ?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ഫോൺ ബുക്ക് ആക്‌സസ്സ് അഭ്യർത്ഥന"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s, നിങ്ങളുടെ കോൺടാക്റ്റുകളും കോൾ ചരിത്രവും ആക്‌സസ്സുചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു. %2$s എന്നതിലേക്ക് ആക്‌സസ്സ് നൽകണോ?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"നിങ്ങളുടെ കോൺടാക്റ്റുകളും കോൾ ചരിത്രവും ആക്‌സസ്സ് ചെയ്യുന്നതിന് <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ആഗ്രഹിക്കുന്നു. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ഉപകരണത്തിന് ആക്‌സസ്സ് നൽകണോ?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"വീണ്ടും ആവശ്യപ്പെടരുത്"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"വീണ്ടും ആവശ്യപ്പെടരുത്"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"സന്ദേശ ആക്‌സസ്സ് അഭ്യർത്ഥന"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"ക്രമീകരണം"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"ക്രമീകരണം"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"ക്രമീകരണങ്ങളിലേയ്ക്ക്"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"പൊരുത്തമുള്ള പ്രവർത്തനങ്ങളൊന്നും കണ്ടെത്തിയില്ല."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"ഫ്ലൈറ്റ് മോഡ്"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"കൂടുതൽ"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"വയർലസ്സും നെറ്റ്‌വർക്കും"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"നിങ്ങളുടെ നെറ്റ്‌വർക്ക് കണക്ഷനുകൾ നിയന്ത്രിക്കാൻ <xliff:g id="CURRENT_APP">%2$s</xliff:g> എന്നതിന് പകരം <xliff:g id="NEW_APP">%1$s</xliff:g> എന്നതാണോ ഉപയോഗിക്കുന്നത്?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"നിങ്ങളുടെ നെറ്റ്‌വർക്ക് കണക്ഷനുകൾ നിയന്ത്രിക്കാൻ <xliff:g id="NEW_APP">%s</xliff:g> ആണോ ഉപയോഗിക്കുന്നത്?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"അജ്ഞാത സിം ഓപ്പറേറ്റർ"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s-ന് അറിയപ്പെടുന്ന പ്രൊവിഷനിംഗ് വെബ്‌സൈറ്റ് ഒന്നുമില്ല"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> എന്ന ഓപ്പറേറ്റർക്ക് അറിയപ്പെടുന്ന പ്രൊവിഷനിംഗ് വെബ്‌സൈറ്റ് ഒന്നുമില്ല"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"സിം കാർഡ് ചേർത്തതിനുശേഷം പുനരാരംഭിക്കുക"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"ഇന്റർനെറ്റിൽ കണക്റ്റുചെയ്യുക"</string>
     <string name="location_title" msgid="1029961368397484576">"എന്റെ ലൊക്കേഷൻ"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"ഉപഗ്രഹ ഇമേജറി ദാതാക്കൾ:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"മാനുവൽ"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"മാനുവൽ ലോഡുചെയ്യുന്നതിൽ ഒരു പ്രശ്നമുണ്ട്."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"മൂന്നാം കക്ഷി ലൈസൻസുകൾ"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ലൈസൻസുകൾ ലോഡുചെയ്യുന്നതിൽ ഒരു പ്രശ്നമുണ്ട്."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"ലോഡുചെയ്യുന്നു..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"സുരക്ഷാ വിവരം"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"ബാറ്ററി സേവർ"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"ഓട്ടോമാറ്റിക്കായി ഓണാക്കുക"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ഒരിക്കലും"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s ബാറ്ററി"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> ബാറ്ററിയിൽ"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"പ്രോസസ്സ് സ്ഥിതിവിവരക്കണക്കുകൾ"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"പ്രവർത്തന പ്രോസസ്സുകളെക്കുറിച്ചുള്ള Geeky സ്ഥിതിവിവരക്കണക്കുകൾ"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"മെമ്മറി ഉപയോഗം"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"റിംഗ് വോളിയം"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"അറിയിപ്പ് വോളിയം"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"ഫോൺ റിംഗ്ടോൺ"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"ഡിഫോൾട്ട് അറിയിപ്പ് ശബ്‌ദം"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"ഡിഫോൾട്ട് അലാറം ശബ്ദം"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"കോളുകൾക്കും വൈബ്രേറ്റ്"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"മറ്റു ശബ്‌ദങ്ങൾ"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"ഡയൽ പാഡ്  ടോണുകൾ"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"സൈൻ ഇൻ ചെയ്യാൻ കഴിയുന്നില്ലേ?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"സിസ്റ്റം വിവരങ്ങൾ അയയ്ക്കുക"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"വീണ്ടും കാണിക്കരുത്"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"ഇനിപ്പറയുന്നതായി അഭ്യർത്ഥിക്കുന്നു"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"അക്കൗണ്ട് ചേർക്കുക"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"ഔദ്യോഗിക പ്രൊഫൈൽ ക്രമീകരണം"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"കോൺടാക്റ്റ് തിരയൽ"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"വിളിക്കുന്നവരെയും കോൺടാക്റ്റുകളെയും തിരിച്ചറിയുന്നതിന് കോൺടാക്റ്റുകൾ തിരയാൻ നിങ്ങളുടെ സ്ഥാപനത്തെ അനുവദിക്കുക"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"അക്കൗണ്ട് വിവരങ്ങൾ സ്വയമേവ സമന്വയിപ്പിക്കുക"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"വ്യക്തിഗത അക്കൗണ്ട് വിവരങ്ങൾ സ്വയമേവ സമന്വയിപ്പിക്കുക"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"ഔദ്യോഗിക അക്കൗണ്ട് വിവരങ്ങൾ സ്വയമേവ സമന്വയിപ്പിക്കുക"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"അക്കൗണ്ട് സമന്വയം"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"സ്വകാര്യത"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"സ്വകാര്യത"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"ഔദ്യോഗിക ഡാറ്റയിലേക്ക് നിങ്ങൾക്ക് ആക്സസ്സ് നൽകുന്നതിന്, സ്ഥാപനം നിങ്ങളുടെ ഉപകരണത്തിലെ ക്രമീകരണം മാറ്റുകയും അതിൽ സോഫ്റ്റ്‌വെയർ ഇൻസ്റ്റാൾ ചെയ്യുകയും ചെയ്തേക്കാം, ഇതിനാൽ അഡ്മിൻ നിങ്ങളുടെ ചില വ്യക്തിഗത ഉള്ളടക്കങ്ങൾ കാണുന്നതിന് സാധ്യതയുണ്ട്. കൂടുതൽ വിശദാംശങ്ങൾ അറിയുന്നതിന് സ്ഥാപനത്തിന്റെ അഡ്‌മിനെ ബന്ധപ്പെടുക."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"എന്തൊക്കെ തരം വിവരങ്ങളാണ് നിങ്ങളുടെ സ്ഥാപനത്തിന് കാണാൻ കഴിയുക?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"നിങ്ങളുടെ സ്ഥാപനത്തിന് എന്തൊക്കെ കാണാൻ കഴിയുമെന്നതിനെ ഏതൊക്കെ മാറ്റങ്ങൾ ബാധിക്കും?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ഈ ഉപകരണത്തിലേക്കുള്ള നിങ്ങളുടെ ആക്‌സസ്സിനെ ഏതൊക്കെ പ്രവൃത്തികൾ ബാധിക്കാം?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"നിങ്ങളുടെ ഔദ്യോഗിക അക്കൗണ്ടുമായി ബന്ധപ്പെടുത്തിയിട്ടുള്ള, ഇമെയിലും കലണ്ടറും പോലുള്ള വിവരങ്ങൾ"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"നിങ്ങളുടെ ഉപകരണത്തിലെ എല്ലാ ആപ്‌സും ലിസ്റ്റുചെയ്യുക"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">നിങ്ങളുടെ ഉപകരണത്തിലെ എല്ലാ <xliff:g id="COUNT_1">%d</xliff:g> ആപ്സും  ലിസ്റ്റുചെയ്യുക</item>
+      <item quantity="one">നിങ്ങളുടെ ഉപകരണത്തിലെ എല്ലാ <xliff:g id="COUNT_0">%d</xliff:g> ആപ്പും ലിസ്റ്റുചെയ്യുക</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"നിങ്ങളുടെ ഉപകരണത്തിലെ ഓരോ ആപ്പിന്റെയും ഉപയോഗം (ചെലവിട്ട സമയവും ഉപയോഗിച്ച ഡാറ്റയുടെ അളവും)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"നിങ്ങളുടെ ഉപകരണത്തിലെ ട്രാഫിക് ലോഗുകൾ"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"നിങ്ങളുടെ ഏറ്റവും പുതിയ ബഗ് റിപ്പോർട്ട്"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"നിങ്ങളുടെ ഏറ്റവും പുതിയ സുരക്ഷാ ലോഗ്"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"ഒരിക്കലും വേണ്ട"</string>
 </resources>
diff --git a/res/values-mn-rMN/arrays.xml b/res/values-mn-rMN/arrays.xml
index d749193..68894a5 100644
--- a/res/values-mn-rMN/arrays.xml
+++ b/res/values-mn-rMN/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"дэлгэцийг асаах"</item>
     <item msgid="3253368931113490863">"бүртгэл авах"</item>
     <item msgid="780392378084812901">"дэвсгэрт ажиллуулах"</item>
+    <item msgid="2629748510881309577">"хүртээмжийн дууны түвшин"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Байршил"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Дэлгэцийг асаах"</item>
     <item msgid="5258373962467495905">"Бүртгэл авах"</item>
     <item msgid="334625385979270703">"Дэвсгэрт ажиллуулах"</item>
+    <item msgid="9039213578110332702">"Хүртээмжийн дууны түвшин"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Богино"</item>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index 9d2c56a..2ab8856 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" руу холбохын тулд дарна уу."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Та \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"-д холбогдохыг хүсч байна уу?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Утасны лавлахад хандах хүсэлт"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s таны харилцагчид болон ярианы түүхэд хандалт хийх хүсэлтэй байна. %2$s-д хандалт хийхийг зөвшөөрөх үү?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> таны харилцагчид болон дуудлагын түүхэнд хандах хүсэлтэй байна. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>-д хандах зөвшөөрөл олгох уу?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Дахиж үл асуух"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Дахиж үл асуух"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Зурваст хандах хүсэлт"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Тохиргоо"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Тохиргоо"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Тохиргооны товчилбор"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Тохирох үйл ажиллагаа олдсонгүй."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Нислэгийн горим"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Цааш"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Утасгүй &amp; сүлжээ"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Өөрийн сүлжээнии холболтуудыг удирдахад <xliff:g id="NEW_APP">%1$s</xliff:g>-г <xliff:g id="CURRENT_APP">%2$s</xliff:g>-н оронд ашиглах уу?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Сүлжээний холболтуудыг удирдахад <xliff:g id="NEW_APP">%s</xliff:g>-г ашиглах уу?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Тодорхойгүй SIM оператор"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s-д мэдэгдэж байгаа эрх зохицуулах вебсайт байхгүй байна"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>-д мэдэгдэж буй хангалтын вэбсайт алга"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"SIM карт оруулаад дахин эхлүүлнэ үү"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Интернэтэд холбогдоно уу"</string>
     <string name="location_title" msgid="1029961368397484576">"Миний Байршил"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Сансрын зураг нийлүүлэгчид: \n © 2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Гар ажиллагаатай"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Гар ажиллагааг ачаалах явцад алдаа гарлаа."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Гуравдагч талын лиценз"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Лицензүүдийг ачааллах явцад алдаа гарлаа."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Ачаалж байна..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Аюулгүй байдлын мэдээлэл"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Батарей хэмнэгч"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Автоматаар асаах"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Хэзээ ч үгүй"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"батерей %1$s болмогц"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"батерей <xliff:g id="PERCENT">%1$s</xliff:g> болоход"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Процессын статус"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Ажиллаж байгаа процессуудын талаарх статус"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Санах ойн ашиглалт"</string>
@@ -2475,7 +2475,7 @@
     <string name="app_restrictions_custom_label" msgid="6160672982086584261">"Апп хязгаарлалт тохируулах"</string>
     <string name="user_restrictions_controlled_by" msgid="3164078767438313899">"Контрол хийгч <xliff:g id="APP">%1$s</xliff:g>"</string>
     <string name="app_sees_restricted_accounts" msgid="7503264525057246240">"Энэ апп таны акаунтуудад хандалт хийж чадна"</string>
-    <string name="app_sees_restricted_accounts_and_controlled_by" msgid="6968697624437267294">"Энэхүү програм нь таны хаягт нэвтрэх боломжтой байна. <xliff:g id="APP">%1$s</xliff:g> хянаж байна"</string>
+    <string name="app_sees_restricted_accounts_and_controlled_by" msgid="6968697624437267294">"Энэхүү апп нь таны хаягт нэвтрэх боломжтой байна. <xliff:g id="APP">%1$s</xliff:g> хянаж байна"</string>
     <string name="restriction_wifi_config_title" msgid="8889556384136994814">"Wi‑Fi болон мобайл"</string>
     <string name="restriction_wifi_config_summary" msgid="70888791513065244">"Wi‑Fi болон Мобайл тохиргоог өөрчлөхийг зөвшөөрөх"</string>
     <string name="restriction_bluetooth_config_title" msgid="8871681580962503671">"Bluetooth"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Хонхны дууны хэмжээ"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Мэдэгдлийн дууны хэмжээ"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Утасны хонхны ая"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Мэдэгдлийн хонхны дуу"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Сэрүүлгийн үндсэн ая"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Дуудлагад бас чичрэх"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Бусад ая"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Залгах товчлуурын ая"</string>
@@ -2684,11 +2682,11 @@
     <string name="notification_listener_disable_warning_summary" msgid="6738915379642948000">"Хэрэв та <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>-н мэдэгдлийн хандалтыг унтраавал Бүү саад бол хандалт мөн адил унтрах болно."</string>
     <string name="notification_listener_disable_warning_confirm" msgid="8333442186428083057">"Унтраах"</string>
     <string name="notification_listener_disable_warning_cancel" msgid="8586417377104211584">"Цуцлах"</string>
-    <string name="vr_listeners_title" msgid="1318901577754715777">"VR туслагч үйлчилгээ"</string>
-    <string name="no_vr_listeners" msgid="2689382881717507390">"Суулгасан апп-с VR туслагч үйлчилгээгээр ажиллах хүсэлт гаргаагүй байна."</string>
-    <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"VR үйлчилгээг <xliff:g id="SERVICE">%1$s</xliff:g>-д хандахыг зөвшөөрөх үү?"</string>
+    <string name="vr_listeners_title" msgid="1318901577754715777">"Виртуал Орчин (VR) туслагч үйлчилгээ"</string>
+    <string name="no_vr_listeners" msgid="2689382881717507390">"Суулгасан апп-с Виртуал Орчин (VR) туслагч үйлчилгээгээр ажиллах хүсэлт гаргаагүй байна."</string>
+    <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"Виртуал Орчин (VR) үйлчилгээг <xliff:g id="SERVICE">%1$s</xliff:g>-д хандахыг зөвшөөрөх үү?"</string>
     <string name="vr_listener_security_warning_summary" msgid="6931541068825094653">"<xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> нь таныг апп-г виртуал бодит горимд ашиглах үед ажиллах болно."</string>
-    <string name="display_vr_pref_title" msgid="8104485269504335481">"Төхөөрөмж VR горимын үед"</string>
+    <string name="display_vr_pref_title" msgid="8104485269504335481">"Төхөөрөмж Виртуал Орчин (VR) горимын үед"</string>
     <string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"Бүдгэрлийг бууруулах (санал болгож буй)"</string>
     <string name="display_vr_pref_off" msgid="2190091757123260989">"Анивчилтыг бууруулах"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"\"Бүү саад бол\" хандалт"</string>
@@ -3221,6 +3219,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Нэвтэрч чадахгүй байна уу?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Системийн мэдээллийг илгээх"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Дахин бүү үзүүл"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Дараахаар хүсэлт гаргаж байна"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Бүртгэл нэмэх"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Ажлын профайлын тохиргоо"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Харилцагч хайх"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Дуудлага хийгч болон харилцагчийг тогтоохын тулд танай байгууллагыг харилцагчийн хайлт хийхийг зөвшөөрдөг"</string>
@@ -3293,20 +3293,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Бүртгэлийн өгөгдлийг автоматаар синк хийх"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Хувийн бүртгэлийн өгөгдлийг автоматаар синк хийх"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Ажлын бүртгэлийн өгөгдлийг автоматаар синк хийх"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Бүртгэл синк хийх"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Нууцлал"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Нууцлал"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Tаныг ажлын өгөгдөлд хандуулахын тулд танай байгууллага таны төхөөрөмжийн зарим тохиргоог өөрчилж, програм хангамж суулгах шаардлагатай бөгөөд ингэснээр таны зарим хувийн агуулга админд харагдах болно. Дэлгэрэнгүй мэдээлэл авахын тулд админтайгаа холбогдоно уу."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Танай байгууллага ямар мэдээлэл харж болох вэ?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Ямар өөрчлөлт танай байгууллагын харж болох мэдээлэлд нөлөөлөх вэ?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Ямар үйлдэл таны энэ төхөөрөмжийн хандалтад нөлөөлөх вэ?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Имэйл, хуанли зэрэг таны ажлын бүртгэлтэй холбоотой өгөгдөл"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Таны төхөөрөмжийн бүх апп-н жагсаалт"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Таны төхөөрөмжийн бүх <xliff:g id="COUNT_1">%d</xliff:g> апп-н жагсаалт</item>
+      <item quantity="one">Таны төхөөрөмжийн бүх <xliff:g id="COUNT_0">%d</xliff:g> апп-н жагсаалт</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Таны төхөөрөмжийн апп тус бүрийн (зарцуулсан цаг болон нийт ашигласан дата) хэрэглээ"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Таны төхөөрөмжийн замын хөдөлгөөний бүртгэл"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Таны сүүлийн үеийн алдааны тайлан"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Таны сүүлийн үеийн аюулгүй байдлын бүртгэл"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Хэзээ ч үгүй"</string>
 </resources>
diff --git a/res/values-mr-rIN/arrays.xml b/res/values-mr-rIN/arrays.xml
index a0c3a56..130e2eb 100644
--- a/res/values-mr-rIN/arrays.xml
+++ b/res/values-mr-rIN/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"स्क्रीन चालू करा"</item>
     <item msgid="3253368931113490863">"खाती मिळवा"</item>
     <item msgid="780392378084812901">"पार्श्वभूमीमध्ये चालवा"</item>
+    <item msgid="2629748510881309577">"प्रवेशयोग्यता आकारमान"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"स्थान"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"स्क्रीन चालू करा"</item>
     <item msgid="5258373962467495905">"खाती मिळवा"</item>
     <item msgid="334625385979270703">"पार्श्वभूमीमध्ये चालवा"</item>
+    <item msgid="9039213578110332702">"प्रवेशयोग्यता आकारमान"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"लहान"</item>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index 148b02c..8d4792d 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" शी कनेक्ट करण्यासाठी टॅप करा."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"आपण \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" शी कनेक्ट करू इच्छिता?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"फोन पुस्तकात प्रवेश करण्याची विनंती"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ला आपल्या संपर्कांमध्ये आणि कॉल इतिहासामध्ये प्रवेश करण्याची आवश्यकता आहे. %2$s ला प्रवेश करण्याची अनुमती द्यायची?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> आपले संपर्क आणि कॉल इतिहासामध्येे प्रवेश करू इच्छिते. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ला प्रवेश द्यायचा?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"पुन्हा विचारू नका"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"पुन्हा विचारू नका"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"संदेशात प्रवेश करण्याची विनंती"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"सेटिंग्ज"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"सेटिंग्ज"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"सेटिंग्ज शॉर्टकट"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"कोणतेही जुळणारे क्रियाकलाप आढळले नाहीत."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"विमान मोड"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"अधिक"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"वायरलेस आणि नेटवर्क"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"आपली नेटवर्क कनेक्शन व्यवस्थापित करण्यासाठी <xliff:g id="CURRENT_APP">%2$s</xliff:g> ऐवजी <xliff:g id="NEW_APP">%1$s</xliff:g> वापरायचा?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"आपली नेटवर्क कनेक्शन व्यवस्थापित करण्यासाठी <xliff:g id="NEW_APP">%s</xliff:g> वापरायचा?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"अज्ञात सिम ऑपरेटर"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s कडे कोणतीही ज्ञात तरतूद वेबसाइट नाही"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> मध्ये कोणतीही ज्ञात तरतूद वेबसाइट नाही"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"कृपया सिम कार्ड घाला आणि रीस्टार्ट करा"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"कृपया इंटरनेटशी कनेक्ट करा"</string>
     <string name="location_title" msgid="1029961368397484576">"माझे स्थान"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"उपग्रह प्रतिमा प्रदाते:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"व्यक्तिचलित"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"व्यक्तिचलित लोड करताना समस्या आली."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"तृतीय-पक्ष परवाने"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"परवाने लोड करताना समस्या आली."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"लोड करत आहे..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"सुरक्षितता माहिती"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"बॅटरी सेव्हर"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"स्वयंचलितपणे चालू करा"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"कधीही नाही"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s बॅटरी वर"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g>बॅटरीवर"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"प्रक्रिया आकडेवारी"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"चालत असलेल्या प्रक्रियांबद्दल गीकी आकडेवारी"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"मेमरी वापर"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"रिंग व्हॉल्यूम"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"सूचना व्हॉल्यूम"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"फोन रिंगटोन"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"डीफॉल्ट सूचना ध्वनी"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"डीफॉल्ट अलार्म ध्वनी"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"कॉल साठी कंपन देखील"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"इतर ध्वनी"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"डायल पॅड टोन"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"साइन इन करू शकत नाही?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"सिस्टीम माहिती पाठवा"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"परत दर्शवू नका"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"म्हणून विनंती करीत आहे"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"खाते जोडा"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"कार्य प्रोफाइल सेटिंग्ज"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"संपर्क शोध"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"कॉलर आणि संपर्कांना ओळखण्यासाठी आपल्या संस्थेनुसार संपर्क शोधांची अनुमती द्या"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"खाते डेटा स्वयं संकालित करा"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"वैयक्तिक खाते डेटा स्वयं संकालित करा"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"कार्य खाते डेटा स्वयं संकालित करा"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"खाते संकालन"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"गोपनीयता"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"गोपनीयता"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"आपल्या कार्य डेटामध्ये प्रवेश देण्यासाठी, आपली संस्था कदाचित आपल्या डिव्हाइस वरील सेटिंग्ज बदलू शकते आणि सॉफ्‍टवेअर स्थापित करू शकते ज्यामुळे आपली काही वैयक्तिक सामग्री आपल्या प्रशासकास दृश्यमान होऊ शकेल. अधिक तपशीलांसाठी आपल्या संस्थेच्या प्रशासकाशी संपर्क साधा."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"आपली संस्‍था कोणत्या प्रकारांची माहिती पाहू शकते?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"आपली संस्था जे पाहू शकते त्यास कोणते बदल प्रभावित करतात?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"या डिव्हाइस मधील आपल्या प्रवेशास कोणत्या क्रिया प्रभावित करू शकतात?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"आपल्या कार्य खात्यासह संबद्ध असलेला डेटा़ जसे की, ईमेल आणि कॅलेंडर"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"आपल्या डिव्हाइस वरील सर्व अॅप्सची सूची"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">आपल्या डिव्हाइस वरील सर्व <xliff:g id="COUNT_1">%d</xliff:g> अॅपची सूची</item>
+      <item quantity="other">आपल्या डिव्हाइस वरील सर्व <xliff:g id="COUNT_1">%d</xliff:g> अॅप्सची सूची</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"आपल्या डिव्हाइस वरील प्रत्येक अॅपचा (घालविलेला कालावधी आणि वापरलेल्या डेटाचे प्रमाण) वापर"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"आपल्या डिव्हाइस वरील रहदारी लॉग"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"आपले अगदी अलीकडील दोष अहवाल"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"आपली अगदी अलीकडील सुरक्षितता लॉग"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"कधीही नाही"</string>
 </resources>
diff --git a/res/values-ms-rMY/arrays.xml b/res/values-ms-rMY/arrays.xml
index 13f1fc1..4b514f2 100644
--- a/res/values-ms-rMY/arrays.xml
+++ b/res/values-ms-rMY/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"hidupkan skrin"</item>
     <item msgid="3253368931113490863">"dapatkan akaun"</item>
     <item msgid="780392378084812901">"jalankan di latar belakang"</item>
+    <item msgid="2629748510881309577">"kelantangan kebolehaksesan"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Lokasi"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Hidupkan skrin"</item>
     <item msgid="5258373962467495905">"Dapatkan akaun"</item>
     <item msgid="334625385979270703">"Jalankan di latar belakang"</item>
+    <item msgid="9039213578110332702">"Kelantangan kebolehaksesan"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Pendek"</item>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index b0fe5fe..c705ed2 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Sentuh untuk menyambung ke \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Adakah anda mahu menyambung kepada \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Permintaan akses buku telefon"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s mahu mengakses kenalan dan sejarah panggilan anda. Beri akses kepada %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> mahu mengakses kenalan anda dan sejarah panggilan. Beri akses kepada <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Jangan tanya lagi"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Jangan tanya lagi"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Permintaan akses mesej"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Tetapan"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Tetapan"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Pintasan tetapan"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Tiada aktiviti yang sepadan ditemui."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Mod pesawat"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Lagi"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wayarles &amp; rangkaian"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> bukannya <xliff:g id="CURRENT_APP">%2$s</xliff:g> untuk mengurus sambungan rangkaian anda?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Gunakan <xliff:g id="NEW_APP">%s</xliff:g> untuk mengurus sambungan rangkaian anda?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Pengendali SIM yang tidak diketahui"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s tdk mempunyai tapak web peruntukan dikenali"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> tiada tapak web peruntukan yang dikenali"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Sila masukkan kad SIM dan mulakan semula"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Sila sambung ke internet"</string>
     <string name="location_title" msgid="1029961368397484576">"Lokasi Saya"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Pembekal imej satelit:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Terdapat masalah memuatkan manual."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Lesen pihak ketiga"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Terdapat masalah memuatkan lesen."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Memuatkan..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Maklumat keselamatan"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Penjimat bateri"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Hidupkan secara automatik"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Tidak sekali-kali"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"pada %1$s bateri"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"pada <xliff:g id="PERCENT">%1$s</xliff:g> bateri"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Statistik Proses"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Statistik skema tentang proses yang sedang berjalan"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Penggunaan memori"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Kelantangan deringan"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Kelantangan pemberitahuan"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Nada dering telefon"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Bunyi pemberitahuan lalai"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Bunyi penggera lalai"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Juga bergetar untuk panggilan"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Bunyi lain"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Nada pad dail"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Tidak dapat log masuk?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Hantar maklumat sistem"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Jangan tunjukkan lagi"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Meminta sebagai"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Tambah akaun"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Tetapan profil kerja"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Carian kenalan"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Benarkan carian kenalan oleh organisasi anda untuk mengenal pasti pemanggil dan kenalan"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Autosegerak data akaun"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Autosegerak data akaun peribadi"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Autosegerak data akaun kerja"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Penyegerakan akaun"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privasi"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privasi"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Untuk menyediakan akses kepada data kerja, organisasi anda boleh menukar tetapan dan memasang perisian pada peranti anda. Tindakan ini boleh menyebabkan sesetengah kandungan peribadi anda kelihatan kepada pentadbir. Hubungi pentadbir organisasi anda untuk mendapatkan butiran lanjut."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Apakah jenis maklumat yg dapat dilihat oleh organisasi anda?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Apakah perubahan yg mnjjskn perkara yg dpt dilht organisasi?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Apakah tindakan yang menjejaskan akses anda ke peranti ini?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data yang dikaitkan dengan akaun kerja anda, seperti e-mel dan kalendar"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Senarai semua apl pada peranti anda"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Senarai kesemua <xliff:g id="COUNT_1">%d</xliff:g> apl pada peranti anda</item>
+      <item quantity="one">Senarai kesemua <xliff:g id="COUNT_0">%d</xliff:g> apl pada peranti anda</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Penggunaan (masa dan amaun data yang digunakan) setiap apl pada peranti anda"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Log trafik pada peranti anda"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Laporan pepijat anda yang terbaharu"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Log keselamatan anda yang terbaharu"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Tidak pernah"</string>
 </resources>
diff --git a/res/values-my-rMM/arrays.xml b/res/values-my-rMM/arrays.xml
index 575b425..8e20ce2 100644
--- a/res/values-my-rMM/arrays.xml
+++ b/res/values-my-rMM/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"မျက်နှာပြင်ကို ဖွင့်ပါ"</item>
     <item msgid="3253368931113490863">"အကောင့်များကို ရယူပါ"</item>
     <item msgid="780392378084812901">"နောက်ခံမှာ အလုပ်လုပ်ပါ"</item>
+    <item msgid="2629748510881309577">"အများသုံးစွဲနိုင်မှု အသံ"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"တည်နေရာ"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"မျက်နှာပြင်ကို ဖွင့်ပါ"</item>
     <item msgid="5258373962467495905">"အကောင့်များကို ရယူပါ"</item>
     <item msgid="334625385979270703">"နောက်ခံမှာ အလုပ်လုပ်ပါ"</item>
+    <item msgid="9039213578110332702">"အများသုံးစွဲနိုင်မှု အသံ"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"အတို"</item>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index 72c0686..640c881 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" သို့ချိတ်ဆက်ရန် တို့ပါ။"</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"နှင့်ချိတ်ဆက်ချင်ပါသလား"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ဖုန်းလိပ်စာစာအုပ်သုံးစွဲခွင့်တောင်းခံခြင်း"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s မှ သင်၏ အဆက်အသွယ်များနှင့် ယခင်ခေါ်ဆိုမှုမှတ်တမ်းကို သုံးစွဲခွင့် တောင်းခံနေသည်။ %2$s ကိုသုံးစွဲခွင့်ပေးမည်လား ?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> သည် သင့်အဆက်အသွယ်များနှင့် ခေါ်ဆိုမှုမှတ်တမ်းကို အသုံးပြုလိုပါသည်။ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ကို အသုံးပြုခွင့်ပေးလိုပါသလား။"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"နောက်ထပ်မမေးပါနှင့်"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"နောက်ထပ်မမေးပါနှင့်"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"စာသုံးခွင့်ပြုရန်တောင်းခံချက်"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"ဆက်တင်များ"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"ဆက်တင်များ"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"ဆက်တင်အတိုကောက်"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"ကိုက်ညီမှုရှိသည့် လုပ်ဆောင်ချက်ကို မတွေ့ပါ။"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"လေယာဉ်ပေါ်သုံးစနစ်"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"နောက်ထပ်"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"ကြိုးမဲ့နှင့် ကွန်ယက်များ"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"သင်၏ ကွန်ရက် ချိတ်ဆက်မှုများကို စီမံကွပ်ကဲရန် <xliff:g id="NEW_APP">%1$s</xliff:g>ကို <xliff:g id="CURRENT_APP">%2$s</xliff:g>၏အစား သုံးရမလား?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"သင်၏ ကွန်ရက် ချိတ်ဆက်မှုများကို စီမံကွပ်ကဲရန် <xliff:g id="NEW_APP">%s</xliff:g>ကို သုံးရမလား?{"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"မသိရ ဆင်းမ် အော်ပရေတာ"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s တွင် သိပြီးသား သတ်မှတ်ဝက်ဘ်ဆိုက်မရှိပါ။"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> တွင် မည်သည့်ဝဘ်ဆိုက်မျှ​ ပေးထားခြင်းမရှိပါ"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"ကျေးဇူးပြု၍ ဆင်းမ်ကဒ်ထည့်၍ အစမှ ပြန်စပါ။"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"ကျေးဇူးပြု၍ အင်တာနက်ဖြင့် ချိတ်ဆက်ပါ။"</string>
     <string name="location_title" msgid="1029961368397484576">"ကျွန်ုပ်၏တည်နေရာ"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"ဂြိုဟ်တုပုံ ပေးပို့သူများ-\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"ကိုယ်တိုင်ထည့်သွင်းခြင်း"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"လမ်းညွှန်ကို ဖတ်တင်ရန် ပြသနာရှိနေပါသည်"</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"ပြင်ပကုမ္ပဏီလိုင်စင်များ"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"လိုင်စင်များကို ဖတ်တင်ရန် ပြသနာရှိနေပါသည်"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"ဖွင့်နေစဉ်"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"လုံခြုံမှုဆိုင်ရာအချက်အလက်များ"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"ဘက်ထရီ ချွေတာသူ"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"အလိုအလျောက် ဖွင့်ရန်"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ဘယ်တော့မှ"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ဘက်ထရီ %1$s မှာ"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ဘတ်ထရီ <xliff:g id="PERCENT">%1$s</xliff:g> ၌"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"လုပ်ငန်းစဉ်ကိန်းဂဏန်းများ"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"အလုပ်လုပ်ခြင်းလုပ်ငန်းစဉ်များအကြောင်း ပညာရှင်အဆင့်စာရင်း"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"မှတ်ဉာဏ်သုံးခြင်း"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"ဖုန်းမြည်သံ ပမာဏ"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"အကြောင်းကြားချက်သံ ပမာဏ"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"ဖုန်းဝင်တီးလုံး"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"မူရင်းအကြောင်းကြားသံ"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"မူရင်းနှိုးစက်သံ"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ဖုန်းဝင်လျှင် တုန်ခါရန်"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"အခြားအသံများ"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"ဖုန်းဒိုင်ခွက် အသံ"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"လက်မှတ်ထိုးဝင်၍ မရဘူးလား။"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"စနစ်အချက်အလက်များကို ပို့ပါ"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"နောက်တစ်ခါ မပြပါနှင့်"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"အဖြစ် တောင်းဆိုနေသည်"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"အကောင့်ထည့်ရန်"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"အလုပ်ပရိုဖိုင်ဆက်တင်များ"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"အဆက်အသွယ်ကို ရှာဖွေပါ"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"ခေါ်ဆိုသူများနှင့် အဆက်အသွယ်များကို မည်သူမည်ဝါဖြစ်ကြောင်း ခွဲခြားနိုင်ရန်အတွက် သင့်အဖွဲ့အစည်းအမည်ကို အဆက်အသွယ်အား ရှာဖွေခွင့်ပြုပါ"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"အကောင့်ဒေတာ အော်တိုစင့်ခ်လုပ်ပါ"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"ကိုယ်ပိုင်အကောင့်ဒေတာ အော်တိုစင့်ခ်လုပ်ပါ"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"အကောင့်ဒေတာ အော်တိုစင့်ခ်လုပ်ပါ"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"အကောင့်ကို စင့်ခ်လုပ်ရန်"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"ပုဂ္ဂိုလ်ရေး"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ပုဂ္ဂိုလ်ရေး"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"သင့်အလုပ်ဒေတာများကို အသုံးပြုခွင့်ပေးရန် သင့်အဖွဲ့အစည်းသည် သင့်စက်ပစ္စည်းပေါ်တွင် ဆော့ဖ်ဝဲထည့်သွင်းခြင်းနှင့် ဆက်တင်များပြောင်းလဲခြင်းတို့ ပြုလုပ်နိုင်ပါသည်။ ထိုသို့လုပ်ခြင်းအားဖြင့် အချို့သော သင့်ကိုယ်ရေးကိုယ်တာ အချက်အလက်များကို စီမံခန့်ခွဲသူက မြင်နိုင်ပါလိမ့်မည်။ အသေးစိတ် ထပ်မံသိရှိလိုပါက သင့်အဖွဲ့အစည်း၏ စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။"</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"သင့်အဖွဲ့အစည်းသည် မည်သည့်အချက်အလက်များကို မြင်နိုင်သနည်း။"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"သင့်အဖွဲ့အစည်းကမည်သည့်အပြောင်းအလဲသက်ရောက်မှုအားမြင်နိုင်သလဲ။"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"မည်သည့်လုပ်ရပ်က ဤစက်အားအသုံးပြုမှုကိုသက်ရောက် စေနိုင်သနည်း။"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"အီးမေးလ်နှင့် ပြက္ခဒိန်ကဲ့သို့ သင့်အလုပ်အကောင့်နှင့် ဆက်စပ်နေသည့် ဒေတာ"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"သင့်စက်ပစ္စည်းပေါ်ရှိ အက်ပ်အားလုံးစာရင်း"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">သင့်စက်ပစ္စည်းပေါ်ရှိ အက်ပ် <xliff:g id="COUNT_1">%d</xliff:g> ခုစာရင်း</item>
+      <item quantity="one">သင့်စက်ပစ္စည်းပေါ်ရှိ အက်ပ် <xliff:g id="COUNT_0">%d</xliff:g> ခုစာရင်း</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"သင့်စက်ပစ္စည်းပေါ်ရှိ အက်ပ်တစ်ခုစီတိုင်းအား အသုံးပြုမှု (သုံးစွဲမှုကြာချိန်နှင့် အသုံးပြုသည့်ဒေတာ ပမာဏ)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"သင့်စက်ပစ္စည်းပေါ်ရှိ ယာဉ်ကြောအသွားအလာ မှတ်တမ်းများ"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"သင့်မကြာသေးမီက ချွတ်ယွင်းမှုအစီရင်ခံချက်များ"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"သင့်လတ်တလော လုံခြုံရေးမှတ်တမ်း"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"ဘယ်တော့မှ"</string>
 </resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index e61521d..518814b 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"slå på skjermen"</item>
     <item msgid="3253368931113490863">"hent kontoer"</item>
     <item msgid="780392378084812901">"kjør i bakgrunnen"</item>
+    <item msgid="2629748510881309577">"tilgjengelighetsvolum"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Sted"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Slå på skjermen"</item>
     <item msgid="5258373962467495905">"Hent kontoer"</item>
     <item msgid="334625385979270703">"Kjør i bakgrunnen"</item>
+    <item msgid="9039213578110332702">"Tilgjengelighetsvolum"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Kort"</item>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 6a498ca..3588f52 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Trykk for å koble til «<xliff:g id="DEVICE_NAME">%1$s</xliff:g>»."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Ønsker du å koble til «<xliff:g id="DEVICE_NAME">%1$s</xliff:g>»?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Forespørsel om tilgang for telefonbok"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ønsker adgang til kontaktene og ringeloggen din. Vil du gi %2$s tilgang?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ønsker å få tilgang til kontaktene dine og anropsloggen din. Vil du gi tilgang til <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ikke spør igjen"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ikke spør igjen"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Forespørsel om meldingstilgang"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Innstillinger"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Innstillinger"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Snarvei for Innstillinger"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Finner ingen samsvarende aktiviteter."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Flymodus"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Mer"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Trådløst og nettverk"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Vil du bruke <xliff:g id="NEW_APP">%1$s</xliff:g> i stedet for <xliff:g id="CURRENT_APP">%2$s</xliff:g> til å administrere nettverkstilkoblingene?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Vil du bruke <xliff:g id="NEW_APP">%s</xliff:g> til å administrere nettverkstilkoblingene?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Ukjent SIM-operatør"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s har ikke noe kjent nettsted for identitetshåndtering"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> mangler kjent nettsted for identitetshåndtering"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Sett inn SIM-kortet og start enheten på nytt"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Koble deg til Internett"</string>
     <string name="location_title" msgid="1029961368397484576">"Min posisjon"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Leverandører av satellittbilder:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Brukerveiledning"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Det oppsto et problem ved innlasting av brukerveiledningen."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Tredjepartslisenser"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Kunne ikke hente lisensene."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"henter…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Sikkerhetsinformasjon"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Batterisparing"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Slå på automatisk"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Aldri"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Når batteriet har %1$s igjen"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"med <xliff:g id="PERCENT">%1$s</xliff:g> batteri"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Prosess-statistikk"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Nerdete statistikk om prosesser som er i gang"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Minnebruk"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ringevolum"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Varselvolum"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Telefonringelyd"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Standard varsellyd"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Standard alarmlyd"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrer også når det ringer"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Andre lyder"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tastaturtoner"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Har du problemer med påloggingen?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Send systeminformasjon"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ikke vis dette igjen"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Sender forespørsel som"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Legg til konto"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Innstillinger for jobbprofilen"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktsøk"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Tillat kontaktsøk for organisasjonen din for å identifisere innringere og kontakter"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Autosynk. av kontodata"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Autosynk. av pers. kontodata"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Autosynk. av jobbkontodata"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Kontosynkronisering"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Personvern"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Personvern"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"For å gi tilgang til jobbdataene dine kan organisasjonen din endre innstillinger og installere programvare på enheten din. Dette kan føre til at noe av det personlige innholdet ditt blir synlig for administratoren din. Ta kontakt med organisasjonens administrator for mer informasjon."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Hva slags informasjon kan organisasjonen din se?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Hvilke endringer påvirker hva organisasjonen din kan se?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Hvilke handlinger kan påvirke tilgangen din til enheten?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data som er knyttet til jobbkontoen din, for eksempel e-post og kalender"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Liste over alle appene på enheten din"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Liste over alle appene på enheten din (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="one">Liste over alle appene på enheten din (<xliff:g id="COUNT_0">%d</xliff:g>)</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Bruk (tid og datamengde som er brukt) for hver app på enheten din"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Trafikklogger på enheten din"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Den nyeste feilrapporten din"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Den nyeste sikkerhetsloggen din"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Aldri"</string>
 </resources>
diff --git a/res/values-ne-rNP/arrays.xml b/res/values-ne-rNP/arrays.xml
index 9282407..c1a5ca4 100644
--- a/res/values-ne-rNP/arrays.xml
+++ b/res/values-ne-rNP/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"स्क्रिन सक्रिय गर्नुहोस्"</item>
     <item msgid="3253368931113490863">"खाताहरू प्राप्त गर्नुहोस्"</item>
     <item msgid="780392378084812901">"पृष्ठभूमिमा सञ्चालन गर्नुहोस्"</item>
+    <item msgid="2629748510881309577">"पहुँचको मात्रा"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"स्थान"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"स्क्रिन सक्रिय गर्नुहोस्"</item>
     <item msgid="5258373962467495905">"खाताहरू प्राप्त गर्नुहोस्"</item>
     <item msgid="334625385979270703">"पृष्ठभूमिमा सञ्चालन गर्नुहोस्"</item>
+    <item msgid="9039213578110332702">"पहुँचको मात्रा"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"छोटो"</item>
@@ -412,7 +414,7 @@
     <item msgid="758587126802411846">"सेतोमा कालो"</item>
     <item msgid="1495307195241623402">"कालोमा पहेँलो"</item>
     <item msgid="6039700130994371612">"नीलोमा पहेँलो"</item>
-    <item msgid="7169235156349580064">"अनुकूलन"</item>
+    <item msgid="7169235156349580064">"आफू अनुकूल"</item>
   </string-array>
   <string-array name="vpn_types_long">
     <item msgid="2732002039459078847">"PPTP VPN"</item>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 014f4e9..4f7a2e9 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" सँग जडान गर्न ट्याप गर्नुहोस्।"</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" सँग जडित हुन चाहनु हुन्छ?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"फोन पुस्तिका पहुँच अनुरोध"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s तपाईँका सबै सम्पर्कहरू र कल इतिहासहरूमा पहुँच गर्न चाहन्छ। %2$s को लागि पहुँच दिने हो?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> तपाईंका सम्पर्कहरू र कलको इतिहासमाथि पहुँच गर्न चाहनुहुन्छ। <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> माथि पहुँच गर्न दिने हो?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"फेरि नसोध्नुहोस्"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"फेरि नसोध्नुहोस्"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"सन्देश पहुँच अनुरोध"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"सेटिङहरू"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"सेटिङहरू"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"सेटिङ सर्टकट"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"कुनै मिल्दो गतिविधि भेट्टिएन।"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"हवाइजहाज मोड"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"थप"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"ताररहित सञ्जाल"</string>
@@ -805,7 +806,7 @@
     <string name="wifi_ip_settings_invalid_ip_address" msgid="2513142355364274970">"एउटा मान्य IP ठेगाना टाइप गर्नुहोस्।"</string>
     <string name="wifi_ip_settings_invalid_gateway" msgid="8164264988361096450">"एउटा मान्य गेटवे ठेगाना टाइप गर्नुहोस्।"</string>
     <string name="wifi_ip_settings_invalid_dns" msgid="8744583948328391047">"एउटा मान्य DNS ठेगाना टाइप गर्नुहोस्।"</string>
-    <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="40470058023181052">"नेटवर्क प्रेफिक्सको लम्बाइ ० देखि ३२का बिच टाइप गर्नुहोस्।"</string>
+    <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="40470058023181052">"नेटवर्क प्रेफिक्सको लम्बाइ ० देखि ३२का बीच टाइप गर्नुहोस्।"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
     <string name="wifi_gateway" msgid="163914742461092086">"गेटवे"</string>
@@ -948,7 +949,7 @@
     <string name="night_display_category_status" msgid="1952928783124400330">"वस्तुस्थिति"</string>
     <string name="night_display_auto_mode_title" msgid="8046314360381608455">"स्वतः सक्रिय पार्नुहोस्"</string>
     <string name="night_display_auto_mode_never" msgid="6723636142053240947">"कहिले पनि होइन"</string>
-    <string name="night_display_auto_mode_custom" msgid="6012300346981608242">"अनुकूलन समय सहितको कार्यतालिका"</string>
+    <string name="night_display_auto_mode_custom" msgid="6012300346981608242">"आफू अनुकूल समय सहितको कार्यतालिका"</string>
     <string name="night_display_auto_mode_twilight" msgid="2123345097508167094">"सूर्यास्तदेखि सूर्योदयसम्म"</string>
     <string name="night_display_start_time_title" msgid="8918016772613689584">"सुरु समय"</string>
     <string name="night_display_end_time_title" msgid="8286061578083519350">"समय समाप्ति"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"तपाईँको सञ्जाल जडानहरू व्यवस्थापन गर्न <xliff:g id="CURRENT_APP">%2$s</xliff:g> सट्टामा <xliff:g id="NEW_APP">%1$s</xliff:g> प्रयोग गर्ने?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"तपाईँको सञ्जाल जडानहरू व्यवस्थापन गर्न <xliff:g id="NEW_APP">%s</xliff:g> प्रयोग गर्ने?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"अज्ञात SIM सञ्चालक"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s को कुनै ज्ञात प्रावधानीकरण वेबसाइट छैन"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> को प्रावधानीकरणको कुनै ज्ञात वेबसाइट छैन"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"कृपया SIM कार्ड भित्र राखेर पुनः स्टार्ट गर्नुहोस्"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"कृपया इन्टरनेटसँग जोड्नुहोस्"</string>
     <string name="location_title" msgid="1029961368397484576">"मेरो स्थान"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"स्याटलाइट कल्पना प्रदायकहरू:\n©२०१४ CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"म्यानुअल"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"म्यानुअल लोड गर्दा एउटा समस्या आएको छ।"</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"तेस्रो-पक्षका इजाजतपत्रहरू"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"लाइसेन्स लोड गर्न समस्या आएको छ।"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"लोड हुँदै..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"सुरक्षित जानकारी"</string>
@@ -1706,7 +1706,7 @@
     <string name="accessibility_settings" msgid="3975902491934816215">"पहुँच"</string>
     <string name="accessibility_settings_title" msgid="2130492524656204459">"उपलब्धता सेटिङहरू"</string>
     <string name="vision_settings_title" msgid="4204111425716868288">"दृश्यका सेटिङहरू"</string>
-    <string name="vision_settings_description" msgid="5679491180156408260">"तपाईंले आफ्नो आवश्यकताहरूसँग मेल खाने बनाउन यस यन्त्रलाई अनुकूलन गर्न सक्नुहुन्छ। यी पहुँच सुविधाहरू सेटिङमा पछि परिवर्तन गर्न सकिनेछ।"</string>
+    <string name="vision_settings_description" msgid="5679491180156408260">"तपाईंले आफ्नो आवश्यकताहरूसँग मेल खाने बनाउन यस यन्त्रलाई आफू अनुकूल गर्न सक्नुहुन्छ। यी पहुँच सुविधाहरू सेटिङमा पछि परिवर्तन गर्न सकिनेछ।"</string>
     <string name="accessibility_services_title" msgid="2592221829284342237">"सेवाहरू"</string>
     <string name="talkback_title" msgid="7912059827205988080">"Talkback"</string>
     <string name="talkback_summary" msgid="8331244650729024963">"मुख्तया दृष्टिविहीन र कम दृष्टि भएका व्यक्तिहरूको लागि स्क्रिन रिडर"</string>
@@ -1763,7 +1763,7 @@
     <string name="captioning_locale" msgid="4559155661018823503">"भाषा"</string>
     <string name="captioning_text_size" msgid="6737002449104466028">"पाठ आकार"</string>
     <string name="captioning_preset" msgid="8939737196538429044">"क्याप्सन शैली"</string>
-    <string name="captioning_custom_options_title" msgid="5067500939930322405">"अनुकूलन विकल्प"</string>
+    <string name="captioning_custom_options_title" msgid="5067500939930322405">"आफू अनुकूल विकल्प"</string>
     <string name="captioning_background_color" msgid="9053011212948992570">"पृष्ठभूमि रङ्ग"</string>
     <string name="captioning_background_opacity" msgid="6029993616419971202">"पृष्ठभूमि अपारदर्शकता"</string>
     <string name="captioning_window_color" msgid="6902052743419717394">"window रङ्ग क्याप्सन गर्नुहोस्"</string>
@@ -1928,11 +1928,11 @@
     <string name="menu_stats_refresh" msgid="1676215433344981075">"पुनःताजा गर्नुहोस्"</string>
     <string name="process_kernel_label" msgid="3916858646836739323">"एन्ड्रोइड OS"</string>
     <string name="process_mediaserver_label" msgid="6500382062945689285">"मिडिया सर्भर"</string>
-    <string name="process_dex2oat_label" msgid="2592408651060518226">"अनुप्रयोग अनुकूलन"</string>
+    <string name="process_dex2oat_label" msgid="2592408651060518226">"अनुप्रयोग आफू अनुकूल"</string>
     <string name="battery_saver" msgid="1426682272004907982">"ब्याट्री सेभर"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"स्वतः खोल्नुहोस्"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"कहिले पनि होइन"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s ब्याट्रीमा"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> ब्याट्री हुँदा"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"प्रक्रिया तथ्याङ्क"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"चालु रहने प्रक्रियाहरूको बारेको geeky तथ्याङ्क"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"मेमोरी प्रयोग"</string>
@@ -2377,7 +2377,7 @@
     <string name="user_add_user_item_title" msgid="8212199632466198969">"प्रयोगकर्ता"</string>
     <string name="user_add_profile_item_title" msgid="8353515490730363621">"प्रतिबन्धित प्रोफाइल"</string>
     <string name="user_add_user_title" msgid="2108112641783146007">"नयाँ प्रयोगकर्ता थप्ने हो?"</string>
-    <string name="user_add_user_message_long" msgid="8562152293752222985">"यस यन्त्रलाई अन्य व्यक्तिसँग साझेदारी गर्न थप प्रयोगकर्ताहरू सिर्जना गरेर गर्न सक्नुहुनेछ। प्रत्येक प्रयोगकर्ताको आफ्नै ठाउँ हुन्छ, जसलाई तिनीहरूले अनुप्रयोगहरू, वालपेपर र अन्य धेरै अन्तर्गत अनुकूलन गर्न र सक्छन्। प्रयोगकर्ताले यन्त्र सेटिङ पनि मिलाउन सक्छन् जस्तै Wi-Fi, जसले सबैलाई असर गर्छ।\n\nजब तपाईँ नयाँ प्रयोगकर्ता थप्नु हुन्छ, त्यो व्यक्तिले आफ्नो ठाउँ सेटअप गर्न आवश्यक छ।\n\nकुनै पनि प्रयोगकर्ताले सबै अन्य प्रयोगकर्ताहरूको लागि अनुप्रयोगहरू अद्यावधिक गर्न सक्नेछ।"</string>
+    <string name="user_add_user_message_long" msgid="8562152293752222985">"यस यन्त्रलाई अन्य व्यक्तिसँग साझेदारी गर्न थप प्रयोगकर्ताहरू सिर्जना गरेर गर्न सक्नुहुनेछ। प्रत्येक प्रयोगकर्ताको आफ्नै ठाउँ हुन्छ, जसलाई तिनीहरूले अनुप्रयोगहरू, वालपेपर र अन्य धेरै अन्तर्गत आफू अनुकूल गर्न र सक्छन्। प्रयोगकर्ताले यन्त्र सेटिङ पनि मिलाउन सक्छन् जस्तै Wi-Fi, जसले सबैलाई असर गर्छ।\n\nजब तपाईँ नयाँ प्रयोगकर्ता थप्नु हुन्छ, त्यो व्यक्तिले आफ्नो ठाउँ सेटअप गर्न आवश्यक छ।\n\nकुनै पनि प्रयोगकर्ताले सबै अन्य प्रयोगकर्ताहरूको लागि अनुप्रयोगहरू अद्यावधिक गर्न सक्नेछ।"</string>
     <string name="user_add_user_message_short" msgid="1511354412249044381">"जब तपाईंले नयाँ प्रयोगकर्ता थप्नुहुन्छ, त्यो व्यक्तिले आफ्नो ठाउँ सेट गर्न आवश्यक छ।\n\nकुनै पनि प्रयोगकर्ताले सबै अन्य प्रयोगकर्ताहरूका लागि अनुप्रयोगहरू अद्यावधिक गर्न सक्छन्।"</string>
     <string name="user_setup_dialog_title" msgid="1765794166801864563">"अहिले प्रयोगकर्ता सेटअप गर्ने हो?"</string>
     <string name="user_setup_dialog_message" msgid="1004068621380867148">"यन्त्र लिन र आफ्नो ठाउँ बनाउन व्यक्ति उपलब्ध छ भन्ने कुराको निश्चित गर्नुहोस्"</string>
@@ -2556,7 +2556,7 @@
     <string name="keywords_display_brightness_level" msgid="3891383826236015854">"मधुरो स्क्रिन, टचस्क्रिन, ब्याट्री"</string>
     <string name="keywords_display_auto_brightness" msgid="3325150824507953765">"मधुरो स्क्रिन, टचस्क्रिन, ब्याट्री"</string>
     <string name="keywords_display_night_display" msgid="7630169927425425754">"मधुरो स्क्रिन, रात, हल्का रङ"</string>
-    <string name="keywords_display_wallpaper" msgid="7362076351860131776">"पृष्ठभूमि, निजीकृत गर्नुहोस्, प्रदर्शन अनुकूलन गर्नुहोस्"</string>
+    <string name="keywords_display_wallpaper" msgid="7362076351860131776">"पृष्ठभूमि, निजीकृत गर्नुहोस्, प्रदर्शन आफू अनुकूल गर्नुहोस्"</string>
     <string name="keywords_display_font_size" msgid="3404655440064726124">"पाठ आकार"</string>
     <string name="keywords_display_cast_screen" msgid="7684618996741933067">"प्रोजेक्ट गर्नुहोस्, cast गर्नुहोस्"</string>
     <string name="keywords_storage" msgid="3299217909546089225">"ठाउँ, डिस्क, हार्ड ड्राइभ, यन्त्र उपयोग"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"घन्टीको मात्रा"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"ध्वनी सूचना"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"फोन रिङटोन"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"सूचना सम्बन्धी पूर्वनिर्धारित ध्वनि"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"अलार्मको पूर्वनिर्धारित ध्वनि"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"कलका लागि भाइब्रेट पनि"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"अन्य ध्वनिहरू"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"प्याड टोनहरू डायल गर्नुहोस्"</string>
@@ -2931,12 +2929,12 @@
     <string name="memory_avg_desc" msgid="1551240906596518412">"औसत <xliff:g id="MEMORY">%1$s</xliff:g>"</string>
     <string name="memory_use_running_format" msgid="4172488041800743760">"<xliff:g id="MEMORY">%1$s</xliff:g> / <xliff:g id="RUNNING">%2$s</xliff:g>"</string>
     <string name="process_format" msgid="77905604092541454">"<xliff:g id="APP_NAME">%1$s</xliff:g> (<xliff:g id="COUNT">%2$d</xliff:g>)"</string>
-    <string name="high_power_apps" msgid="3459065925679828230">"ब्याट्री अनुकूलन"</string>
-    <string name="high_power_filter_on" msgid="3222265297576680099">"अनुकूलन भएको छैन"</string>
-    <string name="high_power_on" msgid="6216293998227583810">"अनुकूलन नगरिएको"</string>
-    <string name="high_power_off" msgid="3393904131961263278">"ब्याट्री प्रयोग अनुकूलन गर्दै"</string>
-    <string name="high_power_system" msgid="7362862974428225301">"ब्याट्री अनुकूलन उपलब्ध छैन"</string>
-    <string name="high_power_desc" msgid="6283926163708585760">"ब्याट्री अनुकूलन लागू नगर्नुहोस्। तपाईँको ब्याट्री निकै छिटो सिध्याउन सक्छ।"</string>
+    <string name="high_power_apps" msgid="3459065925679828230">"ब्याट्री आफू अनुकूल"</string>
+    <string name="high_power_filter_on" msgid="3222265297576680099">"आफू अनुकूल भएको छैन"</string>
+    <string name="high_power_on" msgid="6216293998227583810">"आफू अनुकूल नगरिएको"</string>
+    <string name="high_power_off" msgid="3393904131961263278">"ब्याट्री प्रयोग आफू अनुकूल गर्दै"</string>
+    <string name="high_power_system" msgid="7362862974428225301">"ब्याट्री आफू अनुकूल उपलब्ध छैन"</string>
+    <string name="high_power_desc" msgid="6283926163708585760">"ब्याट्री आफू अनुकूल लागू नगर्नुहोस्। तपाईँको ब्याट्री निकै छिटो सिध्याउन सक्छ।"</string>
     <string name="high_power_prompt_title" msgid="4257734526819699048">"ब्याट्री अनुकूलनको उपेक्षा गर्ने हो?"</string>
     <string name="high_power_prompt_body" msgid="4072587909486730876">"अनुप्रयोग <xliff:g id="APP_NAME">%1$s</xliff:g> लाई पृष्ठभूमिमा जडित रहन दिने हो? यसले थप ब्याट्री खपत गर्न सक्छ।"</string>
     <string name="battery_summary" msgid="101415762036784289">"<xliff:g id="PERCENTAGE">%1$d</xliff:g>%% पछिल्‍लो पूरा चार्ज देखिको प्रयोग"</string>
@@ -2999,11 +2997,11 @@
     <string name="zen_access_disabled_package_warning" msgid="302820100078584431">"सूचना सम्बन्धी पहुँच सक्रिय हुनाले यसलाई अनिवार्य रूपमा सक्रिय राख्नु पर्छ"</string>
     <string name="zen_access_revoke_warning_dialog_title" msgid="558779234015793950">"<xliff:g id="APP">%1$s</xliff:g> को बाधा नपुर्याउनुहोस् माथि पहुँच उल्टाउने हो?"</string>
     <string name="zen_access_revoke_warning_dialog_summary" msgid="5518216907304930148">"यस अनुप्रयोगले बनाएका सबै बाधा नपुर्याउनुहोस् नियम हटाइनेछ।"</string>
-    <string name="ignore_optimizations_on" msgid="6915689518016285116">"अनुकूलन नगर्नुहोस्"</string>
+    <string name="ignore_optimizations_on" msgid="6915689518016285116">"आफू अनुकूल नगर्नुहोस्"</string>
     <string name="ignore_optimizations_off" msgid="6153196256410296835">"अनुकुलन गर्नुहोस्"</string>
     <string name="ignore_optimizations_on_desc" msgid="2321398930330555815">"यसले तपाईँको ब्याट्री चाँडै खपत गर्न सक्छ।"</string>
     <string name="ignore_optimizations_off_desc" msgid="5255731062045426544">"अझ टिकाउयुक्त ब्याट्रीका लागि सिफारिस गरिएको"</string>
-    <string name="ignore_optimizations_title" msgid="2829637961185027768">"<xliff:g id="APP">%s</xliff:g> लाई ब्याट्री अनुकूलन बेवास्ता गर्नै अनुमति दिने हो?"</string>
+    <string name="ignore_optimizations_title" msgid="2829637961185027768">"<xliff:g id="APP">%s</xliff:g> लाई ब्याट्री आफू अनुकूल बेवास्ता गर्नै अनुमति दिने हो?"</string>
     <string name="app_list_preference_none" msgid="108006867520327904">"कुनै पनि होइन"</string>
     <string name="work_profile_usage_access_warning" msgid="8870622842216566692">"यस अनुप्रयोगका लागि प्रयोग पहुँच बन्द गर्नाले तपाईँको कार्य प्रोफाइलमा अनुप्रयोगहरूका डेटाको प्रयोग ट्र्याक गर्न तपाईँको प्रशासकलाई रोक्दैन।"</string>
     <string name="accessibility_lock_screen_progress" msgid="2408292742980383166">"<xliff:g id="COUNT_1">%2$d</xliff:g> को <xliff:g id="COUNT_0">%1$d</xliff:g> वर्णहरू प्रयोग गरिए"</string>
@@ -3154,7 +3152,7 @@
     <!-- String.format failed for translation -->
     <!-- no translation found for battery_saver_desc_turn_on_auto_pct (7472323223085636533) -->
     <skip />
-    <string name="not_battery_optimizing" msgid="5362861851864837617">"ब्याट्री अनुकूलन प्रयोग गरिएको छैन"</string>
+    <string name="not_battery_optimizing" msgid="5362861851864837617">"ब्याट्री आफू अनुकूल प्रयोग गरिएको छैन"</string>
     <string name="lockscreen_remote_input" msgid="969871538778211843">"यदि यन्त्रलाई लक गरिएको छ भने सूचनाहरूमा जवाफ वा अन्य पाठ टाइप गर्न रोक लगाउनुहोस्"</string>
     <string name="default_spell_checker" msgid="8506899870026026660">"पूर्वनिर्धारित हिज्जे परीक्षक"</string>
     <string name="choose_spell_checker" msgid="6596539862291699367">"हिज्जे परीक्षक छनोट गर्नुहोस्"</string>
@@ -3176,7 +3174,7 @@
     <string name="notification_log_details_actions" msgid="242523930165118066">"कारवाहीहरू"</string>
     <string name="notification_log_details_title" msgid="7177091647508863295">"शीर्षक"</string>
     <string name="notification_log_details_remoteinput" msgid="8328591329858827409">"रिमोट इनपुटहरू"</string>
-    <string name="notification_log_details_content_view" msgid="6638731378278561786">"अनुकूलन दृश्य"</string>
+    <string name="notification_log_details_content_view" msgid="6638731378278561786">"आफू अनुकूल दृश्य"</string>
     <string name="notification_log_details_extras" msgid="4188418723779942047">"अतिरिक्त"</string>
     <string name="notification_log_details_icon" msgid="8939114059726188218">"आइकन"</string>
     <string name="notification_log_details_parcel" msgid="243148037601903212">"पार्सलको आकार"</string>
@@ -3225,6 +3223,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"साइन इन गर्न सक्नुहुन्न?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"प्रणाली सम्बन्धी जानकारी पठाउनुहोस्"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"फेरि नदेखाउनुहोस्"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"निम्न प्रयोगकर्ताको रूपमा अनुरोध गर्दै"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"खाता थप्नुहोस्"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"कार्य प्रोफाइलका सेटिङहरू"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"सम्पर्कको खोजी"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"कलर र सम्पर्कहरूको पहिचान गर्न तपाईँको संगठन अनुसार गरिने सम्पर्कका खोजीहरूलाई अनुमति दिनुहोस्"</string>
@@ -3297,20 +3297,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"खाताको डेटा स्वतः सिंक गर्नुहोस्"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"व्यक्तिगत खाताको डेटा स्वतः सिंक गर्नुहोस्"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"कार्य खाताको डेटा स्वतः सिंक गर्नुहोस्"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"खाताको सिंक"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"गोपनीयता"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"गोपनीयता"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"तपाईंको कार्यको डेटामाथि पहुँच प्रदान गर्न, तपाईंको संगठनले सेटिङहरू परिवर्तन गर्न र तपाईंको यन्त्रमा सफ्टवेयर स्थापना गर्न सक्ने भएकाले तपाईंका कतिपय व्यक्तिगत सामग्रीहरू तपाईंका प्रशासकले देख्न सक्ने हुन सक्छन्। थप विवरणका लागि आफ्नो संगठनका प्रशासकसँग सम्पर्क गर्नुहोस्।"</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"तपाईंको संस्थाले कस्ता प्रकारका जानकारीहरू हेर्न सक्छ?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"तपाईंको संस्थाले हेर्न सक्ने कुरालाई कस्तो परिवर्तनले प्रभाव पार्दछ?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"तपाईंको यस यन्त्रमाथिको पहुँचमा कुन कुन कारबाहीहरूले प्रभाव पार्न सक्छन्?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"इमेल र पात्रो जस्ता तपाईंका काम सम्बन्धी खातासँग सम्बन्धित डेटा"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"तपाईंको यन्त्रमा भएका सबै अनुप्रयोगहरूको सूची"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">तपाईंको यन्त्रका सबै <xliff:g id="COUNT_1">%d</xliff:g> वटा अनुप्रयोगहरूको सूची </item>
+      <item quantity="one"> तपाईंको यन्त्रका सबै <xliff:g id="COUNT_0">%d</xliff:g> वटा अनुप्रयोगको सूची</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"तपाईंको यन्त्रमा भएका प्रत्येक अनुप्रयोगको प्रयोग (खर्च गरिएको समय र प्रयोग गरिएको डेटाको मात्रा)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"तपाईंको यन्त्रका ट्राफिक सम्बन्धी लगहरू"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"तपाईंको सबैभन्दा पछिल्लो बग रिपोर्ट"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"तपाईंको सबैभन्दा पछिको सुरक्षा लग"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"कहिल्यै पनि होइन"</string>
 </resources>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index c0654d8..36c677c 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"scherm inschakelen"</item>
     <item msgid="3253368931113490863">"accounts ophalen"</item>
     <item msgid="780392378084812901">"uitvoeren op de achtergrond"</item>
+    <item msgid="2629748510881309577">"toegankelijkheidsvolume"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Locatie"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Scherm inschakelen"</item>
     <item msgid="5258373962467495905">"Accounts ophalen"</item>
     <item msgid="334625385979270703">"Uitvoeren op de achtergrond"</item>
+    <item msgid="9039213578110332702">"Toegankelijkheidsvolume"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Kort"</item>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index c071182..5530050 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tik om verbinding te maken met \'<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\'."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Wil je verbinding maken met \'<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\'?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Toegangsverzoek voor telefoonboek"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s wil toegang tot je contacten en oproepgeschiedenis. Toegang verlenen aan %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wil toegang hebben tot je contacten en oproepgeschiedenis. Toegang verlenen aan <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Niet meer vragen"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Niet meer vragen"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Toegangsverzoek voor berichten"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Instellingen"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Instellingen"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Snelle link voor instellingen"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Geen overeenkomende activiteiten gevonden."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Vliegtuigmodus"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Meer"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Draadloos en netwerken"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"<xliff:g id="NEW_APP">%1$s</xliff:g> gebruiken in plaats van <xliff:g id="CURRENT_APP">%2$s</xliff:g> om je netwerkverbindingen te beheren?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"<xliff:g id="NEW_APP">%s</xliff:g> gebruiken om je netwerkverbindingen te beheren?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Onbekende simkaartprovider"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s heeft geen bekende website voor provisioning"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> heeft geen bekende registratiewebsite"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Plaats een simkaart en start het apparaat opnieuw"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Maak verbinding met internet"</string>
     <string name="location_title" msgid="1029961368397484576">"Mijn locatie"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Providers van satellietbeelden:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Handleiding"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Er is een probleem bij het laden van de handleiding."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenties van derden"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Er is een probleem bij het laden van de licenties."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Laden..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Veiligheidsinformatie"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Accubesparing"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Automatisch inschakelen"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nooit"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"op %1$s acculading"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"bij <xliff:g id="PERCENT">%1$s</xliff:g> batterijlading"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Processtatistieken"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Statistieken voor nerds over actieve processen"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Geheugengebruik"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Beltoonvolume"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Meldingsvolume"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Beltoon telefoon"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Standaard meldingsgeluid"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Standaard alarmgeluid"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Ook trillen voor oproepen"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Andere geluiden"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Toetsenbloktonen"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Kun je niet inloggen?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Systeeminformatie verzenden"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Niet opnieuw weergeven"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Aanvragen als"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Account toevoegen"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Instellingen voor werkprofiel"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Contacten zoeken"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Contactzoekopdrachten door je organisatie toestaan om bellers en contacten te identificeren"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Accountgegevens autom. synchr."</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Persoonl. accountgeg. auto-synchr."</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Werkaccountgegev. auto-synchr."</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Accountsynchronisatie"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacy"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacy"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Je organisatie kan instellingen wijzigen en software installeren om toegang te bieden tot je werkgegevens. Dit kan ertoe leiden dat een gedeelte van je persoonlijke content zichtbaar wordt voor je beheerder. Neem voor meer informatie contact op met de beheerder van je organisatie."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Welke typen gegevens kan je organisatie zien?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Welke wijzigingen beïnvloeden wat je organisatie kan zien?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Welke acties kunnen je toegang tot dit apparaat beïnvloeden?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Gegevens die zijn gekoppeld aan je werkaccount, zoals e-mail en agenda"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lijst met alle apps op je apparaat"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Lijst met alle <xliff:g id="COUNT_1">%d</xliff:g> apps op je apparaat</item>
+      <item quantity="one">Lijst met alle <xliff:g id="COUNT_0">%d</xliff:g> app op je apparaat</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Gebruik (bestede tijd en gebruikte hoeveelheid data) van elke app op je apparaat"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Verkeerslogboeken op je apparaat"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Je recentste bugrapport"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Je recentste beveiligingslogboek"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nooit"</string>
 </resources>
diff --git a/res/values-pa-rIN/arrays.xml b/res/values-pa-rIN/arrays.xml
index a45b7af..94a1cc8 100644
--- a/res/values-pa-rIN/arrays.xml
+++ b/res/values-pa-rIN/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ਸਕਰੀਨ ਚਾਲੂ ਕਰੋ"</item>
     <item msgid="3253368931113490863">"ਖਾਤੇ ਲਓ"</item>
     <item msgid="780392378084812901">"ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚਲਾਓ"</item>
+    <item msgid="2629748510881309577">"ਪਹੁੰਚਯੋਗਤਾ ਵੌਲਿਊਮ"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"ਟਿਕਾਣਾ"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"ਸਕਰੀਨ ਚਾਲੂ ਕਰੋ"</item>
     <item msgid="5258373962467495905">"ਖਾਤੇ ਲਓ"</item>
     <item msgid="334625385979270703">"ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚਲਾਓ"</item>
+    <item msgid="9039213578110332702">"ਪਹੁੰਚਯੋਗਤਾ ਵੌਲਿਊਮ"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"ਛੋਟਾ"</item>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index f9384bf..b13ff64 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"  ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"ਕੀ ਤੁਸੀਂ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ਨਾਲ ਕਨੈਕਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ਫੋਨ ਬੁੱਕ ਪਹੁੰਚ ਬੇਨਤੀ"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਅਤੇ ਕਾਲ ਇਤਿਹਾਸ ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ। ਕੀ %2$s ਨੂੰ ਪਹੁੰਚ ਦੇਣੀ ਹੈ?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਅਤੇ ਇਤਿਹਾਸ \'ਤੇ ਪਹੁੰਚ ਕਰਨਾ ਚਾਹੁੁੰਦਾ ਹੈ। ਕੀ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ਨੂੰ ਪਹੁੰਚ ਦੇਣੀ ਹੈ?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"ਦੁਬਾਰਾ ਨਾ ਪੁੱਛਣਾ"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"ਦੁਬਾਰਾ ਨਾ ਪੁੱਛਣਾ"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"ਸੁਨੇਹਾ ਪਹੁੰਚ ਬੇਨਤੀ"</string>
@@ -176,7 +176,7 @@
     <string name="proxy_error" msgid="8926675299638611451">"ਧਿਆਨ ਦਿਓ"</string>
     <string name="proxy_error_dismiss" msgid="4993171795485460060">"ਠੀਕ"</string>
     <string name="proxy_error_invalid_host" msgid="6865850167802455230">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤਾ ਹੋਸਟਨਾਮ ਪ੍ਰਮਾਣਿਕ ਨਹੀਂ ਹੈ।"</string>
-    <string name="proxy_error_invalid_exclusion_list" msgid="678527645450894773">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤੀ ਵਰਜਨ ਸੂਚੀ ਸਹੀ ਢੰਗ ਨਾਲ ਫੌਰਮੈਟ ਨਹੀਂ ਕੀਤੀ ਹੋਈ ਹੈ। ਵਰਜਨ ਵਾਲੇ ਡੋਮੇਨਾਂ ਦੀ ਇੱਕ ਕਾਮਾ-ਵੱਖ ਕੀਤੀ ਸੂਚੀ ਟਾਈਪ ਕਰੋ।"</string>
+    <string name="proxy_error_invalid_exclusion_list" msgid="678527645450894773">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤੀ ਰੂਪ ਸੂਚੀ ਸਹੀ ਢੰਗ ਨਾਲ ਫੌਰਮੈਟ ਨਹੀਂ ਕੀਤੀ ਹੋਈ ਹੈ। ਰੂਪ ਵਾਲੇ ਡੋਮੇਨਾਂ ਦੀ ਇੱਕ ਕਾਮਾ-ਵੱਖ ਕੀਤੀ ਸੂਚੀ ਟਾਈਪ ਕਰੋ।"</string>
     <string name="proxy_error_empty_port" msgid="5539106187558215246">"ਤੁਹਾਨੂੰ ਪੋਰਟ ਖੇਤਰ ਪੂਰਾ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
     <string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"ਜੇਕਰ ਹੋਸਟ ਖੇਤਰ ਖਾਲੀ ਹੈ ਤਾਂ ਪੋਰਟ ਖੇਤਰ ਖਾਲੀ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।"</string>
     <string name="proxy_error_invalid_port" msgid="5988270202074492710">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤਾ ਪੋਰਟ ਪ੍ਰਮਾਣਿਕ ਨਹੀਂ ਹੈ।"</string>
@@ -199,7 +199,7 @@
     <string name="radio_info_call_status_label" msgid="2611065018172747413">"ਵੌਇਸ ਕਾਲ ਸਥਿਤੀ:"</string>
     <string name="radio_info_ppp_sent_label" msgid="7748668735880404586">"ਡੈਟਾ ਭੇਜਿਆ ਗਿਆ:"</string>
     <string name="radio_info_message_waiting_label" msgid="1037302619943328273">"ਸੁਨੇਹਾ ਉਡੀਕ:"</string>
-    <string name="radio_info_phone_number_label" msgid="7942153178953255231">"ਫੋਨ ਨੰਬਰ:"</string>
+    <string name="radio_info_phone_number_label" msgid="7942153178953255231">"ਫ਼ੋਨ ਨੰਬਰ:"</string>
     <string name="radio_info_band_mode_label" msgid="8730871744887454509">"ਰੇਡੀਓ ਬੈਂਡ ਚੁਣੋ"</string>
     <string name="radio_info_voice_network_type_label" msgid="1443496502370667071">"ਵੌਇਸ ਨੈੱਟਵਰਕ ਪ੍ਰਕਾਰ:"</string>
     <string name="radio_info_data_network_type_label" msgid="7094323145105149312">"ਡੈਟਾ ਨੈੱਟਵਰਕ ਪ੍ਰਕਾਰ:"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"ਸੈਟਿੰਗਾਂ"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"ਸੈਟਿੰਗਾਂ"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"ਸੈਟਿੰਗਾਂ ਸ਼ਾਰਟਕੱਟ"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"ਕੋਈ ਮੇਲ ਖਾਂਦੀਆਂ ਸਰਗਰਮੀਆਂ ਨਹੀਂ ਮਿਲੀਆਂ।"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"ਹਵਾਈ ਜਹਾਜ਼ ਮੋਡ"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"ਹੋਰ"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"ਵਾਇਰਲੈੱਸ ਅਤੇ ਨੈੱਟਵਰਕ"</string>
@@ -1022,29 +1023,29 @@
     <string name="device_info_settings" product="default" msgid="475872867864762157">"ਫੋਨ ਸਥਿਤੀ"</string>
     <string name="system_update_settings_list_item_title" msgid="3342887311059985961">"ਸਿਸਟਮ ਅਪਡੇਟਾਂ"</string>
     <string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
-    <string name="firmware_version" msgid="4801135784886859972">"Android ਵਰਜਨ"</string>
+    <string name="firmware_version" msgid="4801135784886859972">"Android ਰੂਪ"</string>
     <string name="security_patch" msgid="8438384045870296634">"Android ਸੁਰੱਖਿਆ ਪੈਚ ਪੱਧਰ"</string>
     <string name="model_info" msgid="1952009518045740889">"ਮਾਡਲ"</string>
     <string name="fcc_equipment_id" msgid="149114368246356737">"ਉਪਕਰਨ ID"</string>
-    <string name="baseband_version" msgid="1848990160763524801">"ਬੇਸਬੈਂਡ ਵਰਜਨ"</string>
-    <string name="kernel_version" msgid="9192574954196167602">"Kernel ਵਰਜਨ"</string>
+    <string name="baseband_version" msgid="1848990160763524801">"ਬੇਸਬੈਂਡ ਰੂਪ"</string>
+    <string name="kernel_version" msgid="9192574954196167602">"Kernel ਰੂਪ"</string>
     <string name="build_number" msgid="3075795840572241758">"ਬਿਲਡ ਨੰਬਰ"</string>
     <string name="selinux_status" msgid="6212165375172061672">"SELinux ਸਥਿਤੀ"</string>
     <string name="device_info_not_available" msgid="8062521887156825182">"ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
     <string name="device_status_activity_title" msgid="1411201799384697904">"ਸਥਿਤੀ"</string>
     <string name="device_status" msgid="607405385799807324">"ਸਥਿਤੀ"</string>
     <string name="device_status_summary" product="tablet" msgid="3292717754497039686">"ਬੈਟਰੀ, ਨੈੱਟਵਰਕ ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਦੀ ਸਥਿਤੀ"</string>
-    <string name="device_status_summary" product="default" msgid="2599162787451519618">"ਫੋਨ ਨੰਬਰ, ਸਿਗਨਲ ਆਦਿ"</string>
+    <string name="device_status_summary" product="default" msgid="2599162787451519618">"ਫ਼ੋਨ ਨੰਬਰ, ਸਿਗਨਲ ਆਦਿ"</string>
     <string name="storage_settings" msgid="4211799979832404953">"ਸਟੋਰੇਜ"</string>
     <string name="storage_usb_settings" msgid="7293054033137078060">"ਸਟੋਰੇਜ"</string>
     <string name="storage_settings_title" msgid="8746016738388094064">"ਸਟੋਰੇਜ ਸੈਟਿੰਗਾਂ"</string>
     <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"USB ਸਟੋਰੇਜ ਨੂੰ ਅਨਮਾਉਂਟ ਕਰੋ, ਉਪਲਬਧ ਸਟੋਰੇਜ ਦੇਖੋ"</string>
     <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"SD ਕਾਰਡ ਅਨਮਾਉਂਟ ਕਰੋ, ਉਪਲਬਧ ਸਟੋਰੇਜ ਦੇਖੋ"</string>
     <string name="status_number" product="tablet" msgid="1138837891091222272">"MDN"</string>
-    <string name="status_number" product="default" msgid="5123197324870153205">"ਮੇਰਾ ਫੋਨ ਨੰਬਰ"</string>
+    <string name="status_number" product="default" msgid="5123197324870153205">"ਮੇਰਾ ਫ਼ੋਨ ਨੰਬਰ"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
     <string name="status_msid_number" msgid="909010114445780530">"MSID"</string>
-    <string name="status_prl_version" msgid="1007470446618081441">"PRL ਵਰਜਨ"</string>
+    <string name="status_prl_version" msgid="1007470446618081441">"PRL ਰੂਪ"</string>
     <string name="status_meid_number" msgid="1751442889111731088">"MEID"</string>
     <string name="status_icc_id" msgid="943368755577172747">"ICCID"</string>
     <string name="status_network_type" msgid="952552009117455166">"ਸੈਲਿਊਲਰ ਨੈੱਟਵਰਕ ਪ੍ਰਕਾਰ"</string>
@@ -1086,8 +1087,8 @@
     <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"USB ਸਟੋਰੇਜ ਮਿਟਾਓ"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"SD ਕਾਰਡ ਮਿਟਾਓ"</string>
-    <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"ਅੰਦਰੂਨੀ USB ਸਟੋਰੇਜ ਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਸੰਗੀਤ ਅਤੇ ਫੋਟੋਆਂ"</string>
-    <string name="sd_format_summary" product="default" msgid="212703692181793109">"SD ਕਾਰਡ ਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਸੰਗੀਤ ਅਤੇ ਫੋਟੋਆਂ"</string>
+    <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"ਅੰਦਰੂਨੀ USB ਸਟੋਰੇਜ ਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਸੰਗੀਤ ਅਤੇ ਫ਼ੋਟੋਆਂ"</string>
+    <string name="sd_format_summary" product="default" msgid="212703692181793109">"SD ਕਾਰਡ ਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਸੰਗੀਤ ਅਤੇ ਫ਼ੋਟੋਆਂ"</string>
     <string name="memory_clear_cache_title" msgid="5423840272171286191">"ਕੀ ਕੈਚ ਕੀਤਾ ਡੈਟਾ ਹਟਾਉਣਾ ਹੈ?"</string>
     <string name="memory_clear_cache_message" msgid="4550262490807415948">"ਇਹ ਸਾਰੇ ਐਪਸ ਲਈ ਕੈਚ ਕੀਤਾ ਡੈਟਾ ਹਟਾ ਦੇਵੇਗਾ।"</string>
     <string name="mtp_ptp_mode_summary" msgid="3710436114807789270">"MTP ਜਾਂ PTP ਫੰਕਸ਼ਨ ਸਕਿਰਿਆ ਹੈ"</string>
@@ -1122,7 +1123,7 @@
     <string name="usb_mtp_title" msgid="3399663424394065964">"ਮੀਡੀਆ ਡੀਵਾਈਸ (MTP)"</string>
     <string name="usb_mtp_summary" msgid="4617321473211391236">"Windows ਤੇ ਜਾਂ Mac Android ਫਾਈਲ ਟ੍ਰਾਂਸਫਰ ਵਰਤਦੇ ਹੋਏ ਤੁਹਾਨੂੰ ਮੀਡੀਆ ਫਾਈਲਾਂ ਟ੍ਰਾਂਸਫਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ (www.android.com/filetransfer ਦੇਖੋ)"</string>
     <string name="usb_ptp_title" msgid="3852760810622389620">"ਕੈਮਰਾ (PTP)"</string>
-    <string name="usb_ptp_summary" msgid="7406889433172511530">"ਤੁਹਾਨੂੰ ਕੈਮਰਾ ਸੌਫਟਵੇਅਰ ਵਰਤਦੇ ਹੋਏ ਫੋਟੋਆਂ ਅਤੇ ਕੰਪਿਊਟਰ ਤੇ ਕੋਈ ਵੀ ਫਾਈਲਾਂ ਟ੍ਰਾਂਸਫਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜੋ MTP ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੇ"</string>
+    <string name="usb_ptp_summary" msgid="7406889433172511530">"ਤੁਹਾਨੂੰ ਕੈਮਰਾ ਸੌਫਟਵੇਅਰ ਵਰਤਦੇ ਹੋਏ ਫ਼ੋਟੋਆਂ ਅਤੇ ਕੰਪਿਊਟਰ ਤੇ ਕੋਈ ਵੀ ਫਾਈਲਾਂ ਟ੍ਰਾਂਸਫਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜੋ MTP ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੇ"</string>
     <string name="usb_midi_title" msgid="3069990264258413994">"MIDI"</string>
     <string name="usb_midi_summary" msgid="539169474810956358">"MIDI ਸਮਰਥਿਤ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਤੇ MIDI ਸੌਫਟਵੇਅਰ ਨਾਲ USB ਤੇ ਕੰਮ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string>
     <string name="storage_other_users" msgid="808708845102611856">"ਹੋਰ ਉਪਭੋਗਤਾ"</string>
@@ -1142,11 +1143,11 @@
     <string name="storage_dialog_unmounted" msgid="6403320870103261477">"ਇਹ <xliff:g id="NAME_0">^1</xliff:g> ਸੁਰੱਖਿਅਤ ਰੂਪ ਨਾਲ ਹਟਾਇਆ ਗਿਆ ਹੈ, ਪਰੰਤੂ ਅਜੇ ਵੀ ਉਪਲਬਧ ਹੈ। \n\nਇਹ <xliff:g id="NAME_1">^1</xliff:g> ਵਰਤਣ ਲਈ, ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਇਸਨੂੰ ਮਾਉਂਟ ਕਰਨਾ ਪਵੇਗਾ।"</string>
     <string name="storage_dialog_unmountable" msgid="3732209361668282254">"ਇਹ <xliff:g id="NAME_0">^1</xliff:g> ਕਰਪਟ ਹੈ। \n\nਇਹ <xliff:g id="NAME_1">^1</xliff:g> ਵਰਤਣ ਲਈ, ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਇਸਨੂੰ ਸੈਟ ਅਪ ਕਰਨਾ ਪਵੇਗਾ।"</string>
     <string name="storage_dialog_unsupported" msgid="4503128224360482228">"ਇਹ ਡੀਵਾਈਸ ਇਸ <xliff:g id="NAME_0">^1</xliff:g> ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ। \n\nਇਸ ਡੀਵਾਈਸ ਨਾਲ ਇਹ <xliff:g id="NAME_1">^1</xliff:g> ਵਰਤਣ ਲਈ, ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਇਸਨੂੰ ਸੈਟ ਅਪ ਕਰਨਾ ਪਵੇਗਾ।"</string>
-    <string name="storage_internal_format_details" msgid="4018647158382548820">"ਫਾਰਮੈਟ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਦੂਜੀਆਂ ਡਿਵਾਈਆਂ ਵਿੱਚ ਇਸ <xliff:g id="NAME_0">^1</xliff:g>  ਦਾ ਉਪਯੋਗ ਕਰ ਸਕਦੇ ਹੋ. \n\nਇਸ <xliff:g id="NAME_1">^1</xliff:g> \'ਤੇ ਮੌਜੂਦ ਸਾਰਾ ਡੇਟਾ ਸਾਫ਼ ਕਰ ਦੇਵੇਗਾ. ਸਭ ਤੋਂ ਪਹਿਲਾਂ ਬੈੱਕ ਅੱਪ ਲੈਣ \'ਤੇ ਵਿਚਾਰ ਕਰੋ. \n\n"<b>"ਫੋਟੋਆਂ ਅਤੇ ਦੂਜੇ ਮੀਡੀਆ ਦਾ ਬੈੱਕ ਅੱਪ ਲਓ"</b>" \nਆਪਣੀ ਮੀਡੀਆ ਫ਼ਾਈਲਾਂ ਨੂੰ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਵਿਕਲਪਿਕ ਸਟੋਰੇਜ ਵਿੱਚ ਮੂਵ ਕਰੋ, ਜਾਂ ਉਹਨਾਂ ਨੂੰ ਕਿਸੇ USB ਕੇਬਲ ਦਾ ਉਪਯੋਗ ਕਰਕੇ ਕਿਸੇ ਕੰਪਿਊਟਰ ਵਿੱਚ ਟ੍ਰਾਂਸਫ਼ਰ ਕਰੋ. \n\n"<b>"ਐਪਸ ਦਾ ਬੈੱਕ ਅੱਪ ਲਓ"</b>" \nਇਸ <xliff:g id="NAME_6">^1</xliff:g> \'ਤੇ ਸਟੋਰ ਕੀਤੀ ਸਾਰੀਆਂ ਐਪਸ ਦੀਆਂ ਸਥਾਪਨਾ ਨੂੰ ਰੱਦ ਕੀਤਾ ਜਾਵੇਗਾ ਅਤੇ ਉਹਨਾਂ ਦੇ ਡੇਟਾ ਨੂੰ ਸਾਫ਼ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ. ਇਹਨਾਂ ਐਪਸ ਨੂੰ ਰੱਖਣ ਲਈ, ਇਹਨਾਂ ਨੂੰ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਵਿਕਲਪਿਕ ਸਟੋਰੇਜ ਵਿੱਚ ਲੈ ਜਾਓ."</string>
+    <string name="storage_internal_format_details" msgid="4018647158382548820">"ਫਾਰਮੈਟ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਦੂਜੀਆਂ ਡਿਵਾਈਆਂ ਵਿੱਚ ਇਸ <xliff:g id="NAME_0">^1</xliff:g>  ਦਾ ਉਪਯੋਗ ਕਰ ਸਕਦੇ ਹੋ. \n\nਇਸ <xliff:g id="NAME_1">^1</xliff:g> \'ਤੇ ਮੌਜੂਦ ਸਾਰਾ ਡੇਟਾ ਸਾਫ਼ ਕਰ ਦੇਵੇਗਾ. ਸਭ ਤੋਂ ਪਹਿਲਾਂ ਬੈੱਕ ਅੱਪ ਲੈਣ \'ਤੇ ਵਿਚਾਰ ਕਰੋ. \n\n"<b>"ਫ਼ੋਟੋਆਂ ਅਤੇ ਦੂਜੇ ਮੀਡੀਆ ਦਾ ਬੈੱਕ ਅੱਪ ਲਓ"</b>" \nਆਪਣੀ ਮੀਡੀਆ ਫ਼ਾਈਲਾਂ ਨੂੰ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਵਿਕਲਪਿਕ ਸਟੋਰੇਜ ਵਿੱਚ ਮੂਵ ਕਰੋ, ਜਾਂ ਉਹਨਾਂ ਨੂੰ ਕਿਸੇ USB ਕੇਬਲ ਦਾ ਉਪਯੋਗ ਕਰਕੇ ਕਿਸੇ ਕੰਪਿਊਟਰ ਵਿੱਚ ਟ੍ਰਾਂਸਫ਼ਰ ਕਰੋ. \n\n"<b>"ਐਪਸ ਦਾ ਬੈੱਕ ਅੱਪ ਲਓ"</b>" \nਇਸ <xliff:g id="NAME_6">^1</xliff:g> \'ਤੇ ਸਟੋਰ ਕੀਤੀ ਸਾਰੀਆਂ ਐਪਸ ਦੀਆਂ ਸਥਾਪਨਾ ਨੂੰ ਰੱਦ ਕੀਤਾ ਜਾਵੇਗਾ ਅਤੇ ਉਹਨਾਂ ਦੇ ਡੇਟਾ ਨੂੰ ਸਾਫ਼ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ. ਇਹਨਾਂ ਐਪਸ ਨੂੰ ਰੱਖਣ ਲਈ, ਇਹਨਾਂ ਨੂੰ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਵਿਕਲਪਿਕ ਸਟੋਰੇਜ ਵਿੱਚ ਲੈ ਜਾਓ."</string>
     <string name="storage_internal_unmount_details" msgid="3582802571684490057"><b>"ਜਦੋਂ ਤੁਸੀਂ ਇਸ <xliff:g id="NAME_0">^1</xliff:g> ਨੂੰ ਬਾਹਦ ਕੱਢਦੇ ਹੋ, ਤਾਂ ਇਸ \'ਤੇ ਸਟੋਰ ਕੀਤੀਆਂ ਐਪਸ ਕੰਮ ਕਰਨਾ ਬੰਦ ਕਰ ਦੇਣਗੀ, ਅਤੇ ਇਸ \'ਤੇ ਸਟੋਰ ਕੀਤੀਆਂ ਮੀਡੀਆ ਫ਼ਾਈਲਾਂ ਉਦੋਂ ਤੱਕ ਉਪਲਬਧ ਨਹੀਂ ਹੋਣਗੀਆਂ ਜਦੋਂ ਤੱਕ ਇਸਨੂੰ ਮੁੜ ਸੰਮਿਲਿਤ ਨਾ ਕੀਤਾ ਜਾਵੇ।"</b>" \n\nਇਸ <xliff:g id="NAME_1">^1</xliff:g> ਨੂੰ ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਕੰਮ ਕਰਨ ਲਈ ਫਾਰਮੈਟ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਕਿਸੇ ਹੋਰ ਡੀਵਾਈਸਾਂ \'ਤੇ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ।"</string>
-    <string name="storage_internal_forget_details" msgid="9028875424669047327">"ਐਪਸ, ਫੋਟੋਆਂ, ਜਾਂ ਇਸ <xliff:g id="NAME">^1</xliff:g> ਵਿੱਚ ਸ਼ਾਮਿਲ ਡੇਟਾ ਦਾ ਉਪਯੋਗ ਕਰਨ ਲਈ, ਇਸਨੂੰ ਮੁੜ ਸੰਮਿਲਿਤ ਕਰੋ। \n\nਵਿਕਲਪਿਕ ਰੂਪ ਵਿੱਚ, ਤੁਸੀਂ ਇਸ ਸਟੋਰੇਜ ਨੂੰ ਭੁੱਲਣਾ ਚੁਣ ਸਕਦੇ ਹੋ ਜੇਕਰ ਇਹ ਡੀਵਾਈਸ ਉਪਲਬਧ ਨਹੀਂ ਹੈ। \n\nਜੇਕਰ ਤੁਸੀਂ ਭੁੱਲਣਾ ਚੁਣਦੇ ਹੋ, ਤਾਂ ਡੀਵਾਈਸ ਵਿੱਚ ਸ਼ਾਮਿਲ ਸਾਰਾ ਡੇਟਾ ਹਮੇਸ਼ਾ ਲਈ ਗੁਆਚ ਜਾਵੇਗਾ। \n\nਤੁਸੀਂ ਐਪਸ ਨੂੰ ਬਾਅਦ ਵਿੱਚ ਮੁੜ ਸਥਾਪਿਤ ਕਰ ਸਕਦੇ ਹੋ, ਲੇਕਿਨ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਸਟੋਰ ਕੀਤਾ ਉਹਨਾਂ ਦਾ ਡੇਟਾ ਗੁਆਚ ਜਾਵੇਗਾ।"</string>
+    <string name="storage_internal_forget_details" msgid="9028875424669047327">"ਐਪਸ, ਫ਼ੋਟੋਆਂ, ਜਾਂ ਇਸ <xliff:g id="NAME">^1</xliff:g> ਵਿੱਚ ਸ਼ਾਮਿਲ ਡੇਟਾ ਦਾ ਉਪਯੋਗ ਕਰਨ ਲਈ, ਇਸਨੂੰ ਮੁੜ ਸੰਮਿਲਿਤ ਕਰੋ। \n\nਵਿਕਲਪਿਕ ਰੂਪ ਵਿੱਚ, ਤੁਸੀਂ ਇਸ ਸਟੋਰੇਜ ਨੂੰ ਭੁੱਲਣਾ ਚੁਣ ਸਕਦੇ ਹੋ ਜੇਕਰ ਇਹ ਡੀਵਾਈਸ ਉਪਲਬਧ ਨਹੀਂ ਹੈ। \n\nਜੇਕਰ ਤੁਸੀਂ ਭੁੱਲਣਾ ਚੁਣਦੇ ਹੋ, ਤਾਂ ਡੀਵਾਈਸ ਵਿੱਚ ਸ਼ਾਮਿਲ ਸਾਰਾ ਡੇਟਾ ਹਮੇਸ਼ਾ ਲਈ ਗੁਆਚ ਜਾਵੇਗਾ। \n\nਤੁਸੀਂ ਐਪਸ ਨੂੰ ਬਾਅਦ ਵਿੱਚ ਮੁੜ ਸਥਾਪਿਤ ਕਰ ਸਕਦੇ ਹੋ, ਲੇਕਿਨ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਸਟੋਰ ਕੀਤਾ ਉਹਨਾਂ ਦਾ ਡੇਟਾ ਗੁਆਚ ਜਾਵੇਗਾ।"</string>
     <string name="storage_internal_forget_confirm_title" msgid="1370847944388479245">"ਕੀ <xliff:g id="NAME">^1</xliff:g> ਭੁੱਲ ਗਏ?"</string>
-    <string name="storage_internal_forget_confirm" msgid="1148446041396902905">"ਇਸ <xliff:g id="NAME">^1</xliff:g> ਤੇ ਸਟੋਰ ਕੀਤੇ ਸਾਰੇ ਐਪਸ, ਫੋਟੋਆਂ ਅਤੇ ਡੈਟਾ ਹਮੇਸ਼ਾਂ ਲਈ ਨਸ਼ਟ ਹੋ ਜਾਏਗਾ।"</string>
+    <string name="storage_internal_forget_confirm" msgid="1148446041396902905">"ਇਸ <xliff:g id="NAME">^1</xliff:g> ਤੇ ਸਟੋਰ ਕੀਤੇ ਸਾਰੇ ਐਪਸ, ਫ਼ੋਟੋਆਂ ਅਤੇ ਡੈਟਾ ਹਮੇਸ਼ਾਂ ਲਈ ਨਸ਼ਟ ਹੋ ਜਾਏਗਾ।"</string>
     <string name="storage_detail_apps" msgid="6141154016753507490">"ਐਪਾਂ"</string>
     <string name="storage_detail_images" msgid="6950678857740634769">"ਚਿੱਤਰ"</string>
     <string name="storage_detail_videos" msgid="2919743464827110953">"ਵੀਡੀਓ"</string>
@@ -1157,12 +1158,12 @@
     <string name="storage_detail_explore" msgid="7911344011431568294">"<xliff:g id="NAME">^1</xliff:g> ਐਕਸਪਲੋਰ ਕਰੋ"</string>
     <string name="storage_detail_dialog_other" msgid="8907101974576694793">"ਹੋਰਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ ਐਪਾਂ ਦੁਆਰਾ ਰੱਖਿਅਤ ਸਾਂਝੀਆਂ ਕੀਤੀਆਂ ਫ਼ਾਈਲਾਂ, ਇੰਟਰਨੈੱਟ ਜਾਂ ਬਲੂਟੁੱਥ ਤੋਂ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਫ਼ਾਈਲਾਂ, Android ਫ਼ਾਈਲਾਂ, ਅਤੇ ਹੋਰ ਵੀ ਬਹੁਤ ਕੁਝ। \n\nਇਸ <xliff:g id="NAME">^1</xliff:g> ਦੀਆਂ ਦਿਖਣਯੋਗ ਸਮੱਗਰੀਆਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਪੜਚੋਲ ਕਰੋ \'ਤੇ ਟੈਪ ਕਰੋ।"</string>
     <string name="storage_detail_dialog_system" msgid="3417679651116003900">"ਸਿਸਟਮ ਵਿੱਚ ਅਜਿਹੀਆਂ ਫ਼ਾਈਲਾਂ ਸ਼ਾਮਲ ਹਨ ਜਿੰਨ੍ਹਾਂ ਨੂੰ Android ਵਿਅਕਤੀਗਤ ਤੌਰ \'ਤੇ ਨਹੀਂ ਵਿਖਾ ਸਕਦਾ ਹੈ।"</string>
-    <string name="storage_detail_dialog_user" msgid="1675756743326079688">"<xliff:g id="USER_0">^1</xliff:g> ਨੇ ਫੋਟੋਆਂ, ਸੰਗੀਤ, ਮੂਵੀਜ, ਐਪਸ ਜਾਂ ਹੋਰ ਡੈਟਾ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਹੋ ਸਕਦਾ ਹੈ ਜੋ <xliff:g id="SIZE">^2</xliff:g> ਸਟੋਰੇਜ ਲੈ ਰਿਹਾ ਹੈ। \n\n ਵੇਰਵੇ ਦੇਖਣ ਲਈ, <xliff:g id="USER_1">^1</xliff:g> ਤੇ ਸਵਿਚ ਕਰੋ।"</string>
+    <string name="storage_detail_dialog_user" msgid="1675756743326079688">"<xliff:g id="USER_0">^1</xliff:g> ਨੇ ਫ਼ੋਟੋਆਂ, ਸੰਗੀਤ, ਮੂਵੀਜ, ਐਪਸ ਜਾਂ ਹੋਰ ਡੈਟਾ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਹੋ ਸਕਦਾ ਹੈ ਜੋ <xliff:g id="SIZE">^2</xliff:g> ਸਟੋਰੇਜ ਲੈ ਰਿਹਾ ਹੈ। \n\n ਵੇਰਵੇ ਦੇਖਣ ਲਈ, <xliff:g id="USER_1">^1</xliff:g> ਤੇ ਸਵਿਚ ਕਰੋ।"</string>
     <string name="storage_wizard_init_title" msgid="5085400514028585772">"ਆਪਣੇ <xliff:g id="NAME">^1</xliff:g> ਨੂੰ ਸੈੱਟ ਅੱਪ ਕਰੋ"</string>
     <string name="storage_wizard_init_external_title" msgid="4867326438945303598">"ਪੋਰਟੇਬਲ ਸਟੋਰੇਜ ਦੇ ਰੂਪ ਵਿੱਚ ਉਪਯੋਗ ਕਰੋ"</string>
-    <string name="storage_wizard_init_external_summary" msgid="7476105886344565074">"ਡਿਵਾਈਸਾਂ ਦੇ ਵਿੱਚਕਾਰ ਫੋਟੋਆਂ ਅਤੇ ਦੂਜੇ ਮੀਡੀਓ ਨੂੰ ਮੂਵ ਕਰਨ ਲਈ."</string>
+    <string name="storage_wizard_init_external_summary" msgid="7476105886344565074">"ਡਿਵਾਈਸਾਂ ਦੇ ਵਿੱਚਕਾਰ ਫ਼ੋਟੋਆਂ ਅਤੇ ਦੂਜੇ ਮੀਡੀਓ ਨੂੰ ਮੂਵ ਕਰਨ ਲਈ."</string>
     <string name="storage_wizard_init_internal_title" msgid="9100613534261408519">"ਅੰਦਰਲੀ ਸਟੋਰੇਜ ਦੇ ਰੂਪ ਵਿੱਚ ਉਪਯੋਗ ਕਰੋ"</string>
-    <string name="storage_wizard_init_internal_summary" msgid="6240417501036216410">"ਐਪਸ ਅਤੇ ਫੋਟੋਆਂ ਸਮੇਤ, ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਕੁਝ ਵੀ ਸਟੋਰ ਕਰਨ ਦੇ ਲਈ. ਫਾਰਮੈਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਜੋ ਇਸਨੂੰ ਦੂਜੀਆਂ ਡੀਵਾਈਸਾਂ ਦੇ ਨਾਲ ਕੰਮ ਕਰਨ ਤੋਂ ਬਚਾਉਂਦੀ ਹੈ."</string>
+    <string name="storage_wizard_init_internal_summary" msgid="6240417501036216410">"ਐਪਸ ਅਤੇ ਫ਼ੋਟੋਆਂ ਸਮੇਤ, ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਕੁਝ ਵੀ ਸਟੋਰ ਕਰਨ ਦੇ ਲਈ. ਫਾਰਮੈਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਜੋ ਇਸਨੂੰ ਦੂਜੀਆਂ ਡੀਵਾਈਸਾਂ ਦੇ ਨਾਲ ਕੰਮ ਕਰਨ ਤੋਂ ਬਚਾਉਂਦੀ ਹੈ."</string>
     <string name="storage_wizard_format_confirm_title" msgid="2814021794538252546">"ਅੰਦਰਲੀ ਸਟੋਰੇਜ ਦੇ ਰੂਪ ਵਿੱਚ ਫਾਰਮੈਟ ਕਰੋ"</string>
     <string name="storage_wizard_format_confirm_body" msgid="4401758710076806509">"ਇਸਨੂੰ <xliff:g id="NAME_0">^1</xliff:g> ਨੂੰ ਸੁਰੱਖਿਅਤ ਬਣਾਉਣ ਲਈ ਇਹ ਫਾਰਮੈਟ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ. \n\nਫਾਰਮੈਟ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਇਹ <xliff:g id="NAME_1">^1</xliff:g> will ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਕੰਮ ਕਰੇਗਾ. \n\n "<b>"ਫਾਰਮੈਟ ਕਰਨਾ ਵਰਤਮਾਨ ਵਿੱਚ <xliff:g id="NAME_2">^1</xliff:g> \'ਤੇ ਸਟੋਰ ਕੀਤੀ ਸਾਰੇ ਡੇਟਾ ਨੂੰ ਸਾਫ਼ ਕਰ ਦਿੰਦਾ ਹੈ."</b>" ਡੇਟਾ ਗੁਆਚਣ ਤੋਂ ਬੱਚਣ ਲਈ, ਇਸਦਾ ਬੈੱਕ ਅੱਪ ਲੈਣ \'ਤੇ ਵਿਚਾਰ ਕਰੋ."</string>
     <string name="storage_wizard_format_confirm_public_title" msgid="4905690038882041566">"ਪੋਰਟੇਬਲ ਸਟੋਰੇਜ ਵੱਜੋਂ ਫਾਰਮੈਟ ਕਰੋ"</string>
@@ -1171,7 +1172,7 @@
     <string name="storage_wizard_format_progress_title" msgid="6487352396450582292">"<xliff:g id="NAME">^1</xliff:g> ਨੂੰ ਫਾਰਮੈਟ ਕਰ ਰਿਹਾ ਹੈ…"</string>
     <string name="storage_wizard_format_progress_body" msgid="4445041233802828430">"<xliff:g id="NAME">^1</xliff:g> ਨੂੰ ਫਾਰਮੈਟ ਕਰਨ ਵੇਲੇ ਇਸਨੂੰ ਨਾ ਹਟਾਓ."</string>
     <string name="storage_wizard_migrate_title" msgid="1363078147938160407">"ਡੇਟਾ ਨੂੰ ਨਵੇਂ ਸਟੋਰੇਜ ਵਿੱਚ ਮੂਵ ਕਰੋ"</string>
-    <string name="storage_wizard_migrate_body" msgid="890751699549542345">"ਤੁਸੀਂ ਇਸ ਨਵੇਂ <xliff:g id="NAME">^1</xliff:g>ਵਿੱਚ ਆਪਣੀਆਂ ਫੋਟੋਆਂ, ਫ਼ਾਈਲਾਂ ਅਤੇ ਐਪ ਦੇ ਡੇਟਾ ਨੂੰ ਮੂਵ ਕਰ ਸਕਦੇ ਹੋ।\n\nਇਹ ਮੂਵ ਲਗਭਗ <xliff:g id="TIME">^2</xliff:g> ਲੈਂਦਾ ਹੈ ਅੰਦਰਲੀ ਸਟੋਰੇਜ \'ਤੇ <xliff:g id="SIZE">^3</xliff:g> ਖਾਲੀ ਕਰ ਦੇਵੇਗਾ। ਕੁਝ ਐਪਸ ਇਹ ਕਿਰਿਆ ਹੋਣ ਵੇਲੇ ਕੰਮ ਨਹੀਂ ਕਰਨਗੇ।"</string>
+    <string name="storage_wizard_migrate_body" msgid="890751699549542345">"ਤੁਸੀਂ ਇਸ ਨਵੇਂ <xliff:g id="NAME">^1</xliff:g>ਵਿੱਚ ਆਪਣੀਆਂ ਫ਼ੋਟੋਆਂ, ਫ਼ਾਈਲਾਂ ਅਤੇ ਐਪ ਦੇ ਡੇਟਾ ਨੂੰ ਮੂਵ ਕਰ ਸਕਦੇ ਹੋ।\n\nਇਹ ਮੂਵ ਲਗਭਗ <xliff:g id="TIME">^2</xliff:g> ਲੈਂਦਾ ਹੈ ਅੰਦਰਲੀ ਸਟੋਰੇਜ \'ਤੇ <xliff:g id="SIZE">^3</xliff:g> ਖਾਲੀ ਕਰ ਦੇਵੇਗਾ। ਕੁਝ ਐਪਸ ਇਹ ਕਿਰਿਆ ਹੋਣ ਵੇਲੇ ਕੰਮ ਨਹੀਂ ਕਰਨਗੇ।"</string>
     <string name="storage_wizard_migrate_now" msgid="4523444323744239143">"ਹੁਣੇ ਮੂਵ ਕਰੋ"</string>
     <string name="storage_wizard_migrate_later" msgid="3173482328116026253">"ਬਾਅਦ ਵਿੱਚ ਮੂਵ ਕਰੋ"</string>
     <string name="storage_wizard_migrate_confirm_title" msgid="8564833529613286965">"ਡੇਟਾ ਨੂੰ ਹੁਣੇ ਮੂਵ ਕਰੋ"</string>
@@ -1180,8 +1181,8 @@
     <string name="storage_wizard_migrate_progress_title" msgid="1665479429044202868">"ਡੇਟਾ ਮੂਵ ਕਰ ਰਿਹਾ ਹੈ..."</string>
     <string name="storage_wizard_migrate_details" msgid="3709728824651136227">"ਮੂਵ ਦੇ ਦੌਰਾਨ \n• <xliff:g id="NAME">^1</xliff:g> ਨੂੰ ਨਾ ਹਟਾਓ. \n• ਕੁਝ ਐਪ ਸਹੀ ਤਰੀਕੇ ਦੇ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰਨSome apps won\'t work correctly. \n• Keep the device charged."</string>
     <string name="storage_wizard_ready_title" msgid="5381632402953258267">"<xliff:g id="NAME">^1</xliff:g> ਤਿਆਰ ਹੈ"</string>
-    <string name="storage_wizard_ready_external_body" msgid="2879508114260597474">"ਤੁਹਾਡ <xliff:g id="NAME">^1</xliff:g> ਫੋਟੋਆਂ ਅਤੇ ਦੂਜੇ ਮੀਡੀਆ ਦੇ ਨਾਲ ਉਪਯੋਗ ਕਰਨ ਲਈ ਬਿਲਕੁਲ ਤਿਆਰ ਹੈ."</string>
-    <string name="storage_wizard_ready_internal_body" msgid="122532674037860197">"ਤੁਹਾਡਾ ਨਵਾਂ <xliff:g id="NAME">^1</xliff:g> ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ. \n\nਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਫੋਟੋਆਂ, ਫ਼ਾਈਲਾਂ, ਅਤੇ ਐਪ ਡੇਟਾ ਨੂੰ ਮੂਵ ਕਰਨ ਲਈ, ਸੈੱਟਿੰਗਜ਼ ਅਤੇ ਸਟੋਰੇਜ \'ਤੇ ਜਾਓ."</string>
+    <string name="storage_wizard_ready_external_body" msgid="2879508114260597474">"ਤੁਹਾਡ <xliff:g id="NAME">^1</xliff:g> ਫ਼ੋਟੋਆਂ ਅਤੇ ਦੂਜੇ ਮੀਡੀਆ ਦੇ ਨਾਲ ਉਪਯੋਗ ਕਰਨ ਲਈ ਬਿਲਕੁਲ ਤਿਆਰ ਹੈ."</string>
+    <string name="storage_wizard_ready_internal_body" msgid="122532674037860197">"ਤੁਹਾਡਾ ਨਵਾਂ <xliff:g id="NAME">^1</xliff:g> ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ. \n\nਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਫ਼ੋਟੋਆਂ, ਫ਼ਾਈਲਾਂ, ਅਤੇ ਐਪ ਡੇਟਾ ਨੂੰ ਮੂਵ ਕਰਨ ਲਈ, ਸੈੱਟਿੰਗਜ਼ ਅਤੇ ਸਟੋਰੇਜ \'ਤੇ ਜਾਓ."</string>
     <string name="storage_wizard_move_confirm_title" msgid="292782012677890250">"<xliff:g id="APP">^1</xliff:g> ਨੂੰ ਮੂਵ ਕਰੋ"</string>
     <string name="storage_wizard_move_confirm_body" msgid="5176432115206478941">"<xliff:g id="APP">^1</xliff:g> ਅਤੇ ਇਸਦੇ ਡੇਟਾ ਨੂੰ <xliff:g id="NAME_0">^2</xliff:g> ਵਿੱਚ ਮੂਵ ਕਰਨਾ ਸਿਰਫ਼ ਕੁਝ ਸਮਾਂ ਲੈਂਦਾ ਹੈ. ਤੁਸੀਂ ਉਦੋਂ ਤੱਕ ਇਸ ਐਪ ਦਾ ਉਪਯੋਗ ਕਰਨ ਦੇ ਯੋਗ ਨਹੀਂ ਹੋਵੋਗੇ ਜਦੋਂ ਤੱਕ ਇਹ ਮੂਵ ਪੂਰਾ ਨਹੀਂ ਹੋ ਜਾਂਦਾ ਹੈ. \n\nਮੂਵ ਦੇ ਦੌਰਾਨ <xliff:g id="NAME_1">^2</xliff:g> ਨੂੰ ਨਾ ਹਟਾਓ."</string>
     <string name="storage_wizard_move_progress_title" msgid="4443920302548035674">"<xliff:g id="APP">^1</xliff:g> ਨੂੰ ਮੂਵ ਕਰ ਰਿਹਾ ਹੈ…"</string>
@@ -1250,8 +1251,8 @@
     <string name="master_clear_desc_erase_external_storage" product="default" msgid="4801026652617377093">\n\n"ਸੰਗੀਤ, ਤਸਵੀਰਾਂ ਅਤੇ ਹੋਰ ਉਪਭੋਗਤਾ ਡੈਟਾ ਹਟਾਉਣ ਲਈ, "<b>"SD ਕਾਰਡ"</b>" ਨੂੰ ਮਿਟਾਉਣ ਦੀ ਲੋੜ ਹੈ।"</string>
     <string name="erase_external_storage" product="nosdcard" msgid="969364037450286809">"USB ਸਟੋਰੇਜ ਮਿਟਾਓ"</string>
     <string name="erase_external_storage" product="default" msgid="1397239046334307625">"SD ਕਾਰਡ ਮਿਟਾਓ"</string>
-    <string name="erase_external_storage_description" product="nosdcard" msgid="4728558173931599429">"ਅੰਦਰੂਨੀ USB ਸਟੋਰੇਜ ਤੇ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਓ, ਜਿਵੇਂ ਸੰਗੀਤ ਜਾਂ ਫੋਟੋਆਂ"</string>
-    <string name="erase_external_storage_description" product="default" msgid="1737638779582964966">"SD ਕਾਰਡ ਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਓ, ਜਿਵੇਂ ਸੰਗੀਤ ਜਾਂ ਫੋਟੋਆਂ"</string>
+    <string name="erase_external_storage_description" product="nosdcard" msgid="4728558173931599429">"ਅੰਦਰੂਨੀ USB ਸਟੋਰੇਜ ਤੇ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਓ, ਜਿਵੇਂ ਸੰਗੀਤ ਜਾਂ ਫ਼ੋਟੋਆਂ"</string>
+    <string name="erase_external_storage_description" product="default" msgid="1737638779582964966">"SD ਕਾਰਡ ਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਓ, ਜਿਵੇਂ ਸੰਗੀਤ ਜਾਂ ਫ਼ੋਟੋਆਂ"</string>
     <string name="master_clear_button_text" product="tablet" msgid="3130786116528304116">"ਟੈਬਲੇਟ ਰੀਸੈੱਟ ਕਰੋ"</string>
     <string name="master_clear_button_text" product="default" msgid="7550632653343157971">"ਫੋਨ ਰੀਸੈੱਟ ਕਰੋ"</string>
     <string name="master_clear_final_desc" msgid="7318683914280403086">"ਕੀ ਆਪਣੀ ਸਾਰੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਅਤੇ ਡਾਊਨਲੋਡ ਕੀਤੇ ਐਪਸ ਮਿਟਾਉਣੇ ਹਨ? ਤੁਸੀਂ ਇਹ ਕਿਰਿਆ ਅਨਡੂ ਨਹੀਂ ਕਰ ਸਕਦੇ!"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ਕੀ ਆਪਣੇ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਨ ਲਈ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ਦੀ ਬਜਾਇ  <xliff:g id="NEW_APP">%1$s</xliff:g> ਨੂੰ ਵਰਤਣਾ ਹੈ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ਕੀ ਆਪਣੇ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਨ ਲਈ <xliff:g id="NEW_APP">%s</xliff:g> ਵਰਤਣਾ ਹੈ?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"ਅਗਿਆਤ SIM ਓਪਰੇਟਰ"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s ਦੀ ਕੋਈ ਗਿਆਤ ਪ੍ਰੋਵਿਜ਼ਿਨਿੰਗ ਵੈੱਬਸਾਈਟ ਨਹੀਂ ਹੈ"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> ਦੀ ਕੋਈ ਗਿਆਤ ਵਿਵਸਥਾਕਰਨ ਵੈੱਬਸਾਈਟ ਨਹੀਂ ਹੈ"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"ਕਿਰਪਾ ਕਰਕੇ SIM ਕਾਰਡ ਪਾਓ ਅਤੇ ਰੀਸਟਾਰਟ ਕਰੋ"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"ਕਿਰਪਾ ਕਰਕੇ ਇੰਟਰਨੈਟ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
     <string name="location_title" msgid="1029961368397484576">"ਮੇਰਾ ਟਿਕਾਣਾ"</string>
@@ -1343,7 +1344,7 @@
     <string name="about_settings" product="tablet" msgid="593457295516533765">"ਟੈਬਲੇਟ ਬਾਰੇ"</string>
     <string name="about_settings" product="default" msgid="1743378368185371685">"ਫ਼ੋਨ ਬਾਰੇ"</string>
     <string name="about_settings" product="emulator" msgid="221313099578564438">"ਇਮੂਲੇਟ ਕੀਤੀ ਡੀਵਾਈਸ ਬਾਰੇ"</string>
-    <string name="about_settings_summary" msgid="3371517697156165959">"ਕਨੂੰਨੀ ਜਾਣਕਾਰੀ, ਸਥਿਤੀ, ਸੌਫਟਵੇਅਰ ਵਰਜਨ ਦੇਖੋ"</string>
+    <string name="about_settings_summary" msgid="3371517697156165959">"ਕਨੂੰਨੀ ਜਾਣਕਾਰੀ, ਸਥਿਤੀ, ਸੌਫਟਵੇਅਰ ਰੂਪ ਦੇਖੋ"</string>
     <string name="legal_information" msgid="5769301644270604095">"ਕਨੂੰਨੀ ਜਾਣਕਾਰੀ"</string>
     <string name="contributors_title" msgid="5917703088825286504">"ਸਹਿਯੋਗੀ"</string>
     <string name="manual" msgid="3025943393642974445">"ਮੈਨੁਅਲ"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"ਸੈਟੇਲਾਈਟ ਇਮੇਜਰੀ ਪ੍ਰਦਾਤਾ:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"ਮੈਨੁਅਲ"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"ਮੈਨੁਅਲ ਲੋਡ ਕਰਨ ਵਿੱਚ ਇੱਕ ਸਮੱਸਿਆ ਹੋਈ ਸੀ।"</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"ਤੀਜੀ-ਧਿਰ ਦੇ ਲਾਇਸੰਸ"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ਲਾਇਸੰਸ ਲੋਡ ਕਰਨ ਵਿੱਚ ਇੱਕ ਸਮੱਸਿਆ ਹੋਈ ਸੀ।"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"ਸੁਰੱਖਿਆ ਜਾਣਕਾਰੀ"</string>
@@ -1528,7 +1528,7 @@
     <string name="computing_size" msgid="1599186977475211186">"ਹਿਸਾਬ ਲਗਾ ਰਿਹਾ ਹੈ…"</string>
     <string name="invalid_size_value" msgid="1582744272718752951">"ਪੈਕੇਜ ਅਕਾਰ ਨੂੰ ਕੰਪਿਊਟ ਨਹੀਂ ਕਰ ਸਕਿਆ।"</string>
     <string name="empty_list_msg" msgid="3552095537348807772">"ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਤੀਜੀ-ਪਾਰਟੀ ਦੇ ਇੰਸਟੌਲ ਕੀਤੇ ਐਪਸ ਨਹੀਂ ਹਨ।"</string>
-    <string name="version_text" msgid="9189073826278676425">"ਵਰਜਨ <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
+    <string name="version_text" msgid="9189073826278676425">"ਰੂਪ <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5042838441401731346">"ਮੂਵ ਕਰੋ"</string>
     <string name="move_app_to_internal" product="tablet" msgid="2299714147283854957">"ਟੈਬਲੇਟ ਵਿੱਚ ਮੂਵ ਕਰੋ"</string>
     <string name="move_app_to_internal" product="default" msgid="3895430471913858185">"ਫੋਨ ਵਿੱਚ ਮੂਵ ਕਰੋ"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"ਬੈਟਰੀ ਸੇਵਰ"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"ਆਟੋਮੈਟਿਕਲੀ ਚਾਲੂ ਕਰੋ"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ਕਦੇ ਵੀ ਨਹੀਂ"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s ਬੈਟਰੀ ਤੇ"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> \'ਤੇ ਬੈਟਰੀ"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"ਪ੍ਰਕਿਰਿਆ ਸਟੈਟਸ"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"ਚੱਲ ਰਹੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਬਾਰੇ Geeky ਸਟੈਟਸ"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"ਮੈਮਰੀ ਵਰਤੋਂ"</string>
@@ -2052,7 +2052,7 @@
     <string name="backup_erase_dialog_title" msgid="1027640829482174106"></string>
     <string name="backup_erase_dialog_message" msgid="5221011285568343155">"ਆਪਣੇ Wi‑Fi ਪਾਸਵਰਡਾਂ, ਬੁੱਕਮਾਰਕਾਂ, ਹੋਰ ਸੈਟਿੰਗਾਂ ਅਤੇ ਐਪ ਡੈਟਾ ਨੂੰ ਬੈਕ ਅਪ ਕਰਨਾ ਬੰਦ ਕਰਨਾ ਹੈ ਅਤੇ Google ਸਰਵਰਾਂ ਦੀਆਂ ਸਾਰੀਆਂ ਕਾਪੀਆਂ ਮਿਟਾਉਣੀਆਂ ਹਨ?"</string>
     <string name="fullbackup_erase_dialog_message" msgid="694766389396659626">"ਕੀ ਡੀਵਾਈਸ ਡੇਟਾ (ਜਿਵੇਂ ਕਿ Wi-Fi ਪਾਸਵਰਡ ਅਤੇ ਕਲ ਇਤਿਹਾਸ) ਅਤੇ ਐਪ ਡੇਟਾ (ਜਿਵੇਂ ਕਿ ਐਪਸ ਦਾ ਸਟੋਰ ਕੀਤੀ ਸੈੱਟਿੰਗਜ਼ ਅਤੇ ਫ਼ਾਈਲਾਂ) ਦਾ ਬੈੱਕ ਅੱਪ ਤੋਂ ਰੋਕਣਾ ਹੈ, ਅਤੇ ਇਸਦੇ ਨਾਲ-ਨਾਲ ਰਿਮੋਟ ਸਰਵਰ \'ਤੇ ਸਾਰੀਆਂ ਪ੍ਰਤੀਲਿਪੀਆਂ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?"</string>
-    <string name="fullbackup_data_summary" msgid="960850365007767734">"ਡੀਵਾਈਸ ਡੇਟਾ ਰਿਮੋਟ ਦੇ ਰੂਪ ਵਿੱਚ (ਜਿਵੇਂ ਕਿ Wi-Fi ਪਾਸਵਰਡ ਅਤੇ ਕਲ ਇਤਿਹਾਸ) ਅਤੇ ਐਪ ਡੇਟਾ (ਜਿਵੇਂ ਕਿ ਐਪਸ ਦਾ ਸਟੋਰ ਕੀਤੀ ਸੈੱਟਿੰਗਜ਼ ਅਤੇ ਫ਼ਾਈਲਾਂ) ਦਾ ਸਵੈਚਲ ਬੈੱਕ ਅੱਪ ਲਿਓ।\n\nਜਦੋਂ ਤੁਸੀਂ ਸਵੈਚਲ ਬੈੱਕ ਅੱਪ ਨੂੰ ਚਾਲੂ ਕਰਦੇ ਹੋ, ਤਾਂ ਡੀਵਾਈਸ ਅਤੇ ਐਪ ਡੇਟਾ ਨੂੰ ਰਿਮੋਟ ਦੇ ਰੂਪ ਵਿੱਚ ਅਵਧੀ ਅਨੁਸਾਰ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਐਪ ਡੇਟਾ ਕੋਈ ਵੀ ਡੇਟਾ ਹੋ ਸਕਦਾ ਹੈ ਜੋ ਸੰਪਰਕ, ਸੁਨੇਹੇ, ਅਤੇ ਫੋਟੋਆਂ ਵਰਗੇ ਸੰਭਾਵੀ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਸਮੇਤ, ਕਿਸੇ ਐਪ ਨੇ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਹੁੰਦਾ ਹੈ (ਨਿਰਮਾਤਾ ਸੈੱਟਿੰਗਜ਼ ਦੇ ਅਧਾਰ \'ਤੇ)।"</string>
+    <string name="fullbackup_data_summary" msgid="960850365007767734">"ਡੀਵਾਈਸ ਡੇਟਾ ਰਿਮੋਟ ਦੇ ਰੂਪ ਵਿੱਚ (ਜਿਵੇਂ ਕਿ Wi-Fi ਪਾਸਵਰਡ ਅਤੇ ਕਲ ਇਤਿਹਾਸ) ਅਤੇ ਐਪ ਡੇਟਾ (ਜਿਵੇਂ ਕਿ ਐਪਸ ਦਾ ਸਟੋਰ ਕੀਤੀ ਸੈੱਟਿੰਗਜ਼ ਅਤੇ ਫ਼ਾਈਲਾਂ) ਦਾ ਸਵੈਚਲ ਬੈੱਕ ਅੱਪ ਲਿਓ।\n\nਜਦੋਂ ਤੁਸੀਂ ਸਵੈਚਲ ਬੈੱਕ ਅੱਪ ਨੂੰ ਚਾਲੂ ਕਰਦੇ ਹੋ, ਤਾਂ ਡੀਵਾਈਸ ਅਤੇ ਐਪ ਡੇਟਾ ਨੂੰ ਰਿਮੋਟ ਦੇ ਰੂਪ ਵਿੱਚ ਅਵਧੀ ਅਨੁਸਾਰ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਐਪ ਡੇਟਾ ਕੋਈ ਵੀ ਡੇਟਾ ਹੋ ਸਕਦਾ ਹੈ ਜੋ ਸੰਪਰਕ, ਸੁਨੇਹੇ, ਅਤੇ ਫ਼ੋਟੋਆਂ ਵਰਗੇ ਸੰਭਾਵੀ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਸਮੇਤ, ਕਿਸੇ ਐਪ ਨੇ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਹੁੰਦਾ ਹੈ (ਨਿਰਮਾਤਾ ਸੈੱਟਿੰਗਜ਼ ਦੇ ਅਧਾਰ \'ਤੇ)।"</string>
     <string name="device_admin_settings_title" msgid="1335557832906433309">"ਡੀਵਾਈਸ ਪ੍ਰਬੰਧ ਸੈਟਿੰਗਾਂ"</string>
     <string name="active_device_admin_msg" msgid="6930903262612422111">"ਡੀਵਾਈਸ ਪ੍ਰਬੰਧਕ"</string>
     <string name="remove_device_admin" msgid="7736174723276745230">"ਇਸ ਡੀਵਾਈਸ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਅਕਿਰਿਆਸ਼ੀਲ ਕਰੋ"</string>
@@ -2449,7 +2449,7 @@
     <string name="app_notifications_switch_label" msgid="9124072219553687583">"ਸੂਚਨਾਵਾਂ ਦਿਖਾਓ"</string>
     <string name="help_label" msgid="6886837949306318591">"ਮਦਦ ਅਤੇ ਪ੍ਰਤੀਕਰਮ"</string>
     <string name="user_account_title" msgid="1127193807312271167">"ਸਮੱਗਰੀ ਲਈ ਖਾਤਾ"</string>
-    <string name="user_picture_title" msgid="7297782792000291692">"ਫੋਟੋ ID"</string>
+    <string name="user_picture_title" msgid="7297782792000291692">"ਫ਼ੋਟੋ ID"</string>
     <string name="extreme_threats_title" msgid="6549541803542968699">"ਐਕਸਟ੍ਰੀਮ ਖਤਰੇ"</string>
     <string name="extreme_threats_summary" msgid="8777860706500920667">"ਜੀਵਨ ਅਤੇ ਜਾਇਦਾਦ ਲਈ ਐਕਸਟ੍ਰੀਮ ਖਤਰਿਆਂ ਦੀਆਂ ਚਿਤਾਵਨੀਆਂ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
     <string name="severe_threats_title" msgid="8362676353803170963">"ਗੰਭੀਰ ਖਤਰੇ"</string>
@@ -2489,9 +2489,9 @@
     <string name="wizard_back" msgid="5567007959434765743">"ਪਿੱਛੇ"</string>
     <string name="wizard_next" msgid="3606212602795100640">"ਅੱਗੇ"</string>
     <string name="wizard_finish" msgid="3286109692700083252">"ਸਮਾਪਤ ਕਰੋ"</string>
-    <string name="user_image_take_photo" msgid="1280274310152803669">"ਫੋਟੋ ਲਓ"</string>
-    <string name="user_image_choose_photo" msgid="7940990613897477057">"ਗੈਲਰੀ ਵਿੱਚੋਂ ਫੋਟੋ ਚੁਣੋ"</string>
-    <string name="user_image_photo_selector" msgid="5492565707299454873">"ਫੋਟੋ ਚੁਣੋ"</string>
+    <string name="user_image_take_photo" msgid="1280274310152803669">"ਫ਼ੋਟੋ ਖਿੱਚ੍ਹੋ"</string>
+    <string name="user_image_choose_photo" msgid="7940990613897477057">"ਗੈਲਰੀ ਵਿੱਚੋਂ ਫ਼ੋਟੋ ਚੁਣੋ"</string>
+    <string name="user_image_photo_selector" msgid="5492565707299454873">"ਫ਼ੋਟੋ ਚੁਣੋ"</string>
     <string name="regulatory_info_text" msgid="5623087902354026557"></string>
     <string name="sim_setup_wizard_title" msgid="1732682852692274928">"SIM ਕਾਰਡ"</string>
     <string name="sim_settings_title" msgid="6822745211458959756">"SIM ਕਾਰਡ"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"ਰਿੰਗ ਵੌਲਿਊਮ"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"ਸੂਚਨਾ ਵੌਲਿਊਮ"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"ਫੋਨ ਰਿੰਗਟੋਨ"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"ਪੂਰਵ-ਨਿਰਧਾਰਤ ਸੂਚਨਾ ਧੁਨੀ"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"ਪੂਰਵ-ਨਿਰਧਾਰਤ ਅਲਾਰਮ ਧੁਨੀ"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ਕਾਲਾਂ ਲਈ ਥਰਥਰਾਹਟ ਵੀ ਕਰੋ"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"ਹੋਰ ਅਵਾਜ਼ਾਂ"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"ਡਾਇਲ ਪੈਡ ਟੋਨਾਂ"</string>
@@ -2957,8 +2955,8 @@
     <string name="usb_use_power_only_desc" msgid="4912352581010190141">"ਹੋਰ ਕਨੈਕਟ ਕੀਤੀਆਂ ਡੀਵਾਈਸਾਂ ਨੂੰ ਪਾਵਰ ਸਪਲਾਈ ਕਰੋ"</string>
     <string name="usb_use_file_transfers" msgid="7409600791007250137">"ਫ਼ਾਈਲਾਂ ਦਾ ਤਬਾਦਲਾ ਕਰੋ"</string>
     <string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"ਫ਼ਾਈਲਾਂ ਦਾ ਕਿਸੇ ਹੋਰ ਡੀਵਾਈਸ \'ਤੇ ਤਬਾਦਲਾ ਕਰੋ"</string>
-    <string name="usb_use_photo_transfers" msgid="7794775645350330454">"ਫੋਟੋਆਂ ਦਾ ਤਬਾਦਲਾ ਕਰੋ (PTP)"</string>
-    <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"ਫੋਟੋਆਂ ਜਾਂ ਫ਼ਾਈਲਾਂ ਦਾ ਤਬਾਦਲਾ ਕਰੋ ਜੇਕਰ MTP ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ (PTP)"</string>
+    <string name="usb_use_photo_transfers" msgid="7794775645350330454">"ਫ਼ੋਟੋਆਂ ਦਾ ਤਬਾਦਲਾ ਕਰੋ (PTP)"</string>
+    <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"ਫ਼ੋਟੋਆਂ ਜਾਂ ਫ਼ਾਈਲਾਂ ਦਾ ਤਬਾਦਲਾ ਕਰੋ ਜੇਕਰ MTP ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ (PTP)"</string>
     <string name="usb_use_MIDI" msgid="870922185938298263">"ਡੀਵਾਈਸ ਦੀ ਵਰਤੋਂ MIDI ਵਜੋਂ ਕਰੋ"</string>
     <string name="usb_use_MIDI_desc" msgid="8473936990076693175">"ਇਸ ਡੀਵਾਈਸ ਦੀ MIDI ਵਜੋਂ ਵਰਤੋਂ ਕਰੋ"</string>
     <string name="usb_use" msgid="3256040963685055320">"ਇਹਨਾਂ ਲਈ USB ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"ਕੀ ਸਾਈਨ ਇਨ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"ਸਿਸਟਮ ਜਾਣਕਾਰੀ ਭੇਜੋ"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"ਦੁਬਾਰਾ ਨਾ ਵਿਖਾਓ"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"ਇਸ ਵਜੋਂ ਬੇਨਤੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"ਖਾਤਾ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"ਕੰਮ ਪ੍ਰੋਫਾਈਲ ਸੈਟਿੰਗਾਂ"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"ਸੰਪਰਕ ਖੋਜ"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"ਕਾਲ ਕਰਨ ਵਾਲਿਆਂ ਅਤੇ ਸੰਪਰਕਾਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਤੁਹਾਡੀ ਸੰਸਥਾ ਵਿੱੱਚ ਸੰਪਰਕ ਖੋਜਾਂ ਕਰਨ ਦਿਓ"</string>
@@ -3247,8 +3247,8 @@
     <string name="bluetooth_talkback_input_peripheral" msgid="5165842622743212268">"ਇਨਪੁੱਟ ਪੈਰਿਫੈਰਲ"</string>
     <string name="bluetooth_talkback_bluetooth" msgid="5615463912185280812">"ਬਲੂਟੁੱਥ"</string>
     <string name="automatic_storage_manager_settings" msgid="7819434542155181607">"ਸਟੋਰੇਜ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
-    <string name="automatic_storage_manager_text" msgid="4562950476680600604">"ਸਟੋਰੇਜ ਥਾਂ ਖ਼ਾਲੀ ਕਰਨ ਵਿੱਚ ਮਦਦ ਲਈ, ਸਟੋਰੇਜ ਪ੍ਰਬੰਧਕ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਤੋਂ ਬੈਕਅੱਪ ਲਈਆਂ ਗਈਆਂ ਫੋਟੋਆਂ ਅਤੇ ਵੀਡੀਓ ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ।"</string>
-    <string name="automatic_storage_manager_days_title" msgid="2017913896160914647">"ਫੋਟੋਆਂ ਅਤੇ ਵੀਡੀਓ ਹਟਾਓ"</string>
+    <string name="automatic_storage_manager_text" msgid="4562950476680600604">"ਸਟੋਰੇਜ ਥਾਂ ਖ਼ਾਲੀ ਕਰਨ ਵਿੱਚ ਮਦਦ ਲਈ, ਸਟੋਰੇਜ ਪ੍ਰਬੰਧਕ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਤੋਂ ਬੈਕਅੱਪ ਲਈਆਂ ਗਈਆਂ ਫ਼ੋਟੋਆਂ ਅਤੇ ਵੀਡੀਓ ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ।"</string>
+    <string name="automatic_storage_manager_days_title" msgid="2017913896160914647">"ਫ਼ੋਟੋਆਂ ਅਤੇ ਵੀਡੀਓ ਹਟਾਓ"</string>
     <string name="automatic_storage_manager_preference_title" msgid="5753702798151073383">"ਸਟੋਰੇਜ ਪ੍ਰਬੰਧਕ"</string>
     <string name="deletion_helper_automatic_title" msgid="6605660435498272520">"ਸਵੈਚਾਲਿਤ"</string>
     <string name="deletion_helper_manual_title" msgid="7947432164411214029">"ਦਸਤੀ"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"ਖਾਤਾ ਡੈਟਾ ਸਵੈ-ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"ਵਿਅਕਤੀਗਤ ਖਾਤਾ ਡੈਟਾ ਸਵੈ-ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"ਕਾਰਜ ਖਾਤਾ ਡੈਟਾ ਸਵੈ-ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"ਖਾਤਾ ਸਮਕਾਲੀਕਰਨ"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"ਪਰਦੇਦਾਰੀ"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ਪਰਦੇਦਾਰੀ"</string>
-    <string name="enterprise_privacy_header" msgid="5605095630252702716">"ਤੁਹਾਡੇ ਕੰਮ ਦੇ ਡੈਟੇ ਤੱਕ ਪਹੁੰਚ ਮੁਹੱਈਆ ਕਰਾਉਣ ਲਈ, ਤੁਹਾਡਾ ਸੰਗਠਨ ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਸੈਟਿੰਗਾਂ ਨੂੰ ਤਬਦੀਲ ਅਤੇ ਸਾਫਟਵੇਅਰ ਸਥਾਪਤ ਕਰ ਸਕਦਾ ਹੈ, ਜਿਹੜਾ ਕਿ ਤੁਹਾਡੀ ਕੁਝ ਨਿੱਜੀ ਸਮੱਗਰੀ ਨੂੰ ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਲਈ ਉਪਲਬਧ ਹੋਣ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ। ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ ਆਪਣੇ ਸੰਗਠਨ ਦੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।"</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_header" msgid="5605095630252702716">"ਤੁਹਾਡੇ ਕਾਰਜ ਡੈਟੇ ਤੱਕ ਪਹੁੰਚ ਮੁਹੱਈਆ ਕਰਾਉਣ ਲਈ, ਤੁਹਾਡਾ ਸੰਗਠਨ ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਸੈਟਿੰਗਾਂ ਨੂੰ ਤਬਦੀਲ ਅਤੇ ਸਾਫਟਵੇਅਰ ਸਥਾਪਤ ਕਰ ਸਕਦਾ ਹੈ, ਜੋ ਤੁਹਾਡੀ ਕੁਝ ਨਿੱਜੀ ਸਮੱਗਰੀ ਨੂੰ ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਲਈ ਦਿਖਣਯੋਗ ਬਣਨ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ। ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ ਆਪਣੇ ਸੰਗਠਨ ਦੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।"</string>
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"ਤੁਹਾਡੀ ਸੰਸਥਾ ਜਾਣਕਾਰੀ ਦੀਆਂ ਕਿਹੜੀਆਂ ਕਿਸਮਾਂ ਵੇਖ ਸਕਦੀ ਹੈ?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"ਤੁਹਾਡੀ ਸੰਸਥਾ ਜੋ ਕੁਝ ਵੇਖ ਸਕਦੀ ਹੈ ਉਸਨੂੰ ਕਿਹੜੀਆਂ ਤਬਦੀਲੀਆਂ ਪ੍ਰਭਾਵਿਤ ਕਰਦੀਆਂ ਹਨ?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ਕਿਹੜੀਆਂ ਕਾਰਵਾਈਆਂ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਤੁਹਾਡੀ ਪਹੁੰਚ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰ ਸਕਦੀਆਂ ਹਨ?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"ਤੁਹਾਡੇ ਕਾਰਜ ਖਾਤੇ ਨਾਲ ਸਬੰਧਿਤ ਡੈਟਾ, ਜਿਵੇਂ ਕਿ ਈਮੇਲ ਅਤੇ ਕੈਲੰਡਰ"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਸਭ ਐਪਾਂ ਦੀ ਸੂਚੀ"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਸਭ <xliff:g id="COUNT_1">%d</xliff:g> ਐਪਾਂ ਦੀ ਸੂਚੀ</item>
+      <item quantity="other">ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਸਭ <xliff:g id="COUNT_1">%d</xliff:g> ਐਪਾਂ ਦੀ ਸੂਚੀ</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਹਰੇਕ ਐਪ ਦੀ ਵਰਤੋਂ (ਲਗਾਇਆ ਸਮਾਂ ਅਤੇ ਵਰਤੇ ਗਏ ਡੈਟੇ ਦੀ ਮਾਤਰਾ)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਆਵਾਜਾਈ ਲੌਗ"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"ਤੁਹਾਡੀ ਸਭ ਤੋਂ ਹਾਲੀਆ ਬੱਗ ਰਿਪੋਰਟ"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"ਤੁਹਾਡਾ ਸਭ ਤੋਂ ਹਾਲੀਆ ਸੁਰੱਖਿਆ ਲੌਗ"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"ਕਦੇ ਵੀ ਨਹੀਂ"</string>
 </resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index dc25517..9ce771d 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"włączanie ekranu"</item>
     <item msgid="3253368931113490863">"pobieranie listy kont"</item>
     <item msgid="780392378084812901">"uruchamianie w tle"</item>
+    <item msgid="2629748510881309577">"głośność przy ułatwieniach dostępu"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Lokalizacja"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Włączanie ekranu"</item>
     <item msgid="5258373962467495905">"Pobieranie listy kont"</item>
     <item msgid="334625385979270703">"Działanie w tle"</item>
+    <item msgid="9039213578110332702">"Głośność przy ułatwieniach dostępu"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Krótki"</item>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index f0944e5..3052fa1 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -152,7 +152,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Dotknij, by połączyć z: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Czy chcesz nawiązać połączenie z urządzeniem „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Żądanie dostępu do książki telefonicznej"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s chce uzyskać dostęp do Twoich kontaktów i historii połączeń. Zezwolić %2$s na dostęp?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> chce uzyskać dostęp do Twoich kontaktów i historii połączeń. Przyznać dostęp urządzeniu <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Nie pytaj ponownie"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Nie pytaj ponownie"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Żądanie dostępu do wiadomości"</string>
@@ -274,6 +274,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Ustawienia"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Ustawienia"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Skrót do ustawień"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Nie znaleziono pasujących działań."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Tryb samolotowy"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Więcej"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Sieci zwykłe i bezprzewodowe"</string>
@@ -1321,7 +1322,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Używać <xliff:g id="NEW_APP">%1$s</xliff:g> zamiast <xliff:g id="CURRENT_APP">%2$s</xliff:g> do zarządzania połączeniami sieciowymi?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Używać <xliff:g id="NEW_APP">%s</xliff:g> do zarządzania połączeniami sieciowymi?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nieznany operator karty SIM"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nie ma znanej witryny obsługi"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nie ma znanej witryny obsługi administracyjnej"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Włóż kartę SIM i zrestartuj urządzenie"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Połącz się z internetem"</string>
     <string name="location_title" msgid="1029961368397484576">"Moja lokalizacja"</string>
@@ -1377,8 +1378,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Dostawcy zdjęć satelitarnych:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Instrukcja"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Podczas wczytywania instrukcji wystąpił problem."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licencje innych firm"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Wystąpił problem podczas ładowania licencji."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Ładowanie..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Informacje o bezpieczeństwie"</string>
@@ -1966,7 +1966,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Oszczędzanie baterii"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Włącz automatycznie"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nigdy"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"przy %1$s baterii"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"przy <xliff:g id="PERCENT">%1$s</xliff:g> baterii"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Statystyki procesów"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Rozbudowane statystyki uruchomionych procesów"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Użycie pamięci"</string>
@@ -2650,10 +2650,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Głośność dzwonka"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Głośność powiadomień"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Dzwonek telefonu"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Domyślny dźwięk powiadomienia"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Domyślny dźwięk alarmu"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Wibracja przy połączeniach"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Inne dźwięki"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Dźwięki wybierania numeru"</string>
@@ -3287,6 +3285,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Nie możesz się zalogować?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Wyślij informacje o systemie"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Nie pokazuj ponownie"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Wysyłasz jako"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Dodaj konto"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Ustawienia profilu do pracy"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Wyszukiwanie kontaktów"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Zezwalaj na wyszukiwanie kontaktów do identyfikacji rozmówców i kontaktów przez Twoją organizację"</string>
@@ -3365,20 +3365,24 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Autosynchronizacja: dane konta"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Autosynchronizacja: osobiste"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Autosynchronizacja: służbowe"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Synchronizacja konta"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Prywatność"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Prywatność"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Aby zapewnić dostęp do danych służbowych, Twoja organizacja może zmienić ustawienia i zainstalować oprogramowanie na Twoim urządzeniu. Niektóre z Twoich prywatnych treści mogą być widoczne dla administratora. Skontaktuj się z nim, by uzyskać więcej informacji."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Jakie informacje są widoczne dla organizacji?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Jakie zmiany wpływają na to, co jest widoczne dla Twojej organizacji?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Jakie działania mogą wpłynąć na Twój dostęp do tego urządzenia?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dane powiązane z kontem służbowym, takie jak poczta e-mail i kalendarz"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista wszystkich aplikacji na Twoim urządzeniu"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="few">Lista wszystkich <xliff:g id="COUNT_1">%d</xliff:g> aplikacji na Twoim urządzeniu</item>
+      <item quantity="many">Lista wszystkich <xliff:g id="COUNT_1">%d</xliff:g> aplikacji na Twoim urządzeniu</item>
+      <item quantity="other">Lista z <xliff:g id="COUNT_1">%d</xliff:g> aplikacji na Twoim urządzeniu</item>
+      <item quantity="one">Lista z <xliff:g id="COUNT_0">%d</xliff:g> aplikacją na Twoim urządzeniu</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Użycie (spędzony czas i ilość użytych danych) poszczególnych aplikacji na Twoim urządzeniu"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Dzienniki ruchu na Twoim urządzeniu"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Najnowszy raport o błędzie"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Twój najnowszy dziennik zabezpieczeń"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nigdy"</string>
 </resources>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index eeede29..040cc96 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ativar tela"</item>
     <item msgid="3253368931113490863">"adquirir contas"</item>
     <item msgid="780392378084812901">"executar em segundo plano"</item>
+    <item msgid="2629748510881309577">"volume da acessibilidade"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Local"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Ativar tela"</item>
     <item msgid="5258373962467495905">"Adquirir contas"</item>
     <item msgid="334625385979270703">"Executar em segundo plano"</item>
+    <item msgid="9039213578110332702">"Volume da acessibilidade"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Curto"</item>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 9250374..20ceab1 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Toque para conectar-se a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Deseja conectar-se ao \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Solicitação de acesso à agenda telefônica"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s deseja acessar seus contatos e o histórico de chamadas. Conceder acesso a %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"O <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> deseja acessar seus contatos e seu histórico de chamadas. Deseja conceder acesso ao <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Não perguntar novamente"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Não perguntar novamente"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Solicitação de acesso a mensagens"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Configurações"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Configurar"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Atalho para as configurações"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Nenhuma atividade correspondente foi encontrada."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Modo avião"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Mais"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Redes sem fio e outras"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Usar <xliff:g id="NEW_APP">%1$s</xliff:g> em vez de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para gerenciar suas conexões de rede?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Usar <xliff:g id="NEW_APP">%s</xliff:g> para gerenciar suas conexões de rede?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operadora do SIM desconhecida"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s sem website de aprovisionamento conhecido"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> não tem um website de aprovisionamento conhecido"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Insira o cartão SIM e reinicie"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Conecte-se à Internet"</string>
     <string name="location_title" msgid="1029961368397484576">"Meu Local"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Provedores de imagens de satélite:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ocorreu um problema ao carregar o manual."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenças de terceiros"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Há um problema ao carregar as licenças."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Carregando..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Informações de segurança"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Economia de bateria"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Ativar automaticamente"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nunca"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"com %1$s de bateria"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"com <xliff:g id="PERCENT">%1$s</xliff:g> de bateria"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Estatísticas de processo"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Estatísticas detalhadas sobre os processos em execução"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Uso da memória"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do toque"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volume das notificações"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Toque do telefone"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Som de notificação padrão"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Som de alarme padrão"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Também vibrar para chamadas"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Outros sons"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tons do teclado"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Não consegue fazer login?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Enviar informações do sistema"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Não mostrar novamente"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Solicitando como"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Adicionar conta"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Configurações do perfil de trabalho"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pesquisa de contatos"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permitir que sua organização pesquise contatos para identificar autores de chamadas e contatos"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Sinc. autom. de dados da conta"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinc. autom. dados pessoais da conta"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinc. autom. dados de trab. da conta"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sincronização de contas"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacidade"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacidade"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Para fornecer acesso aos seus dados de trabalho, sua organização pode alterar configurações e instalar softwares no seu dispositivo, o que poderia tornar alguns conteúdos pessoais visíveis para seu administrador. Entre em contato com o administrador da sua organização para saber mais detalhes."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Que tipos de informação sua organização pode ver?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Quais alterações afetam o que sua organização pode ver?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Quais ações podem afetar seu acesso a esse dispositivo?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dados associados à sua conta de trabalho, como e-mail e agenda"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista de todos os apps no seu dispositivo"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Lista do <xliff:g id="COUNT_1">%d</xliff:g> app no seu dispositivo</item>
+      <item quantity="other">Lista de todos os <xliff:g id="COUNT_1">%d</xliff:g> apps no seu dispositivo</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Uso (tempo gasto e quantidade de dados usados) de cada app no seu dispositivo"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Registros de trânsito no seu dispositivo"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Seu relatório do bug mais recente"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Seu registro de segurança mais recente"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nunca"</string>
 </resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index ce3d14d..74d92e1 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ativar ecrã"</item>
     <item msgid="3253368931113490863">"obter contas"</item>
     <item msgid="780392378084812901">"executar em segundo plano"</item>
+    <item msgid="2629748510881309577">"volume da acessibilidade"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Localização"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Ativar ecrã"</item>
     <item msgid="5258373962467495905">"Obter contas"</item>
     <item msgid="334625385979270703">"Executar em segundo plano"</item>
+    <item msgid="9039213578110332702">"Volume da acessibilidade"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Curta"</item>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 0ee9c62..4366577 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Toque para ligar a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Pretende ligar-se a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Pedido de acesso à lista telefónica"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s pretende aceder aos seus contactos e histórico de chamadas. Conceder acesso a %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> pretende aceder aos seus contactos e ao histórico de chamadas. Pretende conceder acesso a <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Não perguntar novamente"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Não perguntar novamente"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Pedido de acesso a mensagens"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Definições"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Definições"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Atalho das definições"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Não foi encontrada qualquer atividade correspondente."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Modo de voo"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Mais"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Redes sem fios e outras"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Utilizar <xliff:g id="NEW_APP">%1$s</xliff:g> em vez de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para gerir as ligações de rede?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Utilizar <xliff:g id="NEW_APP">%s</xliff:g> para gerir as ligações de rede?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operador SIM desconhecido"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"A %1$s não possui um Website de gestão conhecido"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"A <xliff:g id="OPERATOR">%1$s</xliff:g> não possui um Website de gestão conhecido"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Insira o cartão SIM e reinicie"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Ligue-se à Internet"</string>
     <string name="location_title" msgid="1029961368397484576">"A minha localização"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Fornecedores de imagens de satélite:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ocorreu um problema ao carregar o manual."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenças de terceiros"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Ocorreu um problema ao carregar as licenças."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"A carregar..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Informações de segurança"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Poupança de bateria"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Ligar automaticamente"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nunca"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"com %1$s de bateria"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ao alcançar <xliff:g id="PERCENT">%1$s</xliff:g> de bateria"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Estatísticas do Processo"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Estatísticas de peritos acerca dos processos em execução"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Utilização da memória"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do toque"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volume de notificações"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Toque do telefone"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Som de notificação predefinido"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Som de alarme predefinido"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrar também para chamadas"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Outros sons"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Sons do teclado"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Não consegue iniciar sessão?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Enviar informações do sistema"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Não mostrar novamente"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"A solicitar como"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Adicionar conta"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Definições do perfil de trabalho"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pesquisa de contactos"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permitir pesquisa de contactos por parte da sua entidade para identificar autores das chamadas e contactos"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Sinc. autom. os dados da conta"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinc. aut. dados da conta pes."</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinc. aut. dados da conta tr."</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sincronização da conta"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacidade"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacidade"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Para fornecer acesso aos seus dados de trabalho, a sua entidade pode alterar as definições e instalar software no seu dispositivo, o que pode tornar algum do seu conteúdo pessoal visível para o seu administrador. Contacte o administrador da sua entidade para obter mais informações."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Que tipos de informação pode ver a sua entidade?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Que alterações afetam o que a sua entidade pode ver?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Que ações podem afetar o seu acesso a este dispositivo?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Os dados associados à sua conta de trabalho, como o email e o calendário"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista de todas as aplicações no seu dispositivo"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Lista de todas as <xliff:g id="COUNT_1">%d</xliff:g> aplicações no seu dispositivo</item>
+      <item quantity="one">Lista de <xliff:g id="COUNT_0">%d</xliff:g> aplicação no seu dispositivo</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Utilização (tempo gasto e a quantidade de dados utilizados) de cada aplicação no seu dispositivo"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Registos de tráfego no seu dispositivo"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"O seu relatório de erro mais recente"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"O seu registo de segurança mais recente"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nunca"</string>
 </resources>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index eeede29..040cc96 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ativar tela"</item>
     <item msgid="3253368931113490863">"adquirir contas"</item>
     <item msgid="780392378084812901">"executar em segundo plano"</item>
+    <item msgid="2629748510881309577">"volume da acessibilidade"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Local"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Ativar tela"</item>
     <item msgid="5258373962467495905">"Adquirir contas"</item>
     <item msgid="334625385979270703">"Executar em segundo plano"</item>
+    <item msgid="9039213578110332702">"Volume da acessibilidade"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Curto"</item>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 9250374..20ceab1 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Toque para conectar-se a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Deseja conectar-se ao \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Solicitação de acesso à agenda telefônica"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s deseja acessar seus contatos e o histórico de chamadas. Conceder acesso a %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"O <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> deseja acessar seus contatos e seu histórico de chamadas. Deseja conceder acesso ao <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Não perguntar novamente"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Não perguntar novamente"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Solicitação de acesso a mensagens"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Configurações"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Configurar"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Atalho para as configurações"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Nenhuma atividade correspondente foi encontrada."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Modo avião"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Mais"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Redes sem fio e outras"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Usar <xliff:g id="NEW_APP">%1$s</xliff:g> em vez de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para gerenciar suas conexões de rede?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Usar <xliff:g id="NEW_APP">%s</xliff:g> para gerenciar suas conexões de rede?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operadora do SIM desconhecida"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s sem website de aprovisionamento conhecido"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> não tem um website de aprovisionamento conhecido"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Insira o cartão SIM e reinicie"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Conecte-se à Internet"</string>
     <string name="location_title" msgid="1029961368397484576">"Meu Local"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Provedores de imagens de satélite:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ocorreu um problema ao carregar o manual."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenças de terceiros"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Há um problema ao carregar as licenças."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Carregando..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Informações de segurança"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Economia de bateria"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Ativar automaticamente"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nunca"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"com %1$s de bateria"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"com <xliff:g id="PERCENT">%1$s</xliff:g> de bateria"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Estatísticas de processo"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Estatísticas detalhadas sobre os processos em execução"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Uso da memória"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do toque"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volume das notificações"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Toque do telefone"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Som de notificação padrão"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Som de alarme padrão"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Também vibrar para chamadas"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Outros sons"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tons do teclado"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Não consegue fazer login?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Enviar informações do sistema"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Não mostrar novamente"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Solicitando como"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Adicionar conta"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Configurações do perfil de trabalho"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pesquisa de contatos"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permitir que sua organização pesquise contatos para identificar autores de chamadas e contatos"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Sinc. autom. de dados da conta"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinc. autom. dados pessoais da conta"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinc. autom. dados de trab. da conta"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sincronização de contas"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacidade"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacidade"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Para fornecer acesso aos seus dados de trabalho, sua organização pode alterar configurações e instalar softwares no seu dispositivo, o que poderia tornar alguns conteúdos pessoais visíveis para seu administrador. Entre em contato com o administrador da sua organização para saber mais detalhes."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Que tipos de informação sua organização pode ver?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Quais alterações afetam o que sua organização pode ver?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Quais ações podem afetar seu acesso a esse dispositivo?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dados associados à sua conta de trabalho, como e-mail e agenda"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista de todos os apps no seu dispositivo"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Lista do <xliff:g id="COUNT_1">%d</xliff:g> app no seu dispositivo</item>
+      <item quantity="other">Lista de todos os <xliff:g id="COUNT_1">%d</xliff:g> apps no seu dispositivo</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Uso (tempo gasto e quantidade de dados usados) de cada app no seu dispositivo"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Registros de trânsito no seu dispositivo"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Seu relatório do bug mais recente"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Seu registro de segurança mais recente"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nunca"</string>
 </resources>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index 4e5f5e5..6ba2cd7 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"activează ecranul"</item>
     <item msgid="3253368931113490863">"preia conturile"</item>
     <item msgid="780392378084812901">"rulează în fundal"</item>
+    <item msgid="2629748510881309577">"volum accesibilitate"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Locație"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Activează ecranul"</item>
     <item msgid="5258373962467495905">"Preia conturile"</item>
     <item msgid="334625385979270703">"Rulează în fundal"</item>
+    <item msgid="9039213578110332702">"Volum accesibilitate"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Scurtă"</item>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 2c98219..1e531fc 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -151,7 +151,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Atingeți pentru a vă conecta la „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Doriți să vă conectați la „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Solicitarea accesului la agendă"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s dorește să acceseze Agenda dvs. și istoricul apelurilor. Permiteți accesul pentru %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> dorește să acceseze persoanele de contact și istoricul apelurilor. Acordați accesul la <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Nu doresc să fiu întrebat(ă) din nou"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Nu doresc să fiu întrebat(ă) din nou"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Solicitarea accesului la mesaje"</string>
@@ -272,6 +272,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Setări"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Setări"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Comandă rapidă pentru setări"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Nu s-a găsit nicio activitate potrivită."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Mod Avion"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Mai multe"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wireless și rețele"</string>
@@ -415,8 +416,8 @@
     <string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Criptare"</string>
     <string name="crypt_keeper_setup_description" product="tablet" msgid="6689952371032099350">"Așteptați criptarea tabletei. Finalizat <xliff:g id="PERCENT">^1</xliff:g>%."</string>
     <string name="crypt_keeper_setup_description" product="default" msgid="951918761585534875">"Așteptați criptarea telefonului. Finalizat <xliff:g id="PERCENT">^1</xliff:g>%."</string>
-    <string name="crypt_keeper_setup_time_remaining" product="tablet" msgid="1655047311546745695">"Așteptați criptarea tabletei. Finalizat: <xliff:g id="DURATION">^1</xliff:g>"</string>
-    <string name="crypt_keeper_setup_time_remaining" product="default" msgid="1862964662304683072">"Așteptați criptarea telefonului. Finalizat: <xliff:g id="DURATION">^1</xliff:g>"</string>
+    <string name="crypt_keeper_setup_time_remaining" product="tablet" msgid="1655047311546745695">"Așteptați criptarea tabletei. Finalizat în <xliff:g id="DURATION">^1</xliff:g>"</string>
+    <string name="crypt_keeper_setup_time_remaining" product="default" msgid="1862964662304683072">"Așteptați criptarea telefonului. Finalizat în <xliff:g id="DURATION">^1</xliff:g>"</string>
     <string name="crypt_keeper_force_power_cycle" product="tablet" msgid="556504311511212648">"Pentru a debloca tableta, opriți-o și reporniți-o."</string>
     <string name="crypt_keeper_force_power_cycle" product="default" msgid="1794353635603020327">"Pentru a debloca telefonul, opriți-l și reporniți-l."</string>
     <string name="crypt_keeper_warn_wipe" msgid="2738374897337991667">"Avertisment: datele de pe dispozitiv vor fi șterse după încă <xliff:g id="COUNT">^1</xliff:g> încercări nereușite de deblocare!"</string>
@@ -950,7 +951,7 @@
     <string name="brightness_title" msgid="5746272622112982836">"Luminozitate"</string>
     <string name="brightness_summary" msgid="838917350127550703">"Ajustați luminozitatea ecranului"</string>
     <string name="auto_brightness_title" msgid="6341042882350279391">"Luminozitate adaptivă"</string>
-    <string name="auto_brightness_summary" msgid="1799041158760605375">"Optimizează nivelul de luminozitate pentru lumina disponibilă"</string>
+    <string name="auto_brightness_summary" msgid="1799041158760605375">"Optimizează nivelul de luminozitate în funcție de lumina disponibilă"</string>
     <string name="night_display_title" msgid="2626451512200357686">"Lumină de noapte"</string>
     <string name="night_display_text" msgid="1837277457033025056">"Lumina de noapte dă o nuanță de chihlimbar ecranului. Astfel, este mai ușor să priviți ecranul sau să citiți într-o lumină slabă și vă poate ajuta să adormiți mai rapid."</string>
     <string name="night_display_category_schedule" msgid="2044072617637348966">"Program"</string>
@@ -1311,7 +1312,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Utilizați <xliff:g id="NEW_APP">%1$s</xliff:g> în loc de <xliff:g id="CURRENT_APP">%2$s</xliff:g> pentru a gestiona conexiunile la rețea?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Utilizați <xliff:g id="NEW_APP">%s</xliff:g> pentru a gestiona conexiunile la rețea?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operator SIM necunoscut"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Niciun site de provizionare cunoscut pentru %1$s"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nu are niciun site de provizionare cunoscut"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Introduceți cartela SIM și reporniți"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Conectați-vă la internet"</string>
     <string name="location_title" msgid="1029961368397484576">"Locația mea"</string>
@@ -1367,8 +1368,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Furnizorii de imagini din satelit:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"A apărut o problemă la încărcarea manualului."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licențe terță parte"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"A apărut o problemă la încărcarea licențelor."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Se încarcă…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Informații privind siguranța"</string>
@@ -1949,7 +1949,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Economisirea energiei"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activați automat"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Niciodată"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"când bateria ajunge la %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"la baterie <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Statistici de proces"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Statistici inteligente despre procesele care rulează"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Utilizarea memoriei"</string>
@@ -2628,10 +2628,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volum sonerie"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volumul notificărilor"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Ton de apel al telefonului"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Sunet de notificare prestabilit"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Sunet de alarmă prestabilit"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrații și pentru apeluri"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Alte sunete"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonuri pentru tastatura numerică"</string>
@@ -3255,6 +3253,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Nu vă puteți conecta?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Trimiteți informațiile despre sistem"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Nu mai afișa"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Solicitarea se trimite din contul"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Adăugați un cont"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Setările profilului de serviciu"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Căutarea persoanelor de contact"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permiteți căutările persoanelor de contact efectuate de organizația dvs. pentru a identifica apelanții și persoanele de contact"</string>
@@ -3330,20 +3330,23 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Sinc. aut. date cont"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinc. aut. date personale cont"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinc. aut. date profes. cont"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sincronizarea contului"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Confidențialitate"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Confidențialitate"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Pentru a oferi acces la datele dvs. de lucru, organizația dvs. poate să modifice setările și să instaleze un software pe dispozitiv. Prin urmare, o parte din conținutul dvs. personal poate deveni vizibil pentru administratorul dvs. Contactați administratorul organizației pentru mai multe detalii."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Ce tipuri de informații poate vedea organizația dvs.?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Ce schimbări afectează ce poate vedea organizația dvs.?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Ce acțiuni pot să afecteze accesul dvs. la acest dispozitiv?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Date asociate contului dvs. de serviciu, cum ar fi e-mailul și calendarul"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista tuturor aplicațiilor de pe dispozitivul dvs."</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="few">Listă cu cele <xliff:g id="COUNT_1">%d</xliff:g> aplicații de pe dispozitivul dvs.</item>
+      <item quantity="other">Listă cu cele <xliff:g id="COUNT_1">%d</xliff:g> de aplicații de pe dispozitivul dvs.</item>
+      <item quantity="one">Listă cu <xliff:g id="COUNT_0">%d</xliff:g> aplicație de pe dispozitivul dvs.</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Utilizarea (timpul petrecut și cantitatea de date utilizate) de fiecare aplicație de pe dispozitivul dvs."</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Jurnale de trafic de pe dispozitivul dvs."</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Cel mai recent raport de eroare"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Cel mai recent jurnal de securitate"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Niciodată"</string>
 </resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index 1d9273c..d70cb97 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"включение экрана"</item>
     <item msgid="3253368931113490863">"получение данных об аккаунтах"</item>
     <item msgid="780392378084812901">"запуск в фоновом режиме"</item>
+    <item msgid="2629748510881309577">"громкость подсказок"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Местоположение"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Включение экрана"</item>
     <item msgid="5258373962467495905">"Получение данных об аккаунтах"</item>
     <item msgid="334625385979270703">"Запуск в фоновом режиме"</item>
+    <item msgid="9039213578110332702">"Громкость подсказок"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Небольшая"</item>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index d017383..2ec6fee 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -152,7 +152,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Нажмите, чтобы подключиться к устройству \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Подключиться к устройству \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Запрос на доступ к списку контактов"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Устройство \"%1$s\" пытается получить доступ к вашим контактам и журналу звонков. Разрешить доступ для %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Устройство <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> запрашивает доступ к вашим контактам и журналу звонков. Разрешить доступ для <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Больше не спрашивать"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Больше не спрашивать"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Запрос на доступ к сообщениям"</string>
@@ -274,6 +274,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Настройки"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Настройки"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Ярлык настроек"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Подходящих действий не найдено."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Режим полета"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Ещё"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Беспроводные сети"</string>
@@ -1321,7 +1322,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Использовать приложение \"<xliff:g id="NEW_APP">%1$s</xliff:g>\" вместо приложения \"<xliff:g id="CURRENT_APP">%2$s</xliff:g>\" для управления сетевыми подключениями?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Использовать приложение \"<xliff:g id="NEW_APP">%s</xliff:g>\" для управления сетевыми подключениями?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Неизвестный оператор связи"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"У оператора \"%1$s\" нет веб-сайта для синхронизации"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"У оператора \"<xliff:g id="OPERATOR">%1$s</xliff:g>\" нет веб-сайта для синхронизации"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Вставьте SIM-карту и перезагрузите устройство"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Подключитесь к Интернету"</string>
     <string name="location_title" msgid="1029961368397484576">"Мое местоположение"</string>
@@ -1377,8 +1378,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Фотографии со спутника:\n© CNES 2014/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Руководство пользователя"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Не удалось загрузить руководство пользователя."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Лицензии третьих лиц"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"При загрузке лицензий возникла неполадка."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Загрузка…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Сведения о безопасности"</string>
@@ -1966,7 +1966,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Режим энергосбережения"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Включать автоматически"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Никогда"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"При уровне заряда %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"при <xliff:g id="PERCENT">%1$s</xliff:g> заряда"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Статистика процессов"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Статистика запущенных процессов"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Использование памяти"</string>
@@ -2650,10 +2650,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Рингтон"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Громкость уведомлений"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Рингтон"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Звук уведомления по умолчанию"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Звук будильника по умолчанию"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Вибрация при звонке"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Другие звуки"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Звук при наборе номера"</string>
@@ -3287,6 +3285,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Не удается войти"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Отправьте информацию о системе"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Больше не показывать"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Запрос от:"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Добавить аккаунт"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Настройки рабочего профиля"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Поиск контактов"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Разрешить поиск контактов в организации для определения вызывающих абонентов"</string>
@@ -3365,20 +3365,24 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Автосинхронизация аккаунта"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Автосинхр. личного аккаунта"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Автосинхр. рабочего аккаунта"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Синхронизировать аккаунты"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Конфиденциальность"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Конфиденциальность"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Администратор вашей организации может получить доступ к некоторым вашим личным данным, когда будет изменять настройки на вашем устройстве или устанавливать приложения, которые необходимы вам для работы. Обратитесь к нему за дополнительной информацией."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Какие данные могут быть доступны вашей организации?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Какие изменения влияют на доступность данных?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Какие действия могут повлиять на ваш доступ к устройству?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Данные, связанные с вашим рабочим аккаунтом, например почта и мероприятия в календаре"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Список всех приложений на вашем устройстве"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Список всех приложений (<xliff:g id="COUNT_1">%d</xliff:g>) на вашем устройстве</item>
+      <item quantity="few">Список всех приложений (<xliff:g id="COUNT_1">%d</xliff:g>) на вашем устройстве</item>
+      <item quantity="many">Список всех приложений (<xliff:g id="COUNT_1">%d</xliff:g>) на вашем устройстве</item>
+      <item quantity="other">Список всех приложений (<xliff:g id="COUNT_1">%d</xliff:g>) на вашем устройстве</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Сведения об использовании (время работы и объем обработанных данных) каждого приложения на устройстве"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Журналы трафика на вашем устройстве"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Последний отчет об ошибках"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Последний журнал безопасности"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Никогда"</string>
 </resources>
diff --git a/res/values-si-rLK/arrays.xml b/res/values-si-rLK/arrays.xml
index 9f52444..8848f40 100644
--- a/res/values-si-rLK/arrays.xml
+++ b/res/values-si-rLK/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"තිරය ක්‍රියාත්මක කිරීම"</item>
     <item msgid="3253368931113490863">"ගිණුම් ලබා ගැනීම"</item>
     <item msgid="780392378084812901">"පසුබිමෙහි ධාවනය"</item>
+    <item msgid="2629748510881309577">"ප්‍රවේශ්‍යතා හඬ පරිමාව"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"ස්ථානය"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"තිරය ක්‍රියාත්මක කිරීම"</item>
     <item msgid="5258373962467495905">"ගිණුම් ලබා ගැනීම"</item>
     <item msgid="334625385979270703">"පසුබිමෙහි ධාවනය"</item>
+    <item msgid="9039213578110332702">"ප්‍රවේශ්‍යතා හඬ පරිමාව"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"කොට"</item>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index 86e5091..e2aac51 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -30,7 +30,7 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"ඔබ දැන් වර්ධකයෙකි"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"අවශ්‍ය නැත, ඔබ දැනටමත් වර්ධකයෙකි."</string>
-    <string name="header_category_wireless_networks" msgid="5110914332313954940">"නොරැහැන් සහ ජාලා"</string>
+    <string name="header_category_wireless_networks" msgid="5110914332313954940">"නොරැහැන් සහ ජාල"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"සම්බන්ධතා"</string>
     <string name="header_category_device" msgid="4544026001618307754">"උපාංගය"</string>
     <string name="header_category_personal" msgid="3310195187905720823">"පෞද්ගලික"</string>
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" වෙත සම්බන්ධ වීමට තට්ටු කරන්න."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"ඔබට \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" වෙත සම්බන්ධ වීමට අවශ්‍යද?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"දුරකථන නාමාවලි ප්‍රවේශය ඉල්ලන්න"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ඔබගේ සම්බන්ධතා සහ ඇමතුම් ඉතිහාසය වෙත ප්‍රවේශ විමට අවශ්‍යව ඇත. %2$s හට ප්‍රවේශය දෙන්නද?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"ඔබගේ සම්බන්ධතා සහ ඇමතුම් ඉතිහාසය වෙත ප්‍රවේශ විමට <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> හට අවශ්‍යයි. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> වෙත ප්‍රවේශය දෙන්නද?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"නැවත අසන්න එපා"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"නැවත නොඅසන්න"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"පණිවිඩ ප්‍රවේශය ඉල්ලන්න"</string>
@@ -270,9 +270,10 @@
     <string name="settings_label" msgid="1626402585530130914">"සැකසීම්"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"සැකසීම්"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"සැකසීම කෙටිමඟ"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"ගැළපෙන ක්‍රියාකාරකම් හමු නොවීය."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"අහස්යානා ආකාරය"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"තවත්"</string>
-    <string name="wireless_networks_settings_title" msgid="3643009077742794212">"රැහැන් රහිත සහ ජාලා"</string>
+    <string name="wireless_networks_settings_title" msgid="3643009077742794212">"නොරැහැන් සහ ජාල"</string>
     <string name="radio_controls_summary" msgid="2837395036275123133">"Wi-Fi, බ්ලූටූත්, අහස්යානා අකාරය, සෙලියුලර් ජාල, සහ VPN කළමණාකරණය කරන්න"</string>
     <string name="cellular_data_title" msgid="2525947635539415202">"සෙලියුලර් දත්ත"</string>
     <string name="calls_title" msgid="3544471959217176768">"ඇමතුම්"</string>
@@ -343,7 +344,7 @@
       <item quantity="other">ඇඟිලි සලකුණු පිහිටුවීම් <xliff:g id="COUNT_1">%1$d</xliff:g></item>
     </plurals>
     <string name="security_settings_fingerprint_preference_summary_none" msgid="1507739327565151923"></string>
-    <string name="security_settings_fingerprint_enroll_introduction_title" msgid="3201556857492526098">"ඇඟිලි සලකුණ සමගින් අගුලු හරින්න"</string>
+    <string name="security_settings_fingerprint_enroll_introduction_title" msgid="3201556857492526098">"ඇඟිලි සලකුණින් අගුළු හරින්න"</string>
     <string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="7066417934622827305">"ඔබේ ඇඟිලි සලකුණ භාවිත කරන්න"</string>
     <string name="security_settings_fingerprint_enroll_introduction_message" msgid="3508870672887336095">"ඔබේ දුරකථනය අවදි කිරීමට සහ අගුලු හැරීමට, මිලදී ගැනීම් අනුමත කිරීමට, හෝ යෙදුම් වෙත පිරීමට ඇඟිලි සලකුණු සංවේදකය ස්පර්ශ කරන්න. ඔබ කාගේ ඇඟිලි සලකුණු එක් කරන්නේද යන්න ගැන සැලකිලිමත් වන්න. එක් කළ එක් සලකුණකට පවා මෙම දේවල්වලින් ඕනෑම එකක් කළ හැකිය.\n\nසටහන: ඔබේ ඇඟිලි සලකුණ ප්‍රබල රටාවකට හෝ PIN අංකයකට වඩා ආරක්ෂාකාරී බව අඩු විය හැකිය."</string>
     <string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="4193477159493347679">"මිලදී ගැනීම් අනුමත කිරීමට, හෝ යෙදුම් වෙත පිරීමට ඇඟිලි සලකුණු සංවේදකය ස්පර්ශ කරන්න. ඔබ එක් කරන ඇඟිලි සලකුණු පිළිබඳ සැලකිලිමත් වන්න. එක් කළ එක් සලකුණකට පවා මේ දේවල්වලින් ඕනෑම එකක් කළ හැකිය.\n\nසටහන: මෙම උපාංගය අගුලු හැරීමට ඔබට ඔබේ ඇඟිලි සලකුණ භාවිත කළ නොහැකිය. තව තොරතුරු සඳහා, ඔබේ සංවිධානයෙහි පරිපාලක අමතන්න."</string>
@@ -635,7 +636,7 @@
     <string name="wifi_display_status_connected" msgid="8364125226376985558">"සම්බන්ධිතයි"</string>
     <string name="wifi_display_status_in_use" msgid="8556830875615434792">"භාවිතයේ ඇත"</string>
     <string name="wifi_display_status_not_available" msgid="5714978725794210102">"ලබාගත නොහැක"</string>
-    <string name="wifi_display_details" msgid="7791118209992162698">"දර්ශනය සැකසීම්"</string>
+    <string name="wifi_display_details" msgid="7791118209992162698">"සංදර්ශක සැකසීම්"</string>
     <string name="wifi_display_options_title" msgid="5740656401635054838">"රැහැන් රහිත දර්ශන විකල්ප"</string>
     <string name="wifi_display_options_forget" msgid="9119048225398894580">"අමතක කරන්න"</string>
     <string name="wifi_display_options_done" msgid="5703116500357822557">"හරි"</string>
@@ -681,7 +682,7 @@
     <string name="wifi_scan_notify_text" msgid="5593805423071186757">"ස්ථාන නිරවද්‍යතාව වැඩිදියුණු කිරීමට, පද්ධති යෙදුම් සහ සේවාවලට තවමත් Wi‑Fi ජාල සඳහා ස්කෑන් කිරීමට හැකිය. ඔබට මෙය <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>ස්කෑන් කිරීමේ සැකසීම්<xliff:g id="LINK_END_1">LINK_END</xliff:g> තුළ වෙනස් කළ හැකිය."</string>
     <string name="wifi_scan_notify_remember_choice" msgid="7104867814641144485">"නැවත නොපෙන්වන්න"</string>
     <string name="wifi_setting_sleep_policy_title" msgid="5149574280392680092">"නිද්‍රාව අතරතුර Wi-Fi සක්‍රියව තබන්න"</string>
-    <string name="wifi_setting_on_during_sleep_title" msgid="8308975500029751565">"නිද්‍රාව අතරතුර Wi-Fi සක්‍රියයි"</string>
+    <string name="wifi_setting_on_during_sleep_title" msgid="8308975500029751565">"නිද්‍රාව අතරතුර Wi-Fi ක්‍රියාත්මකයි"</string>
     <string name="wifi_setting_sleep_policy_error" msgid="8174902072673071961">"සැකසුම් වෙනස් කිරීමේදී ගැටලුවක් ඇතිවිය"</string>
     <string name="wifi_suspend_efficiency_title" msgid="2338325886934703895">"කාර්යක්ෂමතාව දියුණු කරන්න"</string>
     <string name="wifi_suspend_optimizations" msgid="1220174276403689487">"Wi-Fi ප්‍රශස්තකරණය"</string>
@@ -878,7 +879,7 @@
     <string name="emergency_address_title" msgid="3571902448699714454">"හදිසි අවස්ථා ලිපිනය යාවත්කාලීන කරන්න"</string>
     <string name="emergency_address_summary" msgid="306028701568728126">"ඔබ WiFi භාවිත කර 911 වෙත ඇමතුමක් කළ විට හදිසි අවස්ථා සේවා විසින් භාවිත කරන ලිපිනය"</string>
     <string name="home_settings" msgid="212375129455718176">"මුල් පිටුව"</string>
-    <string name="display_settings_title" msgid="1708697328627382561">"දර්ශනය"</string>
+    <string name="display_settings_title" msgid="1708697328627382561">"සංදර්ශකය"</string>
     <string name="sound_settings" msgid="5534671337768745343">"ශබ්ද"</string>
     <string name="ringtone_summary" msgid="1688079785311826667">" "</string>
     <string name="all_volume_title" msgid="4296957391257836961">"ශබ්ද තීව්‍රතා"</string>
@@ -931,7 +932,7 @@
     <string name="accessibility_personal_account_title" msgid="2169071663029067826">"පුද්ගලික ගිණුම - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
     <string name="search_settings" msgid="1910951467596035063">"සෙවීම"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"සෙවුම් සැකසීම් සහ ඉතිහාසය කළමනාකරණය කරන්න"</string>
-    <string name="display_settings" msgid="7965901687241669598">"දර්ශනය"</string>
+    <string name="display_settings" msgid="7965901687241669598">"සංදර්ශකය"</string>
     <string name="accelerometer_title" msgid="7854608399547349157">"ස්වයංක්‍රීයව-භ්‍රමණය වන තීරය"</string>
     <string name="accelerometer_summary_on" product="tablet" msgid="429982132339828942">"ටැබ්ලටය කරකැවීමේදී ස්වයංක්‍රියව දිශානතිය වෙනස් කරන්න"</string>
     <string name="accelerometer_summary_on" product="default" msgid="1133737282813048021">"දුරකථනය කරකැවීමේදී ස්වයංක්‍රියව දිශානතිය වෙනස් කරන්න"</string>
@@ -1058,7 +1059,7 @@
     <string name="status_bt_address" msgid="4195174192087439720">"බ්ලූටූත් ලිපිනය"</string>
     <string name="status_serial_number" msgid="2257111183374628137">"අනුක්‍රමාංකය"</string>
     <string name="status_unavailable" msgid="7862009036663793314">"ලබාගත නොහැක"</string>
-    <string name="status_up_time" msgid="7294859476816760399">"ක්‍රියාකාරිව ඇති කාලය"</string>
+    <string name="status_up_time" msgid="7294859476816760399">"ක්‍රියාකාරීව ඇති කාලය"</string>
     <string name="status_awake_time" msgid="2393949909051183652">"අවදි වේලාව"</string>
     <string name="internal_memory" msgid="9129595691484260784">"අභ්‍යන්තර ආචයනය"</string>
     <string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB ආචයනය"</string>
@@ -1131,7 +1132,7 @@
     <string name="storage_volume_summary" msgid="7023441974367853372">"<xliff:g id="TOTAL">%2$s</xliff:g> න් <xliff:g id="USED">%1$s</xliff:g> ක් භාවිත කළ"</string>
     <string name="storage_size_large" msgid="5691585991420946254">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>" <xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
     <string name="storage_volume_used" msgid="1303803057698959872">"<xliff:g id="TOTAL">%1$s</xliff:g> න් භාවිත කළ"</string>
-    <string name="storage_volume_used_total" msgid="6113121714019000244">"<xliff:g id="TOTAL">%1$s</xliff:g> න් මුළු භාවිතය"</string>
+    <string name="storage_volume_used_total" msgid="6113121714019000244">"<xliff:g id="TOTAL">%1$s</xliff:g> වලින් මුළු භාවිතය"</string>
     <string name="storage_mount_success" msgid="687641090137253647">"<xliff:g id="NAME">%1$s</xliff:g> සවි කරන ලදි"</string>
     <string name="storage_mount_failure" msgid="1042621107954547316">"<xliff:g id="NAME">%1$s</xliff:g> සවි කිරීමට නොහැකි විය"</string>
     <string name="storage_unmount_success" msgid="5737203344673441677">"<xliff:g id="NAME">%1$s</xliff:g> ආරක්ෂිතව ගලවන ලදි"</string>
@@ -1301,9 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ඔබගේ ජාල සම්බන්ධතා කළමනාකරණය කිරීමට <xliff:g id="CURRENT_APP">%2$s</xliff:g> වෙනුවට <xliff:g id="NEW_APP">%1$s</xliff:g> භාවිතා කරන්නද?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ඔබගේ ජාල සම්බන්ධතා කළමනාකරණය කිරීමට <xliff:g id="NEW_APP">%s</xliff:g> භාවිතා කරන්නද?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"නොදන්නා SIM වාහකයෙක්"</string>
-    <!-- String.format failed for translation -->
-    <!-- no translation found for mobile_no_provisioning_url (2399426808423775711) -->
-    <skip />
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> සතුව දන්නා ප්‍රතිපාදන වෙබ් අඩවි නොමැත"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"කරුණාකර SIM කාඩ් පතක් ඇතුල් කරන්න සහ නැවත අරඹන්න"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"කරුණාකර අන්තර්ජාලය වෙත සම්බන්ධ වන්න"</string>
     <string name="location_title" msgid="1029961368397484576">"මගේ ස්ථානය"</string>
@@ -1359,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"චන්‍ද්‍රිකා රූප සපයන්නන්:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"අත්පොත"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"අත්පොත පූරණය කිරීමේදී ගැටලුවක් ඇතිවිය."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"තෙවන පාර්ශව බලපත්‍ර"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"බලපත්‍ර පුර්ණය කිරීමේදී ගැටලුවක් ඇතිවිය."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"පූරණය වෙමින්..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"ආරක්‍ෂිත තොරතුරු"</string>
@@ -1662,7 +1660,7 @@
     <string name="user_dict_settings_add_word_hint" msgid="5725254076556821247">"වචනයක් ටයිප් කරන්න"</string>
     <string name="user_dict_settings_add_shortcut_hint" msgid="7333763456561873445">"විකල්ප කෙටිමඟ"</string>
     <string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"වචනය සංස්කරණය කරන්න"</string>
-    <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"සංස්කරණය කරන්න"</string>
+    <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"සංස්කරණය"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"මකන්න"</string>
     <string name="user_dict_settings_empty_text" msgid="1971969756133074922">"ඔබට පරිශීලක ශබ්ද කෝෂය තුළ වචන කිසිවක් නැත. වචනයක් එක් කිරීමට, එක් කිරීමේ (+) බොත්තම තට්ටු කරන්න."</string>
     <string name="user_dict_settings_all_languages" msgid="6742000040975959247">"සියලු භාෂාවන් සඳහා"</string>
@@ -1713,13 +1711,13 @@
     <string name="talkback_title" msgid="7912059827205988080">"Talkback"</string>
     <string name="talkback_summary" msgid="8331244650729024963">"තිර කියවනය මූලික වශයෙන් අන්ධ සහ අඩු දෘශ්‍යතාව සහිත පුද්ගලයන් සඳහාය"</string>
     <string name="accessibility_system_title" msgid="7187919089874130484">"පද්ධතිය"</string>
-    <string name="accessibility_display_title" msgid="7610175687949675162">"දර්ශනය"</string>
+    <string name="accessibility_display_title" msgid="7610175687949675162">"සංදර්ශකය"</string>
     <string name="accessibility_captioning_title" msgid="7589266662024836291">"සිරස්තල"</string>
     <string name="accessibility_screen_magnification_title" msgid="9002237235486714636">"විශාලන අභිනය"</string>
     <string name="accessibility_screen_magnification_short_summary" msgid="3411979839172752057">"විශාලනය කිරීමට 3 වරක් තට්ටු කරන්න"</string>
     <string name="accessibility_screen_magnification_summary" msgid="7798920976388197258"><b>"විශාලනය කිරීමට"</b>", එක් ඇඟිල්ලකින් තිරය ඉක්මනින් 3 වරක් තට්ටු කරන්න.\n"<ul><li>"අනුචලනය කිරීමට ඇඟිලි 2ක් හෝ වැඩි ගණනක් අදින්න"</li>\n<li>"විශාලනය සීරුමාරු කිරීමට ඇඟිලි 2ක් හෝ වැඩි ගණනක් එක්ව හෝ වෙන්ව පින්ච් කරන්න"</li></ul>\n\n<b>"තාවකාලිකව විශාලනය කිරීමට"</b>", තිරය 3 වරක් ඉක්මනින් තට්ටු කර තුන්වන තට්ටු කිරීමේදී ඔබේ ඇඟිල්ල අල්ලාගෙන සිටින්න.\n"<ul><li>"තිරය වටා ගමන් කිරීමට ඔබේ ඇඟිල්ල අදින්න"</li>\n<li>"විශාලනය අඩු කිරීමට ඔබේ ඇඟිල්ල ඔසවන්න"</li></ul>\n\n"ඔබට යතුරු පුවරුව සහ සංචලන තීරුව මත විශාලනය වැඩි කළ නොහැකිය."</string>
     <string name="accessibility_global_gesture_preference_title" msgid="6752037184140789970">"ළඟාවිය හැකි කෙටිමග"</string>
-    <string name="accessibility_global_gesture_preference_summary_on" msgid="6180927399052022181">"සක්‍රියයි"</string>
+    <string name="accessibility_global_gesture_preference_summary_on" msgid="6180927399052022181">"ක්‍රියාත්මකයි"</string>
     <string name="accessibility_global_gesture_preference_summary_off" msgid="8102103337813609849">"අක්‍රියයි"</string>
     <string name="accessibility_global_gesture_preference_description" msgid="1605107799571936715">"මෙම විශේෂාංගය ක්‍රියාත්මක කළ විට, ඔබට පියවර දෙකකින් ඉක්මනින් ප්‍රවේශ්‍යතා විශේෂාංග සක්‍රිය කළ හැකිය:\n\nපියවර 1: ඔබට ශබ්දයක් ඇසෙන තෙක් හෝ කම්පනයක් දැනෙන තෙක් බල බොත්තම ඔබා අල්ලාගෙන සිටින්න.\n\nපියවර 2: ඔබට ශ්‍රව්‍යමය තහවුරු කිරීම ඇසෙන තෙක් ඇඟිලි දෙකක් ස්පර්ශ කර අල්ලාගෙන සිටින්න.\n\nඋපාංගයෙහි පරිශීලකයින් කිහිප දෙනෙකු සිටී නම්, අඟුලු තිරය මත මෙම කෙටි මග භාවිත කිරීම උපාංගය අගුලු හරින තෙක් ප්‍රවේශ්‍යතාව තාවකාලිකව සබල කරයි."</string>
     <string name="accessibility_toggle_high_text_contrast_preference_title" msgid="2567402942683463779">"ඉහළම වෙනසක් ඇති පෙළ"</string>
@@ -1758,7 +1756,7 @@
       <item quantity="other">ඉතා දිගු ප්‍රමාදය (මිලිතත්පර <xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g>)</item>
     </plurals>
     <string name="accessibility_menu_item_settings" msgid="3344942964710773365">"සැකසීම්"</string>
-    <string name="accessibility_feature_state_on" msgid="2864292320042673806">"සක්‍රියයි"</string>
+    <string name="accessibility_feature_state_on" msgid="2864292320042673806">"ක්‍රියාත්මකයි"</string>
     <string name="accessibility_feature_state_off" msgid="4172584906487070211">"අක්‍රියයි"</string>
     <string name="captioning_preview_title" msgid="1234015253497016890">"පෙරදසුන"</string>
     <string name="captioning_standard_options_title" msgid="3284211791180335844">"සාමාන්‍ය විකල්ප"</string>
@@ -1815,7 +1813,7 @@
     <string name="print_no_printers_found" msgid="989018646884973683">"මුද්‍රක සොයා නොගැනුණි"</string>
     <string name="print_menu_item_settings" msgid="6591330373682227082">"සැකසීම්"</string>
     <string name="print_menu_item_add_printers" msgid="2890738028215834012">"මුද්‍රණ යන්ත්‍ර එකතු කරන්න"</string>
-    <string name="print_feature_state_on" msgid="8098901852502441048">"සක්‍රියයි"</string>
+    <string name="print_feature_state_on" msgid="8098901852502441048">"ක්‍රියාත්මකයි"</string>
     <string name="print_feature_state_off" msgid="7294876968403966040">"අක්‍රියයි"</string>
     <string name="print_menu_item_add_service" msgid="3811645167869797802">"සේවාව එක් කිරීම"</string>
     <string name="print_menu_item_add_printer" msgid="8251218970577291032">"මුද්‍රණ යන්ත්‍ර එකතු කරන්න"</string>
@@ -1847,9 +1845,9 @@
     <string name="battery_stats_duration" msgid="7464501326709469282">"පෙනුව විසන්ධි කිරීමේ සිට <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="battery_stats_charging_label" msgid="4223311142875178785">"ආරෝපණය වෙමින්"</string>
     <string name="battery_stats_screen_on_label" msgid="7150221809877509708">"තිරය ඇර"</string>
-    <string name="battery_stats_gps_on_label" msgid="1193657533641951256">"GPS සක්‍රියයි"</string>
+    <string name="battery_stats_gps_on_label" msgid="1193657533641951256">"GPS ක්‍රියාත්මකයි"</string>
     <string name="battery_stats_camera_on_label" msgid="4935637383628414968">"කැමරාව ක්‍රියාත්මකයි"</string>
-    <string name="battery_stats_flashlight_on_label" msgid="4319637669889411307">"සැණෙළි ආලෝකය සක්‍රියයි"</string>
+    <string name="battery_stats_flashlight_on_label" msgid="4319637669889411307">"සැණෙළි ආලෝකය ක්‍රියාත්මකයි"</string>
     <string name="battery_stats_wifi_running_label" msgid="1845839195549226252">"Wi-Fi"</string>
     <string name="battery_stats_wake_lock_label" msgid="1908942681902324095">"අවදියෙන්"</string>
     <string name="battery_stats_phone_signal_label" msgid="3537569115723850618">"සෙලියුලර් ජාලයේ සංඥාව"</string>
@@ -1934,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"බැටරිය සුරකින්නා"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"ස්වයන්ක්‍රියව සක්‍රිය කරන්න"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"කවදාවත් නෑ"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"හි %1$s බැටරිය"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"බැටරිය <xliff:g id="PERCENT">%1$s</xliff:g> හි"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"ක්‍රියාවලි සංඛ්‍යා ලේඛන"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"ධාවන ක්‍රියාවලි පිළිබඳ ගීක සංඛ්‍යා ලේඛන"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"මතක භාවිතය"</string>
@@ -1992,7 +1990,7 @@
     <string name="gadget_toggle_wifi" msgid="319262861956544493">"Wi-Fi සැකසීම් යාවත්කාලින වෙමින්"</string>
     <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"බ්ලූටූත් සැකසීම් යාවත්කාලීන කරමින්"</string>
     <string name="gadget_state_template" msgid="5156935629902649932">"<xliff:g id="ID_1">%1$s</xliff:g> <xliff:g id="ID_2">%2$s</xliff:g>"</string>
-    <string name="gadget_state_on" msgid="6909119593004937688">"සක්‍රියයි"</string>
+    <string name="gadget_state_on" msgid="6909119593004937688">"ක්‍රියාත්මකයි"</string>
     <string name="gadget_state_off" msgid="5220212352953066317">"අක්‍රියයි"</string>
     <string name="gadget_state_turning_on" msgid="3395992057029439039">"ආරම්භ කරමින්"</string>
     <string name="gadget_state_turning_off" msgid="2395546048102176157">"අක්‍රිය කරමින්"</string>
@@ -2125,7 +2123,7 @@
     <string name="background_data_dialog_title" msgid="6059217698124786537">"පසුබිම් දත්ත අබල කරන්නද?"</string>
     <string name="background_data_dialog_message" msgid="6981661606680941633">"පසුබිම් දත්ත අබල කිරීමෙන් බැටරි ජීවය වැඩි කරන අතර සහ දත්ත භාවිතය අඩු කරයි. සමහර යෙදුම් තවමත් පසුබිම් දත්ත සම්බන්ධතාවයක් භාවිතා කරනු ඇත."</string>
     <string name="sync_automatically" msgid="1682730255435062059">"ස්වයංක්‍රිය-සමමුහුර්ත යෙදුම් දත්ත"</string>
-    <string name="sync_enabled" msgid="4551148952179416813">"සමමුහුර්තකරණය සක්‍රියයි"</string>
+    <string name="sync_enabled" msgid="4551148952179416813">"සමමුහුව ක්‍රියාත්මකයි"</string>
     <string name="sync_disabled" msgid="8511659877596511991">"සමමුහුර්තකරණය අක්‍රියයි"</string>
     <string name="sync_error" msgid="5060969083117872149">"සමමුහුර්ත දෝෂයක්"</string>
     <string name="last_synced" msgid="4242919465367022234">"අවසාන සමමුහුර්තය <xliff:g id="LAST_SYNC_TIME">%1$s</xliff:g>"</string>
@@ -2408,7 +2406,7 @@
     <string name="user_delete_user_description" msgid="3158592592118767056">"පරිශීලකයා මකන්න"</string>
     <string name="user_delete_button" msgid="5131259553799403201">"මකන්න"</string>
     <string name="user_guest" msgid="8475274842845401871">"අමුත්තා"</string>
-    <string name="user_exit_guest_title" msgid="5613997155527410675">"අමුත්තාන් ඉවත් කරන්න"</string>
+    <string name="user_exit_guest_title" msgid="5613997155527410675">"අමුත්තා ඉවත් කරන්න"</string>
     <string name="user_exit_guest_confirm_title" msgid="3405527634738147409">"අමුත්තාන් ඉවත් කරන්නද?"</string>
     <string name="user_exit_guest_confirm_message" msgid="2194459201944413257">"මෙම සැසියේ සියළුම යෙදුම් සහ දත්ත මකාවී."</string>
     <string name="user_exit_guest_dialog_remove" msgid="6351370829952745350">"ඉවත් කරන්න"</string>
@@ -2608,11 +2606,9 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"නාද ශබ්දය"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"දැනුම්දීමේ ශබ්ද ත්‍රීවතාව"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"දුරකථන රිගින්ටෝනය"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
-    <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ඇමතුම් සඳහා කම්පනයද කරන්න"</string>
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"පෙරනිමි දැනුම්දීම් හඬ"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"පෙරනිමි එලාම හඬ"</string>
+    <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ඇමතුම් සඳහාත් කම්පනය කරන්න"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"වෙනත් ශබ්ද"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"ඇමතුම් පැඩ නාද"</string>
     <string name="screen_locking_sounds_title" msgid="1340569241625989837">"තිරය අඟුළු දැමීමේ ශබ්ද"</string>
@@ -2769,7 +2765,7 @@
     <string name="zen_mode_when_weeknights" msgid="8354070633893273783">"සතියේ රාත්‍රි වල"</string>
     <string name="zen_mode_start_time" msgid="8102602297273744441">"ආරම්භක වේලාව"</string>
     <string name="zen_mode_end_time" msgid="8774327885892705505">"අවසන් වන වේලාව"</string>
-    <string name="zen_mode_end_time_next_day_summary_format" msgid="4201521691238728701">"මීලඟ දිනයේ <xliff:g id="FORMATTED_TIME">%s</xliff:g>"</string>
+    <string name="zen_mode_end_time_next_day_summary_format" msgid="4201521691238728701">"මීළඟ දිනයේ <xliff:g id="FORMATTED_TIME">%s</xliff:g>"</string>
     <string name="zen_mode_summary_alarms_only_indefinite" msgid="2061973221027570123">"දින නියමයක් නොමැතිව සීනු පමණක් වෙත මාරු වෙන්න"</string>
     <plurals name="zen_mode_summary_alarms_only_by_minute" formatted="false" msgid="6122003583875424601">
       <item quantity="one">මිනිත්තු <xliff:g id="DURATION">%1$d</xliff:g> ක් සඳහා සීනු පමණක් වෙත මාරු වෙන්න (<xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g> තෙක්)</item>
@@ -2793,7 +2789,7 @@
     <string name="notification_app_settings_button" msgid="6685640230371477485">"දැනුම්දීම් සැකසීම්"</string>
     <string name="device_feedback" msgid="3238056036766293294">"මෙම උපාංගය පිළිබඳ ප්‍රතිපෝෂණ යවන්න"</string>
     <string name="restr_pin_enter_admin_pin" msgid="2451187374960131018">"පරිපාලකයාගේ PIN එක ඇතුළ් කරන්න"</string>
-    <string name="switch_on_text" msgid="1124106706920572386">"සක්‍රියයි"</string>
+    <string name="switch_on_text" msgid="1124106706920572386">"ක්‍රියාත්මකයි"</string>
     <string name="switch_off_text" msgid="1139356348100829659">"අක්‍රියයි"</string>
     <string name="screen_pinning_title" msgid="2292573232264116542">"තිරය ඇමිණීම"</string>
     <string name="screen_pinning_description" msgid="3360904523688769289">"මෙම සැකසීම ක්‍රියාත්මක විට, ඔබ ඇමිණීම ඉවත් කරන තෙක් වත්මන් තිරය දසුන තුළ තබා ගැනීමට ඔබට තිර ඇමිණීම භාවිත කළ හැකිය.\n\nතිර ඇමිණීම භාවිත කිරීමට:\n\n1. තිර ඇමිණීම ක්‍රියාත්මක බව සහතික කර ගන්න.\n\n2. ඔබට ඇමිණීමට අවශ්‍ය තිරය විවෘත කරන්න.\n\n3. සමස්ත දසුන තට්ටු කරන්න.\n\n4. උඩට ස්වයිප් කර අනතුරුව ඇමිණීම නිරූපකය තට්ටු කරන්න."</string>
@@ -3057,7 +3053,7 @@
     <string name="screen_zoom_conversation_timestamp_3" msgid="3785674344762707688">"අඟ ප.ව. 6:02"</string>
     <string name="screen_zoom_conversation_timestamp_4" msgid="2511469395448561259">"අඟ ප.ව. 6:03"</string>
     <string name="disconnected" msgid="5787956818111197212">"විසන්ධි වුණි"</string>
-    <string name="data_usage_summary_format" msgid="7507047900192160585">"දත්තවලින් <xliff:g id="AMOUNT">%1$s</xliff:g>ක් ස්ථාපනය කරන ලදී"</string>
+    <string name="data_usage_summary_format" msgid="7507047900192160585">"දත්තවලින් <xliff:g id="AMOUNT">%1$s</xliff:g> භාවිතයි"</string>
     <plurals name="notification_summary" formatted="false" msgid="4019451362120557382">
       <item quantity="one">යෙදුම් <xliff:g id="COUNT_1">%d</xliff:g>ක් යැවීම අවහිර කරන ලදී</item>
       <item quantity="other">යෙදුම් <xliff:g id="COUNT_1">%d</xliff:g>ක් යැවීම අවහිර කරන ලදී</item>
@@ -3225,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"පිරිය නොහැකිද?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"පද්ධති තොරතුරු යවන්න"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"නැවත පෙන්වන්න එපා"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"ලෙස ඉල්ලයි"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"ගිණුම එක් කරන්න"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"කාර්යාල පැතිකඩ සැකසීම්"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"සම්බන්ධතා සෙවීම"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"අමතන්නන් හා සම්බන්ධතා හඳුනා ගැනීම සඳහා ඔබේ ආයතනයෙන් සම්බන්ධතා සෙවීම් ඉඩ දෙන්න"</string>
@@ -3297,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"ස්වයං සමමුහුර්ත ගිණුම් දත්ත"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"ස්වයං සමමුහු. පුද්. ගිණු. දත්ත"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"ස්වයං සමමුහු. කාර්. ගිණු. දත්ත"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"ගිණුම් සමමුහුර්තය"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"රහස්‍යතාව"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"රහස්‍යතාව"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"ඔබේ කාර්යාල දත්තවලට ප්‍රවේශය සැපයීමට, ඔබේ සංවිධානය සැකසීම් වෙනස් කිරීමට සහ ඔබේ උපාංගය මත මෘදුකාංග ස්ථාපනය කිරීමට හැකිය, එය ඔබේ සමහර පුද්ගලික දත්ත ඔබේ පරිපාලකට දෘශ්‍යමාන කළ හැකිය. වැඩි විස්තර සඳහා ඔබේ සංවිධානයේ පරිපාලක අමතන්න."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"ඔබේ සංවිධානයට බැලිය හැක්කේ කුමන ආකාරවල තොරතුරුද?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"ඔබේ සංවිධානයට බැලිය හැකි දේ ගැන බලපාන වෙනස් කිරීම් මොනවාද?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"මෙම උපාංගය වෙත ඔබේ ප්‍රවේශය කෙරෙහි බලපෑමට හැකි ක්‍රියා මොනවාද?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"ඊ-තැපැල් සහ දින දර්ශනය වැනි, ඔබේ කාර්යාල ගිණුම හා සම්බන්ධ දත්ත"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"ඔබගේ උපාංගය මත සියලු යෙදුම් ලැයිස්තුව"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">ඔබේ උපාංගයෙහි සියලු යෙදුම් <xliff:g id="COUNT_1">%d</xliff:g>හි ලැයිස්තුව</item>
+      <item quantity="other">ඔබේ උපාංගයෙහි සියලු යෙදුම් <xliff:g id="COUNT_1">%d</xliff:g>හි ලැයිස්තුව</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"ඔබගේ උපාංගය මත එක් එක් යෙදුමෙහි භාවිතය (ගත කළ කාලය සහ භාවිත කළ දත්ත ප්‍රමාණය)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"ඔබගේ උපාංගය මත තදබදය ගැන ලොග"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"ඔබේ වඩාත්ම මෑත දෝෂ වාර්තාව"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"ඔබේ වඩාත්ම මෑත ආරක්ෂක ලොගය"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"කවදාවත් නෑ"</string>
 </resources>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index 186b3a2..9f9b34f 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"zapnutie obrazovky"</item>
     <item msgid="3253368931113490863">"získanie účtov"</item>
     <item msgid="780392378084812901">"spustenie na pozadí"</item>
+    <item msgid="2629748510881309577">"objem aplikácií dostupnosti"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Poloha"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Zapnutie obrazovky"</item>
     <item msgid="5258373962467495905">"Získanie účtov"</item>
     <item msgid="334625385979270703">"Spustenie na pozadí"</item>
+    <item msgid="9039213578110332702">"Objem aplikácií dostupnosti"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Krátke"</item>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 0973a4f..9b6a990 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -152,7 +152,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"K zariadeniu <xliff:g id="DEVICE_NAME">%1$s</xliff:g> sa pripojíte klepnutím."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Chcete sa pripojiť k zariadeniu „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Žiadosť o prístup k telefónnemu zoznamu"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Zariadenie %1$s žiada o prístup k vašim kontaktom a histórii hovorov. Povoliť zariadeniu %2$s prístup?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> chce pristupovať k vašim kontaktom a histórii hovorov. Chcete zariadeniu <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> udeliť prístup?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Nabudúce sa nepýtať"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Nabudúce sa nepýtať"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Žiadosť o prístup ku správam"</string>
@@ -274,6 +274,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Nastavenia"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Nastavenia"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Odkaz na nastavenia"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Nenašli sa žiadne zodpovedajúce aktivity."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Režim v lietadle"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Ďalšie"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Bezdrôtové pripojenia a siete"</string>
@@ -1321,7 +1322,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Chcete spravovať sieťové pripojenia pomocou aplikácie <xliff:g id="NEW_APP">%1$s</xliff:g> namiesto aplikácie <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Chcete spravovať sieťové pripojenia pomocou aplikácie <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Neznámy operátor SIM karty"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nemá žiadne provízne webové stránky"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nemá žiadne provízne webové stránky"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Vložte SIM kartu a reštartujte"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Pripojte sa k internetu"</string>
     <string name="location_title" msgid="1029961368397484576">"Moja poloha"</string>
@@ -1377,8 +1378,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Poskytovatelia satelitných snímok:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Príručka"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Pri načítavaní príručky sa vyskytla chyba."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licencie tretích strán"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Pri načítavaní licencií sa vyskytla chyba."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Načítava sa…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Bezpečnostné informácie"</string>
@@ -1966,7 +1966,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Šetrič batérie"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Zapínať automaticky"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nikdy"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Pri %1$s batérie"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"pri <xliff:g id="PERCENT">%1$s</xliff:g> batérie"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Štatistiky procesov"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Podrobné štatistiky spustených procesov"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Využitie pamäte"</string>
@@ -2650,10 +2650,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Hlasitosť zvonenia"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Hlasitosť upozornení"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Tón zvonenia telefónu"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Predvolené zvukové upozornenie"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Predvolený zvuk budíka"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Pri hovoroch aj vibrovať"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Iné zvuky"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Zvuky číselnej klávesnice"</string>
@@ -3287,6 +3285,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Nemôžete sa prihlásiť?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Odoslanie informácií o systéme"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Nabudúce nezobrazovať"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Žiadosť sa odošle z účtu"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Pridať účet"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Nastavenia pracovného profilu"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Vyhľadávanie kontaktov"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Povoliť vašej organizácii hľadať kontakty na identifikáciu volajúcich a kontaktov"</string>
@@ -3365,20 +3365,24 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Aut. synchronizovať dáta účtu"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Aut. synch. dáta osobného účtu"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Aut. synch. dáta prac. účtu"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Synchronizácia účtu"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Ochrana súkromia"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Ochrana súkromia"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Vaša organizácia môže zmeniť nastavenia a nainštalovať softvér na vašom zariadení, aby vám poskytla prístup k pracovným údajom. Môže to však spôsobiť, že správca bude vidieť váš osobný obsah. Ďalšie informácie získate od správcu vašej organizácie."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Aký typ informácií vidí vaša organizácia?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Aké zmeny ovplyvňujú, čo môže vidieť vaša organizácia?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Aké akcie môžu ovplyvniť váš prístup k tomuto zariadeniu?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dáta priradené k vášmu pracovnému účtu, ako napríklad pošta a kalendár"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Zoznam všetkých aplikácií na vašom zariadení"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="few">Zoznam všetkých aplikácií na zariadení (celkovo: <xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="many">Zoznam všetkých aplikácií na zariadení (celkovo: <xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="other">Zoznam všetkých aplikácií na zariadení (celkovo: <xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="one">Zoznam všetkých aplikácií na zariadení (celkovo: <xliff:g id="COUNT_0">%d</xliff:g>)</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Používanie (strávený čas a objem využitých dát) jednotlivých aplikácií na zariadení"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Denníky dátových prenosov na vašom zariadení"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Najaktuálnejšie hlásenie chyby"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Váš najaktuálnejší denník zabezpečenia"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nikdy"</string>
 </resources>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index 80b5b87..21016d1 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"vklop zaslona"</item>
     <item msgid="3253368931113490863">"pridobivanje računov"</item>
     <item msgid="780392378084812901">"izvajanje v ozadju"</item>
+    <item msgid="2629748510881309577">"glasnost za funkcije za ljudi s posebnimi potrebami"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Lokacija"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Vklop zaslona"</item>
     <item msgid="5258373962467495905">"Pridobivanje računov"</item>
     <item msgid="334625385979270703">"Izvajanje v ozadju"</item>
+    <item msgid="9039213578110332702">"Glasnost za funkcije za ljudi s posebnimi potrebami"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Kratko"</item>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index f956c2c..f690866 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -152,7 +152,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Dotaknite se, če želite vzpostaviti povezavo z napravo »<xliff:g id="DEVICE_NAME">%1$s</xliff:g>«."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Se želite povezati z napravo »<xliff:g id="DEVICE_NAME">%1$s</xliff:g>«?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Zahteva za dostop do telefonskega imenika"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s želi dostop do vaših stikov in zgodovine klicev. Želite dovoliti dostop osebi %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Naprava <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> želi dostop do stikov in zgodovine klicev. Ali želite omogočiti dostop napravi <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ne vprašaj me več"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ne vprašaj me več"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Zahteva za dostop do sporočil"</string>
@@ -274,6 +274,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Nastavitve"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Nastavitve"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Bližnjica do nastavitev"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Ni ustreznih dejavnosti."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Način za letalo"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Več"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Brezžično in omrežja"</string>
@@ -1321,7 +1322,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Želite za upravljanje omrežnih povezav namesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> uporabljati aplikacijo <xliff:g id="NEW_APP">%1$s</xliff:g>?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Želite za upravljanje omrežnih povezav uporabljati aplikacijo <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Neznan ponudnik kartice SIM"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nima znanega spletnega mesta za omogočanje uporabe"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nima znanega splet. mesta za omogočanje uporabe"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Vstavite SIM in znova zaženite"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Vzpostavite internetno povezavo"</string>
     <string name="location_title" msgid="1029961368397484576">"Moja lokacija"</string>
@@ -1377,8 +1378,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Ponudniki satelitskih posnetkov: \n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Priročnik"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Težava pri nalaganju priročnika."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licence drugih ponudnikov"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Pri nalaganju licenc je prišlo do težave."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Nalaganje …"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Informacije o varnosti"</string>
@@ -1966,7 +1966,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Varčevanje z energijo akumulatorja"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Samodejni vklop"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nikoli"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"pri %1$s akumulatorja"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"pri <xliff:g id="PERCENT">%1$s</xliff:g> napolnjenosti akumulatorja"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Statistični podatki o procesih"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Statistični podatki o procesih, ki se izvajajo"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Poraba pomnilnika"</string>
@@ -2650,10 +2650,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Glasnost zvonjenja"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Glasnost obvestila"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Melodija zvonjenja telefona"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Privzeti zvok obvestila"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Privzeti zvok alarma"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibriranje tudi za klice"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Drugi zvoki"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Toni tipkovnice"</string>
@@ -3287,6 +3285,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Se ne morete prijaviti?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Pošiljanje podatkov o sistemu"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne prikaži več"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Zahteva uporabnik"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Dodajanje računa"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Nastavitve delovnega profila"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Iskanje po stikih"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Organizaciji dovoli iskanje po stikih zaradi prepoznavanja klicateljev in stikov"</string>
@@ -3365,20 +3365,24 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Samod. sinhr. podatkov računa"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sam. sinhr. podat. oseb. rač."</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sam. sinhr. podat. delov. rač."</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sinhronizacija računa"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Zasebnost"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Zasebnost"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Vaša organizacija lahko spremeni nastavitve in v napravo namesti programsko opremo, da bi zagotovila dostop do delovnih podatkov, kar lahko povzroči, da bo nekaj vaše osebne vsebine vidne skrbniku. Za več informacij se obrnite na skrbnika svoje organizacije."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Katere vrste podatkov vidi vaša organizacija?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Katere spremembe vplivajo na to, kaj vidi vaša organizacija?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Katera dejanja lahko vplivajo na vaš dostop do te naprave?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Podatke, povezane z delovnim računom, npr. e-pošto in koledar"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Seznam vseh aplikacij v napravi"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Seznam vseh aplikacij v napravi: <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="two">Seznam vseh aplikacij v napravi: <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="few">Seznam vseh aplikacij v napravi: <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="other">Seznam vseh aplikacij v napravi: <xliff:g id="COUNT_1">%d</xliff:g></item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Uporabo (porabljen čas in količino prenesenih podatkov) za vsako aplikacijo v napravi"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Dnevnike prometa v napravi"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Najnovejše poročilo o napakah"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Najnovejši varnostni dnevnik"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nikoli"</string>
 </resources>
diff --git a/res/values-sq-rAL/arrays.xml b/res/values-sq-rAL/arrays.xml
index cc36bc2..0854350 100644
--- a/res/values-sq-rAL/arrays.xml
+++ b/res/values-sq-rAL/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ndiz ekranin"</item>
     <item msgid="3253368931113490863">"merr llogaritë"</item>
     <item msgid="780392378084812901">"ekzekuto në sfond"</item>
+    <item msgid="2629748510881309577">"volumi i qasshmërisë"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Vendndodhja"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Ndiz ekranin"</item>
     <item msgid="5258373962467495905">"Merr llogaritë"</item>
     <item msgid="334625385979270703">"Ekzekuto në sfond"</item>
+    <item msgid="9039213578110332702">"Volumi i qasshmërisë"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"E shkurtër"</item>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
index db495bf..7bd6816 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq-rAL/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Trokit për t\'u lidhur me \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Dëshiron që të lidhesh me \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Kërkesë për qasje në numërator"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s kërkon të ketë qasje te kontaktet dhe historiku i telefonatave. Të lejohet qasja për %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> kërkon të ketë qasje te kontaktet dhe historiku i telefonatave. Të lejohet qasja për <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Mos pyet përsëri"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Mos pyet më"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Kërkesë për qasje në mesazhe"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Cilësimet"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Cilësimet"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Shkurtorja e cilësimeve"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Nuk u gjet asnjë aktivitet që përputhet."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Modaliteti i aeroplanit"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Më shumë"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wi-Fi dhe rrjetet"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Të përdoret <xliff:g id="NEW_APP">%1$s</xliff:g> në vend të <xliff:g id="CURRENT_APP">%2$s</xliff:g> për të menaxhuar lidhjet e rrjetit?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Të përdoret <xliff:g id="NEW_APP">%s</xliff:g> për të menaxhuar lidhjet e rrjetit?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operatori i kartës SIM është i panjohur"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nuk ka faqe të sigurt e të njohur"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nuk ka faqe të sigurt e të njohur"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Vendos kartën SIM dhe rinise"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Lidhu me internetin"</string>
     <string name="location_title" msgid="1029961368397484576">"Vendndodhja ime"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Ofruesit e imazheve satelitore:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manuale"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ka një problem me ngarkimin e manualit."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licencat e palëve të treta"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Ka një problem me ngarkimin e licencave."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Po ngarkon..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Informacioni i sigurisë"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Kursyesi i baterisë"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Aktivizim automatikisht"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Asnjëherë"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"në nivelin e baterisë %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"me <xliff:g id="PERCENT">%1$s</xliff:g> bateri"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Statistikat e procesit"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Statistikat teknike për proceset në ekzekutim"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Përdorimi i memories"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volumi i ziles"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volumi i njoftimit"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Zilja e telefonit"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Zëri i parazgjedhur i njoftimit"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Tingulli i parazgjedhur i alarmit"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Edhe dridhje për telefonatat"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Tinguj të tjerë"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonet e bllokut të tasteve"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Nuk mund të identifikohesh?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Dërgo informacionet e sistemit"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Mos e shfaq përsëri"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Po kërkon si"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Shto llogari"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Cilësimet e profilit të punës"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kërkimi i kontakteve"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Lejo kërkimet e kontakteve nga organizata jote për të identifikuar telefonuesit dhe kontaktet"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Sinkronizo auto. të dhënat"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinkr. auto. të dhëna personale"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinkronizo auto. të dhëna pune"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Sinkronizimi i llogarisë"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privatësia"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privatësia"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Për të ofruar qasjen në të dhënat e tua të punës, organizata jote mund të ndryshojë cilësimet dhe të instalojë softuerë në pajisjen tënde, gjë që mund të bëjë që disa nga përmbajtjet e tua personale të jenë të dukshme për administratorin tënd. Kontakto me administratorin e organizatës për më shumë detaje."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Çfarë lloje informacioni mund të shikojë organizata jote?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Çfarë ndryshimesh ndikojnë në atë që shikon organizata jote?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Çfarë veprimesh mund të ndikojnë te qasja jote në këtë pajisje?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Të dhënat që shoqërojnë llogarinë tënde të punës, si mail-i dhe kalendari"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista e të gjitha aplikacioneve në pajisjen tënde"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Rendit të <xliff:g id="COUNT_1">%d</xliff:g> aplikacionet në pajisjen tënde</item>
+      <item quantity="one">Rendit <xliff:g id="COUNT_0">%d</xliff:g> aplikacion në pajisjen tënde</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Përdorimi (koha e shpenzuar dhe sasia e të dhënave të përdorura) i secilit aplikacion në pajisjen tënde"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Regjistrimet e trafikut në pajisjen tënde"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Raporti më i fundit i defekteve në kod"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Regjistri yt më i fundit i sigurisë"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Asnjëherë"</string>
 </resources>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index 5df8d0d..e57143a 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"укључивање екрана"</item>
     <item msgid="3253368931113490863">"приступ налозима"</item>
     <item msgid="780392378084812901">"рад у позадини"</item>
+    <item msgid="2629748510881309577">"јачина звука за приступачност"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Локација"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Укључивање екрана"</item>
     <item msgid="5258373962467495905">"Приступ налозима"</item>
     <item msgid="334625385979270703">"Рад у позадини"</item>
+    <item msgid="9039213578110332702">"Јачина звука за приступачност"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Кратко"</item>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 405b147..74614f7 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -151,7 +151,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Додирните да бисте се повезали са уређајем „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Да ли желите да се повежете са уређајем „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Захтев за приступ телефонском именику"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s жели да приступи вашим контактима и историји позива. Желите ли да одобрите приступ за %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> жели да приступи контактима и историји позива. Желите ли да дате приступ уређају <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Не питај поново"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Не питај поново"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Захтев за приступ порукама"</string>
@@ -272,6 +272,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Подешавања"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Подешавања"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Пречица подешавања"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Није пронађена ниједна активност која се подудара."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Режим рада у авиону"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Још"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Бежична веза и мреже"</string>
@@ -1311,7 +1312,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Желите ли да користите апликацију <xliff:g id="NEW_APP">%1$s</xliff:g> уместо апликације <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управљање мрежним везама?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Желите ли да користите апликацију <xliff:g id="NEW_APP">%s</xliff:g> за управљање мрежним везама?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Непознати SIM оператер"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s нема познатих веб-сајтова за доделу"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> нема познат веб-сајт за доделу"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Убаците SIM картицу и рестартујте"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Повежите се са интернетом"</string>
     <string name="location_title" msgid="1029961368397484576">"Мојa локацијa"</string>
@@ -1367,8 +1368,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Добављачи сателитских слика:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Упутство"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Дошло је до проблема при учитавању упутства."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Лиценце треће стране"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Дошло је до проблема при учитавању лиценци."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Учитава се…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Безбедносне информације"</string>
@@ -1949,7 +1949,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Штедња батерије"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Аутоматски укључи"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Никада"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"батерија је на %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"на <xliff:g id="PERCENT">%1$s</xliff:g> батерије"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Статистика процеса"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Штреберска статистика о активним процесима"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Искоришћеност меморије"</string>
@@ -2628,10 +2628,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Јачина звука звона"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Јачина звука за обавештења"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Звук звона телефона"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Подразумевани звук обавештења"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Подразумевани звук аларма"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Вибрација и за позиве"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Други звукови"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Тонови нумеричке тастатуре"</string>
@@ -3255,6 +3253,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Не можете да се пријавите?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Пошаљите информације о систему"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Не приказуј поново"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Захтевате као"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Додај налог"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Подешавања пословног профила"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Претрага контаката"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Дозволите да претраживање контаката од стране ваше организације идентификује позиваоце и контакте."</string>
@@ -3330,20 +3330,23 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Аутом. синхр. податке са налога"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Аутом. синхр. личне податке са налога"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Аутом. синхр. пословне податке са налога"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Синхронизација налога"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Приватност"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Приватност"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Да би пружила приступ вашим пословним подацима, организација може да промени подешавања и инсталира софтвер на уређају, што би део личног садржаја учинило видљивим администратору. Контактирајте администратора организације за више детаља."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Које типове информација може да види организација?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Које промене утичу на то шта организација може да види?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Које радње могу да утичу на ваш приступ овом уређају?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Подаци повезани са пословним налогом, попут имејла и календара"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Листа свих апликација на уређају"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Листа свих апликација на уређају: <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="few">Листа свих апликација на уређају: <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="other">Листа свих апликација на уређају: <xliff:g id="COUNT_1">%d</xliff:g></item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Коришћење (потрошено време и количина искоришћених података) за сваку апликацију на уређају"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Евиденција саобраћаја на уређају"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Најновији извештај о грешци"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Најновија безбедносна евиденција"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Никада"</string>
 </resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index 4f75847..e75b080 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"aktivera skärmen"</item>
     <item msgid="3253368931113490863">"hämta konton"</item>
     <item msgid="780392378084812901">"köra i bakgrunden"</item>
+    <item msgid="2629748510881309577">"volym på tillgänglighetsfunktionerna"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Plats"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Aktivera skärmen"</item>
     <item msgid="5258373962467495905">"Hämta konton"</item>
     <item msgid="334625385979270703">"Kör i bakgrunden"</item>
+    <item msgid="9039213578110332702">"Volym på tillgänglighetsfunktionerna"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Kort"</item>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index efa5c2b..8713580 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tryck om du vill ansluta till <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Vill du ansluta till <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Begäran om åtkomst till telefonbok"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s vill ha åtkomst till dina kontakter och din samtalshistorik. Vill du ge %2$s åtkomst?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> vill ha tillgång till kontakter och samtalshistorik. Vill du ge <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> tillgång?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Fråga inte igen"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Fråga inte igen"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Begäran om meddelandeåtkomst"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Inställningar"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Inställningar"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Genväg för inställningar"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Inga matchande aktiviteter hittades."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Flygplansläge"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Mer"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Trådlöst och nätverk"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Vill du hantera nätverksanslutningarna med <xliff:g id="NEW_APP">%1$s</xliff:g> i stället för med <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Vill du hantera nätverksanslutningarna med <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Okänd SIM-operatör"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s har ingen känd administrationswebbplats"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> har ingen känd administrationswebbplats"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"För in SIM-kortet och starta om"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Anslut till internet"</string>
     <string name="location_title" msgid="1029961368397484576">"Min plats"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satellitbildsleverantörer:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Handbok"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ett problem inträffade när handboken lästes in."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenser från tredje part"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Ett problem inträffade när licenserna lästes in."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Läser in…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Säkerhetsinformation"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Batterisparläge"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Aktivera automatiskt"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Aldrig"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"När batteriet är på %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"vid <xliff:g id="PERCENT">%1$s</xliff:g> batteri"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Processtatistik"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Nördig statistik om processer som körs"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Minnesanvändning"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ringvolym"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Aviseringsvolym"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Telefonens ringsignal"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Standardljud för aviseringar"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Standardljud för alarm"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrera också vid samtal"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Andra ljud"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Knappsatsljud"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Går det inte att logga in?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Skicka systeminformation"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Visa inte igen"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Utför en begäran som"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Lägg till ett konto"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Inställningar för jobbprofilen"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktsökning"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Tillåt att organisationen söker bland kontakter för att identifiera ringande och kontakter"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Autosynka data i konto"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Autosynka data i privat konto"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Autosynka data i jobbkonto"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Kontosynkronisering"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Sekretess"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Sekretess"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Organisationen kan ändra inställningar och installera programvara på enheten för att ge dig tillgång till jobbrelaterad information. Detta kan leda till att en del av ditt privata innehåll blir synligt för administratören. Kontakta organisationens administratör om du vill veta mer."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Vilken typ av information visas för organisationen?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Vilka ändringar påverkar vad som visas för organisationen?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Vilka åtgärder kan påverka din tillgång till den här enheten?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Uppgifter som är kopplade till jobbkontot, t.ex. e-post och kalender"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista över alla appar på enheten"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Lista över alla <xliff:g id="COUNT_1">%d</xliff:g> appar på enheten</item>
+      <item quantity="one">Lista över <xliff:g id="COUNT_0">%d</xliff:g> app på enheten</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Användning (tid och datamängd som har använts) av varje app på enheten"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Trafikloggar på enheten"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Din senaste felrapport"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Din senaste säkerhetslogg"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Aldrig"</string>
 </resources>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index 6496c89..34d2c26 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"washa skrini"</item>
     <item msgid="3253368931113490863">"pata akaunti"</item>
     <item msgid="780392378084812901">"tekeleza chini chini"</item>
+    <item msgid="2629748510881309577">"sauti za zana za walio na matatizo ya kuona na kusikia"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Eneo"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Washa skrini"</item>
     <item msgid="5258373962467495905">"Pata akaunti"</item>
     <item msgid="334625385979270703">"Tekeleza chini chini"</item>
+    <item msgid="9039213578110332702">"Sauti ya zana za walio na matatizo ya kuona na kusikia"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Muda mfupi"</item>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 1066aa1..02a6553 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -150,9 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Gonga ili uunganishe kwenye \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Unataka kuunganishwa kwa\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Ombi la kufikia anwani kwenye simu"</string>
-    <!-- String.format failed for translation -->
-    <!-- no translation found for bluetooth_pb_acceptance_dialog_text (6555508756987053866) -->
-    <skip />
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> inataka kufikia anwani zako na rekodi ya simu zilizopigwa. Ungependa kuipa <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> idhini ya kufikia?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Usiniulize tena"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Usiniulize tena"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Ombi la kufikia ujumbe"</string>
@@ -272,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Mipangilio"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Mipangilio"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Mipangilio ya njia ya mkato"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Hakuna shughuli zinazolingana zilizopatikana."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Hali ya ndege"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Mengineyo"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Mitandao isiyotumia waya"</string>
@@ -1305,9 +1304,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Ungependa kutumia <xliff:g id="NEW_APP">%1$s</xliff:g> badala ya <xliff:g id="CURRENT_APP">%2$s</xliff:g> kusimamia miunganisho yako ya mtandao?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Ungependa kutumia <xliff:g id="NEW_APP">%s</xliff:g> kusimamia miunganisho yako ya mtandao?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Mtoa huduma wa SIM asiyejulikana"</string>
-    <!-- String.format failed for translation -->
-    <!-- no translation found for mobile_no_provisioning_url (2399426808423775711) -->
-    <skip />
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> hana tovuti ya utoaji inayojulikana"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Tafadhali weka SIM kadi kisha uzime na uwashe"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Tafadhali unganisha kwenye Intaneti"</string>
     <string name="location_title" msgid="1029961368397484576">"Mahali pangu"</string>
@@ -1363,8 +1360,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Watoa huduma wa picha za setilaiti: \n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Mwongozo"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Kumekuwa na hitilafu katika kupakia mwongozo."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Leseni za watu wengine"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Kuna hitilafu wakati wa kupakia leseni"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Inapakia…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Maelezo ya usalama"</string>
@@ -1938,7 +1934,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Kiokoa betri"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Kijiwashe kiotomatiki"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Isiwahi kuwashwa"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"betri %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"chaji ya betri ikiwa <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Takwimu za Mchakato"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Takwimu za kitaalamu kuhusu michakato inayoendeshwa"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Kumbukumbu iliyotumika"</string>
@@ -2612,10 +2608,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Sauti ya mlio"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Sauti ya arifa"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Mlio wa simu"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Sauti chaguo-msingi ya arifa"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Sauti chaguo-msingi ya kengele"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Pia tetema simu zinapoingia"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Sauti nyingine"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Sauti za vitufe vya kupiga simu"</string>
@@ -3229,6 +3223,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Imeshindwa kuingia katika akaunti?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Tuma maelezo ya mfumo"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Usionyeshe tena"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Inaomba kama"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Ongeza akaunti"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Mipangilio ya wasifu wa kazini"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Utafutaji wa anwani"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Ruhusu utafutaji wa anwani unaofanywa na shirika lako kutambua anwani na anayepiga simu"</string>
@@ -3301,20 +3297,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Sawazisha kiotomatiki data ya akaunti"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sawazisha kiotomatiki data ya akaunti binafsi"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sawazisha kiotomatiki data ya akaunti ya kazi"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Usawazishaji akaunti"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Faragha"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Faragha"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Ili kutoa idhini ya kufikia data yako ya kazini, shirika lako linaweza kubadilisha mipangilio na kusanikisha programu kwenye kifaa chako, hatua ambayo inaweza kusababisha baadhi ya maudhui yako ya binafsi kuonekana na msimamizi wako. Wasiliana na msimamizi wa shirika lako ili upate maelezo zaidi."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Je, shirika lako linaweza kuona aina gani ya maelezo?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Mabadiliko yapi yanaathiri maelezo ambayo shirika lako linaweza kuona?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Je, ni vitendo gani vinavyoweza kuathiri ufikiaji wa kifaa hiki?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data inayohusiana na akaunti yako ya kazini, kama vile barua pepe na kalenda"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Orodha ya programu zote kwenye kifaa chako"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Orodha ya programu zote <xliff:g id="COUNT_1">%d</xliff:g> kwenye kifaa chako</item>
+      <item quantity="one">Orodha ya programu zote <xliff:g id="COUNT_0">%d</xliff:g> kwenye kifaa chako</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Matumizi (muda uliotumiwa na kiwango cha data kilichotumika) ya kila programu kwenye kifaa chako"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Kumbukumbu za trafiki kwenye kifaa chako"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Ripoti yako ya hivi majuzi ya hitilafu"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Kumbukumbu yako ya hivi majuzi ya usalama"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Hajawahi"</string>
 </resources>
diff --git a/res/values-ta-rIN/arrays.xml b/res/values-ta-rIN/arrays.xml
index b5e644d..759c30d 100644
--- a/res/values-ta-rIN/arrays.xml
+++ b/res/values-ta-rIN/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"திரையை இயக்கு"</item>
     <item msgid="3253368931113490863">"கணக்குகளைப் பெறு"</item>
     <item msgid="780392378084812901">"பின்புலத்தில் இயங்கு"</item>
+    <item msgid="2629748510881309577">"அணுகல்தன்மைக்கான ஒலியளவு"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"இருப்பிடம்"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"திரையை இயக்கு"</item>
     <item msgid="5258373962467495905">"கணக்குகளைப் பெறு"</item>
     <item msgid="334625385979270703">"பின்புலத்தில் இயங்கு"</item>
+    <item msgid="9039213578110332702">"அணுகல்தன்மைக்கான ஒலியளவு"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"குறுகியது"</item>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index 8ffe506..8cbc303 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" உடன் இணைக்க, தட்டவும்."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" உடன் இணைக்கவா?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"தொலைபேசி புத்தகத்திற்கான அணுகல் கோரிக்கை"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s உங்கள் தொடர்புகளையும், அழைப்பு வரலாற்றையும் அணுக விரும்புகிறது. %2$s க்கு அணுகலை வழங்கவா?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> உங்கள் தொடர்புகளையும் அழைப்பு வரலாற்றையும் அணுக விரும்புகிறது. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>க்கு அணுகல் வழங்கவா?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"மீண்டும் கேட்காதே"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"மீண்டும் கேட்காதே"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"செய்திக்கான அணுகல் கோரிக்கை"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"அமைப்பு"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"அமைப்பு"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"அமைப்பு"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"பொருந்தும் செயல்பாடுகள் இல்லை."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"விமானப் பயன்முறை"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"மேலும்"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"வயர்லெஸ் &amp; நெட்வொர்க்குகள்"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"நெட்வொர்க் இணைப்புகளை நிர்வகிக்க, <xliff:g id="CURRENT_APP">%2$s</xliff:g>க்குப் பதிலாக <xliff:g id="NEW_APP">%1$s</xliff:g>ஐப் பயன்படுத்தவா?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"நெட்வொர்க் இணைப்புகளை நிர்வகிக்க <xliff:g id="NEW_APP">%s</xliff:g>ஐப் பயன்படுத்தவா?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"அறியப்படாத சிம் மொபைல் நிறுவனம்"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s இடம் அறிந்த வழங்குதல் இணையதளம் இல்லை"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> இடம், தெரிந்த புரொவிஷனிங் இணைதளம் இல்லை"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"சிம் கார்டைச் செருகி மீண்டும் தொடங்கவும்"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"இணையத்துடன் இணைக்கவும்"</string>
     <string name="location_title" msgid="1029961368397484576">"எனது இருப்பிடம்"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"செயற்கை கோள் படங்களை வழங்குபவர்கள்:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"கைமுறை"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"கைமுறைச் செயலாக்கத்தை ஏற்றுவதில் சிக்கல்."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"மூன்றாம் தரப்பு உரிமங்கள்"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"உரிமங்களை ஏற்றுவதில் சிக்கல் உள்ளது."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"ஏற்றுகிறது..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"பாதுகாப்பு தகவல்"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"பேட்டரி சேமிப்பான்"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"தானாகவே இயக்கு"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"எப்போதும் வேண்டாம்"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s பேட்டரியில்"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> பேட்டரி இருக்கும் போது"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"செயல்முறைப் புள்ளிவிவரங்கள்"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"இயங்கும் செயல்முறைகள் குறித்த ஜிகி புள்ளிவிவரங்கள்"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"நினைவகப் பயன்பாடு"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"அழைப்பு - ஒலியளவு"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"அறிவிப்பின் ஒலியளவு"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"மொபைலின் ரிங்டோன்"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"இயல்பு அறிவிப்பு ஒலி"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"இயல்பு அலார ஒலி"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"அழைப்பு வருகையில் அதிர்வுறு"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"பிற ஒலிகள்"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"டயல்பேடு டோன்கள்"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"உள்நுழைய முடியவில்லையா?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"முறைமை தகவலை அனுப்பு"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"மீண்டும் காட்டாதே"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"இவராகக் கோருகிறது:"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"கணக்கைச் சேர்"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"பணிச் சுயவிவர அமைப்புகள்"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"தொடர்புகளில் தேடு"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"எனது நிறுவனத்தின்படி அழைப்பாளர்களையும் தொடர்புகளையும் கண்டறிய, ”தொடர்புகளில் தேடு” அம்சத்தை அனுமதி"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"கணக்குத் தரவைத் தானாக ஒத்திசை"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"சொந்த கணக்கு தரவை தானாக ஒத்திசை"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"பணி கணக்கு தரவை தானாக ஒத்திசை"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"கணக்கு ஒத்திசைவு"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"தனியுரிமை"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"தனியுரிமை"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"உங்கள் பணித் தரவிற்கு அணுகல் வழங்க, நிறுவனமானது உங்கள் சாதனத்தில் அமைப்புகளை மாற்றி, மென்பொருளை நிறுவக்கூடும். இதனால், உங்கள் தனிப்பட்ட உள்ளடக்கத்தை உங்கள் நிர்வாகி பார்க்கலாம். கூடுதல் விவரங்களை அறிய, உங்கள் நிறுவனத்தின் நிர்வாகியைத் தொடர்புகொள்ளவும்."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"உங்கள் நிறுவனத்தால் எத்தகைய தகவலைப் பார்க்க முடியும்?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"நிறுவனம் எதைப் பார்க்கலாம் என்பதை பாதிக்கும் மாற்றங்கள் எவை?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"உங்களின் சாதன அணுகலைப் பாதிக்கும் செயல்கள் எவை?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"உங்கள் பணிக் கணக்குடன் தொடர்புடைய மின்னஞ்சல் மற்றும் கேலெண்டர் போன்ற தரவு"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"உங்கள் சாதனத்தில் உள்ள எல்லாப் பயன்பாடுகளின் பட்டியல்"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">உங்கள் சாதனத்தில் மொத்தம் உள்ள <xliff:g id="COUNT_1">%d</xliff:g> பயன்பாடுகளின் பட்டியல்</item>
+      <item quantity="one">உங்கள் சாதனத்தில் மொத்தம் உள்ள <xliff:g id="COUNT_0">%d</xliff:g> பயன்பாட்டின் பட்டியல்</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"உங்கள் சாதனத்தில் உள்ள ஒவ்வொரு பயன்பாட்டின் உபயோகம் (செலவழித்த நேரமும் பயன்படுத்திய தரவின் அளவும்)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"உங்கள் சாதனத்தில் உள்ள ட்ராஃபிக் பதிவுகள்"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"உங்களின் மிகச் சமீபத்திய பிழை அறிக்கை"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"உங்களின் மிகச் சமீபத்திய பாதுகாப்புப் பதிவு"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"ஒருபோதும் வேண்டாம்"</string>
 </resources>
diff --git a/res/values-te-rIN/arrays.xml b/res/values-te-rIN/arrays.xml
index 1673a09..d85bbf9 100644
--- a/res/values-te-rIN/arrays.xml
+++ b/res/values-te-rIN/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"స్క్రీన్‌ను ఆన్ చేయడం"</item>
     <item msgid="3253368931113490863">"ఖాతాలను పొందడం"</item>
     <item msgid="780392378084812901">"నేపథ్యంలో అమలు చేయడం"</item>
+    <item msgid="2629748510881309577">"ప్రాప్యత వాల్యూమ్"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"స్థానం"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"స్క్రీన్‌ను ఆన్ చేయడం"</item>
     <item msgid="5258373962467495905">"ఖాతాలను పొందడం"</item>
     <item msgid="334625385979270703">"నేపథ్యంలో అమలు చేయడం"</item>
+    <item msgid="9039213578110332702">"ప్రాప్యత వాల్యూమ్"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"తక్కువ సేపు"</item>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 9ea2fcb..d5f4779 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"కి కనెక్ట్ చేయడానికి నొక్కండి."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"మీరు \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"కు కనెక్ట్ చేయాలనుకుంటున్నారా?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ఫోన్ పుస్తకం ప్రాప్యత అభ్యర్థన"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s మీ పరిచయాలను మరియు కాల్ చరిత్రను ప్రాప్యత చేయాలనుకుంటుంది. %2$sకి ప్రాప్యతను అందించాలా?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> మీ పరిచయాలు మరియు కాల్ చరిత్రకు ప్రాప్యత కోరుతోంది. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>కి ప్రాప్యత ఇవ్వాలా?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"మళ్లీ అడగవద్దు"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"మళ్లీ అడగవద్దు"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"సందేశ ప్రాప్యత అభ్యర్థన"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"సెట్టింగ్‌లు"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"సెట్టింగ్‌లు"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"సెట్టింగ్‌ల సత్వరమార్గం"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"సరిపోలే కార్యాచరణలు కనుగొనబడలేదు."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"ఎయిర్‌ప్లైన్ మోడ్"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"మరిన్ని"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"వైర్‌లెస్ &amp; నెట్‌వర్క్‌లు"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"మీ నెట్‌వర్క్ కనెక్షన్‌లను నిర్వహించడానికి <xliff:g id="CURRENT_APP">%2$s</xliff:g>కి బదులుగా <xliff:g id="NEW_APP">%1$s</xliff:g>ని ఉపయోగించాలా?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"మీ నెట్‌వర్క్ కనెక్షన్‌లను నిర్వహించడానికి <xliff:g id="NEW_APP">%s</xliff:g>ని ఉపయోగించాలా?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"సిమ్ ఆపరేటర్ తెలియదు"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s తెలిసిన కేటాయింపు వెబ్‌సైట్‌ను కలిగి లేదు"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>కి తెలిసిన కేటాయింపు వెబ్‌సైట్ ఏదీ లేదు"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"దయచేసి సిమ్ కార్డును చొప్పించి, పునఃప్రారంభించండి"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"దయచేసి ఇంటర్నెట్‌కు కనెక్ట్ చేయండి"</string>
     <string name="location_title" msgid="1029961368397484576">"నా స్థానం"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"ఉపగ్రహ చిత్రాల ప్రదాతలు:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"మాన్యువల్"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"మాన్యువల్‌ను లోడ్ చేయడంలో సమస్య ఏర్పడింది."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"మూడవ పక్షం లైసెన్స్‌లు"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"లైసెన్స్‌లను లోడ్ చేయడంలో సమస్య ఉంది."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"లోడ్ చేస్తోంది…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"భద్రతా సమాచారం"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"బ్యాటరీ సేవర్"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"స్వయంచాలకంగా ఆన్ చేయి"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ఎప్పటికీ వద్దు"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s బ్యాటరీ వద్ద"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> బ్యాటరీ ఉన్నప్పుడు"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"ప్రాసెస్ గణాంకాలు"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"అమలవుతున్న ప్రాసెస్‌ల గురించి అసాధారణమైన గణాంకాలు"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"మెమరీ వినియోగం"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"రింగ్ వాల్యూమ్"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"నోటిఫికేషన్ వాల్యూమ్"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"ఫోన్ రింగ్‌టోన్"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"డిఫాల్ట్ నోటిఫికేషన్ ధ్వని"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"డిఫాల్ట్ అలారం ధ్వని"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"కాల్‌ల కోసం వైబ్రేట్ కూడా చేయి"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"ఇతర ధ్వనులు"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"డయల్ ప్యాడ్ టోన్‌లు"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"సైన్ ఇన్ చేయలేకపోతున్నారా?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"సిస్టమ్ సమాచారాన్ని పంపండి"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"మళ్లీ చూపవద్దు"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"దీనితో అభ్యర్థిస్తున్నారు"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"ఖాతాను జోడించండి"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"కార్యాలయ ప్రొఫైల్ సెట్టింగ్‌లు"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"పరిచయ శోధన"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"కాలర్‌లు మరియు పరిచయాలను గుర్తించడానికి మీ సంస్థ ద్వారా పరిచయ శోధనలను చేయడానికి అనుమతిస్తుంది"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"ఖాతా డేటా స్వీయ సమకాలీకరణ"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"వ్యక్తిగత ఖాతా డేటా స్వీయ సమకాలీకరణ"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"కార్యాలయ ఖాతా డేటా స్వీయ సమకాలీకరణ"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"ఖాతా సమకాలీకరణ"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"గోప్యత"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"గోప్యత"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"మీ కార్యాలయ డేటాకు ప్రాప్యతను అందించడానికి, మీ సంస్థ సెట్టింగ్‌లను మార్చవచ్చు మరియు మీ పరికరంలో సాప్ట్‌వేర్‌ని ఇన్‌స్టాల్ చేయవచ్చు, దీని వలన మీ వ్యక్తిగత కంటెంట్‌లో ఏదైనా కొంత భాగం మీ నిర్వాహకులకు కనిపించవచ్చు. మరిన్ని వివరాల కోసం మీ సంస్థ నిర్వాహకులను సంప్రదించండి."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"మీ సంస్థ ఏ రకమైన సమాచారాన్ని చూడవచ్చు?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"మీ సంస్థ చూడగలిగే వాటిని ఏయే మార్పులు ప్రభావితం చేస్తాయి?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ఈ పరికరానికి మీ ప్రాప్యతను ఏయే చర్యలు ప్రభావితం చేయవచ్చు?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"మీ కార్యాలయ ఖాతాతో అనుబంధించబడిన డేటా, ఇమెయిల్ మరియు క్యాలెండర్ వంటివి"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"మీ పరికరంలోని అన్ని అనువర్తనాల జాబితా"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">మీ పరికరంలోని మొత్తం <xliff:g id="COUNT_1">%d</xliff:g> అనువర్తనాల జాబితా</item>
+      <item quantity="one">మీ పరికరంలోని మొత్తం <xliff:g id="COUNT_0">%d</xliff:g> అనువర్తన జాబితా</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"మీ పరికరంలో ప్రతి అనువర్తనం యొక్క వినియోగం (గడిపిన సమయం మరియు వినియోగించబడిన డేటా పరిమాణం)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"మీ పరికరంలో ట్రాఫిక్ లాగ్‌లు"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"మీ అత్యంత ఇటీవలి బగ్ నివేదిక"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"మీ అత్యంత ఇటీవలి భద్రతా లాగ్"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"ఎన్నడూ చేయలేదు"</string>
 </resources>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index 05083a2..6e0aa41 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"เปิดหน้าจอ"</item>
     <item msgid="3253368931113490863">"สร้างบัญชี"</item>
     <item msgid="780392378084812901">"ทำงานในพื้นหลัง"</item>
+    <item msgid="2629748510881309577">"ระดับเสียงการเข้าถึง"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"ตำแหน่ง"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"เปิดหน้าจอ"</item>
     <item msgid="5258373962467495905">"สร้างบัญชี"</item>
     <item msgid="334625385979270703">"ทำงานในพื้นหลัง"</item>
+    <item msgid="9039213578110332702">"ระดับเสียงการเข้าถึง"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"สั้น"</item>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 336ddc0..d6f2f68 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"แตะเพื่อเชื่อมต่อ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"คุณต้องการเชื่อมต่อไปยัง \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" หรือไม่"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"คำขอการเข้าถึงสมุดโทรศัพท์"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ต้องการเข้าถึงสมุดติดต่อและประวัติการโทรของคุณ อนุญาตให้ %2$s เข้าถึงหรือไม่"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ต้องการเข้าถึงรายชื่อติดต่อและประวัติการโทรของคุณ ให้สิทธิ์เข้าถึงแก่ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ไหม"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"ไม่ต้องถามอีก"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"ไม่ต้องถามอีก"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"คำขอการเข้าถึงข้อความ"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"การตั้งค่า"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"การตั้งค่า"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"ทางลัดการตั้งค่า"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"ไม่พบกิจกรรมที่ตรงกัน"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"โหมดใช้งานบนเครื่องบิน"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"เพิ่มเติม"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"ระบบไร้สายและเครือข่าย"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ต้องการใช้ <xliff:g id="NEW_APP">%1$s</xliff:g> แทน <xliff:g id="CURRENT_APP">%2$s</xliff:g> ในการจัดการการเชื่อมต่อเครือข่ายใช่ไหม"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ใช้ <xliff:g id="NEW_APP">%s</xliff:g> ในการจัดการการเชื่อมต่อเครือข่ายใช่ไหม"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"ไม่รู้จักผู้ให้บริการซิม"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s ไม่มีเว็บไซต์การจัดสรรที่รู้จัก"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> ไม่มีเว็บไซต์การจัดสรรที่รู้จัก"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"โปรดใส่ซิมการ์ดและรีสตาร์ท"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"โปรดเชื่อมต่ออินเทอร์เน็ต"</string>
     <string name="location_title" msgid="1029961368397484576">"ตำแหน่งของฉัน"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"ผู้ให้บริการภาพถ่ายดาวเทียม:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"คู่มือ"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"พบปัญหาในการโหลดคู่มือ"</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"ใบอนุญาตของบุคคลที่สาม"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"พบปัญหาในการโหลดสัญญาอนุญาต"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"กำลังโหลด…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"ข้อมูลความปลอดภัย"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"โหมดประหยัดแบตเตอรี่"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"เปิดอัตโนมัติ"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ไม่ใช้เลย"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ที่แบตเตอรี่ %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ที่แบตเตอรี่ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"สถิติเกี่ยวกับกระบวนงาน"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"สถิติเชิงลึกเกี่ยวกับกระบวนงานที่ทำงานอยู่"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"การใช้หน่วยความจำ"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"ระดับเสียงเรียกเข้า"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"ระดับเสียงของการแจ้งเตือน"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"เสียงเรียกเข้า"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"เสียงแจ้งเตือนเริ่มต้น"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"เสียงปลุกเริ่มต้น"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"สั่นเมื่อมีสายเรียกเข้าด้วย"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"เสียงอื่นๆ"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"เสียงแป้นหมายเลข"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"หากไม่สามารถลงชื่อเข้าใช้"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"ส่งข้อมูลของระบบ"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"ไม่ต้องแสดงอีก"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"กำลังส่งคำขอโดยใช้"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"เพิ่มบัญชี"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"การตั้งค่าโปรไฟล์งาน"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"ค้นหารายชื่อติดต่อ"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"อนุญาตให้องค์กรของคุณค้นหารายชื่อติดต่อเพื่อระบุผู้โทรและรายชื่อติดต่อ"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"ซิงค์ข้อมูลบัญชีอัตโนมัติ"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"ซิงค์ข้อมูลบัญชีส่วนตัวอัตโนมัติ"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"ซิงค์ข้อมูลบัญชีงานอัตโนมัติ"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"การซิงค์บัญชี"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"ความเป็นส่วนตัว"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ความเป็นส่วนตัว"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"ในการให้สิทธิ์เข้าถึงข้อมูลงาน องค์กรของคุณอาจเปลี่ยนการตั้งค่าและติดตั้งซอฟต์แวร์บนอุปกรณ์ของคุณ ซึ่งอาจทำให้ผ้ดูแลระบบสามารถมองเห็นเนื้อหาส่วนตัวบางรายการ โปรดติดต่อผู้ดูแลระบบขององค์กรเพื่อขอรายละเอียดเพิ่มเติม"</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"องค์กรของคุณสามารถดูข้อมูลประเภทใดบ้าง"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"การเปลี่ยนแปลงอะไรบ้างที่ส่งผลต่อสิ่งที่องค์กรดูได้"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"การทำงานอะไรบ้างที่อาจส่งผลต่อสิทธิ์เข้าถึงอุปกรณ์นี้ของคุณ"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"ข้อมูลที่เชื่อมโยงกับบัญชีงานของคุณ เช่น อีเมลและปฏิทิน"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"รายการแอปทั้งหมดในอุปกรณ์"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">รายการแอปทั้ง <xliff:g id="COUNT_1">%d</xliff:g> แอปในอุปกรณ์</item>
+      <item quantity="one">รายการแอปทั้ง <xliff:g id="COUNT_0">%d</xliff:g> แอปในอุปกรณ์</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"การใช้งาน (เวลาและปริมาณข้อมูลที่ใช้) ของแต่ละแอปในอุปกรณ์"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"บันทึกการเข้าชมในอุปกรณ์"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"รายงานข้อบกพร่องล่าสุดของคุณ"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"บันทึกความปลอดภัยล่าสุด"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"ไม่เลย"</string>
 </resources>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index a0d46c0..5444da5 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"i-on ang screen"</item>
     <item msgid="3253368931113490863">"kunin ang mga account"</item>
     <item msgid="780392378084812901">"patakbuhin sa background"</item>
+    <item msgid="2629748510881309577">"dami ng pagiging naa-access"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Lokasyon"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"I-on ang screen"</item>
     <item msgid="5258373962467495905">"Kunin ang mga account"</item>
     <item msgid="334625385979270703">"Patakbuhin sa background"</item>
+    <item msgid="9039213578110332702">"Dami ng pagiging naa-access"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Maikli"</item>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 2d6f3f1..16ba80b 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"I-tap upang kumonekta sa \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>.\""</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Nais mo bang kumonekta sa \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Kahilingan sa pag-access ng phone book"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Nais na i-access ni %1$s ang iyong mga contact at kasaysayan ng tawag. Bigyan ng access si %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Gusto ng <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> na i-access ang iyong mga contact at history ng tawag. Magbigay ng access sa <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Huwag nang tatanungin muli"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Huwag nang tatanungin muli"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Kahilingan sa pag-access ng mensahe"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Mga Setting"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Mga Setting"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Shortcut ng Mga Setting"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Walang nahanap na tumutugmang aktibidad."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Airplane mode"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Higit pa"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wireless at mga network"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Gamitin ang <xliff:g id="NEW_APP">%1$s</xliff:g> sa halip na ang <xliff:g id="CURRENT_APP">%2$s</xliff:g> upang pamahalaan ang iyong mga koneksyon sa network?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Gamitin ang <xliff:g id="NEW_APP">%s</xliff:g> upang pamahalaan ang iyong mga koneksyon sa network?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Hindi kilalang SIM operator"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Walang kilalang nagpoprobisyong website ang %1$s"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Walang kilalang provisioning website ang <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Mangyaring magpasok ng SIM card at mag-restart"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Mangyaring kumonekta sa Internet"</string>
     <string name="location_title" msgid="1029961368397484576">"Aking Lokasyon"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Mga provider ng koleksyon ng imahe na galing sa satellite:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Nagkakaproblema sa paglo-load sa manual."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Mga lisensya ng third-party"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"May problema sa pag-load ng mga lisensya."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Naglo-load…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Impormasyon sa kaligtasan"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Pangtipid ng baterya"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Awtomatikong i-on"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Hindi Kailanman"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s na lang ang natitirang baterya"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"sa <xliff:g id="PERCENT">%1$s</xliff:g> baterya"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Stats ng Proseso"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Mahahalagang istatistika tungkol sa mga tumatakbong proseso"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Memory na ginamit"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume ng pag-ring"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Volume ng notification"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Ringtone ng telepono"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Default, tunog ng notification"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Default na tunog ng alarm"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Mag-vibrate din para sa tawag"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Iba pang mga tunog"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Mga tono ng dial pad"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Hindi ka ba makapag-sign in?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Magpadala ng impormasyon ng system"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Huwag nang ipakitang muli"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Humihiling bilang"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Magdagdag ng account"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Mga setting ng profile sa trabaho"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Paghahanap ng contact"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Payagan ang iyong organisasyon na maghanap ng contact upang makilala ang mga tumatawag at contact"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"I-auto sync ang account data"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"I-auto sync ang personal account data"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"I-auto sync work account data"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Pag-sync ng account"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacy"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacy"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Upang makapagbigay ng access sa iyong data sa trabaho, maaaring baguhin ng organisasyon mo ang mga setting at mag-install ng software sa iyong device, na maaaring magsanhi upang makita ng admin mo ang ilan sa iyong personal na content. Makipag-ugnayan sa admin ng iyong organisasyon para sa higit pang detalye."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Anong uri ng impormasyon ang makikita ng organisasyon mo?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Anong pagbabago ang may epekto sa makikita ng organisasyon mo?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Anong pagkilos ang may epekto sa access mo sa device na ito?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data na nauugnay sa iyong account sa trabaho, gaya ng email at kalendaryo"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Listahan ng lahat ng app sa iyong device"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Listahan ng lahat ng <xliff:g id="COUNT_1">%d</xliff:g> app sa iyong device</item>
+      <item quantity="other">Listahan ng lahat ng <xliff:g id="COUNT_1">%d</xliff:g> na app sa iyong device</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Paggamit (oras na ginugol at dami ng data na nagamit) ng bawat app sa iyong device"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Mga log ng trapiko sa iyong device"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Ang iyong pinakakamakailang ulat ng bug"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ang iyong pinakakamakailang log ng seguridad"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Hindi kailanman"</string>
 </resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 361b33a..cbf9f49 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ekranı aç"</item>
     <item msgid="3253368931113490863">"hesapları al"</item>
     <item msgid="780392378084812901">"arka planda çalıştır"</item>
+    <item msgid="2629748510881309577">"erişilebilirlik ses düzeyi"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Konum"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Ekranı aç"</item>
     <item msgid="5258373962467495905">"Hesapları al"</item>
     <item msgid="334625385979270703">"Arka planda çalıştır"</item>
+    <item msgid="9039213578110332702">"Erişilebilirlik ses düzeyi"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Kısa"</item>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 9f4d340..3a2a3bf 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" adlı cihaza bağlanmak için hafifçe dokunun."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" adlı cihaza bağlanmak istiyor musunuz?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Telefon defterine erişim isteği"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s, kişilerinize ve çağrı geçmişinize erişmek istiyor. %2$s uygulamasına erişim izni verilsin mi?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> kişilerinize ve çağrı geçmişinize erişmek istiyor. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> cihazına erişim verilsin mi?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Tekrar sorma"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Tekrar sorma"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Mesaj erişim isteği"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Ayarlar"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Ayarlar"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Ayarlar kısayolu"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Eşleşen hiçbir etkinlik bulunamadı."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Uçak modu"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Diğer"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Kablosuz özelliği ve ağlar"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Ağ bağlantılarınızı yönetmek için <xliff:g id="CURRENT_APP">%2$s</xliff:g> yerine <xliff:g id="NEW_APP">%1$s</xliff:g> uygulaması kullanılsın mı?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Ağ bağlantılarınızı yönetmek için <xliff:g id="NEW_APP">%s</xliff:g> kullanılsın mı?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Bilinmeyen SIM operatörü"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s için bilinen bir provizyon web sitesi yok"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>, bilinen temel hazırlık web sitesine sahip değil"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Lütfen SIM kartı takın ve yeniden başlatın"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Lütfen İnternet\'e bağlanın"</string>
     <string name="location_title" msgid="1029961368397484576">"Konumum"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Uydu görüntüleri sağlayıcıları:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Manuel"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Kılavuzun yüklenmesiyle ilgili bir sorun var."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Üçüncü taraf lisansları"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Lisanslar yüklenirken bir sorun oluştu."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Yükleniyor…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Güvenlik bilgileri"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Pil tasarrufu"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Otomatik olarak aç"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Hiçbir zaman"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Pil %1$s düzeyine düştüğünde"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> pil gücü"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"İşlem İstatistikleri"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Meraklısı için, çalışan işlemlerle ilgili istatistikler"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Bellek kullanımı"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Zil sesi düzeyi"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Bildirim sesi düzeyi"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Telefon zil sesi"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Varsayılan bildirim sesi"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Varsayılan alarm sesi"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Çağrılarda ayrıca titret"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Diğer sesler"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Tuş takımı sesleri"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Oturum açamıyor musunuz?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Sistem bilgilerini gönder"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Bir daha gösterme"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"İstekte bulunan hesap:"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Hesap ekle"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"İş profili ayarları"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kişi arama"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Arayanların ve kişilerin kimliğini belirlemek için kuruluşunuz tarafından yapılan kişi aramalarına izin verin"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Hesap verilerini oto. senk. et"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Kişisel hesap verilerini oto. senk. et"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"İş hesabı verilerini oto. senk. et"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Hesap senkronizasyonu"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Gizlilik"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Gizlilik"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"İş verilerinize erişim sağlamak için kuruluşunuz ayarları değiştirebilir ve cihazınıza yazılım yükleyebilir. Bu durum, bazı kişisel içeriklerinizin yöneticiniz tarafından görülmesine neden olabilir. Daha fazla bilgi edinmek için kuruluşunuzun yöneticisiyle iletişim kurun."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Kuruluşunuz ne tür bilgileri görebilir?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Hangi değişiklikler kuruluşunuzun görebileceklerini etkiler?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Bu cihaza erişiminizi hangi işlemler etkileyebilir?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"E-posta ve takvim gibi iş hesabınızla ilişkilendirilen veriler"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Cihazınızdaki tüm uygulamaların listesi"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Cihazınızdaki <xliff:g id="COUNT_1">%d</xliff:g> uygulamanın tümünün listesi</item>
+      <item quantity="one">Cihazınızdaki <xliff:g id="COUNT_0">%d</xliff:g> uygulamanın tümünün listesi</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Cihazınızdaki her uygulamanın kullanımı (harcanan zaman ve kullanılan veri miktarı)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Cihazınızdaki trafik girişleri"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Son hata raporunuz"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Son güvenlik girişiniz"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Hiçbir zaman"</string>
 </resources>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index c248629..057a272 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"вмикати екран"</item>
     <item msgid="3253368931113490863">"отримувати дані облікових записів"</item>
     <item msgid="780392378084812901">"працювати у фоновому режимі"</item>
+    <item msgid="2629748510881309577">"спеціальні можливості: гучність"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Місцезнаходження"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Вмикати екран"</item>
     <item msgid="5258373962467495905">"Отримувати дані облікових записів"</item>
     <item msgid="334625385979270703">"Працювати у фоновому режимі"</item>
+    <item msgid="9039213578110332702">"Спеціальні можливості: гучність"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Коротка"</item>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 056703e..5a41f7a 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -152,7 +152,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Торкніться, щоб під’єднатися до пристрою <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Підключитися до пристрою \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Запит на доступ до телефонної книги"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s хоче отримати доступ до ваших контактів й історії викликів. Надати %2$s доступ?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Пристрою <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> потрібен доступ до ваших контактів та історії викликів. Надати доступ пристрою <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Не запитувати знову"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Не запитувати знову"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Запит на доступ до повідомлень"</string>
@@ -274,6 +274,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Налаштування"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Налаштування"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Ярлик налаштувань"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Немає такої активності."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Режим польоту"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Більше"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Бездротовий зв\'язок і мережі"</string>
@@ -1321,7 +1322,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Використовувати <xliff:g id="NEW_APP">%1$s</xliff:g> замість додатка <xliff:g id="CURRENT_APP">%2$s</xliff:g> для керування з’єднаннями?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Використовувати <xliff:g id="NEW_APP">%s</xliff:g> для керування з’єднаннями?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Невідомий оператор SIM-карти"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s не має веб-сайту для мобільних"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Оператор <xliff:g id="OPERATOR">%1$s</xliff:g> не має веб-сайту про надання послуг"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Вставте SIM-карту та перезапустіть"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Під’єднайтеся до Інтернету"</string>
     <string name="location_title" msgid="1029961368397484576">"Моє місцезнах."</string>
@@ -1377,8 +1378,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Постачальники супутникових зображень:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Посібник"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Не вдалося завантажити посібник."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Ліцензії третьої сторони"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Під час завантаж. ліцензій виникла пробл."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Завант-ня…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Інф-я про безпеку"</string>
@@ -1966,7 +1966,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Режим енергозбереження"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Вмикати автоматично"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Ніколи"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"заряд акумулятора – %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"коли рівень заряду акумулятора – <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Статистика про процеси"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Статистика про запущені процеси"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Використання пам’яті"</string>
@@ -2650,10 +2650,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Гучність дзвінка"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Гучність сповіщень"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Мелодія телефона"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Стандартний сигнал сповіщень"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Стандартний сигнал будильника"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Також вібросигнал для дзвінків"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Інші звуки"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Звуки цифрової клавіатури"</string>
@@ -3287,6 +3285,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Не можете ввійти?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Надіслати інформацію про систему"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Більше не показувати"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Запит з облікового запису"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Додати обліковий запис"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Налаштування робочого профілю"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Пошук контактів"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Дозволити вашій організації шукати контакти, щоб визначати абонентів і контактних осіб"</string>
@@ -3365,20 +3365,24 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Автосинхронізувати дані"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Автосинхронізувати особисті дані"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Автосинхронізувати робочі дані"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Синхронізація облікового запису"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Конфіденційність"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Конфіденційність"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Щоб надати доступ до робочих даних, адміністратор організації може змінити налаштування вашого пристрою та встановити на ньому програмне забезпечення. Через це він зможе бачити деякий ваш особистий вміст. Щоб дізнатися більше, зв’яжіться з адміністратором своєї організації."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Яку інформацію може бачити ваша організація?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Які зміни впливають на те, що може бачити ваша організація?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Які дії можуть вплинути на доступ до пристрою?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Дані, пов’язані з вашим робочим обліковим записом, як-от електронну адресу та календар"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Список усіх додатків на вашому пристрої"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Список усіх додатків на пристрої (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="few">Список усіх додатків на пристрої (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="many">Список усіх додатків на пристрої (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="other">Список усіх додатків на пристрої (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Використання (час роботи й обсяг трафіку) кожного додатка на вашому пристрої"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Журнали трафіку на вашому пристрої"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Останнє повідомлення про помилку"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ваш останній журнал безпеки"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Ніколи"</string>
 </resources>
diff --git a/res/values-ur-rPK/arrays.xml b/res/values-ur-rPK/arrays.xml
index 125d728..47f3e7f 100644
--- a/res/values-ur-rPK/arrays.xml
+++ b/res/values-ur-rPK/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"اسکرین آن کریں"</item>
     <item msgid="3253368931113490863">"اکاؤنٹس حاصل کریں"</item>
     <item msgid="780392378084812901">"پس منظر میں چلائیں"</item>
+    <item msgid="2629748510881309577">"ایکسیسبیلٹی والیوم"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"مقام"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"اسکرین آن کریں"</item>
     <item msgid="5258373962467495905">"اکاؤنٹس حاصل کریں"</item>
     <item msgid="334625385979270703">"پس منظر میں چلائیں"</item>
+    <item msgid="9039213578110332702">"ایکسیسبیلٹی والیوم"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"مختصر"</item>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index 05cae1b..b0a9f5d 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" سے مربوط ہونے کیلئے تھپتھپائیں۔"</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"کیا آپ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" سے مربوط ہونا چاہتے ہیں؟"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"فون بک تک رسائی کی درخواست"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"‏%1$s آپ کے رابطوں اور کال کی سرگزشت تک رسائی حاصل کرنا چاہتا ہے۔ ‎%2$s کو رسائی دیں؟"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> آپ کے رابطوں اور کال کی سرگزشت تک رسائی کرنا چاہتا ہے۔ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> کو رسائی دیں؟"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"دوبارہ نہ پوچھیں"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"دوبارہ مت پوچھیں"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"پیغام تک رسائی کی درخواست"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"ترتیبات"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"ترتیبات"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"ترتیبات کا شارٹ کٹ"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"کوئی مماثل سرگرمیاں نہیں ملیں۔"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"ہوائی جہاز وضع"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"مزید"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"وائرلیس اور نیٹ ورکس"</string>
@@ -1289,7 +1290,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"اپنے نیٹ ورک کنکشنز کا نظم کرنے کیلئے <xliff:g id="CURRENT_APP">%2$s</xliff:g> کے بجائے <xliff:g id="NEW_APP">%1$s</xliff:g> کا استعمال کریں؟"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"اپنے نیٹ ورک کنکشنز کا نظم کرنے کیلئے <xliff:g id="NEW_APP">%s</xliff:g> کا استعمال کریں؟"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"‏نامعلوم SIM آپریٹر"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"‏%1$s کے پاس کوئی معروف التزامی ویب سائٹ نہیں ہے"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> کے پاس کوئی معلوم پرووژننگ ویب سائٹ نہیں ہے"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"‏براہ کرم SIM کارڈ داخل کرکے دوبارہ شروع کریں"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"براہ کرم انٹرنیٹ سے مربوط کریں"</string>
     <string name="location_title" msgid="1029961368397484576">"میرا مقام"</string>
@@ -1345,8 +1346,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"‏سیٹلائٹ تصاویر کے فراہم کنندگان:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"مینوئل"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"مینوئل لوڈ کرنے میں ایک مسئلہ ہے۔"</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"فریق ثالث کے لائسنسز"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"لائسنسز لوڈ کرنے میں ایک مسئلہ ہے۔"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"لوڈ ہو رہا ہے…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"حفاظت سے متعلق معلومات"</string>
@@ -1691,10 +1691,10 @@
     <string name="app_name_label" msgid="5440362857006046193">"ایپ"</string>
     <string name="last_time_used_label" msgid="8459441968795479307">"آخری بار استعمال کردہ"</string>
     <string name="usage_time_label" msgid="295954901452833058">"استعمال کا وقت"</string>
-    <string name="accessibility_settings" msgid="3975902491934816215">"Accessibility"</string>
-    <string name="accessibility_settings_title" msgid="2130492524656204459">"‏Accessibility ترتیبات"</string>
+    <string name="accessibility_settings" msgid="3975902491934816215">"ایکسیسبیلٹی"</string>
+    <string name="accessibility_settings_title" msgid="2130492524656204459">"ایکسیسبیلٹی ترتیبات"</string>
     <string name="vision_settings_title" msgid="4204111425716868288">"بصارتی ترتیبات"</string>
-    <string name="vision_settings_description" msgid="5679491180156408260">"‏آپ اس آلہ کو اپنی ضروریات کے مطابق حسب ضرورت بنا سکتے ہیں۔ یہ accessibility خصوصیات بعد میں ترتیبات میں تبدیل ہو سکتی ہیں۔"</string>
+    <string name="vision_settings_description" msgid="5679491180156408260">"آپ اس آلہ کو اپنی ضروریات کے مطابق حسب ضرورت بنا سکتے ہیں۔ یہ ایکسیسبیلٹی خصوصیات بعد میں ترتیبات میں تبدیل ہو سکتی ہیں۔"</string>
     <string name="accessibility_services_title" msgid="2592221829284342237">"سروسز"</string>
     <string name="talkback_title" msgid="7912059827205988080">"Talkback"</string>
     <string name="talkback_summary" msgid="8331244650729024963">"سکرین قاری بنیادی طور پر اندھے پن اور کم بصارت والے لوگوں کیلئے ہے"</string>
@@ -1704,10 +1704,10 @@
     <string name="accessibility_screen_magnification_title" msgid="9002237235486714636">"میگنیفکیشن اشارے"</string>
     <string name="accessibility_screen_magnification_short_summary" msgid="3411979839172752057">"زوم کرنے کیلئے 3 بار تھپتھپائیں"</string>
     <string name="accessibility_screen_magnification_summary" msgid="7798920976388197258"><b>"زوم کرنے کیلئے"</b>"، ایک انگلی کے ساتھ اسکرین کو 3 دفعہ تیزی سے تھپتھپائیں۔\n"<ul><li>"سکرول کرنے کیلئے 2 یا زیادہ انگلیاں گھسیٹیں"</li>\n<li>"زوم ایڈجسٹ کرنے کیلئے 2 یا زیادہ انگلیوں سے چٹکی بھریں یا کھولیں"</li></ul>\n\n<b>"عارضی طور پر زوم کرنے کیلئے"</b>"، اسکرین کو 3 بار تیزی سے تھپتھپائیں اور تیسری تھپتھپاہٹ پر اپنی انگلی نیچے کو دبائے رکھیں۔\n"<ul><li>"اسکرین کے اوپر اِدھر اُدھر حرکت دینے کیلئے اپنی انگلی گھسیٹیں"</li>\n<li>"زوم آؤٹ کرنے کیلئے اپنی انگلی اٹھائیں"</li></ul>\n\n"آپ کی بورڈ اور نیویگیشن بار پر زوم ان نہیں کر سکتے۔"</string>
-    <string name="accessibility_global_gesture_preference_title" msgid="6752037184140789970">"‏Accessibility کا شارٹ کٹ"</string>
+    <string name="accessibility_global_gesture_preference_title" msgid="6752037184140789970">"ایکسیسبیلٹی کا شارٹ کٹ"</string>
     <string name="accessibility_global_gesture_preference_summary_on" msgid="6180927399052022181">"آن"</string>
     <string name="accessibility_global_gesture_preference_summary_off" msgid="8102103337813609849">"آف"</string>
-    <string name="accessibility_global_gesture_preference_description" msgid="1605107799571936715">"‏جب یہ خصوصیت آن ہوتی ہے تو آپ تیزی سے دو مراحل میں accessibility خصوصیات فعال کر سکتے ہیں:\n\nمرحلہ 1: پاور بٹن کو اس وقت تک دبائے رکھیں جب تک آپ کوئی آواز نہیں سن لیتے یا وائبریشن محسوس نہیں کر لیتے ہیں۔\n\nمرحلہ 2: دو انگلیوں سے اس وقت تک دبائے رکھیں جب تک آپ آڈیو تصدیق نہیں سن لیتے ہیں۔\n\nاگر آلہ کے متعدد صارفین ہیں تو مقفل اسکرین پر اس شارٹ کٹ کا استعمال accessibility کو عارضی طور پر اس وقت تک کیلئے فعال کر دیتا ہے جب تک آلہ غیر مقفل نہیں ہو جاتا۔"</string>
+    <string name="accessibility_global_gesture_preference_description" msgid="1605107799571936715">"جب یہ خصوصیت آن ہوتی ہے تو آپ تیزی سے دو مراحل میں ایکسیسبیلٹی خصوصیات فعال کر سکتے ہیں:\n\nمرحلہ 1: پاور بٹن کو اس وقت تک دبائے رکھیں جب تک آپ کوئی آواز نہیں سن لیتے یا وائبریشن محسوس نہیں کر لیتے ہیں۔\n\nمرحلہ 2: دو انگلیوں سے اس وقت تک دبائے رکھیں جب تک آپ آڈیو تصدیق نہیں سن لیتے ہیں۔\n\nاگر آلہ کے متعدد صارفین ہیں تو مقفل اسکرین پر اس شارٹ کٹ کا استعمال ایکسیسبیلٹی کو عارضی طور پر اس وقت تک کیلئے فعال کر دیتا ہے جب تک آلہ غیر مقفل نہیں ہو جاتا۔"</string>
     <string name="accessibility_toggle_high_text_contrast_preference_title" msgid="2567402942683463779">"اعلی تناسب امتزاج والا متن"</string>
     <string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="7218498768415430963">"سکرین میگنیفکیشن از خود اپ ڈیٹ کریں"</string>
     <string name="accessibility_toggle_screen_magnification_auto_update_preference_summary" msgid="4392059334816220155">"ایپ تبدیلیوں پر سکرین میگنیفکیشن کو اپ ڈیٹ کریں"</string>
@@ -1780,7 +1780,7 @@
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> کو ضرورت ہے:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"چونکہ ایک ایپ اجازت کی درخواست کو مبہم کر رہی ہے، لہذا ترتیبات آپ کے جواب کی توثیق نہیں کر سکتی ہے۔"</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"اگر آپ <xliff:g id="SERVICE">%1$s</xliff:g> کو آن کرتے ہیں تو آپ کا آلہ ڈیٹا کی مرموزکاری کو بڑھانے کیلئے آپ کی اسکرین کا قفل استعمال نہیں کرے گا۔"</string>
-    <string name="secure_lock_encryption_warning" msgid="460911459695077779">"چونکہ آپ نے حالت رسائی کی ایک سروس کو آن کیا ہے لہذا آپ کا آلہ ڈیٹا کی مرموزکاری کو بڑھانے کیلئے آپ کی اسکرین کا قفل استعمال نہیں کرے گا۔"</string>
+    <string name="secure_lock_encryption_warning" msgid="460911459695077779">"چونکہ آپ نے ایکسیسبیلٹی کی ایک سروس کو آن کیا ہے لہذا آپ کا آلہ ڈیٹا کی مرموزکاری کو بڑھانے کیلئے آپ کی اسکرین کا قفل استعمال نہیں کرے گا۔"</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"کیونکہ <xliff:g id="SERVICE">%1$s</xliff:g> کو آن کرنے سے ڈیٹا کی مرموز کاری پر اثر پڑتا ہے، آپ کو اپنے پیٹرن کی توثیق کرنے کی ضرورت ہے۔"</string>
     <string name="enable_service_pin_reason" msgid="7882035264853248228">"‏کیونکہ <xliff:g id="SERVICE">%1$s</xliff:g> کو آن کرنے سے ڈیٹا کی مرموز کاری پر اثر پڑتا ہے، آپ کو اپنے PIN کی توثیق کرنے کی ضرورت ہے۔"</string>
     <string name="enable_service_password_reason" msgid="1224075277603097951">"کیونکہ <xliff:g id="SERVICE">%1$s</xliff:g> کو آن کرنے سے ڈیٹا کی مرموز کاری پر اثر پڑتا ہے، آپ کو اپنے پاس ورڈ کی توثیق کرنے کی ضرورت ہے۔"</string>
@@ -1920,7 +1920,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"بیٹری سیور"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"خود کار طور پر آن کریں"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"کبھی نہیں"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"‏‎%1$s‎ بیٹری پر"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> بیٹری پر"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"پروسیس اعداد و شمار"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"جاری پروسیسز کے بارے میں مفید اعداد و شمار"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"میموری کا استعمال"</string>
@@ -2549,7 +2549,7 @@
     <string name="keywords_battery" msgid="1173830745699768388">"پاور کا استعمال، چارج کریں"</string>
     <string name="keywords_spell_checker" msgid="1399641226370605729">"ہجے، لغت، املا جانچ کرنا، خود کار درستی"</string>
     <string name="keywords_voice_input" msgid="769778245192531102">"شناخت کار، ان پٹ، اسپیچ، بولیں، زبان، ہینڈز فری، ہینڈ فری، شناخت، ناگوار، لفظ، آڈیو، سرگزشت، بلوٹوتھ ہیڈ سیٹ"</string>
-    <string name="keywords_text_to_speech_output" msgid="5150660047085754699">"‏درجہ دیں، زبان، ڈیفالٹ، بولیں، بولنا، tts، ‏accessibility، اسکرین ریڈر، نابینا"</string>
+    <string name="keywords_text_to_speech_output" msgid="5150660047085754699">"‏درجہ دیں، زبان، ڈیفالٹ، بولیں، بولنا، tts، ‏ایکسیسبیلٹی، اسکرین ریڈر، نابینا"</string>
     <string name="keywords_date_and_time" msgid="758325881602648204">"گھڑی، فوج"</string>
     <string name="keywords_network_reset" msgid="6024276007080940820">"ری سیٹ کریں، بحال کریں، فیکٹری"</string>
     <string name="keywords_factory_data_reset" msgid="5894970373671252165">"صاف کریں، حذف کریں، بحال کریں، ختم کریں، ہٹائیں"</string>
@@ -2592,10 +2592,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"رنگ والیوم"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"اطلاع کا والیوم"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"فون رنگ ٹون"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"اطلاع کی ڈیفالٹ آواز"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"الارم کی ڈیفالٹ آواز"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"کالز کیلئے وائبریٹ بھی کرے"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"دیگر آوازیں"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"ڈائل پیڈ ٹونز"</string>
@@ -2810,9 +2808,9 @@
     <string name="encrypt_talkback_dialog_require_pin" msgid="8299960550048989807">"‏PIN درکار ہے؟"</string>
     <string name="encrypt_talkback_dialog_require_pattern" msgid="1499790256154146639">"پیٹرن درکار ہے؟"</string>
     <string name="encrypt_talkback_dialog_require_password" msgid="8841994614218049215">"پاس ورڈ درکار ہے؟"</string>
-    <string name="encrypt_talkback_dialog_message_pin" msgid="7582096542997635316">"‏جب آپ یہ آلہ شروع کرنے کیلئے اپنا PIN داخل کریں گے تو <xliff:g id="SERVICE">%1$s</xliff:g> جیسی رسائی سروسز اس وقت ابھی دستیاب نہیں ہوں گی۔"</string>
-    <string name="encrypt_talkback_dialog_message_pattern" msgid="2020083142199612743">"یہ آلہ شروع کرنے کیلئے جب آپ اپنا پیٹرن داخل کریں گے تو <xliff:g id="SERVICE">%1$s</xliff:g> جیسی رسائی سروسز اس وقت ابھی دستیاب نہیں ہوں گی۔"</string>
-    <string name="encrypt_talkback_dialog_message_password" msgid="4155875981789127796">"اس آلہ کو شروع کرنے کیلئے جب آپ اپنا پاس ورڈ درج کریں گے تو <xliff:g id="SERVICE">%1$s</xliff:g> جیسی رسائی سروسز اس وقت ابھی دستیاب نہیں ہوں گی۔"</string>
+    <string name="encrypt_talkback_dialog_message_pin" msgid="7582096542997635316">"‏جب آپ یہ آلہ شروع کرنے کیلئے اپنا PIN داخل کریں گے تو <xliff:g id="SERVICE">%1$s</xliff:g> جیسی ایکسیسبیلٹی سروسز اس وقت ابھی دستیاب نہیں ہوں گی۔"</string>
+    <string name="encrypt_talkback_dialog_message_pattern" msgid="2020083142199612743">"یہ آلہ شروع کرنے کیلئے جب آپ اپنا پیٹرن داخل کریں گے تو <xliff:g id="SERVICE">%1$s</xliff:g> جیسی ایکسیسبیلٹی سروسز اس وقت ابھی دستیاب نہیں ہوں گی۔"</string>
+    <string name="encrypt_talkback_dialog_message_password" msgid="4155875981789127796">"اس آلہ کو شروع کرنے کیلئے جب آپ اپنا پاس ورڈ درج کریں گے تو <xliff:g id="SERVICE">%1$s</xliff:g> جیسی ایکسیسبیلٹی سروسز اس وقت ابھی دستیاب نہیں ہوں گی۔"</string>
     <string name="direct_boot_unaware_dialog_message" msgid="7870273558547549125">"نوٹ: ریبوٹ کرنے کے بعد یہ ایپ تب تک شروع نہیں ہو سکتی جب تک آپ اپنا فون غیر مقفل نہ کر لیں"</string>
     <string name="imei_information_title" msgid="8499085421609752290">"‏IMEI کی معلومات"</string>
     <string name="imei_information_summary" msgid="2074095606556565233">"‏IMEI سے متعلق معلومات"</string>
@@ -3209,6 +3207,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"سائن ان نہیں کر سکتے؟"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"سسٹم کی معلومات بھیجیں"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"دوبارہ مت دکھائیں"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"درخواست کی جا رہی ہے بطور"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"اکاؤنٹ شامل کریں"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"دفتری پروفائل کی ترتیبات"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"رابطہ تلاش"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"کالرز اور رابطوں کی شناخت کیلئے اپنی تنظیم کی جانب سے رابطہ تلاشیوں کی اجازت دیں"</string>
@@ -3281,20 +3281,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"اکاؤنٹ ڈیٹا کو خودکار مطابقت پذیر بنائیں"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"ذاتی اکاؤنٹ ڈیٹا کو خودکار مطابقت پذیر بنائیں"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"دفتری اکاؤنٹ ڈیٹا کو خودکار مطابقت پذیر بنائیں"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"اکاؤنٹ کی مطابقت پذیری"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"رازداری"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"رازداری"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"آپ کے دفتری ڈیٹا تک رسائی مہیا کرنے کیلئے، آپ کی تنظیم ہو سکتا ہے ترتیبات تبدیل کرے اور آپ کے آلہ پر سافٹ وئیر انسٹال کرے، جس سے آپ کے ذاتی مواد میں سے کچھ آپ کے منتظم کیلئے مرئی ہو سکتا ہے۔ مزید تفصیلات کیلئے اپنی تنظیم کے منتظم سے رابطہ کریں۔"</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"آپ کی تنظیم کن اقسام کی معلومات دیکھ سکتی ہے؟"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"آپ کی تنظیم کیا دیکھ سکتی ہے اس پر کون سی تبدیلیاں اثر انداز ہو سکتی ہیں؟"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"اس آلہ تک آپ کی رسائی پر کون سی کاروائیاں اثر انداز ہو سکتی ہیں؟"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"آپ کے دفتری اکاؤنٹ سے وابستہ ڈیٹا، جیسے ای میل اور کیلنڈر"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"آپ کے آلہ پر موجود تمام ایپس کی فہرست"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">آپ کے آلہ پر موجود تمام <xliff:g id="COUNT_1">%d</xliff:g> ایپس کی فہرست</item>
+      <item quantity="one">آپ کے آلہ پر موجود تمام <xliff:g id="COUNT_0">%d</xliff:g> ایپ کی فہرست</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"آپ کے آلہ پر موجود ہر ایپ کا استعمال (صرف شدہ وقت اور استعمال کردہ ڈیٹا کی مقدار)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"آپ کے آلہ پر ٹریفک لاگز"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"آپ کی سب سے حالیہ بگ رپورٹ"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"آپ کا حالیہ ترین سیکیورٹی لاگ"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"کبھی نہیں"</string>
 </resources>
diff --git a/res/values-uz-rUZ/arrays.xml b/res/values-uz-rUZ/arrays.xml
index 3ee0f62..02f3eec 100644
--- a/res/values-uz-rUZ/arrays.xml
+++ b/res/values-uz-rUZ/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"ekranni yoqish"</item>
     <item msgid="3253368931113490863">"hisoblarni olish"</item>
     <item msgid="780392378084812901">"fonda ishga tushirish"</item>
+    <item msgid="2629748510881309577">"maxsus imkoniyatlar ovozi balandligi"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Joylashuv"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Ekranni yoqish"</item>
     <item msgid="5258373962467495905">"Hisoblarni olish"</item>
     <item msgid="334625385979270703">"Fonda ishga tushirish"</item>
+    <item msgid="9039213578110332702">"Maxsus imkoniyatlar ovozi balandligi"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Qisqa"</item>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index ba5b9da..0027a48 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"“<xliff:g id="DEVICE_NAME">%1$s</xliff:g>” qurilmasiga ulanish uchun bosing."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" qurilmasiga ulanmoqchimisiz?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Telefon daftarchasiga kirish so‘rovi"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s aloqalaringiz ro‘yxati va qo‘ng‘iroqlaringiz jurnaliga kirmoqchi. %2$s‘ga kirish ruxsati berilsinmi?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> kontaktlar va chaqiruvlar tarixidan foydalanmoqchi <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> qurilmasiga ruxsat berilsinmi?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Boshqa so‘rama"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Boshqa so‘ralmasin"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Xabarga kirish so‘rovi"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Sozlamalar"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Sozlamalar"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Sozlamalar yorlig‘i"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Hech qanday mos faoliyat topilmadi."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Parvoz rejimi"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Yana"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Simsiz tarmoqlar"</string>
@@ -760,7 +761,7 @@
     <string name="wifi_wps_available_first_item" msgid="4422547079984583502">"WPS mavjud"</string>
     <string name="wifi_wps_available_second_item" msgid="8427520131718215301">" (WPS mavjud)"</string>
     <string name="wifi_wps_nfc_enter_password" msgid="2288214226916117159">"Tarmoqqa ulanish uchun parolni kiriting"</string>
-    <string name="wifi_scan_always_turnon_message" msgid="203123538572122989">"Joylashuv aniqligini yana ham yaxshilash va boshqa maqsadlar uchun, Wi-Fi o‘chirilgan bo‘lsada <xliff:g id="APP_NAME">%1$s</xliff:g> tarmoqlarni skanlash vazifasini yoqmoqchi.\n\nBu ruxsat tarmoqlarni skanlashni istagan barcha ilovalarga berilsinmi?"</string>
+    <string name="wifi_scan_always_turnon_message" msgid="203123538572122989">"Joylashuv aniqligini yana ham yaxshilash va boshqa maqsadlar uchun, Wi-Fi o‘chirilgan bo‘lsada <xliff:g id="APP_NAME">%1$s</xliff:g> tarmoqlarni qidirish vazifasini yoqmoqchi.\n\nBu ruxsat tarmoqlarni qidirishni istagan barcha ilovalarga berilsinmi?"</string>
     <string name="wifi_scan_always_turnoff_message" msgid="5538901671131941043">"Uni o‘chirish uchun menyudan “Qo‘shimcha” bandiga o‘ting."</string>
     <string name="wifi_scan_always_confirm_allow" msgid="5355973075896817232">"Ruxsat berish"</string>
     <string name="wifi_scan_always_confirm_deny" msgid="4463982053823520710">"Rad etish"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Tarmoq ulanishlarini boshqarish uchun “<xliff:g id="CURRENT_APP">%2$s</xliff:g>” o‘rniga “<xliff:g id="NEW_APP">%1$s</xliff:g>” ilovasidan foydalanilsinmi?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Tarmoq ulanishlarini boshqarish uchun “<xliff:g id="NEW_APP">%s</xliff:g>” ilovasidan foydalanilsinmi?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Noma’lum uyali aloqa operatori"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s hech qanday ma‘lum veb-saytga ega emas"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> operatorida sinxronlash uchun sayti yo‘q"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Iltimos, SIM kartani joylashtirib, qurilmani ochirib-yoqing"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Iltimos, Internetga ulaning"</string>
     <string name="location_title" msgid="1029961368397484576">"Mening joylashuvim"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Sun’iy yo‘ldoshdan olingan rasmlar:\n© CNES 2014/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Qo‘llanma"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Qo‘llanmani yuklashda muammo yuz berdi."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Uchinchi tomon litsenziyalari"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Litsenziyalarni yuklashda muammo yuz berdi."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Yuklanmoqda…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Xavfsizlik qoidalari"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Quvvat tejash rejimi"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Avtomatik yoqish"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Hech qachon"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"batareya quvvati %1$s qolganda"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"batareya quvvati: <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Jarayonlar statistikasi"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Ish jarayonlari haqidagi g‘alati statistikalar"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Band xotira"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Rington"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Bildirishnomalar ovozi"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Telefon ringtoni"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Standart bildirishnoma signali"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Standart signal"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Chaqiruv vaqtida tebranish"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Boshqa ovozlar"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Raqam terilgandagi ovoz"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Hisobingizga kirib bo‘lmadimi?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Tizim haqida ma’lumotlarni yuborish"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Boshqa ko‘rsatilmasin"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"So‘rov yuborish…"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Hisob qo‘shish"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Ishchi profil sozlamalari"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktlarni qidirish"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Tashkilot nomi bo‘yicha qidiruvda qo‘ng‘iroq qiluvchi abonent va uning kontaktini aniqlashga ruxsat berish"</string>
@@ -3258,7 +3258,7 @@
     <string name="gesture_preference_summary" product="tablet" msgid="4717535378272065510">"Planshetni boshqarish uchun tezkor imo-ishoralar"</string>
     <string name="gesture_preference_summary" product="device" msgid="4205941452664950852">"Qurilmani boshqarish uchun tezkor imo-ishoralar"</string>
     <string name="double_tap_power_for_camera_title" msgid="64716226816032800">"Kameraga o‘tish"</string>
-    <string name="double_tap_power_for_camera_summary" msgid="242037150983277829">"Kamerani tez ochish uchun quvvat tugmasini ikki marta bosing. Har qanday ekranda ishlaydi."</string>
+    <string name="double_tap_power_for_camera_summary" msgid="242037150983277829">"Kamerani tezda ochish uchun quvvat tugmasini ikki marta bosing. Har qanday ekranda ishlaydi."</string>
     <string name="double_twist_for_camera_mode_title" msgid="4877834147983530479">"Kamerani almashtirish"</string>
     <string name="double_twist_for_camera_mode_summary" msgid="122977081337563340"></string>
     <string name="ambient_display_title" product="default" msgid="5144814600610448504">"Telefonni tekshirish uchun ekranni ikki marta bosing"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Avto-sinxronizatsiya (hisob)"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Avto-sinxronizatsiya (shaxsiy)"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Avto-sinxronizatsiya (ishchi)"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Hisobni sinxronlash"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Maxfiylik"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Maxfiylik"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Tashkilotingiz administratori qurilmangizda ish uchun zarur sozlamalarni o‘zgartirganda yoki ilovalar o‘rnatganda ba’zi shaxsiy ma’lumotlaringiz unga ko‘rishini mumkin. Qo‘shimcha ma’lumot olish uchun administratorga murojaat qiling."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Tashkilotingiz qaysi turdagi ma’lumotlarni ko‘ra oladi?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Tashkilotingizga ko‘rinadiganlarga qanday o‘zgarishlar ta’sir qiladi?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Bu qurilmadan foydalanishga qaysi amallar ta’sir qilishi mumkin?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"E-pochta va taqvim kabi ishchi hisob bilan bog‘liq ma’lumotlar"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Qurilmangizdagi barcha ilovalar ro‘yxati"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Qurilmadagi barcha <xliff:g id="COUNT_1">%d</xliff:g> ta ilova ro‘yxati</item>
+      <item quantity="one">Qurilmadagi barcha <xliff:g id="COUNT_0">%d</xliff:g> ta ilova ro‘yxati</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Qurilmadagi har bir ilovadan foydalanish statistikasi (sarflangan vaqt va trafik)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Qurilmangizdagi trafik jurnallari"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Eng oxirgi xatoliklar hisoboti"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Eng oxirgi xavfsizlik jurnali"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Hech qachon"</string>
 </resources>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index 1ae911b..dfc85c2 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"bật màn hình"</item>
     <item msgid="3253368931113490863">"nhận tài khoản"</item>
     <item msgid="780392378084812901">"chạy trong nền"</item>
+    <item msgid="2629748510881309577">"âm lượng của trợ năng"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Vị trí"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Bật màn hình"</item>
     <item msgid="5258373962467495905">"Nhận tài khoản"</item>
     <item msgid="334625385979270703">"Chạy trong nền"</item>
+    <item msgid="9039213578110332702">"Âm lượng của trợ năng"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Ngắn"</item>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index fcaf3f1..076f2df 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Nhấn để kết nối với \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Bạn có muốn kết nối với \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" không?"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Yêu cầu truy cập danh bạ"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s muốn truy cập danh bạ và lịch sử cuộc gọi của bạn. Cấp quyền truy cập cho %2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> muốn truy cập vào danh bạ và nhật ký cuộc gọi của bạn. Cấp quyền truy cập vào <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Không hỏi lại"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Không hỏi lại"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Yêu cầu truy cập tin nhắn"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Cài đặt"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Cài đặt"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Lối tắt cài đặt"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Không tìm thấy hoạt động nào phù hợp."</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Chế độ trên máy bay"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Thêm"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Không dây &amp; mạng"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Sử dụng <xliff:g id="NEW_APP">%1$s</xliff:g> thay cho <xliff:g id="CURRENT_APP">%2$s</xliff:g> để quản lý các kết nối mạng của bạn?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Sử dụng <xliff:g id="NEW_APP">%s</xliff:g> để quản lý các kết nối mạng của bạn?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nhà cung cấp dịch vụ SIM không xác định"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s không có trang web cấp phép xác định"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> không có trang web cấp phép xác định nào"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Vui lòng lắp thẻ SIM và khởi động lại"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Vui lòng kết nối internet"</string>
     <string name="location_title" msgid="1029961368397484576">"Vị trí của tôi"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Nhà cung cấp ảnh vệ tinh:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Hướng dẫn sử dụng"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Đã xảy ra sự cố khi tải hướng dẫn sử dụng."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Giấy phép của bên thứ ba"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Đã xảy ra sự cố khi tải giấy phép."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Đang tải…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Thông tin an toàn"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Trình tiết kiệm pin"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Tự động bật"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Không bao giờ"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ở mức pin %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ở mức <xliff:g id="PERCENT">%1$s</xliff:g> pin"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Số liệu thống kê về quy trình"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Số liệu thống kê chi tiết về các quy trình đang chạy"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Mức sử dụng bộ nhớ"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Âm lượng chuông"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Âm lượng thông báo"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Nhạc chuông điện thoại"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Âm thanh thông báo mặc định"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Âm thanh báo thức mặc định"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Đồng thời rung khi có cuộc gọi"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Âm thanh khác"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Âm bàn phím số"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Không thể đăng nhập?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Gửi thông tin hệ thống"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Không hiển thị lại"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Đang yêu cầu bằng"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Thêm tài khoản"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Cài đặt hồ sơ công việc"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Tìm kiếm liên hệ"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Cho phép tìm kiếm liên hệ theo tổ chức để xác định người gọi và liên hệ"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Tự động đồng bộ hóa dữ liệu TK"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Tự động đ.bộ d.liệu TK c.nhân"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Tự động đ.bộ dữ liệu TK c.việc"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Đồng bộ hóa tài khoản"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Bảo mật"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Bảo mật"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Để cung cấp quyền truy cập vào dữ liệu công việc, tổ chức của bạn có thể thay đổi cài đặt và cài đặt phần mềm trên thiết bị để khiến một số nội dung cá nhân của bạn hiển thị với quản trị viên. Hãy liên hệ với quản trị viên của tổ chức bạn để biết thêm chi tiết."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Tổ chức của bạn có thể thấy những loại thông tin nào?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Thay đổi nào ảnh hưởng đến nội dung tổ chức bạn có thể thấy?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Tác vụ nào có thể ảnh hưởng đến quyền truy cập thiết bị này?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dữ liệu được liên kết với tài khoản công việc của bạn, chẳng hạn như email và lịch"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Danh sách tất cả các ứng dụng trên thiết bị của bạn"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">Danh sách tất cả <xliff:g id="COUNT_1">%d</xliff:g> ứng dụng trên thiết bị của bạn</item>
+      <item quantity="one">Danh sách tất cả <xliff:g id="COUNT_0">%d</xliff:g> ứng dụng trên thiết bị của bạn</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Mức sử dụng (thời gian và lượng dữ liệu đã sử dụng) của từng ứng dụng trên thiết bị của bạn"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Nhật ký lưu lượng truy cập trên thiết bị của bạn"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Báo cáo lỗi gần đây nhất của bạn"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Nhật ký bảo mật gần đây nhất của bạn"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Không bao giờ"</string>
 </resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index bcc93d6..5f3daa3 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"开启屏幕"</item>
     <item msgid="3253368931113490863">"获取帐号"</item>
     <item msgid="780392378084812901">"在后台运行"</item>
+    <item msgid="2629748510881309577">"无障碍功能音量"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"位置"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"开启屏幕"</item>
     <item msgid="5258373962467495905">"获取帐号"</item>
     <item msgid="334625385979270703">"在后台运行"</item>
+    <item msgid="9039213578110332702">"无障碍功能音量"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"短"</item>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index b6865ff..93864ba 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"点按即可连接到“<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”。"</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"要连接到“<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”吗？"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"电话簿权限申请"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s想要使用您的通讯录和通话记录。要向%2$s授予权限吗？"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> 想访问您的通讯录和通话记录。要向 <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> 授予访问权限吗？"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"不要再询问"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"下次不再询问"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"消息权限申请"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"设置"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"设置"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"设置快捷方式"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"未找到匹配的活动。"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"飞行模式"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"更多"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"无线和网络"</string>
@@ -711,7 +712,7 @@
     <string name="wifi_more" msgid="3195296805089107950">"更多"</string>
     <string name="wifi_setup_wps" msgid="8128702488486283957">"自动设置 (WPS)"</string>
     <string name="wifi_show_advanced" msgid="3409422789616520979">"高级选项"</string>
-    <string name="wifi_advanced_toggle_description_expanded" msgid="2380600578544493084">"高级选项下拉列表。点按两次即可折叠。"</string>
+    <string name="wifi_advanced_toggle_description_expanded" msgid="2380600578544493084">"高级选项下拉列表。点按两次即可收起。"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="1463812308429197263">"高级选项下拉列表。点按两次即可展开。"</string>
     <string name="wifi_wps_setup_title" msgid="8207552222481570175">"WLAN保护设置"</string>
     <string name="wifi_wps_setup_msg" msgid="315174329121275092">"正在启动 WPS..."</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"不再使用<xliff:g id="CURRENT_APP">%2$s</xliff:g>，而改用<xliff:g id="NEW_APP">%1$s</xliff:g>来管理您的网络连接吗？"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"要使用<xliff:g id="NEW_APP">%s</xliff:g>管理您的网络连接吗？"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"未知的SIM卡运营商"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s没有已知的配置网站"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>没有任何已知的配置网站"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"请插入SIM卡，然后重新启动"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"请连接到互联网"</string>
     <string name="location_title" msgid="1029961368397484576">"我的位置"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"卫星图像提供商：\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"手册"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"加载手册时出现问题。"</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"第三方许可"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"加载许可时出现问题。"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"正在加载..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"安全信息"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"省电模式"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"自动开启"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"一律不"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"电量剩余%1$s时"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"电量剩 <xliff:g id="PERCENT">%1$s</xliff:g> 时"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"进程统计信息"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"运行中进程的相关技术统计信息"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"内存用量"</string>
@@ -2606,10 +2606,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"铃声音量"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"通知音量"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"手机铃声"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"默认通知提示音"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"默认闹钟提示音"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"有来电时响铃并振动"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"其他提示音"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"拨号键盘提示音"</string>
@@ -3223,6 +3221,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"无法登录？"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"发送系统信息"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"不再显示"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"通过以下帐号提出请求："</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"添加帐号"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"工作资料设置"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"联系人搜索"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"允许您的单位搜索联系人，以便识别来电者和联系人的身份"</string>
@@ -3295,20 +3295,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"自动同步帐号数据"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"自动同步个人帐号数据"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"自动同步工作帐号数据"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"帐号同步"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"隐私权"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"隐私权"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"为了访问您的工作数据，贵单位可能会更改相应的设置并在您的设备上安装软件，这可能会导致您的管理员能够查看您的部分个人内容。要了解详情，请与贵单位的管理员联系。"</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"您的单位可查看哪些类型的信息？"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"哪些变更会影响您的单位可查看的内容？"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"哪些操作可能会影响您对此设备的访问权限？"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"与您的工作帐号关联的数据（例如电子邮件和日历）"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"您设备上所有应用的列表"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">您设备上全部 <xliff:g id="COUNT_1">%d</xliff:g> 个应用的列表</item>
+      <item quantity="one">您设备上全部 <xliff:g id="COUNT_0">%d</xliff:g> 个应用的列表</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"您设备上每个应用的使用情形（使用时间和数据用量）"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"您设备上的流量日志"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"您最新的错误报告"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"您最新的安全日志"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"一律不"</string>
 </resources>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index 79b8f58..6746afa 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"開啟螢幕"</item>
     <item msgid="3253368931113490863">"取得帳戶"</item>
     <item msgid="780392378084812901">"在背景中執行"</item>
+    <item msgid="2629748510881309577">"無障礙功能音量"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"位置"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"開啟螢幕"</item>
     <item msgid="5258373962467495905">"取得帳戶"</item>
     <item msgid="334625385979270703">"在背景中執行"</item>
+    <item msgid="9039213578110332702">"無障礙功能音量"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"短"</item>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 361b90f..0028c00 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"輕按即可連接至「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」。"</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"您要連線至「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」嗎？"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"電話簿存取權要求"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s 想存取您的通訊錄和通話記錄。要授予 %2$s 存取權嗎？"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> 要求存取您的聯絡人和通話記錄。允許 <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> 存取這些資料嗎？"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"不要再詢問"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"不要再詢問"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"訊息存取權要求"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"設定"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"設定"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"設定捷徑"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"找不到相符的活動。"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"飛行模式"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"更多"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"無線與網絡"</string>
@@ -1302,7 +1303,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"使用「<xliff:g id="NEW_APP">%1$s</xliff:g>」(取代「<xliff:g id="CURRENT_APP">%2$s</xliff:g>」) 管理您的網絡連線？"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"使用「<xliff:g id="NEW_APP">%s</xliff:g>」管理您的網絡連線？"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"未知的 SIM 流動網絡供應商"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s 沒有提供任何已知的網站"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> 沒有已知的佈建網站"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"請插入 SIM 卡，並重新啟動裝置"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"請連接互聯網"</string>
     <string name="location_title" msgid="1029961368397484576">"我的位置"</string>
@@ -1358,8 +1359,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"衛星影像供應商：\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"手動"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"載入指南時發生問題。"</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"第三方許可"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"載入授權時發生問題。"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"正在載入..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"安全資訊"</string>
@@ -1933,7 +1933,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"省電模式"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"自動開啟"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"永不"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"電量為 %1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> 電量"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"程序統計資料"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"執行中程序的技術統計資料"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"記憶體用量"</string>
@@ -2609,10 +2609,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"鈴聲音量"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"通知音量"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"電話鈴聲"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"預設通知音效"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"預設鬧鐘音效"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"來電時同時震動"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"其他音效"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"撥號鍵盤音效"</string>
@@ -2689,11 +2687,11 @@
     <string name="notification_listener_disable_warning_summary" msgid="6738915379642948000">"如果您關閉「<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>」的通知存取權，「請勿騷擾」的存取權亦可能會關閉。"</string>
     <string name="notification_listener_disable_warning_confirm" msgid="8333442186428083057">"關閉"</string>
     <string name="notification_listener_disable_warning_cancel" msgid="8586417377104211584">"取消"</string>
-    <string name="vr_listeners_title" msgid="1318901577754715777">"虛擬現實協助服務"</string>
-    <string name="no_vr_listeners" msgid="2689382881717507390">"沒有已安裝的應用程式要求使用虛擬現實協助服務。"</string>
-    <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"允許虛擬現實服務存取 <xliff:g id="SERVICE">%1$s</xliff:g> 嗎？"</string>
+    <string name="vr_listeners_title" msgid="1318901577754715777">"VR 助手服務"</string>
+    <string name="no_vr_listeners" msgid="2689382881717507390">"沒有已安裝的應用程式要求提供 VR 助手服務。"</string>
+    <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"允許 VR 服務存取 <xliff:g id="SERVICE">%1$s</xliff:g> 嗎？"</string>
     <string name="vr_listener_security_warning_summary" msgid="6931541068825094653">"在虛擬現實模式下使用應用程式時，方可使用「<xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g>」。"</string>
-    <string name="display_vr_pref_title" msgid="8104485269504335481">"裝置處於虛擬現實模式時"</string>
+    <string name="display_vr_pref_title" msgid="8104485269504335481">"裝置在 VR 模式時"</string>
     <string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"減少模糊 (建議)"</string>
     <string name="display_vr_pref_off" msgid="2190091757123260989">"減少閃爍"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"[請勿騷擾] 存取"</string>
@@ -3226,6 +3224,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"無法登入嗎？"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"傳送系統資料"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"不要再顯示"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"透過以下帳戶提出要求"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"新增帳戶"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"工作設定檔設定"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"聯絡人搜尋"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"允許您的機構搜尋聯絡人，以識別來電者和聯絡人"</string>
@@ -3298,20 +3298,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"自動同步帳戶資料"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"自動同步個人帳戶資料"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"自動同步工作帳戶資料"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"帳戶同步"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"私隱設定"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"私隱設定"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"如要提供工作資料存取權，您的機構可能需要變更您的裝置設定，並在您的裝置上安裝軟件。您的管理員可能會因而看到您的部分個人內容。請聯絡您機構的管理員以瞭解詳情。"</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"您機構可查看什麼類型的資料？"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"什麼變更可影響您機構能夠查看的資料？"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"什麼操作可影響您存取此裝置？"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"與您工作帳戶相關聯的資料，例如電郵和日曆"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"您裝置上所有應用程式的清單"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">您裝置上全部 <xliff:g id="COUNT_1">%d</xliff:g> 個應用程式的清單</item>
+      <item quantity="one">您裝置上全部 <xliff:g id="COUNT_0">%d</xliff:g> 個應用程式的清單</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"您裝置上每個應用程式的使用資料 (使用時間和數據用量)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"您裝置的網絡流量記錄"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"您最近的錯誤報告"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"您最近的安全記錄"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"永不"</string>
 </resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index a86804e..4fc1346 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"開啟螢幕"</item>
     <item msgid="3253368931113490863">"取得帳戶"</item>
     <item msgid="780392378084812901">"在背景執行"</item>
+    <item msgid="2629748510881309577">"協助工具音量"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"位置"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"開啟螢幕"</item>
     <item msgid="5258373962467495905">"取得帳戶"</item>
     <item msgid="334625385979270703">"在背景執行"</item>
+    <item msgid="9039213578110332702">"協助工具音量"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"短"</item>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 767fd1a..80e08d0 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"輕觸即可與「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」連線。"</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"您要連線至「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」嗎？"</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"電話簿存取權要求"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s 想存取您的通訊錄和通話紀錄。要將存取權授予 %2$s 嗎？"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"「<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>」要求存取你的聯絡人和通話紀錄。要將存取權授予「<xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>」嗎？"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"不要再詢問"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"不要再詢問"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"訊息存取權要求"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"設定"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"設定"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"設定捷徑"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"找不到相符的活動。"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"飛航模式"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"更多"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"無線與網路"</string>
@@ -1301,7 +1302,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"改以「<xliff:g id="NEW_APP">%1$s</xliff:g>」取代「<xliff:g id="CURRENT_APP">%2$s</xliff:g>」管理您的網路連線？"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"使用「<xliff:g id="NEW_APP">%s</xliff:g>」管理您的網路連線？"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"未知的 SIM 卡行動通訊業者"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s 沒有任何已知的佈建網站"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"「<xliff:g id="OPERATOR">%1$s</xliff:g>」沒有任何已知的佈建網站"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"請插入 SIM 卡，並重新啟動裝置"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"請連線至網際網路"</string>
     <string name="location_title" msgid="1029961368397484576">"我的位置"</string>
@@ -1357,8 +1358,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"衛星影像提供者：\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"說明書"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"載入說明書時發生問題。"</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"第三方授權"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"載入授權時發生問題"</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"載入中…"</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"安全資訊"</string>
@@ -1932,7 +1932,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"省電模式"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"自動開啟"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"永遠不要"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"電量為 %1$s 時"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"電量為 <xliff:g id="PERCENT">%1$s</xliff:g> 時"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"處理程序統計資料"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"執行中處理程序的相關完善統計資料"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"記憶體用量"</string>
@@ -2610,10 +2610,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"鈴聲音量"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"通知音量"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"電話鈴聲"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"預設通知音效"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"預設鬧鐘音效"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"來電時同時震動"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"其他音效"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"撥號鍵盤音效"</string>
@@ -3227,6 +3225,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"無法登入嗎？"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"傳送系統資訊"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"不要再顯示"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"透過以下帳戶提出要求"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"新增帳戶"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Work 設定檔設定"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"聯絡人搜尋"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"允許您的機構搜尋聯絡人，以便識別來電者和聯絡人的身分"</string>
@@ -3299,20 +3299,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"自動同步處理帳戶資料"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"自動同步處理個人帳戶資料"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"自動同步處理工作帳戶資料"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"帳戶同步處理"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"隱私權"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"隱私權"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"為了提供你的工作資料存取權，貴機構可能會在你的裝置上變更設定及安裝軟體，進而導致你的部分個人內容向管理員顯示。請與貴機構的管理員聯絡以瞭解詳情。"</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"貴機構可查看哪些類型的資訊？"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"哪些變更會影響貴機構可查看的內容？"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"哪些操作可能會影響你對這個裝置的存取權？"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"與工作帳戶相關聯的資料 (例如電子郵件和日曆)"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"裝置上所有應用程式的清單"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="other">裝置上所有應用程式的清單 (共 <xliff:g id="COUNT_1">%d</xliff:g> 個)</item>
+      <item quantity="one">裝置上所有應用程式的清單 (共 <xliff:g id="COUNT_0">%d</xliff:g> 個)</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"裝置上每個應用程式的使用情形 (使用時間和數據用量)"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"裝置的流量紀錄"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"最新錯誤報告"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"最新安全性紀錄"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"永遠不要"</string>
 </resources>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index 9093907..46bba3a 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -302,6 +302,7 @@
     <item msgid="6628873315024166197">"vula isikrini"</item>
     <item msgid="3253368931113490863">"thola ama-akhawunti"</item>
     <item msgid="780392378084812901">"sebenzisa emuva"</item>
+    <item msgid="2629748510881309577">"ivolumu yokufinyeleleka"</item>
   </string-array>
   <string-array name="app_ops_labels">
     <item msgid="6602854600289714121">"Indawo"</item>
@@ -368,6 +369,7 @@
     <item msgid="5832543806893763620">"Vula isikrini"</item>
     <item msgid="5258373962467495905">"Thola ama-akhawunti"</item>
     <item msgid="334625385979270703">"Sebenzisa emuva"</item>
+    <item msgid="9039213578110332702">"Ivolumu yokufinyeleleka"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="3511504869290423954">"Kufushane"</item>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index e7fb907..92c61c8 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -150,7 +150,7 @@
     <string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Thepha kuze uxhume ku-\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Uyafuna ukuxhuma ku \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
     <string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Isicelo sokufinyelela ibhuku lefoni"</string>
-    <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"I-%1$s ifuna ukufinyelela kothintana nabo nomlando wekholi. Nikeza ukufinyelela ku-%2$s?"</string>
+    <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"I-<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ifuna ukufinyelela koxhumana nabo nakumlando wekholi. Nikeza ukufinyelela ku-<xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
     <string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ungabuzi futhi"</string>
     <string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ungabuzi futhi"</string>
     <string name="bluetooth_map_request" msgid="4595727689513143902">"Isicelo sokufinyelela umlayezo"</string>
@@ -270,6 +270,7 @@
     <string name="settings_label" msgid="1626402585530130914">"Izilungiselelo"</string>
     <string name="settings_label_launcher" msgid="8344735489639482340">"Izilungiselelo"</string>
     <string name="settings_shortcut" msgid="3936651951364030415">"Isinqamuleli sezilungiselelo"</string>
+    <string name="activity_list_empty" msgid="6428823323471264836">"Ayikho imisebenzi efanayo etholakele"</string>
     <string name="airplane_mode" msgid="8837269988154128601">"Imodi yendiza"</string>
     <string name="radio_controls_title" msgid="3447085191369779032">"Okuningi"</string>
     <string name="wireless_networks_settings_title" msgid="3643009077742794212">"Amanethiwekhi; nokungenantambo"</string>
@@ -1302,7 +1303,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Sebenzisa i-<xliff:g id="NEW_APP">%1$s</xliff:g> esikhundleni se-<xliff:g id="CURRENT_APP">%2$s</xliff:g> ukuze uphathe uxhumo lakho lenethiwekhi?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Sebenzisa i-<xliff:g id="NEW_APP">%s</xliff:g> ukuze uphathe uxhumo lwakho lenethiwekhi?"</string>
     <string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"I-opharetha ye-SIM engaziwa"</string>
-    <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s ayinayo iwebhusayithi eyilungiselelo eyaziwayo"</string>
+    <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"I-<xliff:g id="OPERATOR">%1$s</xliff:g> ayinayo iwebhusayithi eyaziwayo enikezayo"</string>
     <string name="mobile_insert_sim_card" msgid="9052590985784056395">"Sicela ufake ikhadi le-SIM bese uqala kabusha"</string>
     <string name="mobile_connect_to_internet" msgid="1733894125065249639">"Sicela uxhume ku-inthanethi"</string>
     <string name="location_title" msgid="1029961368397484576">"Indawo Yami"</string>
@@ -1358,8 +1359,7 @@
     <string name="wallpaper_attributions_values" msgid="2996183537914690469">"Abanikezeli bezithombe zesathelayithi:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="8133150693616006051">"Ngokulawulwa"</string>
     <string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Kunenkinga yokulayisha imanuwali."</string>
-    <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
-    <skip />
+    <string name="settings_license_activity_title" msgid="8525014571806471216">"Amalayisense enkampani yangaphandle"</string>
     <string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Kunenkinga yokulayisha amalayisensi."</string>
     <string name="settings_license_activity_loading" msgid="3337535809093591740">"Iyalayisha..."</string>
     <string name="settings_safetylegal_title" msgid="1289483965535937431">"Ulwazi lokuvikeleka"</string>
@@ -1933,7 +1933,7 @@
     <string name="battery_saver" msgid="1426682272004907982">"Isilondolozi sebhethri"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Vula ngokuzenzakalela"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Akusoze"</string>
-    <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"kubhethri le-%1$s"</string>
+    <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"kokungu-<xliff:g id="PERCENT">%1$s</xliff:g> kubhethri"</string>
     <string name="process_stats_summary_title" msgid="1144688045609771677">"Izibalo zenqubo"</string>
     <string name="process_stats_summary" msgid="109387941605607762">"Izibalo ze-Geeky mayelana nezinqubo zokuqalisa"</string>
     <string name="app_memory_use" msgid="7849258480392171939">"Ukusetshenziswa kwememori"</string>
@@ -2607,10 +2607,8 @@
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ivolumu yokukhala"</string>
     <string name="notification_volume_option_title" msgid="6064656124416882130">"Ivolumu yesaziso"</string>
     <string name="ringtone_title" msgid="5379026328015343686">"Iringithoni yefoni"</string>
-    <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
-    <skip />
-    <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
-    <skip />
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"Umsindo wesaziso ozenzakalelayo"</string>
+    <string name="alarm_ringtone_title" msgid="6344025478514311386">"Umsindo we-alamu ozenzakalelayo"</string>
     <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Iyadlidliza uma kungena amakholi"</string>
     <string name="other_sound_settings" msgid="3151004537006844718">"Eminye imisindo"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Amathoni wephedi yokudayela"</string>
@@ -3224,6 +3222,8 @@
     <string name="support_sign_in_required_help" msgid="5200654782405538114">"Awukwazi ukungena ngemvume?"</string>
     <string name="support_disclaimer_title" msgid="4825302018208770031">"Thumela ulwazi lwesistimu"</string>
     <string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ungabonisi futhi"</string>
+    <string name="support_account_request_prefix" msgid="6387847874661861650">"Icela njengo"</string>
+    <string name="support_account_picker_add_account" msgid="5076277544846506214">"Engeza i-akhawunti"</string>
     <string name="managed_profile_settings_title" msgid="2729481936758125054">"Izilungiselelo zephrofayela yomsebenzi"</string>
     <string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Usesho loxhumana naye"</string>
     <string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Vumela usesho loxhumana naye ngenhlangano yakho ukuze ukhombe abashayayo noxhumana nabo"</string>
@@ -3296,20 +3296,22 @@
     <string name="auto_sync_account_title" msgid="7647106425106072285">"Idatha ye-akhawunti yokuvumelanisa ngokuzenzakalela"</string>
     <string name="auto_sync_personal_account_title" msgid="999536545686286287">"Idatha ye-akhawunti yomuntu siqu yokuvumelanisa ngokuzenzakalela"</string>
     <string name="auto_sync_work_account_title" msgid="3073278154593727844">"Idatha ye-akhawunti yomsebenzi yokuvumelanisa ngokuzenzakalela"</string>
+    <string name="account_sync_title" msgid="7214747784136106491">"Ukuvumelanisa kwe-akhawunti"</string>
     <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Ubumfihlo"</string>
     <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Ubumfihlo"</string>
     <string name="enterprise_privacy_header" msgid="5605095630252702716">"Ukuze unikezele ngokufinyelela kwidatha yakho yomsebenzi, inhlangano yakho ingashntsha izilungiselelo futhi ifake isofthiwe kudivayisi yakho, okungabangela ukuthi okunye okuqukethwe kwakho okuyimfihlo kubonakale kumlawuli wakho. Xhumana nomlawuli wenhlangano yakho ngemininingwane ebanzi."</string>
-    <!-- no translation found for exposure_category (2810157871578456078) -->
-    <skip />
-    <!-- no translation found for exposure_changes_category (7152065122917822315) -->
-    <skip />
-    <!-- no translation found for device_access_category (2561130537681794647) -->
-    <skip />
-    <!-- no translation found for enterprise_data (5354458531314976417) -->
-    <skip />
-    <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
-    <skip />
-    <!-- no translation found for number_installed_packages (1918926807170936355) -->
-    <!-- no translation found for usage_stats (5623497078526133035) -->
-    <skip />
+    <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Uluphi uhlobo lolwazi olungabonwa inhlangano yakho?"</string>
+    <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Iluphi ushintsho oluthinta okungabonwa inhlangano yakho?"</string>
+    <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Iziphi izenzo ezingathinta ukufinyelela kwakho kule divayisi?"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Idatha esondelene ne-akhawunti yakho yomsebenzi, efana ne-imeyili nekhalenda"</string>
+    <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Uhlu lwazo zonke izinhlelo zokusebenza kudivayisi yakho"</string>
+    <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+      <item quantity="one">Uhlu lwazo zonke izinhlelo zokusebenza ezingu-<xliff:g id="COUNT_1">%d</xliff:g> kudivayisi yakho</item>
+      <item quantity="other">Uhlu lwazo zonke izinhlelo zokusebenza ezingu-<xliff:g id="COUNT_1">%d</xliff:g> kudivayisi yakho</item>
+    </plurals>
+    <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Ukusetshenziswa (isikhathi esichithile nenani ledatha esetshenzisiwe) yohlelo lokusebenza ngalunye kudivayisi yakho"</string>
+    <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Amalogu ethrafikhi kudivayisi yakho"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Umbiko wakho wakamuva kakhulu wesiphazamisi"</string>
+    <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ilogu lakho lokuvikela lakamuva kakhulu"</string>
+    <string name="enterprise_privacy_never" msgid="1304035596746436921">"Akusoze"</string>
 </resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 4a4d742..601fb40 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -617,6 +617,7 @@
         <item>turn on screen</item>
         <item>get accounts</item>
         <item>run in background</item>
+        <item>accessibility volume</item>
     </string-array>
 
     <!-- User display names for app ops codes -->
@@ -685,6 +686,7 @@
         <item>Turn on screen</item>
         <item>Get accounts</item>
         <item>Run in background</item>
+        <item>Accessibility volume</item>
     </string-array>
 
     <!-- Titles for the list of long press timeout options. -->
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 40f3f71..2931a98 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -51,7 +51,6 @@
     <dimen name="divider_height">3dip</dimen>
     <dimen name="divider_margin_top">6dip</dimen>
     <dimen name="divider_margin_bottom">7dip</dimen>
-    <dimen name="vert_divider_width">1dip</dimen>
 
     <!--  Size of icons in the top-level of settings  -->
     <dimen name="header_icon_width">28dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3c9a4cc..4d872b1 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -344,7 +344,9 @@
     <string name="bluetooth_phonebook_request">"Phone book access request"</string>
 
     <!-- Bluetooth phone book permission Alert Activity text [CHAR LIMIT=none] -->
-    <string name="bluetooth_pb_acceptance_dialog_text">%1$s wants to access your contacts and call history. Give access to %2$s?</string>
+    <string name="bluetooth_pb_acceptance_dialog_text">
+        <xliff:g id="device_name">%1$s</xliff:g> wants to access your contacts and call history. Give access to <xliff:g id="device_name">%2$s</xliff:g>?
+    </string>
 
     <!-- Bluetooth phone book permission Alert Activity checkbox text [CHAR LIMIT=none] -->
     <string name="bluetooth_remember_choice">Don\u2019t ask again</string>
@@ -610,6 +612,8 @@
     <string name="settings_label_launcher">Settings</string>
     <!-- Label for option to select a settings panel as a shortcut -->
     <string name="settings_shortcut">Settings shortcut</string>
+    <!-- Shown in create shortcut activity when there is no shortcut that can be created. [CHAR_LIMIT=None] -->
+    <string name="activity_list_empty">No matching activities found.</string>
     <!-- Wireless controls settings screen, setting check box label -->
     <string name="airplane_mode">Airplane mode</string>
     <!-- Main Settings screen settings title for things like airplane mode, tethering, NFC, VPN.  This will take you to another screen with those settings.  [CHAR LIMIT=30] -->
@@ -3032,7 +3036,7 @@
     <string name="mobile_unknown_sim_operator" translatable="true">Unknown SIM operator</string>
 
     <!-- There is no mobile provisiong website for the operator which is the firat parameter [CHAR_ LIMIT=50]-->
-    <string name="mobile_no_provisioning_url" translatable="true">%1$s has no known provisioning website</string>
+    <string name="mobile_no_provisioning_url"><xliff:g id="operator">%1$s</xliff:g> has no known provisioning website</string>
 
     <!-- Ask user to insert a SIM card [CHAR_ LIMIT=50]-->
     <string name="mobile_insert_sim_card" translatable="true">Please insert SIM card and restart</string>
@@ -4515,7 +4519,7 @@
     <string name="battery_saver_turn_on_automatically_never">Never</string>
 
     <!-- [CHAR_LIMIT=40] Battery saver: Value for automatic entry option: pct% battery -->
-    <string name="battery_saver_turn_on_automatically_pct">at %1$s battery</string>
+    <string name="battery_saver_turn_on_automatically_pct">at <xliff:g id="percent">%1$s</xliff:g> battery</string>
 
     <!-- Process Stats strings -->
     <skip />
@@ -7795,6 +7799,12 @@
     <!-- Checkbox text, when checked dialog will not show again [CHAR LIMIT=80] -->
     <string name="support_disclaimer_do_not_show">Do not show again</string>
 
+    <!-- Prefix text for the account picker, e.g. "Requesting as user@gmail.com" [CHAR LIMIT=60] -->
+    <string name="support_account_request_prefix">Requesting as</string>
+
+    <!-- Spinner dropdown text, when selected will try to add account [CHAR LIMIT=60] -->
+    <string name="support_account_picker_add_account">Add account</string>
+
     <!-- [CHAR LIMIT=60] Title of work profile setting page -->
     <string name="managed_profile_settings_title">Work profile settings</string>
     <!-- [CHAR LIMIT=60] The preference title for enabling cross-profile remote contact search -->
@@ -7973,6 +7983,8 @@
     <string name="auto_sync_personal_account_title">Auto sync personal account data</string>
     <!-- Switch label to enable auto sync work account [CHAR LIMIT=60] -->
     <string name="auto_sync_work_account_title">Auto sync work account data</string>
+    <!-- Preference label to sync account [CHAR LIMIT=60] -->
+    <string name="account_sync_title">Account sync</string>
 
     <!-- Enterprise Privacy --> <skip />
 
@@ -7983,20 +7995,28 @@
     <!-- Enterprise Privacy settings activity header, summarizing the powers that the admin has. [CHAR LIMIT=NONE] -->
     <string name="enterprise_privacy_header">To provide access to your work data, your organization may change settings and install software on your device, which could cause some of your personal content to be visible to your admin. Contact your organization\'s admin for more details.</string>
     <!-- Title for the 'What types of information can your organization see?' preference category. [CHAR LIMIT=60] -->
-    <string name="exposure_category">What types of information can your organization see?</string>
+    <string name="enterprise_privacy_exposure_category">What types of information can your organization see?</string>
     <!-- Title for the 'What changes affect what your organization can see?' preference category. [CHAR LIMIT=60] -->
-    <string name="exposure_changes_category">What changes affect what your organization can see?</string>
+    <string name="enterprise_privacy_exposure_changes_category">What changes affect what your organization can see?</string>
     <!-- Title for the 'What actions may impact your access to this device?' preference category. [CHAR LIMIT=60] -->
-    <string name="device_access_category">What actions may impact your access to this device?</string>
+    <string name="enterprise_privacy_device_access_category">What actions may impact your access to this device?</string>
     <!-- Label explaining that the admin can see data associated with his/her work account. [CHAR LIMIT=NONE] -->
-    <string name="enterprise_data">Data associated with your work account, such as email and calendar</string>
+    <string name="enterprise_privacy_enterprise_data">Data associated with your work account, such as email and calendar</string>
     <!-- Label explaining that the admin can see all apps installed on the device. [CHAR LIMIT=NONE] -->
-    <string name="number_installed_packages_default">List of all apps on your device</string>
+    <string name="enterprise_privacy_number_installed_packages_default">List of all apps on your device</string>
     <!-- Label explaining that the admin can see all apps installed on the device. [CHAR LIMIT=NONE] -->
-    <plurals name="number_installed_packages">
+    <plurals name="enterprise_privacy_number_installed_packages">
         <item quantity="one">List of all <xliff:g id="count">%d</xliff:g> app on your device</item>
         <item quantity="other">List of all <xliff:g id="count">%d</xliff:g> apps on your device</item>
     </plurals>
     <!-- Label explaining that the admin can see app usage statistics. [CHAR LIMIT=NONE] -->
-    <string name="usage_stats">Usage (time spent and amount of data used) of each app on your device</string>
+    <string name="enterprise_privacy_usage_stats">Usage (time spent and amount of data used) of each app on your device</string>
+    <!-- Label explaining that the admin can retrieve network logs on the device. [CHAR LIMIT=NONE] -->
+    <string name="enterprise_privacy_network_logs">Traffic logs on your device</string>
+    <!-- Label explaining that the admin can request bug reports on the device. [CHAR LIMIT=NONE] -->
+    <string name="enterprise_privacy_bug_reports">Your most recent bug report</string>
+    <!-- Label explaining that the admin can retrieve security on from the device. [CHAR LIMIT=NONE] -->
+    <string name="enterprise_privacy_security_logs">Your most recent security log</string>
+    <!-- Label indicating that the date at which the admin last took a particular action was "never" (i.e. the admin never took the action so far). -->
+    <string name="enterprise_privacy_never">Never</string>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index a18fde3..f4b39d4 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -93,22 +93,6 @@
         <item name="android:windowContentOverlay">@null</item>
     </style>
 
-    <style name="Preference">
-        <item name="android:layout">@layout/preference_material_settings</item>
-    </style>
-
-    <style name="SyncSwitchPreference" parent="Preference">
-        <item name="android:widgetLayout">@layout/preference_widget_sync_toggle</item>
-    </style>
-
-    <style name="EditTextPreference" parent="@*android:style/Preference.Material.DialogPreference.EditTextPreference">
-        <item name="android:dialogLayout">@layout/preference_dialog_edittext</item>
-    </style>
-
-    <style name="PreferenceTheme" parent="@*android:style/PreferenceTheme">
-        <item name="android:scrollbars">vertical</item>
-    </style>
-
     <style name="PreferenceHeaderPanelSinglePane">
         <item name="android:layout_marginStart">0dp</item>
         <item name="android:layout_marginEnd">0dp</item>
@@ -156,18 +140,6 @@
         <item name="android:scrollbarStyle">outsideOverlay</item>
     </style>
 
-    <style name="PreferenceFragmentStyle" parent="@*android:style/PreferenceFragment.Material">
-        <item name="android:layout">@layout/preference_list_fragment</item>
-    </style>
-
-    <style name="VertDivider">
-        <item name="android:layout_width">@dimen/vert_divider_width</item>
-        <item name="android:layout_height">fill_parent</item>
-        <item name="android:background">@color/divider_color</item>
-        <item name="android:focusable">false</item>
-        <item name="android:clickable">false</item>
-    </style>
-
     <style name="TextAppearance.SetupWizardDescription" parent="@android:style/TextAppearance.Material.Subhead">
     </style>
 
@@ -324,10 +296,6 @@
     <!-- Scrollbar style OUTSIDE_OVERLAY -->
     <integer name="preference_scrollbar_style">33554432</integer>
 
-    <style name="ApnPreference">
-        <item name="android:layout">@layout/apn_preference_layout</item>
-    </style>
-
     <style name="AppListSwitchPreference" parent="@*android:style/Preference.Material.DialogPreference">
         <item name="android:widgetLayout">@*android:layout/preference_widget_switch</item>
     </style>
diff --git a/res/values/styles_preference.xml b/res/values/styles_preference.xml
new file mode 100644
index 0000000..a504166
--- /dev/null
+++ b/res/values/styles_preference.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+<!-- This file only contains custom attribute and style definition for preferences -->
+<!-- Things unrelated to preference framework UI customization should go to other styles files -->
+<resources>
+    <style name="ApnPreference">
+        <item name="android:layout">@layout/apn_preference_layout</item>
+    </style>
+
+    <style name="EditTextPreference"
+           parent="@style/Preference.DialogPreference.EditTextPreference.Material">
+        <item name="android:layout">@layout/preference_material_settings</item>
+        <item name="android:dialogLayout">@layout/preference_dialog_edittext</item>
+    </style>
+
+    <style name="PreferenceFragmentStyle" parent="@*android:style/PreferenceFragment.Material">
+        <item name="android:layout">@layout/preference_list_fragment</item>
+    </style>
+
+    <style name="SettingsPreference">
+        <item name="android:layout">@layout/preference_material_settings</item>
+    </style>
+
+    <style name="SettingsDropdownPreference">
+        <item name="android:layout">@layout/preference_dropdown_material_settings</item>
+    </style>
+
+    <style name="SettingsDialogPreference" parent="SettingsPreference"/>
+
+    <style name="SettingsPreferenceCategory" parent="@style/Preference.Category.Material">
+        <item name="android:layout">@layout/preference_category_material_settings</item>
+    </style>
+
+    <style name="SettingsSwitchPreference" parent="SettingsPreference">
+        <item name="widgetLayout">@*android:layout/preference_widget_switch</item>
+        <item name="switchTextOn">@*android:string/capital_on</item>
+        <item name="switchTextOff">@*android:string/capital_off</item>
+    </style>
+
+    <style name="SyncSwitchPreference" parent="SettingsPreference">
+        <item name="android:widgetLayout">@layout/preference_widget_sync_toggle</item>
+    </style>
+</resources>
\ No newline at end of file
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 6b765f7..edc1dbf 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -88,11 +88,16 @@
     </style>
 
     <style name="PreferenceTheme" parent="@style/PreferenceThemeOverlay.v14.Material">
-        <item name="android:preferenceStyle">@style/Preference</item>
-        <item name="android:editTextPreferenceStyle">@style/EditTextPreference</item>
-        <item name="dropdownPreferenceStyle">@style/Preference.DropDown.Material</item>
-        <item name="android:preferenceFragmentStyle">@style/PreferenceFragmentStyle</item>
+        <!-- Parent path frameworks/support/v14/preference/res/values/themes.xml -->
+        <item name="android:scrollbars">vertical</item>
         <item name="apnPreferenceStyle">@style/ApnPreference</item>
+        <item name="dialogPreferenceStyle">@style/SettingsDialogPreference</item>
+        <item name="dropdownPreferenceStyle">@style/SettingsDropdownPreference</item>
+        <item name="editTextPreferenceStyle">@style/EditTextPreference</item>
+        <item name="preferenceCategoryStyle">@style/SettingsPreferenceCategory</item>
+        <item name="preferenceFragmentStyle">@style/PreferenceFragmentStyle</item>
+        <item name="preferenceStyle">@style/SettingsPreference</item>
+        <item name="switchPreferenceStyle">@style/SettingsSwitchPreference</item>
     </style>
 
     <style name="PreferenceTheme.SetupWizard" parent="PreferenceTheme">
@@ -124,6 +129,7 @@
 
     <style name="Theme.Settings" parent="Theme.SettingsBase">
         <item name="preferenceTheme">@style/PreferenceTheme</item>
+        <item name="android:listPreferredItemHeight">72dip</item>
         <item name="*android:preferenceHeaderPanelStyle">@style/PreferenceHeaderPanelSinglePane</item>
         <item name="*android:preferencePanelStyle">@style/PreferencePanelSinglePane</item>
         <item name="*android:preferenceListStyle">@style/PreferenceHeaderListSinglePane</item>
diff --git a/res/xml/about_legal.xml b/res/xml/about_legal.xml
index 48e81f4..596effe 100644
--- a/res/xml/about_legal.xml
+++ b/res/xml/about_legal.xml
@@ -15,7 +15,7 @@
 -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-    android:title="@string/legal_information">
+                  android:title="@string/legal_information">
 
     <!-- Note: The titles given here probably won't be used.  Instead, we programmatically
        fill the title with the label of the activity with the corresponding action.
@@ -23,38 +23,37 @@
        list. -->
 
     <!-- Copyright information -->
-    <PreferenceScreen
+    <Preference
         android:key="copyright"
         android:title="@string/copyright_title">
-        <intent android:action="android.settings.COPYRIGHT" />
-    </PreferenceScreen>
+        <intent android:action="android.settings.COPYRIGHT"/>
+    </Preference>
 
     <!-- License information -->
-    <PreferenceScreen
+    <Preference
         android:key="license"
         android:title="@string/license_title">
-        <intent android:action="android.settings.LICENSE" />
-    </PreferenceScreen>
+        <intent android:action="android.settings.LICENSE"/>
+    </Preference>
 
     <!-- Terms and conditions -->
-    <PreferenceScreen
+    <Preference
         android:key="terms"
         android:title="@string/terms_title">
-        <intent android:action="android.settings.TERMS" />
-    </PreferenceScreen>
+        <intent android:action="android.settings.TERMS"/>
+    </Preference>
 
     <!-- System WebView License information -->
-    <PreferenceScreen
+    <Preference
         android:key="webview_license"
         android:title="@string/webview_license_title">
-        <intent android:action="android.settings.WEBVIEW_LICENSE" />
-    </PreferenceScreen>
+        <intent android:action="android.settings.WEBVIEW_LICENSE"/>
+    </Preference>
 
     <Preference
         android:key="wallpaper_attributions"
         android:title="@string/wallpaper_attributions"
-        android:summary="@string/wallpaper_attributions_values"
-        />
+        android:summary="@string/wallpaper_attributions_values"/>
 
 </PreferenceScreen>
 
diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml
index 11cde5e..8bb54c6 100644
--- a/res/xml/accessibility_settings.xml
+++ b/res/xml/accessibility_settings.xml
@@ -15,7 +15,6 @@
 -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
         android:title="@string/accessibility_settings"
         android:persistent="true">
 
@@ -28,17 +27,17 @@
             android:key="system_category"
             android:title="@string/accessibility_system_title">
 
-        <PreferenceScreen
+        <Preference
             android:fragment="com.android.settings.accessibility.CaptionPropertiesFragment"
             android:key="captioning_preference_screen"
             android:title="@string/accessibility_captioning_title" />
 
-        <PreferenceScreen
+        <Preference
             android:fragment="com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment"
             android:key="screen_magnification_preference_screen"
             android:title="@string/accessibility_screen_magnification_title"/>
 
-        <PreferenceScreen
+        <Preference
             android:fragment="com.android.settings.accessibility.ToggleFontSizePreferenceFragment"
             android:key="font_size_preference_screen"
             android:title="@string/title_font_size"/>
@@ -47,7 +46,7 @@
             android:key="screen_zoom"
             android:title="@string/screen_zoom_title"/>
 
-        <PreferenceScreen
+        <Preference
             android:fragment="com.android.settings.accessibility.ToggleAutoclickPreferenceFragment"
             android:key="autoclick_preference_screen"
             android:title="@string/accessibility_autoclick_preference_title"/>
@@ -82,12 +81,13 @@
                 android:summary="@string/accessibility_toggle_master_mono_summary"
                 android:persistent="false"/>
 
-        <PreferenceScreen
+        <Preference
                 android:fragment="com.android.settings.accessibility.ToggleGlobalGesturePreferenceFragment"
                 android:key="enable_global_gesture_preference_screen"
                 android:title="@string/accessibility_global_gesture_preference_title"/>
 
-        <PreferenceScreen android:key="tts_settings_preference"
+        <Preference
+                android:key="tts_settings_preference"
                 android:fragment="com.android.settings.tts.TextToSpeechSettings"
                 android:title="@string/tts_settings_title"/>
 
@@ -107,7 +107,7 @@
             android:title="@string/accessibility_display_inversion_preference_title"
             android:summary="@string/accessibility_display_inversion_preference_subtitle"
             android:persistent="false" />
-        <PreferenceScreen
+        <Preference
             android:fragment="com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment"
             android:key="daltonizer_preference_screen"
             android:title="@string/accessibility_display_daltonizer_preference_title" />
diff --git a/res/xml/account_type_settings.xml b/res/xml/account_type_settings.xml
new file mode 100644
index 0000000..f9e5aa8
--- /dev/null
+++ b/res/xml/account_type_settings.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+                  xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+        android:title="@string/account_settings_title"
+        settings:keywords="@string/keywords_accounts">
+
+    <Preference
+        android:key="account_sync"
+        android:title="@string/account_sync_title"
+        android:order="1"/>
+
+    <PreferenceCategory
+      android:key="dashboard_tile_placeholder"
+      android:order="10"/>
+
+</PreferenceScreen>
diff --git a/res/xml/advanced_apps.xml b/res/xml/advanced_apps.xml
index 7e2e9cd..c17da05 100644
--- a/res/xml/advanced_apps.xml
+++ b/res/xml/advanced_apps.xml
@@ -29,11 +29,10 @@
     <PreferenceCategory
         android:title="@string/default_apps_title">
 
-        <PreferenceScreen
+        <Preference
             android:key="domain_urls"
             android:title="@string/domain_urls_title"
-            android:fragment="com.android.settings.applications.ManageDomainUrls">
-        </PreferenceScreen>
+            android:fragment="com.android.settings.applications.ManageDomainUrls" />
 
         <Preference
             android:key="assist_and_voice_input"
diff --git a/res/xml/app_and_notification.xml b/res/xml/app_and_notification.xml
index 10d81df..b172e2a 100644
--- a/res/xml/app_and_notification.xml
+++ b/res/xml/app_and_notification.xml
@@ -17,7 +17,8 @@
 
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
+    xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+    android:title="@string/app_and_notification_dashboard_title">
 
     <Preference
         android:key="manage_perms"
diff --git a/res/xml/app_default_settings.xml b/res/xml/app_default_settings.xml
index 932fa60..5da5326 100644
--- a/res/xml/app_default_settings.xml
+++ b/res/xml/app_default_settings.xml
@@ -64,8 +64,7 @@
     <Preference
         android:key="domain_urls"
         android:title="@string/domain_urls_title"
-        android:fragment="com.android.settings.applications.ManageDomainUrls">
-    </Preference>
+        android:fragment="com.android.settings.applications.ManageDomainUrls"/>
 
     <com.android.settings.WorkOnlyCategory
         android:key="work_defaults"
diff --git a/res/xml/connected_devices.xml b/res/xml/connected_devices.xml
index bf40f9d..188fd86 100644
--- a/res/xml/connected_devices.xml
+++ b/res/xml/connected_devices.xml
@@ -14,7 +14,9 @@
      limitations under the License.
 -->
 
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:title="@string/connected_devices_dashboard_title">
 
     <SwitchPreference
         android:key="toggle_nfc"
diff --git a/res/xml/date_time_prefs.xml b/res/xml/date_time_prefs.xml
index e573bbd..34d48f1 100644
--- a/res/xml/date_time_prefs.xml
+++ b/res/xml/date_time_prefs.xml
@@ -43,7 +43,7 @@
         android:summary="12:00am"
         />
 
-    <PreferenceScreen
+    <Preference
         android:fragment="com.android.settings.ZonePicker"
         android:key="timezone"
         android:title="@string/date_time_set_timezone"
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index d84b008..804ede9 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -22,7 +22,7 @@
             android:title="@*android:string/bugreport_title"
             android:dialogTitle="@*android:string/bugreport_title" />
 
-    <PreferenceScreen
+    <Preference
             android:key="local_backup_password"
             android:title="@string/local_backup_password_title"
             android:summary="@string/local_backup_password_summary_none"
@@ -31,7 +31,7 @@
                 android:action="android.settings.privacy.SET_FULL_BACKUP_PASSWORD"
                 android:targetPackage="com.android.settings"
                 android:targetClass="com.android.settings.SetFullBackupPassword" />
-    </PreferenceScreen>
+    </Preference>
 
     <com.android.settingslib.RestrictedSwitchPreference
         android:key="keep_screen_on"
@@ -57,13 +57,13 @@
         android:summary="@string/oem_unlock_enable_summary"
         settings:useAdditionalSummary="true"/>
 
-    <PreferenceScreen
+    <Preference
         android:key="running_apps"
         android:title="@string/runningservices_settings_title"
         android:summary="@string/runningservices_settings_summary"
         android:fragment="com.android.settings.applications.RunningServices" />
 
-    <PreferenceScreen
+    <Preference
         android:key="convert_to_file_encryption"
         android:title="@string/convert_to_file_encryption"
         android:summary="@string/convert_to_file_encryption_enabled"
@@ -94,11 +94,11 @@
         android:key="ota_disable_automatic_update"
         android:title="@string/ota_disable_automatic_update" />
 
-    <PreferenceScreen
+    <Preference
         android:key="demo_mode"
         android:title="@string/demo_mode">
         <intent android:action="com.android.settings.action.DEMO_MODE" />
-    </PreferenceScreen>
+    </Preference>
 
     <PreferenceCategory android:key="debug_debugging_category"
             android:title="@string/debug_debugging_category">
@@ -121,14 +121,14 @@
             android:title="@string/bugreport_in_power"
             android:summary="@string/bugreport_in_power_summary"/>
 
-        <PreferenceScreen android:key="mock_location_app"
+        <Preference android:key="mock_location_app"
             android:title="@string/mock_location_app" />
 
         <SwitchPreference
                 android:key="debug_view_attributes"
                 android:title="@string/debug_view_attributes" />
 
-        <PreferenceScreen android:key="debug_app"
+        <Preference android:key="debug_app"
                 android:title="@string/debug_app" />
 
         <SwitchPreference
diff --git a/res/xml/device_info_settings.xml b/res/xml/device_info_settings.xml
index 66cf8f4..cee2e70 100644
--- a/res/xml/device_info_settings.xml
+++ b/res/xml/device_info_settings.xml
@@ -19,56 +19,54 @@
         android:title="@string/about_settings">
 
         <!-- System update settings - launches activity -->
-        <PreferenceScreen android:key="system_update_settings"
+        <Preference android:key="system_update_settings"
                 android:title="@string/system_update_settings_list_item_title"
                 android:summary="@string/system_update_settings_list_item_summary">
             <intent android:action="android.settings.SYSTEM_UPDATE_SETTINGS" />
-        </PreferenceScreen>
+        </Preference>
 
 
-        <PreferenceScreen android:key="additional_system_update_settings"
+        <Preference android:key="additional_system_update_settings"
                           android:title="@string/additional_system_update_settings_list_item_title">
             <intent android:action="android.intent.action.MAIN"
                     android:targetPackage="@string/additional_system_update"
                     android:targetClass="@string/additional_system_update_menu" />
-        </PreferenceScreen>
+        </Preference>
 
         <!-- Device status - launches activity -->
-        <PreferenceScreen android:key="status_info"
+        <Preference android:key="status_info"
                 android:title="@string/device_status"
                 android:summary="@string/device_status_summary"
-                android:fragment="com.android.settings.deviceinfo.Status">
-        </PreferenceScreen>
+                android:fragment="com.android.settings.deviceinfo.Status"/>
 
         <!-- Manual -->
-        <PreferenceScreen
+        <Preference
                 android:key="manual"
                 android:title="@string/manual">
             <intent android:action="android.settings.SHOW_MANUAL" />
-        </PreferenceScreen>
+        </Preference>
 
         <!-- Legal Information -->
-        <PreferenceScreen
+        <Preference
                 android:key="container"
                 android:title="@string/legal_information"
                 android:fragment="com.android.settings.LegalSettings" />
 
-        <PreferenceScreen
+        <Preference
                 android:key="regulatory_info"
                 android:title="@string/regulatory_labels">
             <intent android:action="android.settings.SHOW_REGULATORY_INFO" />
-        </PreferenceScreen>
+        </Preference>
 
-        <PreferenceScreen
+        <Preference
                 android:key="safety_info"
                 android:title="@string/safety_and_regulatory_info">
                 <intent android:action="android.settings.SHOW_SAFETY_AND_REGULATORY_INFO" />
-        </PreferenceScreen>
+        </Preference>
 
         <!-- Feedback on the device -->
-        <PreferenceScreen android:key="device_feedback"
-                android:title="@string/device_feedback">
-        </PreferenceScreen>
+        <Preference android:key="device_feedback"
+                android:title="@string/device_feedback" />
 
         <!-- Device hardware model -->
         <com.android.settings.DividerPreference
@@ -89,12 +87,12 @@
                 android:summary="@string/device_info_default"/>
 
         <!-- Security patch level -->
-        <PreferenceScreen android:key="security_patch"
+        <Preference android:key="security_patch"
                 android:title="@string/security_patch"
                 android:summary="@string/device_info_default">
                 <intent android:action="android.intent.action.VIEW"
                         android:data="https://source.android.com/security/bulletin/" />
-        </PreferenceScreen>
+        </Preference>
 
         <!-- Device FCC equipment id -->
         <com.android.settings.DividerPreference
diff --git a/res/xml/enterprise_privacy_settings.xml b/res/xml/enterprise_privacy_settings.xml
index 1dbb66c..e1761e2 100644
--- a/res/xml/enterprise_privacy_settings.xml
+++ b/res/xml/enterprise_privacy_settings.xml
@@ -24,28 +24,43 @@
             android:summary="@string/enterprise_privacy_header"
             android:selectable="false"/>
 
-    <PreferenceCategory android:title="@string/exposure_category">
+    <PreferenceCategory android:title="@string/enterprise_privacy_exposure_category">
         <com.android.settings.DividerPreference
                 android:key="enterprise_data"
                 android:layout_height="wrap_content"
-                android:title="@string/enterprise_data"
+                android:title="@string/enterprise_privacy_enterprise_data"
                 settings:allowDividerBelow="true"
                 settings:multiLine="true"/>
         <com.android.settings.DividerPreference
                 android:key="number_installed_packages"
-                android:title="@string/number_installed_packages_default"
+                android:title="@string/enterprise_privacy_number_installed_packages_default"
                 settings:allowDividerBelow="true"
                 settings:multiLine="true"/>
         <com.android.settings.DividerPreference
                 android:key="usage_stats"
-                android:title="@string/usage_stats"
+                android:title="@string/enterprise_privacy_usage_stats"
+                settings:allowDividerBelow="true"
+                settings:multiLine="true"/>
+        <com.android.settings.DividerPreference
+                android:key="network_logs"
+                android:title="@string/enterprise_privacy_network_logs"
+                settings:allowDividerBelow="true"
+                settings:multiLine="true"/>
+        <com.android.settings.DividerPreference
+                android:key="bug_reports"
+                android:title="@string/enterprise_privacy_bug_reports"
+                settings:allowDividerBelow="true"
+                settings:multiLine="true"/>
+        <com.android.settings.DividerPreference
+                android:key="security_logs"
+                android:title="@string/enterprise_privacy_security_logs"
                 settings:allowDividerBelow="true"
                 settings:multiLine="true"/>
     </PreferenceCategory>
 
-    <PreferenceCategory android:title="@string/exposure_changes_category">
+    <PreferenceCategory android:title="@string/enterprise_privacy_exposure_changes_category">
     </PreferenceCategory>
 
-    <PreferenceCategory android:title="@string/device_access_category">
+    <PreferenceCategory android:title="@string/enterprise_privacy_device_access_category">
     </PreferenceCategory>
 </PreferenceScreen>
diff --git a/res/xml/ia_display_settings.xml b/res/xml/ia_display_settings.xml
index 31b524a..756d551 100644
--- a/res/xml/ia_display_settings.xml
+++ b/res/xml/ia_display_settings.xml
@@ -61,7 +61,7 @@
                 settings:keywords="@string/keywords_display_auto_brightness"
                 android:summary="@string/auto_brightness_summary" />
 
-        <PreferenceScreen
+        <Preference
             android:key="font_size"
             android:title="@string/title_font_size"
             android:fragment="com.android.settings.accessibility.ToggleFontSizePreferenceFragment"
@@ -72,7 +72,7 @@
             android:title="@string/screen_zoom_title"
             settings:keywords="@string/screen_zoom_keywords" />
 
-        <PreferenceScreen
+        <Preference
             android:key="screensaver"
             android:title="@string/screensaver_settings_title"
             android:fragment="com.android.settings.DreamSettings" />
@@ -105,7 +105,7 @@
                 android:title="@string/tap_to_wake"
                 android:summary="@string/tap_to_wake_summary" />
 
-        <PreferenceScreen
+        <Preference
                 android:key="wifi_display"
                 android:title="@string/wifi_display_settings_title"
                 settings:keywords="@string/keywords_display_cast_screen"
diff --git a/res/xml/network_and_internet.xml b/res/xml/network_and_internet.xml
index bce5dd9..2dfb1cc 100644
--- a/res/xml/network_and_internet.xml
+++ b/res/xml/network_and_internet.xml
@@ -16,7 +16,8 @@
 
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
+    xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+    android:title="@string/network_dashboard_title">
 
     <SwitchPreference
         android:key="toggle_airplane"
diff --git a/res/xml/pick_up_gesture_settings.xml b/res/xml/pick_up_gesture_settings.xml
index 4ef81a2..6b67e64 100644
--- a/res/xml/pick_up_gesture_settings.xml
+++ b/res/xml/pick_up_gesture_settings.xml
@@ -15,8 +15,9 @@
   limitations under the License.
   -->
 
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-                  xmlns:app="http://schemas.android.com/apk/res-auto">
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <com.android.settings.widget.VideoPreference
         android:key="gesture_pick_up_video"
diff --git a/res/xml/security_settings_misc.xml b/res/xml/security_settings_misc.xml
index 68a867e..d724b74 100644
--- a/res/xml/security_settings_misc.xml
+++ b/res/xml/security_settings_misc.xml
@@ -114,7 +114,7 @@
                 android:persistent="false"
                 android:fragment="com.android.settings.TrustAgentSettings"/>
 
-        <PreferenceScreen
+        <Preference
                 android:key="screen_pinning_settings"
                 android:title="@string/screen_pinning_title"
                 android:summary="@string/switch_off_text"
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 227a650..c74d1f1 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -16,9 +16,9 @@
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
                   xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
-        android:title="@string/sound_settings"
-        android:key="sound_settings"
-        settings:keywords="@string/keywords_sounds">
+          android:title="@string/sound_settings"
+          android:key="sound_settings"
+          settings:keywords="@string/keywords_sounds">
 
         <!-- Media volume -->
         <com.android.settings.notification.VolumeSeekBarPreference
@@ -87,7 +87,7 @@
                 android:key="cell_broadcast_settings"
                 android:title="@string/cell_broadcast_settings"
                 settings:useAdminDisabledSummary="true">
-                <intent
+                    <intent
                         android:action="android.intent.action.MAIN"
                         android:targetPackage="com.android.cellbroadcastreceiver"
                         android:targetClass="com.android.cellbroadcastreceiver.CellBroadcastSettings" />
@@ -101,7 +101,7 @@
                 android:fragment="com.android.settings.notification.OtherSoundSettings" />
 
         <!-- Cast -->
-        <PreferenceScreen
+        <Preference
                 android:key="wifi_display"
                 android:title="@string/wifi_display_settings_title"
                 android:fragment="com.android.settings.wfd.WifiDisplaySettings" />
diff --git a/res/xml/user_and_accounts_settings.xml b/res/xml/user_and_accounts_settings.xml
index 1c487ae..9bb39f6 100644
--- a/res/xml/user_and_accounts_settings.xml
+++ b/res/xml/user_and_accounts_settings.xml
@@ -14,10 +14,11 @@
      limitations under the License.
 -->
 
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-                  xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
-        android:title="@string/account_settings_title"
-        settings:keywords="@string/keywords_accounts">
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+    android:title="@string/account_dashboard_title"
+    settings:keywords="@string/keywords_accounts">
 
     <Preference
         android:key="emergency_info"
@@ -33,7 +34,7 @@
     <SwitchPreference
         android:key="auto_sync_account_data"
         android:title="@string/auto_sync_account_title"
-        android:order="102" />
+        android:order="102"/>
 
     <SwitchPreference
         android:key="auto_sync_work_account_data"
@@ -52,4 +53,8 @@
         settings:useAdditionalSummary="true"
         android:order="105"/>
 
+    <PreferenceCategory
+        android:key="dashboard_tile_placeholder"
+        android:order="200"/>
+
 </PreferenceScreen>
diff --git a/src/com/android/settings/AccountPreference.java b/src/com/android/settings/AccountPreference.java
deleted file mode 100644
index fe39244..0000000
--- a/src/com/android/settings/AccountPreference.java
+++ /dev/null
@@ -1,148 +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.accounts.Account;
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceViewHolder;
-import android.util.Log;
-import android.widget.ImageView;
-
-import java.util.ArrayList;
-
-/**
- * AccountPreference is used to display a username, status and provider icon for an account on
- * the device.
- */
-public class AccountPreference extends Preference {
-    private static final String TAG = "AccountPreference";
-    public static final int SYNC_ENABLED = 0; // all know sync adapters are enabled and OK
-    public static final int SYNC_DISABLED = 1; // no sync adapters are enabled
-    public static final int SYNC_ERROR = 2; // one or more sync adapters have a problem
-    public static final int SYNC_IN_PROGRESS = 3; // currently syncing
-    private int mStatus;
-    private Account mAccount;
-    private ArrayList<String> mAuthorities;
-    private ImageView mSyncStatusIcon;
-    private boolean mShowTypeIcon;
-
-    public AccountPreference(Context context, Account account, Drawable icon,
-            ArrayList<String> authorities, boolean showTypeIcon) {
-        super(context);
-        mAccount = account;
-        mAuthorities = authorities;
-        mShowTypeIcon = showTypeIcon;
-        if (showTypeIcon) {
-            setIcon(icon);
-        } else {
-            setIcon(getSyncStatusIcon(SYNC_DISABLED));
-        }
-        setTitle(mAccount.name);
-        setSummary("");
-        setPersistent(false);
-        setSyncStatus(SYNC_DISABLED, false);
-    }
-
-    public Account getAccount() {
-        return mAccount;
-    }
-
-    public ArrayList<String> getAuthorities() {
-        return mAuthorities;
-    }
-
-    @Override
-    public void onBindViewHolder(PreferenceViewHolder view) {
-        super.onBindViewHolder(view);
-        if (!mShowTypeIcon) {
-            mSyncStatusIcon = (ImageView) view.findViewById(android.R.id.icon);
-            mSyncStatusIcon.setImageResource(getSyncStatusIcon(mStatus));
-            mSyncStatusIcon.setContentDescription(getSyncContentDescription(mStatus));
-        }
-    }
-
-    public void setSyncStatus(int status, boolean updateSummary) {
-        mStatus = status;
-        if (!mShowTypeIcon && mSyncStatusIcon != null) {
-            mSyncStatusIcon.setImageResource(getSyncStatusIcon(status));
-            mSyncStatusIcon.setContentDescription(getSyncContentDescription(mStatus));
-        }
-        if (updateSummary) {
-            setSummary(getSyncStatusMessage(status));
-        }
-    }
-
-    private int getSyncStatusMessage(int status) {
-        int res;
-        switch (status) {
-            case SYNC_ENABLED:
-                res = R.string.sync_enabled;
-                break;
-            case SYNC_DISABLED:
-                res = R.string.sync_disabled;
-                break;
-            case SYNC_ERROR:
-                res = R.string.sync_error;
-                break;
-            case SYNC_IN_PROGRESS:
-                res = R.string.sync_in_progress;
-                break;
-            default:
-                res = R.string.sync_error;
-                Log.e(TAG, "Unknown sync status: " + status);
-        }
-        return res;
-    }
-
-    private int getSyncStatusIcon(int status) {
-        int res;
-        switch (status) {
-            case SYNC_ENABLED:
-            case SYNC_IN_PROGRESS:
-                res = R.drawable.ic_settings_sync;
-                break;
-            case SYNC_DISABLED:
-                res = R.drawable.ic_sync_grey_holo;
-                break;
-            case SYNC_ERROR:
-                res = R.drawable.ic_sync_red_holo;
-                break;
-            default:
-                res = R.drawable.ic_sync_red_holo;
-                Log.e(TAG, "Unknown sync status: " + status);
-        }
-        return res;
-    }
-
-    private String getSyncContentDescription(int status) {
-        switch (status) {
-            case SYNC_ENABLED:
-                return getContext().getString(R.string.accessibility_sync_enabled);
-            case SYNC_DISABLED:
-                return getContext().getString(R.string.accessibility_sync_disabled);
-            case SYNC_ERROR:
-                return getContext().getString(R.string.accessibility_sync_error);
-            case SYNC_IN_PROGRESS:
-                return getContext().getString(R.string.accessibility_sync_in_progress);
-            default:
-                Log.e(TAG, "Unknown sync status: " + status);
-                return getContext().getString(R.string.accessibility_sync_error);
-        }
-    }
-}
diff --git a/src/com/android/settings/ActiveNetworkScorerDialog.java b/src/com/android/settings/ActiveNetworkScorerDialog.java
index d440c96..ae04b58 100644
--- a/src/com/android/settings/ActiveNetworkScorerDialog.java
+++ b/src/com/android/settings/ActiveNetworkScorerDialog.java
@@ -75,13 +75,14 @@
             Log.i(TAG, "Can only set scorer for owner/system user.");
             return false;
         }
-        NetworkScorerAppData newScorer = NetworkScorerAppManager.getScorer(this, mNewPackageName);
+        NetworkScorerAppManager networkScorerAppManager = new NetworkScorerAppManager(this);
+        NetworkScorerAppData newScorer = networkScorerAppManager.getScorer(mNewPackageName);
         if (newScorer == null) {
             Log.e(TAG, "New package " + mNewPackageName + " is not a valid scorer.");
             return false;
         }
 
-        NetworkScorerAppData oldScorer = NetworkScorerAppManager.getActiveScorer(this);
+        NetworkScorerAppData oldScorer = networkScorerAppManager.getActiveScorer();
         if (oldScorer != null && TextUtils.equals(oldScorer.mPackageName, mNewPackageName)) {
             Log.i(TAG, "New package " + mNewPackageName + " is already the active scorer.");
             // Set RESULT_OK to indicate to the caller that the "switch" was successful.
diff --git a/src/com/android/settings/ApnEditor.java b/src/com/android/settings/ApnEditor.java
index 061c18a..f97811c 100644
--- a/src/com/android/settings/ApnEditor.java
+++ b/src/com/android/settings/ApnEditor.java
@@ -759,6 +759,8 @@
     public void onViewCreated(View view, Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
         view.setOnKeyListener(this);
+        view.setFocusableInTouchMode(true);
+        view.requestFocus();
     }
 
     public boolean onKey(View v, int keyCode, KeyEvent event) {
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index a01ecf7..845f8cb 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -185,22 +185,15 @@
                         ENCRYPT_REQUESTED_DISABLED);
             }
 
-            int targetUser = Utils.getSecureTargetUser(
+            // a) If this is started from other user, use that user id.
+            // b) If this is started from the same user, read the extra if this is launched
+            //    from Settings app itself.
+            // c) Otherwise, use UserHandle.myUserId().
+            mUserId = Utils.getSecureTargetUser(
                     getActivity().getActivityToken(),
                     UserManager.get(getActivity()),
-                    null,
+                    getArguments(),
                     getActivity().getIntent().getExtras()).getIdentifier();
-            if (ACTION_SET_NEW_PARENT_PROFILE_PASSWORD.equals(chooseLockAction)
-                    || !mLockPatternUtils.isSeparateProfileChallengeAllowed(targetUser)) {
-                // Always use parent if explicitely requested or if profile challenge is not
-                // supported
-                Bundle arguments = getArguments();
-                mUserId = Utils.getUserIdFromBundle(getContext(), arguments != null ? arguments
-                        : getActivity().getIntent().getExtras());
-            } else {
-                mUserId = targetUser;
-            }
-
             if (ACTION_SET_NEW_PASSWORD.equals(chooseLockAction)
                     && UserManager.get(getActivity()).isManagedProfile(mUserId)
                     && mLockPatternUtils.isSeparateProfileChallengeEnabled(mUserId)) {
@@ -255,6 +248,8 @@
             } else if (KEY_SKIP_FINGERPRINT.equals(key)) {
                 Intent chooseLockGenericIntent = new Intent(getActivity(), ChooseLockGeneric.class);
                 chooseLockGenericIntent.setAction(getIntent().getAction());
+                // Forward the target user id to  ChooseLockGeneric.
+                chooseLockGenericIntent.putExtra(Intent.EXTRA_USER_ID, mUserId);
                 chooseLockGenericIntent.putExtra(PASSWORD_CONFIRMED, mPasswordConfirmed);
                 startActivityForResult(chooseLockGenericIntent, SKIP_FINGERPRINT_REQUEST);
                 return true;
@@ -342,6 +337,8 @@
                 if (data != null) {
                     intent.putExtras(data.getExtras());
                 }
+                // Forward the target user id to fingerprint setup page.
+                intent.putExtra(Intent.EXTRA_USER_ID, mUserId);
                 startActivity(intent);
                 finish();
             } else if (requestCode == SKIP_FINGERPRINT_REQUEST) {
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index 3c66b7e..351c2a2 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -51,7 +51,7 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.LockPatternUtils.RequestThrottledException;
 import com.android.internal.widget.TextViewInputDisabler;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.notification.RedactionInterstitial;
 import com.android.settings.password.PasswordRequirementAdapter;
 import com.android.setupwizardlib.GlifLayout;
@@ -157,7 +157,7 @@
         layout.setFitsSystemWindows(false);
     }
 
-    public static class ChooseLockPasswordFragment extends InstrumentedFragment
+    public static class ChooseLockPasswordFragment extends InstrumentedPreferenceFragment
             implements OnClickListener, OnEditorActionListener, TextWatcher,
             SaveAndFinishWorker.Listener {
         private static final String KEY_FIRST_PIN = "first_pin";
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java
index d92e6aa..4afeae0 100644
--- a/src/com/android/settings/ChooseLockPattern.java
+++ b/src/com/android/settings/ChooseLockPattern.java
@@ -37,7 +37,7 @@
 import com.android.internal.widget.LockPatternView;
 import com.android.internal.widget.LockPatternView.Cell;
 import com.android.internal.widget.LockPatternView.DisplayMode;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.notification.RedactionInterstitial;
 import com.android.setupwizardlib.GlifLayout;
 import com.google.android.collect.Lists;
@@ -127,7 +127,7 @@
         return super.onKeyDown(keyCode, event);
     }
 
-    public static class ChooseLockPatternFragment extends InstrumentedFragment
+    public static class ChooseLockPatternFragment extends InstrumentedPreferenceFragment
             implements View.OnClickListener, SaveAndFinishWorker.Listener {
 
         public static final int CONFIRM_EXISTING_REQUEST = 55;
diff --git a/src/com/android/settings/CreateShortcut.java b/src/com/android/settings/CreateShortcut.java
index 7317738..7cd6748 100644
--- a/src/com/android/settings/CreateShortcut.java
+++ b/src/com/android/settings/CreateShortcut.java
@@ -85,6 +85,11 @@
         return false;
     }
 
+    @Override
+    protected void onSetContentView() {
+        setContentView(R.layout.activity_list);
+    }
+
     /**
      * Perform query on package manager for list items.  The default
      * implementation queries for activities.
diff --git a/src/com/android/settings/CryptKeeperConfirm.java b/src/com/android/settings/CryptKeeperConfirm.java
index e12ebe0..d61fd98 100644
--- a/src/com/android/settings/CryptKeeperConfirm.java
+++ b/src/com/android/settings/CryptKeeperConfirm.java
@@ -35,11 +35,11 @@
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 
 import java.util.Locale;
 
-public class CryptKeeperConfirm extends InstrumentedFragment {
+public class CryptKeeperConfirm extends InstrumentedPreferenceFragment {
 
     private static final String TAG = "CryptKeeperConfirm";
 
diff --git a/src/com/android/settings/CryptKeeperSettings.java b/src/com/android/settings/CryptKeeperSettings.java
index cdeb55f..d9b98f0 100644
--- a/src/com/android/settings/CryptKeeperSettings.java
+++ b/src/com/android/settings/CryptKeeperSettings.java
@@ -36,9 +36,9 @@
 import android.widget.Button;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 
-public class CryptKeeperSettings extends InstrumentedFragment {
+public class CryptKeeperSettings extends InstrumentedPreferenceFragment {
     private static final String TAG = "CryptKeeper";
     private static final String TYPE = "type";
     private static final String PASSWORD = "password";
diff --git a/src/com/android/settings/DateTimeSettings.java b/src/com/android/settings/DateTimeSettings.java
index 749a4ed..fc47fef 100644
--- a/src/com/android/settings/DateTimeSettings.java
+++ b/src/com/android/settings/DateTimeSettings.java
@@ -17,208 +17,106 @@
 package com.android.settings;
 
 import android.app.Activity;
-import android.app.AlarmManager;
-import android.app.DatePickerDialog;
-import android.app.DatePickerDialog.OnDateSetListener;
 import android.app.Dialog;
-import android.app.TimePickerDialog;
-import android.app.TimePickerDialog.OnTimeSetListener;
-import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Bundle;
 import android.os.UserManager;
 import android.provider.SearchIndexableResource;
-import android.provider.Settings;
-import android.provider.Settings.SettingNotFoundException;
-import android.support.v14.preference.SwitchPreference;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.Preference.OnPreferenceChangeListener;
-import android.text.format.DateFormat;
-import android.widget.DatePicker;
-import android.widget.TimePicker;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.datetime.AutoTimePreferenceController;
+import com.android.settings.datetime.AutoTimeZonePreferenceController;
+import com.android.settings.datetime.DatePreferenceController;
+import com.android.settings.datetime.TimeChangeListenerMixin;
 import com.android.settings.datetime.TimeFormatPreferenceController;
-import com.android.settings.datetime.UpdateTimeAndDateCallback;
+import com.android.settings.datetime.TimePreferenceController;
+import com.android.settings.datetime.TimeZonePreferenceController;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedSwitchPreference;
 import com.android.settingslib.datetime.ZoneGetter;
 
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.List;
 
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+public class DateTimeSettings extends DashboardFragment implements
+        TimePreferenceController.TimePreferenceHost, DatePreferenceController.DatePreferenceHost {
 
-public class DateTimeSettings extends SettingsPreferenceFragment
-        implements UpdateTimeAndDateCallback, OnTimeSetListener, OnDateSetListener,
-        OnPreferenceChangeListener, Indexable {
-
-    private static final String KEY_AUTO_TIME = "auto_time";
-    private static final String KEY_AUTO_TIME_ZONE = "auto_zone";
-
-    private static final int DIALOG_DATEPICKER = 0;
-    private static final int DIALOG_TIMEPICKER = 1;
+    private static final String TAG = "DateTimeSettings";
 
     // have we been launched from the setup wizard?
     protected static final String EXTRA_IS_FROM_SUW = "firstRun";
 
-    // Minimum time is Nov 5, 2007, 0:00.
-    private static final long MIN_DATE = 1194220800000L;
-
-    private TimeFormatPreferenceController mTimeFormatPreferenceController;
-    private RestrictedSwitchPreference mAutoTimePref;
-    private Preference mTimePref;
-    private SwitchPreference mAutoTimeZonePref;
-    private Preference mTimeZone;
-    private Preference mDatePref;
-
     @Override
     public int getMetricsCategory() {
         return MetricsEvent.DATE_TIME;
     }
 
     @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-
-        addPreferencesFromResource(R.xml.date_time_prefs);
-
-        initUI();
+    protected String getCategoryKey() {
+        return null;
     }
 
-    private void initUI() {
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.date_time_prefs;
+    }
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        getLifecycle().addObserver(new TimeChangeListenerMixin(context, this));
+    }
+
+    @Override
+    protected List<PreferenceController> getPreferenceControllers(Context context) {
+        final List<PreferenceController> controllers = new ArrayList<>();
         final Activity activity = getActivity();
         final Intent intent = activity.getIntent();
         final boolean isFromSUW = intent.getBooleanExtra(EXTRA_IS_FROM_SUW, false);
-        boolean autoTimeEnabled = getAutoState(Settings.Global.AUTO_TIME);
-        boolean autoTimeZoneEnabled = getAutoState(Settings.Global.AUTO_TIME_ZONE);
 
-        mTimeFormatPreferenceController = new TimeFormatPreferenceController(
-                activity, this /* UpdateTimeAndDateCallback */, isFromSUW);
-        mTimeFormatPreferenceController.displayPreference(getPreferenceScreen());
+        final AutoTimeZonePreferenceController autoTimeZonePreferenceController =
+                new AutoTimeZonePreferenceController(
+                        activity, this /* UpdateTimeAndDateCallback */, isFromSUW);
+        final AutoTimePreferenceController autoTimePreferenceController =
+                new AutoTimePreferenceController(
+                        activity, this /* UpdateTimeAndDateCallback */);
+        controllers.add(autoTimeZonePreferenceController);
+        controllers.add(autoTimePreferenceController);
 
-        mAutoTimePref = (RestrictedSwitchPreference) findPreference(KEY_AUTO_TIME);
-        mAutoTimePref.setOnPreferenceChangeListener(this);
-        EnforcedAdmin admin = RestrictedLockUtils.checkIfAutoTimeRequired(activity);
-        mAutoTimePref.setDisabledByAdmin(admin);
-
-        // If device admin requires auto time device policy manager will set
-        // Settings.Global.AUTO_TIME to true. Note that this app listens to that change.
-        mAutoTimePref.setChecked(autoTimeEnabled);
-        mAutoTimeZonePref = (SwitchPreference) findPreference(KEY_AUTO_TIME_ZONE);
-        mAutoTimeZonePref.setOnPreferenceChangeListener(this);
-        // Override auto-timezone if it's a wifi-only device or if we're still in setup wizard.
-        // TODO: Remove the wifiOnly test when auto-timezone is implemented based on wifi-location.
-        if (Utils.isWifiOnly(activity) || isFromSUW) {
-            getPreferenceScreen().removePreference(mAutoTimeZonePref);
-            autoTimeZoneEnabled = false;
-        }
-        mAutoTimeZonePref.setChecked(autoTimeZoneEnabled);
-
-        mTimePref = findPreference("time");
-        mTimeZone = findPreference("timezone");
-        mDatePref = findPreference("date");
-
-        mTimePref.setEnabled(!autoTimeEnabled);
-        mDatePref.setEnabled(!autoTimeEnabled);
-        mTimeZone.setEnabled(!autoTimeZoneEnabled);
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        // Register for time ticks and other reasons for time change
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(Intent.ACTION_TIME_TICK);
-        filter.addAction(Intent.ACTION_TIME_CHANGED);
-        filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
-        getActivity().registerReceiver(mIntentReceiver, filter, null, null);
-
-        updateTimeAndDateDisplay(getActivity());
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        getActivity().unregisterReceiver(mIntentReceiver);
+        controllers.add(new TimeFormatPreferenceController(
+                activity, this /* UpdateTimeAndDateCallback */, isFromSUW));
+        controllers.add(new TimeZonePreferenceController(
+                activity, autoTimeZonePreferenceController));
+        controllers.add(new TimePreferenceController(
+                activity, this /* UpdateTimeAndDateCallback */, autoTimePreferenceController));
+        controllers.add(new DatePreferenceController(
+                activity, this /* UpdateTimeAndDateCallback */, autoTimePreferenceController));
+        return controllers;
     }
 
     @Override
     public void updateTimeAndDateDisplay(Context context) {
-        final Calendar now = Calendar.getInstance();
-        mDatePref.setSummary(DateFormat.getLongDateFormat(context).format(now.getTime()));
-        mTimePref.setSummary(DateFormat.getTimeFormat(getActivity()).format(now.getTime()));
-        mTimeZone.setSummary(ZoneGetter.getTimeZoneOffsetAndName(context,
-                now.getTimeZone(), now.getTime()));
-        mTimeFormatPreferenceController.updateState(findPreference(
-                mTimeFormatPreferenceController.getPreferenceKey()));
-    }
-
-    @Override
-    public void onDateSet(DatePicker view, int year, int month, int day) {
-        final Activity activity = getActivity();
-        if (activity != null) {
-            setDate(activity, year, month, day);
-            updateTimeAndDateDisplay(activity);
-        }
-    }
-
-    @Override
-    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
-        final Activity activity = getActivity();
-        if (activity != null) {
-            setTime(activity, hourOfDay, minute);
-            updateTimeAndDateDisplay(activity);
-        }
-
-        // We don't need to call timeUpdated() here because the TIME_CHANGED
-        // broadcast is sent by the AlarmManager as a side effect of setting the
-        // SystemClock time.
-    }
-
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        if (preference.getKey().equals(KEY_AUTO_TIME)) {
-            boolean autoEnabled = (Boolean) newValue;
-            Settings.Global.putInt(getContentResolver(), Settings.Global.AUTO_TIME,
-                    autoEnabled ? 1 : 0);
-            mTimePref.setEnabled(!autoEnabled);
-            mDatePref.setEnabled(!autoEnabled);
-        } else if (preference.getKey().equals(KEY_AUTO_TIME_ZONE)) {
-            boolean autoZoneEnabled = (Boolean) newValue;
-            Settings.Global.putInt(
-                    getContentResolver(), Settings.Global.AUTO_TIME_ZONE, autoZoneEnabled ? 1 : 0);
-            mTimeZone.setEnabled(!autoZoneEnabled);
-        }
-        return true;
+        updatePreferenceStates();
     }
 
     @Override
     public Dialog onCreateDialog(int id) {
-        final Calendar calendar = Calendar.getInstance();
         switch (id) {
-            case DIALOG_DATEPICKER:
-                DatePickerDialog d = new DatePickerDialog(
-                        getActivity(),
-                        this,
-                        calendar.get(Calendar.YEAR),
-                        calendar.get(Calendar.MONTH),
-                        calendar.get(Calendar.DAY_OF_MONTH));
-                configureDatePicker(d.getDatePicker());
-                return d;
-            case DIALOG_TIMEPICKER:
-                return new TimePickerDialog(
-                        getActivity(),
-                        this,
-                        calendar.get(Calendar.HOUR_OF_DAY),
-                        calendar.get(Calendar.MINUTE),
-                        DateFormat.is24HourFormat(getActivity()));
+            case DatePreferenceController.DIALOG_DATEPICKER:
+                return getPreferenceController(DatePreferenceController.class)
+                        .buildDatePicker(getActivity());
+            case TimePreferenceController.DIALOG_TIMEPICKER:
+                return getPreferenceController(TimePreferenceController.class)
+                        .buildTimePicker(getActivity());
             default:
                 throw new IllegalArgumentException();
         }
@@ -227,120 +125,26 @@
     @Override
     public int getDialogMetricsCategory(int dialogId) {
         switch (dialogId) {
-            case DIALOG_DATEPICKER:
+            case DatePreferenceController.DIALOG_DATEPICKER:
                 return MetricsEvent.DIALOG_DATE_PICKER;
-            case DIALOG_TIMEPICKER:
+            case TimePreferenceController.DIALOG_TIMEPICKER:
                 return MetricsEvent.DIALOG_TIME_PICKER;
             default:
                 return 0;
         }
     }
 
-    static void configureDatePicker(DatePicker datePicker) {
-        // The system clock can't represent dates outside this range.
-        Calendar t = Calendar.getInstance();
-        t.clear();
-        t.set(1970, Calendar.JANUARY, 1);
-        datePicker.setMinDate(t.getTimeInMillis());
-        t.clear();
-        t.set(2037, Calendar.DECEMBER, 31);
-        datePicker.setMaxDate(t.getTimeInMillis());
-    }
-
-    /*
     @Override
-    public void onPrepareDialog(int id, Dialog d) {
-        switch (id) {
-        case DIALOG_DATEPICKER: {
-            DatePickerDialog datePicker = (DatePickerDialog)d;
-            final Calendar calendar = Calendar.getInstance();
-            datePicker.updateDate(
-                    calendar.get(Calendar.YEAR),
-                    calendar.get(Calendar.MONTH),
-                    calendar.get(Calendar.DAY_OF_MONTH));
-            break;
-        }
-        case DIALOG_TIMEPICKER: {
-            TimePickerDialog timePicker = (TimePickerDialog)d;
-            final Calendar calendar = Calendar.getInstance();
-            timePicker.updateTime(
-                    calendar.get(Calendar.HOUR_OF_DAY),
-                    calendar.get(Calendar.MINUTE));
-            break;
-        }
-        default:
-            break;
-        }
-    }
-    */
-    @Override
-    public boolean onPreferenceTreeClick(Preference preference) {
-        if (mTimeFormatPreferenceController.handlePreferenceTreeClick(preference)) {
-            return super.onPreferenceTreeClick(preference);
-        }
-        if (preference == mDatePref) {
-            showDialog(DIALOG_DATEPICKER);
-        } else if (preference == mTimePref) {
-            // The 24-hour mode may have changed, so recreate the dialog
-            removeDialog(DIALOG_TIMEPICKER);
-            showDialog(DIALOG_TIMEPICKER);
-        }
-        return super.onPreferenceTreeClick(preference);
+    public void showTimePicker() {
+        removeDialog(TimePreferenceController.DIALOG_TIMEPICKER);
+        showDialog(TimePreferenceController.DIALOG_TIMEPICKER);
     }
 
     @Override
-    public void onActivityResult(int requestCode, int resultCode,
-            Intent data) {
-        updateTimeAndDateDisplay(getActivity());
+    public void showDatePicker() {
+        showDialog(DatePreferenceController.DIALOG_DATEPICKER);
     }
 
-    private boolean getAutoState(String name) {
-        try {
-            return Settings.Global.getInt(getContentResolver(), name) > 0;
-        } catch (SettingNotFoundException snfe) {
-            return false;
-        }
-    }
-
-    /* package */
-    static void setDate(Context context, int year, int month, int day) {
-        Calendar c = Calendar.getInstance();
-
-        c.set(Calendar.YEAR, year);
-        c.set(Calendar.MONTH, month);
-        c.set(Calendar.DAY_OF_MONTH, day);
-        long when = Math.max(c.getTimeInMillis(), MIN_DATE);
-
-        if (when / 1000 < Integer.MAX_VALUE) {
-            ((AlarmManager) context.getSystemService(Context.ALARM_SERVICE)).setTime(when);
-        }
-    }
-
-    /* package */
-    static void setTime(Context context, int hourOfDay, int minute) {
-        Calendar c = Calendar.getInstance();
-
-        c.set(Calendar.HOUR_OF_DAY, hourOfDay);
-        c.set(Calendar.MINUTE, minute);
-        c.set(Calendar.SECOND, 0);
-        c.set(Calendar.MILLISECOND, 0);
-        long when = Math.max(c.getTimeInMillis(), MIN_DATE);
-
-        if (when / 1000 < Integer.MAX_VALUE) {
-            ((AlarmManager) context.getSystemService(Context.ALARM_SERVICE)).setTime(when);
-        }
-    }
-
-    private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            final Activity activity = getActivity();
-            if (activity != null) {
-                updateTimeAndDateDisplay(activity);
-            }
-        }
-    };
-
     private static class SummaryProvider implements SummaryLoader.SummaryProvider {
 
         private final Context mContext;
@@ -370,6 +174,7 @@
         }
     };
 
+
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new DateTimeSearchIndexProvider();
 
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index 867fbfd..1ae3380 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -83,6 +83,8 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.applications.BackgroundCheckSummary;
 import com.android.settings.dashboard.DashboardFeatureProvider;
+import com.android.settings.development.BugReportPreferenceController;
+import com.android.settings.development.BugReportInPowerPreferenceController;
 import com.android.settings.fuelgauge.InactiveApps;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.BaseSearchIndexProvider;
@@ -129,8 +131,6 @@
     private static final String LOCAL_BACKUP_PASSWORD = "local_backup_password";
     private static final String HARDWARE_UI_PROPERTY = "persist.sys.ui.hw";
     private static final String MSAA_PROPERTY = "debug.egl.force_msaa";
-    private static final String BUGREPORT = "bugreport";
-    private static final String BUGREPORT_IN_POWER_KEY = "bugreport_in_power";
     private static final String OPENGL_TRACES_PROPERTY = "debug.egl.trace";
     private static final String TUNER_UI_KEY = "tuner_ui";
     private static final String COLOR_TEMPERATURE_PROPERTY = "persist.sys.debug.color_temp";
@@ -248,15 +248,13 @@
     private SwitchPreference mEnableAdb;
     private Preference mClearAdbKeys;
     private SwitchPreference mEnableTerminal;
-    private Preference mBugreport;
-    private SwitchPreference mBugreportInPower;
     private RestrictedSwitchPreference mKeepScreenOn;
     private SwitchPreference mBtHciSnoopLog;
     private RestrictedSwitchPreference mEnableOemUnlock;
     private SwitchPreference mDebugViewAttributes;
     private SwitchPreference mForceAllowOnExternal;
 
-    private PreferenceScreen mPassword;
+    private Preference mPassword;
     private String mDebugApp;
     private Preference mDebugAppPref;
 
@@ -330,6 +328,8 @@
     private boolean mLogpersistCleared;
     private Dialog mLogpersistClearDialog;
     private DashboardFeatureProvider mDashboardFeatureProvider;
+    private BugReportPreferenceController mBugReportController;
+    private BugReportInPowerPreferenceController mBugReportInPowerController;
 
     public DevelopmentSettings() {
         super(UserManager.DISALLOW_DEBUGGING_FEATURES);
@@ -365,6 +365,9 @@
 
         mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
 
+        mBugReportController = new BugReportPreferenceController(getActivity());
+        mBugReportInPowerController = new BugReportInPowerPreferenceController(getActivity());
+
         setIfOnlyAvailableForAdmins(true);
         if (isUiRestricted() || !Utils.isDeviceProvisioned(getActivity())) {
             // Block access to developer options if the user is not the owner, if user policy
@@ -392,8 +395,9 @@
             mEnableTerminal = null;
         }
 
-        mBugreport = findPreference(BUGREPORT);
-        mBugreportInPower = findAndInitSwitchPref(BUGREPORT_IN_POWER_KEY);
+        mBugReportController.displayPreference(getPreferenceScreen());
+        mBugReportInPowerController.displayPreference(getPreferenceScreen());
+
         mKeepScreenOn = (RestrictedSwitchPreference) findAndInitSwitchPref(KEEP_SCREEN_ON);
         mBtHciSnoopLog = findAndInitSwitchPref(BT_HCI_SNOOP_LOG);
         mEnableOemUnlock = (RestrictedSwitchPreference) findAndInitSwitchPref(ENABLE_OEM_UNLOCK);
@@ -404,7 +408,7 @@
 
         mDebugViewAttributes = findAndInitSwitchPref(DEBUG_VIEW_ATTRIBUTES);
         mForceAllowOnExternal = findAndInitSwitchPref(FORCE_ALLOW_ON_EXTERNAL_KEY);
-        mPassword = (PreferenceScreen) findPreference(LOCAL_BACKUP_PASSWORD);
+        mPassword = findPreference(LOCAL_BACKUP_PASSWORD);
         mAllPrefs.add(mPassword);
 
         if (!mUm.isAdminUser()) {
@@ -492,8 +496,7 @@
             removePreferenceForProduction(hdcpChecking);
         }
 
-        PreferenceScreen convertFbePreference =
-                (PreferenceScreen) findPreference(KEY_CONVERT_FBE);
+        Preference convertFbePreference = findPreference(KEY_CONVERT_FBE);
 
         try {
             IBinder service = ServiceManager.getService("mount");
@@ -601,6 +604,7 @@
             Preference pref = mAllPrefs.get(i);
             pref.setEnabled(enabled && !mDisabledPrefs.contains(pref));
         }
+        mBugReportInPowerController.enablePreference(enabled);
         updateAllOptions();
     }
 
@@ -702,8 +706,7 @@
                     context.getPackageManager().getApplicationEnabledSetting(TERMINAL_APP_PACKAGE)
                             == PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
         }
-        updateSwitchPreference(mBugreportInPower, Settings.Secure.getInt(cr,
-                Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0);
+        mHaveDebugSettings |= mBugReportInPowerController.updatePreference();
         updateSwitchPreference(mKeepScreenOn, Settings.Global.getInt(cr,
                 Settings.Global.STAY_ON_WHILE_PLUGGED_IN, 0) != 0);
         updateSwitchPreference(mBtHciSnoopLog, Settings.Secure.getInt(cr,
@@ -765,6 +768,7 @@
                 onPreferenceTreeClick(cb);
             }
         }
+        mBugReportInPowerController.resetPreference();
         resetDebuggerOptions();
         writeLogpersistOption(null, true);
         writeLogdSizeOption(null);
@@ -1076,19 +1080,8 @@
     }
 
     private void updateBugreportOptions() {
-        mBugreport.setEnabled(true);
-        mBugreportInPower.setEnabled(true);
-        setBugreportStorageProviderStatus();
-    }
-
-    private void setBugreportStorageProviderStatus() {
-        final ComponentName componentName = new ComponentName("com.android.shell",
-                "com.android.shell.BugreportStorageProvider");
-        final boolean enabled = mBugreportInPower.isChecked();
-        getPackageManager().setComponentEnabledSetting(componentName,
-                enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
-                        : PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,
-                0);
+        mBugReportController.enablePreference(true);
+        mBugReportInPowerController.updateBugreportOptions();
     }
 
     // Returns the current state of the system property that controls
@@ -1951,6 +1944,10 @@
             return false;
         }
 
+        if (mBugReportInPowerController.handlePreferenceTreeClick(preference)) {
+            return true;
+        }
+
         if (preference == mEnableAdb) {
             if (mEnableAdb.isChecked()) {
                 mDialogClicked = false;
@@ -1981,11 +1978,6 @@
             pm.setApplicationEnabledSetting(TERMINAL_APP_PACKAGE,
                     mEnableTerminal.isChecked() ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
                             : PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0);
-        } else if (preference == mBugreportInPower) {
-            Settings.Secure.putInt(getActivity().getContentResolver(),
-                    Settings.Global.BUGREPORT_IN_POWER_MENU,
-                    mBugreportInPower.isChecked() ? 1 : 0);
-            setBugreportStorageProviderStatus();
         } else if (preference == mKeepScreenOn) {
             Settings.Global.putInt(getActivity().getContentResolver(),
                     Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
diff --git a/src/com/android/settings/OptionsMenuFragment.java b/src/com/android/settings/OptionsMenuFragment.java
index d1e3db2..c8dcc8e 100644
--- a/src/com/android/settings/OptionsMenuFragment.java
+++ b/src/com/android/settings/OptionsMenuFragment.java
@@ -17,7 +17,7 @@
 
 import android.os.Bundle;
 
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 
 /**
  * Base class for a fragment that has the options menu.
@@ -25,7 +25,7 @@
  * preferences, and we need to call setHasOptionsMenu(true) for the back button on action bar.
  * For preference fragments, use SettingsPreferenceFragment.
  */
-public abstract class OptionsMenuFragment extends InstrumentedFragment {
+public abstract class OptionsMenuFragment extends InstrumentedPreferenceFragment {
 
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
diff --git a/src/com/android/settings/ProxySelector.java b/src/com/android/settings/ProxySelector.java
index b272637..a72525c 100644
--- a/src/com/android/settings/ProxySelector.java
+++ b/src/com/android/settings/ProxySelector.java
@@ -41,9 +41,9 @@
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.SettingsPreferenceFragment.SettingsDialogFragment;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 
-public class ProxySelector extends InstrumentedFragment implements DialogCreatable {
+public class ProxySelector extends InstrumentedPreferenceFragment implements DialogCreatable {
     private static final String TAG = "ProxySelector";
 
     EditText    mHostnameField;
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 9d703c1..aa76517 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -36,6 +36,7 @@
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.support.annotation.VisibleForTesting;
 import android.support.v14.preference.PreferenceFragment;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceManager;
@@ -53,104 +54,18 @@
 
 import com.android.internal.util.ArrayUtils;
 import com.android.settings.Settings.WifiSettingsActivity;
-import com.android.settings.accessibility.AccessibilitySettings;
-import com.android.settings.accessibility.AccessibilitySettingsForSetupWizard;
-import com.android.settings.accessibility.CaptionPropertiesFragment;
-import com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment;
-import com.android.settings.accounts.AccountSettings;
-import com.android.settings.accounts.AccountSyncSettings;
-import com.android.settings.accounts.ChooseAccountActivity;
-import com.android.settings.accounts.ManagedProfileSettings;
-import com.android.settings.accounts.UserAndAccountDashboardFragment;
-import com.android.settings.applications.AdvancedAppSettings;
-import com.android.settings.applications.AppAndNotificationDashboardFragment;
-import com.android.settings.applications.DrawOverlayDetails;
-import com.android.settings.applications.InstalledAppDetails;
-import com.android.settings.applications.ManageApplications;
-import com.android.settings.applications.ManageAssist;
-import com.android.settings.applications.ManageDomainUrls;
-import com.android.settings.applications.NotificationApps;
-import com.android.settings.applications.ProcessStatsSummary;
-import com.android.settings.applications.ProcessStatsUi;
-import com.android.settings.applications.UsageAccessDetails;
-import com.android.settings.applications.VrListenerSettings;
-import com.android.settings.applications.WriteSettingsDetails;
-import com.android.settings.bluetooth.BluetoothSettings;
-import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
+import com.android.settings.core.gateway.SettingsGateway;
 import com.android.settings.core.instrumentation.SharedPreferencesLogger;
 import com.android.settings.dashboard.DashboardContainerFragment;
 import com.android.settings.dashboard.DashboardFeatureProvider;
 import com.android.settings.dashboard.DashboardSummary;
 import com.android.settings.dashboard.SearchResultsSummary;
-import com.android.settings.dashboard.SupportFragment;
-import com.android.settings.datausage.DataUsageSummary;
-import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
-import com.android.settings.deviceinfo.ImeiInformation;
-import com.android.settings.deviceinfo.PrivateVolumeForget;
-import com.android.settings.deviceinfo.PrivateVolumeSettings;
-import com.android.settings.deviceinfo.PublicVolumeSettings;
-import com.android.settings.deviceinfo.SimStatus;
-import com.android.settings.deviceinfo.Status;
-import com.android.settings.deviceinfo.StorageDashboardFragment;
-import com.android.settings.deviceinfo.StorageSettings;
-import com.android.settings.display.NightDisplaySettings;
-import com.android.settings.enterprise.EnterprisePrivacySettings;
-import com.android.settings.fuelgauge.BatterySaverSettings;
-import com.android.settings.fuelgauge.PowerUsageDetail;
-import com.android.settings.fuelgauge.PowerUsageSummary;
-import com.android.settings.gestures.DoubleTapPowerSettings;
-import com.android.settings.gestures.DoubleTapScreenSettings;
-import com.android.settings.gestures.DoubleTwistGestureSettings;
-import com.android.settings.gestures.GestureSettings;
-import com.android.settings.gestures.PickupGestureSettings;
-import com.android.settings.gestures.SwipeToNotificationSettings;
-import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
-import com.android.settings.inputmethod.InputAndGestureSettings;
-import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
-import com.android.settings.inputmethod.KeyboardLayoutPickerFragment;
-import com.android.settings.inputmethod.PhysicalKeyboardFragment;
-import com.android.settings.inputmethod.SpellCheckersSettings;
-import com.android.settings.inputmethod.UserDictionaryList;
-import com.android.settings.language.LanguageAndRegionSettings;
-import com.android.settings.localepicker.LocaleListEditor;
-import com.android.settings.location.LocationSettings;
-import com.android.settings.network.NetworkDashboardFragment;
-import com.android.settings.nfc.AndroidBeam;
-import com.android.settings.nfc.PaymentSettings;
-import com.android.settings.notification.AppNotificationSettings;
-import com.android.settings.notification.ConfigureNotificationSettings;
-import com.android.settings.notification.NotificationAccessSettings;
-import com.android.settings.notification.NotificationStation;
-import com.android.settings.notification.OtherSoundSettings;
-import com.android.settings.notification.SoundSettings;
-import com.android.settings.notification.ZenAccessSettings;
-import com.android.settings.notification.ZenModeAutomationSettings;
-import com.android.settings.notification.ZenModeEventRuleSettings;
-import com.android.settings.notification.ZenModePrioritySettings;
-import com.android.settings.notification.ZenModeScheduleRuleSettings;
-import com.android.settings.notification.ZenModeSettings;
-import com.android.settings.notification.ZenModeVisualInterruptionSettings;
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.print.PrintJobSettingsFragment;
-import com.android.settings.print.PrintSettingsFragment;
 import com.android.settings.qstile.DevelopmentTiles;
 import com.android.settings.search.DynamicIndexableContentMonitor;
 import com.android.settings.search.Index;
 import com.android.settings.search2.SearchFeatureProvider;
-import com.android.settings.search2.SearchFragment;
-import com.android.settings.sim.SimSettings;
-import com.android.settings.system.SystemDashboardFragment;
-import com.android.settings.tts.TextToSpeechSettings;
-import com.android.settings.users.UserSettings;
-import com.android.settings.vpn2.VpnSettings;
-import com.android.settings.wfd.WifiDisplaySettings;
 import com.android.settings.widget.SwitchBar;
-import com.android.settings.wifi.AdvancedWifiSettings;
-import com.android.settings.wifi.SavedAccessPointsWifiSettings;
-import com.android.settings.wifi.WifiAPITest;
-import com.android.settings.wifi.WifiInfo;
-import com.android.settings.wifi.WifiSettings;
-import com.android.settings.wifi.p2p.WifiP2pSettings;
 import com.android.settingslib.drawer.DashboardCategory;
 import com.android.settingslib.drawer.SettingsDrawerActivity;
 import com.android.settingslib.drawer.Tile;
@@ -309,120 +224,6 @@
             "com.android.settings.Settings.AboutDeviceDashboardAlias",
     };
 
-    private static final String[] ENTRY_FRAGMENTS = {
-            WirelessSettings.class.getName(),
-            WifiSettings.class.getName(),
-            AdvancedWifiSettings.class.getName(),
-            SavedAccessPointsWifiSettings.class.getName(),
-            BluetoothSettings.class.getName(),
-            SimSettings.class.getName(),
-            TetherSettings.class.getName(),
-            WifiP2pSettings.class.getName(),
-            VpnSettings.class.getName(),
-            DateTimeSettings.class.getName(),
-            LocaleListEditor.class.getName(),
-            InputMethodAndLanguageSettings.class.getName(),
-            AvailableVirtualKeyboardFragment.class.getName(),
-            InputAndGestureSettings.class.getName(),
-            LanguageAndRegionSettings.class.getName(),
-            SpellCheckersSettings.class.getName(),
-            UserDictionaryList.class.getName(),
-            UserDictionarySettings.class.getName(),
-            HomeSettings.class.getName(),
-            DisplaySettings.class.getName(),
-            DeviceInfoSettings.class.getName(),
-            ManageApplications.class.getName(),
-            NotificationApps.class.getName(),
-            ManageAssist.class.getName(),
-            ProcessStatsUi.class.getName(),
-            NotificationStation.class.getName(),
-            LocationSettings.class.getName(),
-            SecuritySettings.class.getName(),
-            UsageAccessDetails.class.getName(),
-            PrivacySettings.class.getName(),
-            DeviceAdminSettings.class.getName(),
-            AccessibilitySettings.class.getName(),
-            AccessibilitySettingsForSetupWizard.class.getName(),
-            CaptionPropertiesFragment.class.getName(),
-            ToggleDaltonizerPreferenceFragment.class.getName(),
-            TextToSpeechSettings.class.getName(),
-            StorageSettings.class.getName(),
-            PrivateVolumeForget.class.getName(),
-            PrivateVolumeSettings.class.getName(),
-            PublicVolumeSettings.class.getName(),
-            DevelopmentSettings.class.getName(),
-            AndroidBeam.class.getName(),
-            WifiDisplaySettings.class.getName(),
-            PowerUsageSummary.class.getName(),
-            AccountSyncSettings.class.getName(),
-            AccountSettings.class.getName(),
-            GestureSettings.class.getName(),
-            SwipeToNotificationSettings.class.getName(),
-            DoubleTapPowerSettings.class.getName(),
-            DoubleTapScreenSettings.class.getName(),
-            PickupGestureSettings.class.getName(),
-            DoubleTwistGestureSettings.class.getName(),
-            CryptKeeperSettings.class.getName(),
-            DataUsageSummary.class.getName(),
-            DreamSettings.class.getName(),
-            UserSettings.class.getName(),
-            NotificationAccessSettings.class.getName(),
-            ZenAccessSettings.class.getName(),
-            PrintSettingsFragment.class.getName(),
-            PrintJobSettingsFragment.class.getName(),
-            TrustedCredentialsSettings.class.getName(),
-            PaymentSettings.class.getName(),
-            KeyboardLayoutPickerFragment.class.getName(),
-            PhysicalKeyboardFragment.class.getName(),
-            ZenModeSettings.class.getName(),
-            SoundSettings.class.getName(),
-            ConfigureNotificationSettings.class.getName(),
-            ChooseLockPassword.ChooseLockPasswordFragment.class.getName(),
-            ChooseLockPattern.ChooseLockPatternFragment.class.getName(),
-            InstalledAppDetails.class.getName(),
-            BatterySaverSettings.class.getName(),
-            AppNotificationSettings.class.getName(),
-            OtherSoundSettings.class.getName(),
-            ApnSettings.class.getName(),
-            ApnEditor.class.getName(),
-            WifiCallingSettings.class.getName(),
-            ZenModePrioritySettings.class.getName(),
-            ZenModeAutomationSettings.class.getName(),
-            ZenModeScheduleRuleSettings.class.getName(),
-            ZenModeEventRuleSettings.class.getName(),
-            ZenModeVisualInterruptionSettings.class.getName(),
-            ProcessStatsUi.class.getName(),
-            PowerUsageDetail.class.getName(),
-            ProcessStatsSummary.class.getName(),
-            DrawOverlayDetails.class.getName(),
-            WriteSettingsDetails.class.getName(),
-            AdvancedAppSettings.class.getName(),
-            WallpaperTypeSettings.class.getName(),
-            VrListenerSettings.class.getName(),
-            ManagedProfileSettings.class.getName(),
-            ChooseAccountActivity.class.getName(),
-            IccLockSettings.class.getName(),
-            ImeiInformation.class.getName(),
-            SimStatus.class.getName(),
-            Status.class.getName(),
-            TestingSettings.class.getName(),
-            WifiAPITest.class.getName(),
-            WifiInfo.class.getName(),
-            MasterClear.class.getName(),
-            NightDisplaySettings.class.getName(),
-            ManageDomainUrls.class.getName(),
-            AutomaticStorageManagerSettings.class.getName(),
-            SupportFragment.class.getName(),
-            StorageDashboardFragment.class.getName(),
-            SystemDashboardFragment.class.getName(),
-            NetworkDashboardFragment.class.getName(),
-            ConnectedDeviceDashboardFragment.class.getName(),
-            AppAndNotificationDashboardFragment.class.getName(),
-            UserAndAccountDashboardFragment.class.getName(),
-            EnterprisePrivacySettings.class.getName(),
-    };
-
-
     private static final String[] LIKE_SHORTCUT_INTENT_ACTION_ARRAY = {
             "android.settings.APPLICATION_DETAILS_SETTINGS"
     };
@@ -452,13 +253,12 @@
             String action = intent.getAction();
             if (action.equals(Intent.ACTION_USER_ADDED)
                     || action.equals(Intent.ACTION_USER_REMOVED)) {
-                Index.getInstance(getApplicationContext()).update();
+                mSearchFeatureProvider.updateIndex(getApplicationContext());
             }
         }
     };
 
-    private final DynamicIndexableContentMonitor mDynamicIndexableContentMonitor =
-            new DynamicIndexableContentMonitor();
+    private DynamicIndexableContentMonitor mDynamicIndexableContentMonitor;
 
     private ActionBar mActionBar;
     private SwitchBar mSwitchBar;
@@ -477,14 +277,10 @@
     private MenuItem mSearchMenuItem;
     private boolean mSearchMenuItemExpanded = false;
     private SearchResultsSummary mSearchResultsFragment;
-    private String mSearchQuery;
-
     private SearchFeatureProvider mSearchFeatureProvider;
 
     // Categories
-    private ArrayList<DashboardCategory> mCategories = new ArrayList<DashboardCategory>();
-
-    private static final String MSG_DATA_FORCE_REFRESH = "msg_data_force_refresh";
+    private ArrayList<DashboardCategory> mCategories = new ArrayList<>();
 
     private boolean mNeedToRevertToInitialFragment = false;
 
@@ -492,6 +288,9 @@
     private Intent mResultIntentData;
     private ComponentName mCurrentSuggestion;
 
+    @VisibleForTesting
+    String mSearchQuery;
+
     public SwitchBar getSwitchBar() {
         return mSwitchBar;
     }
@@ -511,7 +310,7 @@
     @Override
     public void onConfigurationChanged(Configuration newConfig) {
         super.onConfigurationChanged(newConfig);
-        Index.getInstance(this).update();
+        mSearchFeatureProvider.updateIndex(getApplicationContext());
     }
 
     @Override
@@ -907,7 +706,9 @@
         registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
         registerReceiver(mUserAddRemoveReceiver, new IntentFilter(Intent.ACTION_USER_ADDED));
         registerReceiver(mUserAddRemoveReceiver, new IntentFilter(Intent.ACTION_USER_REMOVED));
-
+        if (mDynamicIndexableContentMonitor == null) {
+            mDynamicIndexableContentMonitor = new DynamicIndexableContentMonitor();
+        }
         mDynamicIndexableContentMonitor.register(this, LOADER_ID_INDEXABLE_CONTENT_MONITOR);
 
         if(mDisplaySearch && !TextUtils.isEmpty(mSearchQuery)) {
@@ -921,7 +722,9 @@
         super.onPause();
         unregisterReceiver(mBatteryInfoReceiver);
         unregisterReceiver(mUserAddRemoveReceiver);
-        mDynamicIndexableContentMonitor.unregister();
+        if (mDynamicIndexableContentMonitor != null) {
+            mDynamicIndexableContentMonitor.unregister();
+        }
     }
 
     @Override
@@ -936,8 +739,8 @@
     protected boolean isValidFragment(String fragmentName) {
         // Almost all fragments are wrapped in this,
         // except for a few that have their own activities.
-        for (int i = 0; i < ENTRY_FRAGMENTS.length; i++) {
-            if (ENTRY_FRAGMENTS[i].equals(fragmentName)) return true;
+        for (int i = 0; i < SettingsGateway.ENTRY_FRAGMENTS.length; i++) {
+            if (SettingsGateway.ENTRY_FRAGMENTS[i].equals(fragmentName)) return true;
         }
         return false;
     }
@@ -1305,10 +1108,10 @@
     @Deprecated
     @Override
     public boolean onQueryTextChange(String newText) {
+        mSearchQuery = newText;
         if (mSearchFeatureProvider.isEnabled() || mSearchResultsFragment == null) {
             return false;
         }
-        mSearchQuery = newText;
         return mSearchResultsFragment.onQueryTextChange(newText);
     }
 
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 8118dab..5f42579 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -45,7 +45,7 @@
 import android.widget.Button;
 
 import com.android.settings.applications.LayoutPreference;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.core.instrumentation.Instrumentable;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settingslib.HelpUtils;
@@ -55,7 +55,7 @@
 /**
  * Base class for Settings fragments, with some helper functions and dialog management.
  */
-public abstract class SettingsPreferenceFragment extends InstrumentedFragment
+public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceFragment
         implements DialogCreatable {
 
     /**
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 835757c..1dbd471 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -104,6 +104,7 @@
 import java.util.Locale;
 
 import static android.content.Intent.EXTRA_USER;
+import static android.content.Intent.EXTRA_USER_ID;
 import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
 import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
 
@@ -636,16 +637,21 @@
 
     /**
      * Returns the target user for a Settings activity.
-     *
-     * The target user can be either the current user, the user that launched this activity or
-     * the user contained as an extra in the arguments or intent extras.
-     *
+     * <p>
+     * User would be retrieved in this order:
+     * <ul>
+     * <li> If this activity is launched from other user, return that user id.
+     * <li> If this is launched from the Settings app in same user, return the user contained as an
+     *      extra in the arguments or intent extras.
+     * <li> Otherwise, return UserHandle.myUserId().
+     * </ul>
+     * <p>
      * Note: This is secure in the sense that it only returns a target user different to the current
      * one if the app launching this activity is the Settings app itself, running in the same user
      * or in one that is in the same profile group, or if the user id is provided by the system.
      */
     public static UserHandle getSecureTargetUser(IBinder activityToken,
-           UserManager um, @Nullable Bundle arguments, @Nullable Bundle intentExtras) {
+            UserManager um, @Nullable Bundle arguments, @Nullable Bundle intentExtras) {
         UserHandle currentUser = new UserHandle(UserHandle.myUserId());
         IActivityManager am = ActivityManager.getService();
         try {
@@ -660,16 +666,14 @@
                     return launchedFromUser;
                 }
             }
-            UserHandle extrasUser = intentExtras != null
-                    ? (UserHandle) intentExtras.getParcelable(EXTRA_USER) : null;
+            UserHandle extrasUser = getUserHandleFromBundle(intentExtras);
             if (extrasUser != null && !extrasUser.equals(currentUser)) {
                 // Check it's secure
                 if (launchedFromSettingsApp && isProfileOf(um, extrasUser)) {
                     return extrasUser;
                 }
             }
-            UserHandle argumentsUser = arguments != null
-                    ? (UserHandle) arguments.getParcelable(EXTRA_USER) : null;
+            UserHandle argumentsUser = getUserHandleFromBundle(arguments);
             if (argumentsUser != null && !argumentsUser.equals(currentUser)) {
                 // Check it's secure
                 if (launchedFromSettingsApp && isProfileOf(um, argumentsUser)) {
@@ -681,7 +685,26 @@
             Log.v(TAG, "Could not talk to activity manager.", e);
         }
         return currentUser;
-   }
+    }
+
+    /**
+     * Lookup both {@link Intent#EXTRA_USER} and {@link Intent#EXTRA_USER_ID} in the bundle
+     * and return the {@link UserHandle} object. Return {@code null} if nothing is found.
+     */
+    private static @Nullable UserHandle getUserHandleFromBundle(Bundle bundle) {
+        if (bundle == null) {
+            return null;
+        }
+        final UserHandle user = bundle.getParcelable(EXTRA_USER);
+        if (user != null) {
+            return user;
+        }
+        final int userId = bundle.getInt(EXTRA_USER_ID, -1);
+        if (userId != -1) {
+            return UserHandle.of(userId);
+        }
+        return null;
+    }
 
     /**
      * Returns the target user for a Settings activity.
@@ -1143,7 +1166,7 @@
             final ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(
                     packageName,
                     PackageManager.MATCH_DISABLED_COMPONENTS
-                    | PackageManager.MATCH_UNINSTALLED_PACKAGES);
+                    | PackageManager.MATCH_ANY_USER);
             return appInfo.loadLabel(context.getPackageManager());
         } catch (PackageManager.NameNotFoundException e) {
             Log.w(TAG, "Unable to find info for package: " + packageName);
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index f0c77fc..af5b5cd 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -33,7 +33,6 @@
 import android.support.v7.preference.ListPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceCategory;
-import android.support.v7.preference.PreferenceScreen;
 import android.text.TextUtils;
 import android.view.KeyCharacterMap;
 import android.view.KeyEvent;
@@ -185,12 +184,12 @@
     private SwitchPreference mToggleMasterMonoPreference;
     private ListPreference mSelectLongPressTimeoutPreference;
     private Preference mNoServicesMessagePreference;
-    private PreferenceScreen mCaptioningPreferenceScreen;
-    private PreferenceScreen mDisplayMagnificationPreferenceScreen;
-    private PreferenceScreen mFontSizePreferenceScreen;
-    private PreferenceScreen mAutoclickPreferenceScreen;
-    private PreferenceScreen mGlobalGesturePreferenceScreen;
-    private PreferenceScreen mDisplayDaltonizerPreferenceScreen;
+    private Preference mCaptioningPreferenceScreen;
+    private Preference mDisplayMagnificationPreferenceScreen;
+    private Preference mFontSizePreferenceScreen;
+    private Preference mAutoclickPreferenceScreen;
+    private Preference mGlobalGesturePreferenceScreen;
+    private Preference mDisplayDaltonizerPreferenceScreen;
     private SwitchPreference mToggleInversionPreference;
 
     private int mLongPressTimeoutDefault;
@@ -408,28 +407,24 @@
         }
 
         // Captioning.
-        mCaptioningPreferenceScreen = (PreferenceScreen) findPreference(
-                CAPTIONING_PREFERENCE_SCREEN);
+        mCaptioningPreferenceScreen = findPreference(CAPTIONING_PREFERENCE_SCREEN);
 
         // Display magnification.
-        mDisplayMagnificationPreferenceScreen = (PreferenceScreen) findPreference(
+        mDisplayMagnificationPreferenceScreen = findPreference(
                 DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN);
 
         // Font size.
-        mFontSizePreferenceScreen = (PreferenceScreen) findPreference(
-                FONT_SIZE_PREFERENCE_SCREEN);
+        mFontSizePreferenceScreen = findPreference(FONT_SIZE_PREFERENCE_SCREEN);
 
         // Autoclick after pointer stops.
-        mAutoclickPreferenceScreen = (PreferenceScreen) findPreference(
-                AUTOCLICK_PREFERENCE_SCREEN);
+        mAutoclickPreferenceScreen = findPreference(AUTOCLICK_PREFERENCE_SCREEN);
 
         // Display color adjustments.
-        mDisplayDaltonizerPreferenceScreen = (PreferenceScreen) findPreference(
-                DISPLAY_DALTONIZER_PREFERENCE_SCREEN);
+        mDisplayDaltonizerPreferenceScreen = findPreference(DISPLAY_DALTONIZER_PREFERENCE_SCREEN);
 
         // Global gesture.
-        mGlobalGesturePreferenceScreen =
-                (PreferenceScreen) findPreference(ENABLE_ACCESSIBILITY_GESTURE_PREFERENCE_SCREEN);
+        mGlobalGesturePreferenceScreen = findPreference(
+                ENABLE_ACCESSIBILITY_GESTURE_PREFERENCE_SCREEN);
         final int longPressOnPowerBehavior = getActivity().getResources().getInteger(
                 com.android.internal.R.integer.config_longPressOnPowerBehavior);
         final int LONG_PRESS_POWER_GLOBAL_ACTIONS = 1;
@@ -468,7 +463,8 @@
         for (int i = 0, count = installedServices.size(); i < count; ++i) {
             AccessibilityServiceInfo info = installedServices.get(i);
 
-            RestrictedPreference preference = new RestrictedPreference(getActivity());
+            RestrictedPreference preference =
+                    new RestrictedPreference(mServicesCategory.getContext());
             String title = info.getResolveInfo().loadLabel(getPackageManager()).toString();
 
             ServiceInfo serviceInfo = info.getResolveInfo().serviceInfo;
@@ -702,7 +698,7 @@
         @Override
         public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
                boolean enabled) {
-            List<SearchIndexableResource> indexables = new ArrayList<SearchIndexableResource>();
+            List<SearchIndexableResource> indexables = new ArrayList<>();
             SearchIndexableResource indexable = new SearchIndexableResource(context);
             indexable.xmlResId = R.xml.accessibility_settings;
             indexables.add(indexable);
diff --git a/src/com/android/settings/accounts/AccountDetailDashboardFragment.java b/src/com/android/settings/accounts/AccountDetailDashboardFragment.java
new file mode 100644
index 0000000..cf0a0a8
--- /dev/null
+++ b/src/com/android/settings/accounts/AccountDetailDashboardFragment.java
@@ -0,0 +1,123 @@
+/*
+ * 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.accounts.Account;
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.support.annotation.VisibleForTesting;
+
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.drawer.CategoryKey;
+import com.android.settingslib.drawer.Tile;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class AccountDetailDashboardFragment extends DashboardFragment {
+
+    private static final String TAG = "AccountDetailDashboard";
+    private static final String METADATA_IA_ACCOUNT = "com.android.settings.ia.account";
+
+    public static final String KEY_ACCOUNT = "account";
+    public static final String KEY_ACCOUNT_TYPE = "account_type";
+    public static final String KEY_ACCOUNT_LABEL = "account_label";
+    public static final String KEY_ACCOUNT_TITLE_RES = "account_title_res";
+
+    private String mAccountLabel;
+    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+    String mAccountType;
+    private AccountSyncPreferenceController mAccountSynController;
+
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        Bundle args = getArguments();
+        final Activity activity = getActivity();
+        UserHandle userHandle = Utils.getSecureTargetUser(activity.getActivityToken(),
+            (UserManager) getSystemService(Context.USER_SERVICE), args,
+            activity.getIntent().getExtras());
+        Account account = null;
+        if (args != null) {
+            if (args.containsKey(KEY_ACCOUNT)) {
+                account = args.getParcelable(KEY_ACCOUNT);
+            }
+            if (args.containsKey(KEY_ACCOUNT_LABEL)) {
+                mAccountLabel = args.getString(KEY_ACCOUNT_LABEL);
+            }
+            if (args.containsKey(KEY_ACCOUNT_TYPE)) {
+                mAccountType = args.getString(KEY_ACCOUNT_TYPE);
+            }
+        }
+        mAccountSynController.init(account, userHandle);
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        if (mAccountLabel != null) {
+            getActivity().setTitle(mAccountLabel);
+        }
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return MetricsEvent.ACCOUNT;
+    }
+
+    @Override
+    protected String getCategoryKey() {
+        return CategoryKey.CATEGORY_ACCOUNT;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.account_type_settings;
+    }
+
+    @Override
+    protected List<PreferenceController> getPreferenceControllers(Context context) {
+        final List<PreferenceController> controllers = new ArrayList<>();
+        mAccountSynController = new AccountSyncPreferenceController(context);
+        controllers.add(mAccountSynController);
+        return controllers;
+    }
+
+    @Override
+    protected boolean displayTile(Tile tile) {
+        if (mAccountType == null) {
+            return false;
+        }
+        final Bundle metadata = tile.metaData;
+        if (metadata == null) {
+            return false;
+        }
+        return mAccountType.equals(metadata.getString(METADATA_IA_ACCOUNT));
+    }
+
+}
\ No newline at end of file
diff --git a/src/com/android/settings/accounts/AccountPreference.java b/src/com/android/settings/accounts/AccountPreference.java
index 38cb437..7d613b0 100644
--- a/src/com/android/settings/accounts/AccountPreference.java
+++ b/src/com/android/settings/accounts/AccountPreference.java
@@ -16,89 +16,139 @@
 
 package com.android.settings.accounts;
 
+import android.accounts.Account;
 import android.content.Context;
 import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.os.UserHandle;
-import android.os.UserManager;
 import android.support.v7.preference.Preference;
-import android.support.v7.preference.Preference.OnPreferenceClickListener;
+import android.support.v7.preference.PreferenceViewHolder;
+import android.util.Log;
+import android.widget.ImageView;
 
 import com.android.settings.R;
-import com.android.settings.Utils;
 
-import static android.content.Intent.EXTRA_USER;
+import java.util.ArrayList;
 
-public class AccountPreference extends Preference implements OnPreferenceClickListener {
-    /**
-     * Title of the tile that is shown to the user.
-     * @attr ref android.R.styleable#PreferenceHeader_title
-     */
-    private final CharSequence mTitle;
+/**
+ * AccountPreference is used to display a username, status and provider icon for an account on
+ * the device.
+ */
+public class AccountPreference extends Preference {
+    private static final String TAG = "AccountPreference";
+    public static final int SYNC_ENABLED = 0; // all know sync adapters are enabled and OK
+    public static final int SYNC_DISABLED = 1; // no sync adapters are enabled
+    public static final int SYNC_ERROR = 2; // one or more sync adapters have a problem
+    public static final int SYNC_IN_PROGRESS = 3; // currently syncing
+    private int mStatus;
+    private Account mAccount;
+    private ArrayList<String> mAuthorities;
+    private ImageView mSyncStatusIcon;
+    private boolean mShowTypeIcon;
 
-    /**
-     * Packange name used to resolve the resources of the title shown to the user in the new
-     * fragment.
-     */
-    private final String mTitleResPackageName;
-
-    /**
-     * Resource id of the title shown to the user in the new fragment.
-     */
-    private final int mTitleResId;
-
-    /**
-     * Full class name of the fragment to display when this tile is
-     * selected.
-     * @attr ref android.R.styleable#PreferenceHeader_fragment
-     */
-    private final String mFragment;
-
-    /**
-     * Optional arguments to supply to the fragment when it is
-     * instantiated.
-     */
-    private final Bundle mFragmentArguments;
-
-    public AccountPreference(Context context, CharSequence title, String titleResPackageName,
-        int titleResId, String fragment, Bundle fragmentArguments, Drawable icon) {
+    public AccountPreference(Context context, Account account, Drawable icon,
+            ArrayList<String> authorities, boolean showTypeIcon) {
         super(context);
-        mTitle = title;
-        mTitleResPackageName = titleResPackageName;
-        mTitleResId = titleResId;
-        mFragment = fragment;
-        mFragmentArguments = fragmentArguments;
-        setWidgetLayoutResource(R.layout.account_type_preference);
+        mAccount = account;
+        mAuthorities = authorities;
+        mShowTypeIcon = showTypeIcon;
+        if (showTypeIcon) {
+            setIcon(icon);
+        } else {
+            setIcon(getSyncStatusIcon(SYNC_DISABLED));
+        }
+        setTitle(mAccount.name);
+        setSummary("");
+        setPersistent(false);
+        setSyncStatus(SYNC_DISABLED, false);
+    }
 
-        setTitle(title);
-        setIcon(icon);
+    public Account getAccount() {
+        return mAccount;
+    }
 
-        setOnPreferenceClickListener(this);
+    public ArrayList<String> getAuthorities() {
+        return mAuthorities;
     }
 
     @Override
-    public boolean onPreferenceClick(Preference preference) {
-        if (mFragment != null) {
-            UserManager userManager =
-                (UserManager) getContext().getSystemService(Context.USER_SERVICE);
-            UserHandle user = mFragmentArguments.getParcelable(EXTRA_USER);
-            if (user != null && Utils.startQuietModeDialogIfNecessary(getContext(), userManager,
-                user.getIdentifier())) {
-                return true;
-            } else if (user != null && Utils.unlockWorkProfileIfNecessary(getContext(),
-                user.getIdentifier())) {
-                return true;
-            }
-            Utils.startWithFragment(getContext(), mFragment, mFragmentArguments,
-                null /* resultTo */, 0 /* resultRequestCode */, mTitleResPackageName,
-                mTitleResId, null /* title */);
-            return true;
+    public void onBindViewHolder(PreferenceViewHolder view) {
+        super.onBindViewHolder(view);
+        if (!mShowTypeIcon) {
+            mSyncStatusIcon = (ImageView) view.findViewById(android.R.id.icon);
+            mSyncStatusIcon.setImageResource(getSyncStatusIcon(mStatus));
+            mSyncStatusIcon.setContentDescription(getSyncContentDescription(mStatus));
         }
-        return false;
     }
 
-    public CharSequence getitle() {
-        return mTitle;
+    public void setSyncStatus(int status, boolean updateSummary) {
+        if (mStatus == status) {
+            Log.d(TAG, "Status is the same, not changing anything");
+            return;
+        }
+        mStatus = status;
+        if (!mShowTypeIcon && mSyncStatusIcon != null) {
+            mSyncStatusIcon.setImageResource(getSyncStatusIcon(status));
+            mSyncStatusIcon.setContentDescription(getSyncContentDescription(mStatus));
+        }
+        if (updateSummary) {
+            setSummary(getSyncStatusMessage(status));
+        }
     }
 
+    private int getSyncStatusMessage(int status) {
+        int res;
+        switch (status) {
+            case SYNC_ENABLED:
+                res = R.string.sync_enabled;
+                break;
+            case SYNC_DISABLED:
+                res = R.string.sync_disabled;
+                break;
+            case SYNC_ERROR:
+                res = R.string.sync_error;
+                break;
+            case SYNC_IN_PROGRESS:
+                res = R.string.sync_in_progress;
+                break;
+            default:
+                res = R.string.sync_error;
+                Log.e(TAG, "Unknown sync status: " + status);
+        }
+        return res;
+    }
+
+    private int getSyncStatusIcon(int status) {
+        int res;
+        switch (status) {
+            case SYNC_ENABLED:
+            case SYNC_IN_PROGRESS:
+                res = R.drawable.ic_settings_sync;
+                break;
+            case SYNC_DISABLED:
+                res = R.drawable.ic_sync_grey_holo;
+                break;
+            case SYNC_ERROR:
+                res = R.drawable.ic_sync_red_holo;
+                break;
+            default:
+                res = R.drawable.ic_sync_red_holo;
+                Log.e(TAG, "Unknown sync status: " + status);
+        }
+        return res;
+    }
+
+    private String getSyncContentDescription(int status) {
+        switch (status) {
+            case SYNC_ENABLED:
+                return getContext().getString(R.string.accessibility_sync_enabled);
+            case SYNC_DISABLED:
+                return getContext().getString(R.string.accessibility_sync_disabled);
+            case SYNC_ERROR:
+                return getContext().getString(R.string.accessibility_sync_error);
+            case SYNC_IN_PROGRESS:
+                return getContext().getString(R.string.accessibility_sync_in_progress);
+            default:
+                Log.e(TAG, "Unknown sync status: " + status);
+                return getContext().getString(R.string.accessibility_sync_error);
+        }
+    }
 }
diff --git a/src/com/android/settings/accounts/AccountPreferenceBase.java b/src/com/android/settings/accounts/AccountPreferenceBase.java
index c6581ac..aa5c518 100644
--- a/src/com/android/settings/accounts/AccountPreferenceBase.java
+++ b/src/com/android/settings/accounts/AccountPreferenceBase.java
@@ -32,6 +32,7 @@
 import android.os.UserManager;
 import android.support.v7.preference.PreferenceScreen;
 import android.text.format.DateFormat;
+import android.text.format.DateUtils;
 import android.util.Log;
 
 import com.android.settings.SettingsPreferenceFragment;
@@ -46,6 +47,7 @@
         implements AuthenticatorHelper.OnAccountsUpdateListener {
 
     protected static final String TAG = "AccountSettings";
+    protected static final boolean VERBOSE = Log.isLoggable(TAG, Log.VERBOSE);
 
     public static final String AUTHORITIES_FILTER_KEY = "authorities";
     public static final String ACCOUNT_TYPES_FILTER_KEY = "account_types";
diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java
index a8b95d7..219dd3a 100644
--- a/src/com/android/settings/accounts/AccountPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountPreferenceController.java
@@ -26,6 +26,7 @@
 import android.content.pm.PackageManager;
 import android.content.pm.UserInfo;
 import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.UserManager;
@@ -47,6 +48,7 @@
 import com.android.settings.core.lifecycle.LifecycleObserver;
 import com.android.settings.core.lifecycle.events.OnPause;
 import com.android.settings.core.lifecycle.events.OnResume;
+import com.android.settings.dashboard.DashboardFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.Index;
 import com.android.settings.search.SearchIndexableRaw;
@@ -87,6 +89,7 @@
     private boolean mIAEnabled;
     private int mAccountProfileOrder = ORDER_ACCOUNT_PROFILES;
     private AccountRestrictionHelper mHelper;
+    private DashboardFeatureProvider mDashboardFeatureProvider;
 
     /**
      * Holds data related to the accounts belonging to one profile.
@@ -133,8 +136,9 @@
         if (mAuthorities != null) {
             mAuthoritiesCount = mAuthorities.length;
         }
-        mIAEnabled = FeatureFactory.getFactory(mContext).getDashboardFeatureProvider(mContext)
-            .isEnabled();
+        mDashboardFeatureProvider =
+            FeatureFactory.getFactory(mContext).getDashboardFeatureProvider(mContext);
+        mIAEnabled = mDashboardFeatureProvider.isEnabled();
         mHelper = helper;
     }
 
@@ -144,11 +148,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public String getPreferenceKey() {
         return null;
     }
@@ -251,11 +250,6 @@
     }
 
     private void updateUi() {
-        if (!mIAEnabled) {
-            // Load the preferences from an XML resource
-            mParent.addPreferencesFromResource(R.xml.account_settings);
-        }
-
         if (!isAvailable()) {
             // This should not happen
             Log.e(TAG, "We should not be showing settings for a managed profile");
@@ -265,6 +259,11 @@
             return;
         }
 
+        if (!mIAEnabled) {
+            // Load the preferences from an XML resource
+            mParent.addPreferencesFromResource(R.xml.account_settings);
+        }
+
         if (mUm.isLinkedUser()) {
             // Restricted user or similar
             UserInfo userInfo = mUm.getUserInfo(UserHandle.myUserId());
@@ -401,7 +400,7 @@
     private void updateAccountTypes(ProfileData profileData) {
         profileData.preferenceGroup.removeAll();
         if (profileData.userInfo.isEnabled()) {
-            final ArrayList<AccountPreference> preferences = getAccountTypePreferences(
+            final ArrayList<AccountTypePreference> preferences = getAccountTypePreferences(
                     profileData.authenticatorHelper, profileData.userInfo.getUserHandle());
             final int count = preferences.size();
             for (int i = 0; i < count; i++) {
@@ -431,11 +430,11 @@
         }
     }
 
-    private ArrayList<AccountPreference> getAccountTypePreferences(AuthenticatorHelper helper,
+    private ArrayList<AccountTypePreference> getAccountTypePreferences(AuthenticatorHelper helper,
             UserHandle userHandle) {
         final String[] accountTypes = helper.getEnabledAccountTypes();
-        final ArrayList<AccountPreference> accountTypePreferences =
-                new ArrayList<AccountPreference>(accountTypes.length);
+        final ArrayList<AccountTypePreference> accountTypePreferences =
+                new ArrayList<AccountTypePreference>(accountTypes.length);
 
         for (int i = 0; i < accountTypes.length; i++) {
             final String accountType = accountTypes[i];
@@ -454,17 +453,40 @@
                     .getAccountsByTypeAsUser(accountType, userHandle);
             final boolean skipToAccount = accounts.length == 1
                     && !helper.hasAccountPreferences(accountType);
+            final Drawable icon = helper.getDrawableForType(mContext, accountType);
+            final Context prefContext = mParent.getPreferenceManager().getContext();
 
-            if (skipToAccount) {
+            if (mIAEnabled) {
+                // Add a preference row for each individual account
+                for (Account account : accounts) {
+                    final ArrayList<String> auths =
+                        helper.getAuthoritiesForAccountType(account.type);
+                    if (!AccountRestrictionHelper.showAccount(mAuthorities, auths)) {
+                        continue;
+                    }
+                    final Bundle fragmentArguments = new Bundle();
+                    fragmentArguments.putParcelable(AccountDetailDashboardFragment.KEY_ACCOUNT,
+                        account);
+                    fragmentArguments.putString(AccountDetailDashboardFragment.KEY_ACCOUNT_TYPE,
+                        accountType);
+                    fragmentArguments.putString(AccountDetailDashboardFragment.KEY_ACCOUNT_LABEL,
+                        label.toString());
+                    fragmentArguments.putInt(AccountDetailDashboardFragment.KEY_ACCOUNT_TITLE_RES,
+                        titleResId);
+                    fragmentArguments.putParcelable(EXTRA_USER, userHandle);
+                    accountTypePreferences.add(new AccountTypePreference(
+                        prefContext, account.name, titleResPackageName, titleResId, label,
+                        AccountDetailDashboardFragment.class.getName(), fragmentArguments, icon));
+                }
+            } else if (skipToAccount) {
                 final Bundle fragmentArguments = new Bundle();
                 fragmentArguments.putParcelable(AccountSyncSettings.ACCOUNT_KEY,
                         accounts[0]);
                 fragmentArguments.putParcelable(EXTRA_USER, userHandle);
 
-                accountTypePreferences.add(new AccountPreference(
-                    mParent.getPreferenceManager().getContext(), label, titleResPackageName,
-                    titleResId, AccountSyncSettings.class.getName(), fragmentArguments,
-                    helper.getDrawableForType(mContext, accountType)));
+                accountTypePreferences.add(new AccountTypePreference(
+                        prefContext, label, titleResPackageName,
+                    titleResId, AccountSyncSettings.class.getName(), fragmentArguments, icon));
             } else {
                 final Bundle fragmentArguments = new Bundle();
                 fragmentArguments.putString(ManageAccountsSettings.KEY_ACCOUNT_TYPE, accountType);
@@ -472,18 +494,23 @@
                         label.toString());
                 fragmentArguments.putParcelable(EXTRA_USER, userHandle);
 
-                accountTypePreferences.add(new AccountPreference(
-                    mParent.getPreferenceManager().getContext(), label, titleResPackageName,
-                    titleResId, ManageAccountsSettings.class.getName(), fragmentArguments,
-                    helper.getDrawableForType(mContext, accountType)));
+                accountTypePreferences.add(new AccountTypePreference(
+
+                        prefContext, label, titleResPackageName,
+                    titleResId, ManageAccountsSettings.class.getName(), fragmentArguments, icon));
             }
             helper.preloadDrawableForType(mContext, accountType);
         }
         // Sort by label
-        Collections.sort(accountTypePreferences, new Comparator<AccountPreference>() {
+        Collections.sort(accountTypePreferences, new Comparator<AccountTypePreference>() {
             @Override
-            public int compare(AccountPreference t1, AccountPreference t2) {
-                return t1.getitle().toString().compareTo(t2.getitle().toString());
+            public int compare(AccountTypePreference t1, AccountTypePreference t2) {
+                int result = 0;
+                if (mIAEnabled) {
+                    result = t1.getSummary().toString().compareTo(t2.getSummary().toString());
+                }
+                return result != 0
+                    ? result : t1.getTitle().toString().compareTo(t2.getTitle().toString());
             }
         });
         return accountTypePreferences;
diff --git a/src/com/android/settings/accounts/AccountRestrictionHelper.java b/src/com/android/settings/accounts/AccountRestrictionHelper.java
index 868fa1c..43c56ba 100644
--- a/src/com/android/settings/accounts/AccountRestrictionHelper.java
+++ b/src/com/android/settings/accounts/AccountRestrictionHelper.java
@@ -20,6 +20,7 @@
 import com.android.settings.AccessiblePreferenceCategory;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.RestrictedPreference;
+import java.util.ArrayList;
 
 public class AccountRestrictionHelper {
 
@@ -55,4 +56,22 @@
         return new AccessiblePreferenceCategory(context);
     }
 
+    /**
+     * Checks if the account should be shown based on the required authorities for the account type
+     * @param authorities given authority that is passed as activity extra
+     * @param auths list of authorities for particular account type
+     * @return true if the activity has the required authority to show the account
+     */
+    public static boolean showAccount(String[] authorities, ArrayList<String> auths) {
+        boolean showAccount = true;
+        if (authorities != null && auths != null) {
+            showAccount = false;
+            for (String requestedAuthority : authorities) {
+                if (auths.contains(requestedAuthority)) {
+                    return true;
+                }
+            }
+        }
+        return showAccount;
+    }
 }
diff --git a/src/com/android/settings/accounts/AccountSyncPreferenceController.java b/src/com/android/settings/accounts/AccountSyncPreferenceController.java
new file mode 100644
index 0000000..76750b3
--- /dev/null
+++ b/src/com/android/settings/accounts/AccountSyncPreferenceController.java
@@ -0,0 +1,69 @@
+/*
+ * 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 static android.content.Intent.EXTRA_USER;
+
+import android.accounts.Account;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.Utils;
+import com.android.settings.core.PreferenceController;
+
+public class AccountSyncPreferenceController extends PreferenceController {
+
+    private static final String TAG = "AccountSyncController";
+    private static final String KEY_ACCOUNT_SYNC = "account_sync";
+
+    private Account mAccount;
+    private UserHandle mUserHandle;
+
+    public AccountSyncPreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (!KEY_ACCOUNT_SYNC.equals(preference.getKey())) {
+            return false;
+        }
+        final Bundle args = new Bundle();
+        args.putParcelable(AccountSyncSettings.ACCOUNT_KEY, mAccount);
+        args.putParcelable(EXTRA_USER, mUserHandle);
+        Utils.startWithFragment(mContext, AccountSyncSettings.class.getName(), args, null, 0, -1,
+            mAccount.name);
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_ACCOUNT_SYNC;
+    }
+
+    public void init(Account account, UserHandle userHandle) {
+        mAccount = account;
+        mUserHandle = userHandle;
+    }
+}
diff --git a/src/com/android/settings/accounts/AccountTypePreference.java b/src/com/android/settings/accounts/AccountTypePreference.java
new file mode 100644
index 0000000..bf3b9f5
--- /dev/null
+++ b/src/com/android/settings/accounts/AccountTypePreference.java
@@ -0,0 +1,122 @@
+/*
+ * 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.content.Context;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.Preference.OnPreferenceClickListener;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+
+import static android.content.Intent.EXTRA_USER;
+
+public class AccountTypePreference extends Preference implements OnPreferenceClickListener {
+    /**
+     * Title of the tile that is shown to the user.
+     * @attr ref android.R.styleable#PreferenceHeader_title
+     */
+    private final CharSequence mTitle;
+
+    /**
+     * Packange name used to resolve the resources of the title shown to the user in the new
+     * fragment.
+     */
+    private final String mTitleResPackageName;
+
+    /**
+     * Resource id of the title shown to the user in the new fragment.
+     */
+    private final int mTitleResId;
+
+    /**
+     * Summary of the tile that is shown to the user.
+     */
+    private final CharSequence mSummary;
+
+    /**
+     * Full class name of the fragment to display when this tile is
+     * selected.
+     * @attr ref android.R.styleable#PreferenceHeader_fragment
+     */
+    private final String mFragment;
+
+    /**
+     * Optional arguments to supply to the fragment when it is
+     * instantiated.
+     */
+    private final Bundle mFragmentArguments;
+
+    public AccountTypePreference(Context context, CharSequence title, String titleResPackageName,
+        int titleResId, String fragment, Bundle fragmentArguments, Drawable icon) {
+        this(context, title, titleResPackageName, titleResId, null, fragment, fragmentArguments,
+            icon);
+    }
+
+    public AccountTypePreference(Context context, CharSequence title, String titleResPackageName,
+        int titleResId, CharSequence summary, String fragment, Bundle fragmentArguments,
+        Drawable icon) {
+        super(context);
+        mTitle = title;
+        mTitleResPackageName = titleResPackageName;
+        mTitleResId = titleResId;
+        mSummary = summary;
+        mFragment = fragment;
+        mFragmentArguments = fragmentArguments;
+        setWidgetLayoutResource(R.layout.account_type_preference);
+
+        setTitle(title);
+        setSummary(summary);
+        setIcon(icon);
+
+        setOnPreferenceClickListener(this);
+    }
+
+    @Override
+    public boolean onPreferenceClick(Preference preference) {
+        if (mFragment != null) {
+            UserManager userManager =
+                (UserManager) getContext().getSystemService(Context.USER_SERVICE);
+            UserHandle user = mFragmentArguments.getParcelable(EXTRA_USER);
+            if (user != null && Utils.startQuietModeDialogIfNecessary(getContext(), userManager,
+                user.getIdentifier())) {
+                return true;
+            } else if (user != null && Utils.unlockWorkProfileIfNecessary(getContext(),
+                user.getIdentifier())) {
+                return true;
+            }
+            Utils.startWithFragment(getContext(), mFragment, mFragmentArguments,
+                null /* resultTo */, 0 /* resultRequestCode */, mTitleResPackageName,
+                mTitleResId, null /* title */);
+            return true;
+        }
+        return false;
+    }
+
+    public CharSequence getTitle() {
+        return mTitle;
+    }
+
+    public CharSequence getSummary() {
+        return mSummary;
+    }
+
+}
diff --git a/src/com/android/settings/accounts/AddUserWhenLockedPreferenceController.java b/src/com/android/settings/accounts/AddUserWhenLockedPreferenceController.java
index 898d4a2..10e3610 100644
--- a/src/com/android/settings/accounts/AddUserWhenLockedPreferenceController.java
+++ b/src/com/android/settings/accounts/AddUserWhenLockedPreferenceController.java
@@ -71,11 +71,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public boolean isAvailable() {
         return mUserCaps.isAdmin() &&
                 (!mUserCaps.disallowAddUser() || mUserCaps.disallowAddUserSetByAdmin());
diff --git a/src/com/android/settings/accounts/ManageAccountsSettings.java b/src/com/android/settings/accounts/ManageAccountsSettings.java
index b124824..ce717e2 100644
--- a/src/com/android/settings/accounts/ManageAccountsSettings.java
+++ b/src/com/android/settings/accounts/ManageAccountsSettings.java
@@ -34,9 +34,11 @@
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.UserHandle;
+import android.support.annotation.VisibleForTesting;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceClickListener;
 import android.support.v7.preference.PreferenceScreen;
+import android.util.ArraySet;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -47,7 +49,6 @@
 import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.AccountPreference;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.Utils;
@@ -56,8 +57,8 @@
 
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 import static android.content.Intent.EXTRA_USER;
 
@@ -74,7 +75,7 @@
             "com.android.settings.accounts.LAUNCHING_LOCATION_SETTINGS";
 
     private static final int MENU_SYNC_NOW_ID = Menu.FIRST;
-    private static final int MENU_SYNC_CANCEL_ID    = Menu.FIRST + 1;
+    private static final int MENU_SYNC_CANCEL_ID = Menu.FIRST + 1;
 
     private static final int REQUEST_SHOW_SYNC_SETTINGS = 1;
 
@@ -87,6 +88,8 @@
     // mFirstAccount is used for the injected preferences
     private Account mFirstAccount;
 
+    protected Set<String> mUserFacingSyncAuthorities;
+
     @Override
     public int getMetricsCategory() {
         return MetricsEvent.ACCOUNTS_MANAGE_ACCOUNTS;
@@ -131,7 +134,7 @@
         final Activity activity = getActivity();
         final View view = getView();
 
-        mErrorInfoView = (TextView)view.findViewById(R.id.sync_settings_error_info);
+        mErrorInfoView = (TextView) view.findViewById(R.id.sync_settings_error_info);
         mErrorInfoView.setVisibility(View.GONE);
 
         mAuthorities = activity.getIntent().getStringArrayExtra(AUTHORITIES_FILTER_KEY);
@@ -188,8 +191,7 @@
     @Override
     public void onPrepareOptionsMenu(Menu menu) {
         super.onPrepareOptionsMenu(menu);
-        boolean syncActive = !ContentResolver.getCurrentSyncsAsUser(
-                mUserHandle.getIdentifier()).isEmpty();
+        boolean syncActive = !getCurrentSyncs(mUserHandle.getIdentifier()).isEmpty();
         menu.findItem(MENU_SYNC_NOW_ID).setVisible(!syncActive);
         menu.findItem(MENU_SYNC_CANCEL_ID).setVisible(syncActive);
     }
@@ -197,12 +199,12 @@
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
-        case MENU_SYNC_NOW_ID:
-            requestOrCancelSyncForAccounts(true);
-            return true;
-        case MENU_SYNC_CANCEL_ID:
-            requestOrCancelSyncForAccounts(false);
-            return true;
+            case MENU_SYNC_NOW_ID:
+                requestOrCancelSyncForAccounts(true);
+                return true;
+            case MENU_SYNC_CANCEL_ID:
+                requestOrCancelSyncForAccounts(false);
+                return true;
         }
         return super.onOptionsItemSelected(item);
     }
@@ -223,7 +225,7 @@
                     SyncAdapterType sa = syncAdapters[j];
                     if (syncAdapters[j].accountType.equals(mAccountType)
                             && ContentResolver.getSyncAutomaticallyAsUser(account, sa.authority,
-                                    userId)) {
+                            userId)) {
                         if (sync) {
                             ContentResolver.requestSyncAsUser(account, sa.authority, userId,
                                     extras);
@@ -238,47 +240,58 @@
 
     @Override
     protected void onSyncStateUpdated() {
-        showSyncState();
-        // Catch any delayed delivery of update messages
         final Activity activity = getActivity();
-        if (activity != null) {
-            activity.invalidateOptionsMenu();
+        // Catch any delayed delivery of update messages
+        if (activity == null || activity.isFinishing()) {
+            return;
+        }
+        showSyncState();
+        activity.invalidateOptionsMenu();
+    }
+
+    private void tryInitUserFacingSyncAuthorities(int userId) {
+        if (mUserFacingSyncAuthorities != null) {
+            return;
+        }
+        mUserFacingSyncAuthorities = new ArraySet<>();
+
+        // only track userfacing sync adapters when deciding if account is synced or not
+        final SyncAdapterType[] syncAdapters = ContentResolver.getSyncAdapterTypesAsUser(userId);
+        for (int k = 0, n = syncAdapters.length; k < n; k++) {
+            final SyncAdapterType sa = syncAdapters[k];
+            if (sa.isUserVisible()) {
+                mUserFacingSyncAuthorities.add(sa.authority);
+            }
         }
     }
 
     /**
      * Shows the sync state of the accounts. Note: it must be called after the accounts have been
-     * loaded, @see #showAccountsIfNeeded().
+     * loaded.
+     *
+     * @see {@link #showAccountsIfNeeded()}.
      */
-    private void showSyncState() {
-        // Catch any delayed delivery of update messages
-        if (getActivity() == null || getActivity().isFinishing()) return;
-
+    @VisibleForTesting
+    void showSyncState() {
         final int userId = mUserHandle.getIdentifier();
+        tryInitUserFacingSyncAuthorities(userId);
 
         // iterate over all the preferences, setting the state properly for each
-        List<SyncInfo> currentSyncs = ContentResolver.getCurrentSyncsAsUser(userId);
+        final List<SyncInfo> currentSyncs = getCurrentSyncs(userId);
 
         boolean anySyncFailed = false; // true if sync on any account failed
         Date date = new Date();
 
-        // only track userfacing sync adapters when deciding if account is synced or not
-        final SyncAdapterType[] syncAdapters = ContentResolver.getSyncAdapterTypesAsUser(userId);
-        HashSet<String> userFacing = new HashSet<String>();
-        for (int k = 0, n = syncAdapters.length; k < n; k++) {
-            final SyncAdapterType sa = syncAdapters[k];
-            if (sa.isUserVisible()) {
-                userFacing.add(sa.authority);
-            }
-        }
-        for (int i = 0, count = getPreferenceScreen().getPreferenceCount(); i < count; i++) {
-            Preference pref = getPreferenceScreen().getPreference(i);
-            if (! (pref instanceof AccountPreference)) {
+        final PreferenceScreen screen = getPreferenceScreen();
+        final int prefCount = screen.getPreferenceCount();
+        for (int i = 0; i < prefCount; i++) {
+            Preference pref = screen.getPreference(i);
+            if (!(pref instanceof AccountPreference)) {
                 continue;
             }
 
-            AccountPreference accountPref = (AccountPreference) pref;
-            Account account = accountPref.getAccount();
+            final AccountPreference accountPref = (AccountPreference) pref;
+            final Account account = accountPref.getAccount();
             int syncCount = 0;
             long lastSuccessTime = 0;
             boolean syncIsFailing = false;
@@ -286,28 +299,33 @@
             boolean syncingNow = false;
             if (authorities != null) {
                 for (String authority : authorities) {
-                    SyncStatusInfo status = ContentResolver.getSyncStatusAsUser(account, authority,
-                            userId);
+                    SyncStatusInfo status = getSyncStatusInfo(account, authority, userId);
                     boolean syncEnabled = isSyncEnabled(userId, account, authority);
-                    boolean authorityIsPending = ContentResolver.isSyncPending(account, authority);
                     boolean activelySyncing = isSyncing(currentSyncs, account, authority);
                     boolean lastSyncFailed = status != null
                             && syncEnabled
                             && status.lastFailureTime != 0
                             && status.getLastFailureMesgAsInt(0)
-                               != ContentResolver.SYNC_ERROR_SYNC_ALREADY_IN_PROGRESS;
-                    if (lastSyncFailed && !activelySyncing && !authorityIsPending) {
+                            != ContentResolver.SYNC_ERROR_SYNC_ALREADY_IN_PROGRESS;
+                    if (lastSyncFailed && !activelySyncing
+                            && !ContentResolver.isSyncPending(account, authority)) {
                         syncIsFailing = true;
                         anySyncFailed = true;
+                        break;
                     }
-                    syncingNow |= activelySyncing;
+
                     if (status != null && lastSuccessTime < status.lastSuccessTime) {
                         lastSuccessTime = status.lastSuccessTime;
                     }
-                    syncCount += syncEnabled && userFacing.contains(authority) ? 1 : 0;
+                    syncCount += syncEnabled && mUserFacingSyncAuthorities.contains(authority)
+                            ? 1 : 0;
+                    syncingNow |= activelySyncing;
+                    if (syncingNow) {
+                        break;
+                    }
                 }
             } else {
-                if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                if (VERBOSE) {
                     Log.v(TAG, "no syncadapters found for " + account);
                 }
             }
@@ -332,14 +350,14 @@
                 accountPref.setSyncStatus(AccountPreference.SYNC_DISABLED, true);
             }
         }
-
-        mErrorInfoView.setVisibility(anySyncFailed ? View.VISIBLE : View.GONE);
+        if (mErrorInfoView != null) {
+            mErrorInfoView.setVisibility(anySyncFailed ? View.VISIBLE : View.GONE);
+        }
     }
 
-
     private boolean isSyncing(List<SyncInfo> currentSyncs, Account account, String authority) {
         final int count = currentSyncs.size();
-        for (int i = 0; i < count;  i++) {
+        for (int i = 0; i < count; i++) {
             SyncInfo syncInfo = currentSyncs.get(i);
             if (syncInfo.account.equals(account) && syncInfo.authority.equals(authority)) {
                 return true;
@@ -348,7 +366,8 @@
         return false;
     }
 
-    private boolean isSyncEnabled(int userId, Account account, String authority) {
+    @VisibleForTesting
+    protected boolean isSyncEnabled(int userId, Account account, String authority) {
         return ContentResolver.getSyncAutomaticallyAsUser(account, authority, userId)
                 && ContentResolver.getMasterSyncAutomaticallyAsUser(userId)
                 && (ContentResolver.getIsSyncableAsUser(account, authority, userId) > 0);
@@ -373,18 +392,7 @@
             if (mAccountType != null && !account.type.equals(mAccountType)) continue;
             final ArrayList<String> auths = getAuthoritiesForAccountType(account.type);
 
-            boolean showAccount = true;
-            if (mAuthorities != null && auths != null) {
-                showAccount = false;
-                for (String requestedAuthority : mAuthorities) {
-                    if (auths.contains(requestedAuthority)) {
-                        showAccount = true;
-                        break;
-                    }
-                }
-            }
-
-            if (showAccount) {
+            if (AccountRestrictionHelper.showAccount(mAuthorities, auths)) {
                 final Drawable icon = getDrawableForType(account.type);
                 final AccountPreference preference =
                         new AccountPreference(getPrefContext(), account, icon, auths, false);
@@ -447,7 +455,7 @@
      */
     private void updatePreferenceIntents(PreferenceScreen prefs) {
         final PackageManager pm = getActivity().getPackageManager();
-        for (int i = 0; i < prefs.getPreferenceCount();) {
+        for (int i = 0; i < prefs.getPreferenceCount(); ) {
             Preference pref = prefs.getPreference(i);
             Intent intent = pref.getIntent();
             if (intent != null) {
@@ -497,8 +505,8 @@
                                 } else {
                                     Log.e(TAG,
                                             "Refusing to launch authenticator intent because"
-                                            + "it exploits Settings permissions: "
-                                            + prefIntent);
+                                                    + "it exploits Settings permissions: "
+                                                    + prefIntent);
                                 }
                                 return true;
                             }
@@ -547,4 +555,14 @@
             }
         }
     }
+
+    @VisibleForTesting
+    protected List<SyncInfo> getCurrentSyncs(int userId) {
+        return ContentResolver.getCurrentSyncsAsUser(userId);
+    }
+
+    @VisibleForTesting
+    protected SyncStatusInfo getSyncStatusInfo(Account account, String authority, int userId) {
+        return ContentResolver.getSyncStatusAsUser(account, authority, userId);
+    }
 }
diff --git a/src/com/android/settings/accounts/RemoveUserFragment.java b/src/com/android/settings/accounts/RemoveUserFragment.java
index a6772ad..0fcf64f 100644
--- a/src/com/android/settings/accounts/RemoveUserFragment.java
+++ b/src/com/android/settings/accounts/RemoveUserFragment.java
@@ -26,7 +26,7 @@
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settings.users.UserDialogs;
 
-class RemoveUserFragment extends InstrumentedDialogFragment {
+public class RemoveUserFragment extends InstrumentedDialogFragment {
     private static final String ARG_USER_ID = "userId";
 
     static RemoveUserFragment newInstance(int userId) {
diff --git a/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java b/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java
index aafec37..4113152 100644
--- a/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java
+++ b/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java
@@ -16,14 +16,20 @@
 package com.android.settings.accounts;
 
 import android.content.Context;
+import android.os.Bundle;
+import android.provider.SearchIndexableResource;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.drawer.CategoryKey;
+import com.android.settingslib.drawer.Tile;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import static android.provider.Settings.EXTRA_AUTHORITIES;
@@ -31,6 +37,7 @@
 public class UserAndAccountDashboardFragment extends DashboardFragment {
 
     private static final String TAG = "UserAndAccountDashboard";
+    private static final String METADATA_IA_ACCOUNT = "com.android.settings.ia.account";
 
     @Override
     public int getMetricsCategory() {
@@ -65,10 +72,33 @@
         controllers.add(new AutoSyncWorkDataPreferenceController(context, this));
         String[] authorities = getIntent().getStringArrayExtra(EXTRA_AUTHORITIES);
         final AccountPreferenceController accountPrefController =
-            new AccountPreferenceController(context, this, authorities);
+                new AccountPreferenceController(context, this, authorities);
         getLifecycle().addObserver(accountPrefController);
         controllers.add(accountPrefController);
         return controllers;
     }
 
-}
+    @Override
+    protected boolean displayTile(Tile tile) {
+        final Bundle metadata = tile.metaData;
+        if (metadata != null) {
+            return metadata.getString(METADATA_IA_ACCOUNT) == null;
+        }
+        return true;
+    }
+
+    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider() {
+                @Override
+                public List<SearchIndexableResource> getXmlResourcesToIndex(
+                        Context context, boolean enabled) {
+                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+                            .isEnabled()) {
+                        return null;
+                    }
+                    final SearchIndexableResource sir = new SearchIndexableResource(context);
+                    sir.xmlResId = R.xml.user_and_accounts_settings;
+                    return Arrays.asList(sir);
+                }
+            };
+}
\ No newline at end of file
diff --git a/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java b/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
index 8630541..45b472a 100644
--- a/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
+++ b/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
@@ -17,12 +17,16 @@
 package com.android.settings.applications;
 
 import android.content.Context;
+import android.provider.SearchIndexableResource;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.drawer.CategoryKey;
 
+import java.util.Arrays;
 import java.util.List;
 
 public class AppAndNotificationDashboardFragment extends DashboardFragment {
@@ -53,4 +57,19 @@
     protected List<PreferenceController> getPreferenceControllers(Context context) {
         return null;
     }
+
+    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider() {
+                @Override
+                public List<SearchIndexableResource> getXmlResourcesToIndex(
+                        Context context, boolean enabled) {
+                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+                            .isEnabled()) {
+                        return null;
+                    }
+                    final SearchIndexableResource sir = new SearchIndexableResource(context);
+                    sir.xmlResId = R.xml.app_and_notification;
+                    return Arrays.asList(sir);
+                }
+            };
 }
diff --git a/src/com/android/settings/applications/AppCounter.java b/src/com/android/settings/applications/AppCounter.java
index 64b1987..9464531 100644
--- a/src/com/android/settings/applications/AppCounter.java
+++ b/src/com/android/settings/applications/AppCounter.java
@@ -41,7 +41,7 @@
             final List<ApplicationInfo> list =
                     mPm.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
                             | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
-                            | (user.isAdmin() ? PackageManager.GET_UNINSTALLED_PACKAGES : 0),
+                            | (user.isAdmin() ? PackageManager.MATCH_ANY_USER : 0),
                             user.id);
             for (ApplicationInfo info : list) {
                 if (includeInCount(info)) {
diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java
index 8ab730a..015347d 100644
--- a/src/com/android/settings/applications/AppInfoBase.java
+++ b/src/com/android/settings/applications/AppInfoBase.java
@@ -141,8 +141,8 @@
             // Get application info again to refresh changed properties of application
             try {
                 mPackageInfo = mPm.getPackageInfo(mAppEntry.info.packageName,
-                        PackageManager.GET_DISABLED_COMPONENTS |
-                        PackageManager.GET_UNINSTALLED_PACKAGES |
+                        PackageManager.MATCH_DISABLED_COMPONENTS |
+                        PackageManager.MATCH_ANY_USER |
                         PackageManager.GET_SIGNATURES |
                         PackageManager.GET_PERMISSIONS);
             } catch (NameNotFoundException e) {
diff --git a/src/com/android/settings/applications/AppOpsDetails.java b/src/com/android/settings/applications/AppOpsDetails.java
index 697ffd8..e6c040b 100644
--- a/src/com/android/settings/applications/AppOpsDetails.java
+++ b/src/com/android/settings/applications/AppOpsDetails.java
@@ -39,14 +39,14 @@
 import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.Utils;
 
 import java.util.List;
 
-public class AppOpsDetails extends InstrumentedFragment {
+public class AppOpsDetails extends InstrumentedPreferenceFragment {
     static final String TAG = "AppOpsDetails";
 
     public static final String ARG_PACKAGE_NAME = "package";
@@ -80,8 +80,8 @@
         }
         try {
             mPackageInfo = mPm.getPackageInfo(packageName,
-                    PackageManager.GET_DISABLED_COMPONENTS |
-                    PackageManager.GET_UNINSTALLED_PACKAGES);
+                    PackageManager.MATCH_DISABLED_COMPONENTS |
+                    PackageManager.MATCH_ANY_USER);
         } catch (NameNotFoundException e) {
             Log.e(TAG, "Exception when retrieving package:" + packageName, e);
             mPackageInfo = null;
diff --git a/src/com/android/settings/applications/AppOpsState.java b/src/com/android/settings/applications/AppOpsState.java
index 237eac6..2a5c49a 100644
--- a/src/com/android/settings/applications/AppOpsState.java
+++ b/src/com/android/settings/applications/AppOpsState.java
@@ -167,6 +167,7 @@
                     AppOpsManager.OP_AUDIO_ALARM_VOLUME,
                     AppOpsManager.OP_AUDIO_NOTIFICATION_VOLUME,
                     AppOpsManager.OP_AUDIO_BLUETOOTH_VOLUME,
+                    AppOpsManager.OP_AUDIO_ACCESSIBILITY_VOLUME,
                     AppOpsManager.OP_MUTE_MICROPHONE},
             new boolean[] { false,
                     true,
@@ -508,8 +509,8 @@
             if (appInfo == null) {
                 try {
                     appInfo = mPm.getApplicationInfo(packageName,
-                            PackageManager.GET_DISABLED_COMPONENTS
-                            | PackageManager.GET_UNINSTALLED_PACKAGES);
+                            PackageManager.MATCH_DISABLED_COMPONENTS
+                            | PackageManager.MATCH_ANY_USER);
                 } catch (PackageManager.NameNotFoundException e) {
                     Log.w(TAG, "Unable to find info for package " + packageName);
                     return null;
diff --git a/src/com/android/settings/applications/AppOpsSummary.java b/src/com/android/settings/applications/AppOpsSummary.java
index ac0a856..ba2a3c9 100644
--- a/src/com/android/settings/applications/AppOpsSummary.java
+++ b/src/com/android/settings/applications/AppOpsSummary.java
@@ -29,10 +29,10 @@
 import android.view.ViewGroup;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.R;
 
-public class AppOpsSummary extends InstrumentedFragment {
+public class AppOpsSummary extends InstrumentedPreferenceFragment {
     // layout inflater object used to inflate views
     private LayoutInflater mInflater;
     
diff --git a/src/com/android/settings/applications/BackgroundCheckSummary.java b/src/com/android/settings/applications/BackgroundCheckSummary.java
index 1ff43c8..dd5c89c 100644
--- a/src/com/android/settings/applications/BackgroundCheckSummary.java
+++ b/src/com/android/settings/applications/BackgroundCheckSummary.java
@@ -24,10 +24,10 @@
 import android.view.ViewGroup;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.R;
 
-public class BackgroundCheckSummary extends InstrumentedFragment {
+public class BackgroundCheckSummary extends InstrumentedPreferenceFragment {
     // layout inflater object used to inflate views
     private LayoutInflater mInflater;
 
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index add4301..2569eac 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -635,8 +635,9 @@
             // to go away.
             try {
                 ApplicationInfo ainfo = context.getPackageManager().getApplicationInfo(
-                        mAppEntry.info.packageName, PackageManager.GET_UNINSTALLED_PACKAGES
-                        | PackageManager.GET_DISABLED_COMPONENTS);
+                        mAppEntry.info.packageName,
+                        PackageManager.MATCH_DISABLED_COMPONENTS
+                        | PackageManager.MATCH_ANY_USER);
                 if (!mShowUninstalled) {
                     // If we did not start out with the app uninstalled, then
                     // it transitioning to the uninstalled state for the current
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index 0ec9f1b..099d30e 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -67,7 +67,7 @@
 import com.android.settings.Utils;
 import com.android.settings.applications.AppStateAppOpsBridge.PermissionState;
 import com.android.settings.applications.AppStateUsageBridge.UsageState;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.dashboard.SummaryLoader;
 import com.android.settings.fuelgauge.HighPowerDetail;
 import com.android.settings.fuelgauge.PowerWhitelistBackend;
@@ -95,7 +95,7 @@
  * can be launched through Settings or via the ACTION_MANAGE_PACKAGE_STORAGE
  * intent.
  */
-public class ManageApplications extends InstrumentedFragment
+public class ManageApplications extends InstrumentedPreferenceFragment
         implements OnItemClickListener, OnItemSelectedListener {
 
     static final String TAG = "ManageApplications";
@@ -767,6 +767,12 @@
         private boolean mHasReceivedLoadEntries;
         private boolean mHasReceivedBridgeCallback;
 
+        // These two variables are used to remember and restore the last scroll position when this
+        // fragment is paused. We need this special handling because app entries are added gradually
+        // when we rebuild the list after the user made some changes, like uninstalling an app.
+        private int mLastIndex = -1;
+        private int mLastTop;
+
         private AlphabeticIndex.ImmutableIndex<Locale> mIndex;
         private SectionInfo[] mSections = EMPTY_SECTIONS;
         private int[] mPositionToSectionIndex;
@@ -851,6 +857,10 @@
                     mExtraInfoBridge.pause();
                 }
             }
+            // Record the current scroll position before pausing.
+            mLastIndex = mManageApplications.mListView.getFirstVisiblePosition();
+            View v = mManageApplications.mListView.getChildAt(0);
+            mLastTop = (v == null) ? 0 : (v.getTop() - mManageApplications.mListView.getPaddingTop());
         }
 
         public void release() {
@@ -971,6 +981,12 @@
             }
 
             notifyDataSetChanged();
+            // Restore the last scroll position if the number of entries added so far is bigger than
+            // it.
+            if (mLastIndex != -1 && getCount() > mLastIndex) {
+                mManageApplications.mListView.setSelectionFromTop(mLastIndex, mLastTop);
+                mLastIndex = -1;
+            }
 
             if (mSession.getAllApps().size() != 0
                     && mManageApplications.mListContainer.getVisibility() != View.VISIBLE) {
diff --git a/src/com/android/settings/applications/PackageManagerWrapper.java b/src/com/android/settings/applications/PackageManagerWrapper.java
index d399115..6c783d8 100644
--- a/src/com/android/settings/applications/PackageManagerWrapper.java
+++ b/src/com/android/settings/applications/PackageManagerWrapper.java
@@ -18,6 +18,7 @@
 
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 
 import java.util.List;
@@ -29,24 +30,30 @@
  * the API version supported by Robolectric.
  */
 public interface PackageManagerWrapper {
+
+    /**
+     * Returns the real {@code PackageManager} object.
+     */
+    PackageManager getPackageManager();
+
     /**
      * Calls {@code PackageManager.getInstalledApplicationsAsUser()}.
      *
-     * @see android.content.pm.PackageManager.PackageManager#getInstalledApplicationsAsUser
+     * @see android.content.pm.PackageManager#getInstalledApplicationsAsUser
      */
     List<ApplicationInfo> getInstalledApplicationsAsUser(int flags, int userId);
 
     /**
      * Calls {@code PackageManager.hasSystemFeature()}.
      *
-     * @see android.content.pm.PackageManager.PackageManager#hasSystemFeature
+     * @see android.content.pm.PackageManager#hasSystemFeature
      */
     boolean hasSystemFeature(String name);
 
     /**
      * Calls {@code PackageManager.queryIntentActivitiesAsUser()}.
      *
-     * @see android.content.pm.PackageManager.PackageManager#queryIntentActivitiesAsUser
+     * @see android.content.pm.PackageManager#queryIntentActivitiesAsUser
      */
     List<ResolveInfo> queryIntentActivitiesAsUser(Intent intent, int flags, int userId);
 }
diff --git a/src/com/android/settings/applications/PackageManagerWrapperImpl.java b/src/com/android/settings/applications/PackageManagerWrapperImpl.java
index 8966869..db1d30a 100644
--- a/src/com/android/settings/applications/PackageManagerWrapperImpl.java
+++ b/src/com/android/settings/applications/PackageManagerWrapperImpl.java
@@ -24,6 +24,7 @@
 import java.util.List;
 
 public class PackageManagerWrapperImpl implements PackageManagerWrapper {
+
     private final PackageManager mPm;
 
     public PackageManagerWrapperImpl(PackageManager pm) {
@@ -31,6 +32,11 @@
     }
 
     @Override
+    public PackageManager getPackageManager() {
+        return mPm;
+    }
+
+    @Override
     public List<ApplicationInfo> getInstalledApplicationsAsUser(int flags, int userId) {
         return mPm.getInstalledApplicationsAsUser(flags, userId);
     }
diff --git a/src/com/android/settings/applications/ProcStatsPackageEntry.java b/src/com/android/settings/applications/ProcStatsPackageEntry.java
index dcf87fc..39a0042 100644
--- a/src/com/android/settings/applications/ProcStatsPackageEntry.java
+++ b/src/com/android/settings/applications/ProcStatsPackageEntry.java
@@ -116,15 +116,15 @@
         try {
             if ("os".equals(mPackage)) {
                 mUiTargetApp = pm.getApplicationInfo("android",
-                        PackageManager.GET_DISABLED_COMPONENTS |
-                        PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS |
-                        PackageManager.GET_UNINSTALLED_PACKAGES);
+                        PackageManager.MATCH_DISABLED_COMPONENTS |
+                        PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS |
+                        PackageManager.MATCH_ANY_USER);
                 mUiLabel = context.getString(R.string.process_stats_os_label);
             } else {
                 mUiTargetApp = pm.getApplicationInfo(mPackage,
-                        PackageManager.GET_DISABLED_COMPONENTS |
-                        PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS |
-                        PackageManager.GET_UNINSTALLED_PACKAGES);
+                        PackageManager.MATCH_DISABLED_COMPONENTS |
+                        PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS |
+                        PackageManager.MATCH_ANY_USER);
                 mUiLabel = mUiTargetApp.loadLabel(pm).toString();
             }
         } catch (PackageManager.NameNotFoundException e) {
diff --git a/src/com/android/settings/applications/ProcessStatsMemDetail.java b/src/com/android/settings/applications/ProcessStatsMemDetail.java
index 46a707b..b38aaf6 100644
--- a/src/com/android/settings/applications/ProcessStatsMemDetail.java
+++ b/src/com/android/settings/applications/ProcessStatsMemDetail.java
@@ -26,12 +26,12 @@
 
 import com.android.internal.app.procstats.ProcessStats;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.R;
 
 import static com.android.settings.Utils.prepareCustomPreferencesList;
 
-public class ProcessStatsMemDetail extends InstrumentedFragment {
+public class ProcessStatsMemDetail extends InstrumentedPreferenceFragment {
     public static final String EXTRA_MEM_TIMES = "mem_times";
     public static final String EXTRA_MEM_STATE_WEIGHTS = "mem_state_weights";
     public static final String EXTRA_MEM_CACHED_WEIGHT = "mem_cached_weight";
diff --git a/src/com/android/settings/applications/RunningServiceDetails.java b/src/com/android/settings/applications/RunningServiceDetails.java
index 28a8029..9a173bc 100644
--- a/src/com/android/settings/applications/RunningServiceDetails.java
+++ b/src/com/android/settings/applications/RunningServiceDetails.java
@@ -33,7 +33,7 @@
 import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
@@ -45,7 +45,7 @@
 import java.util.ArrayList;
 import java.util.Collections;
 
-public class RunningServiceDetails extends InstrumentedFragment
+public class RunningServiceDetails extends InstrumentedPreferenceFragment
         implements RunningState.OnRefreshUiListener {
     static final String TAG = "RunningServicesDetails";
 
diff --git a/src/com/android/settings/applications/RunningState.java b/src/com/android/settings/applications/RunningState.java
index f1c3342..dd44887 100644
--- a/src/com/android/settings/applications/RunningState.java
+++ b/src/com/android/settings/applications/RunningState.java
@@ -420,7 +420,7 @@
             
             try {
                 ApplicationInfo ai = pm.getApplicationInfo(mProcessName,
-                        PackageManager.GET_UNINSTALLED_PACKAGES);
+                        PackageManager.MATCH_ANY_USER);
                 if (ai.uid == mUid) {
                     mDisplayLabel = ai.loadLabel(pm);
                     mLabel = mDisplayLabel.toString();
@@ -438,7 +438,7 @@
             if (pkgs.length == 1) {
                 try {
                     ApplicationInfo ai = pm.getApplicationInfo(pkgs[0],
-                            PackageManager.GET_UNINSTALLED_PACKAGES);
+                            PackageManager.MATCH_ANY_USER);
                     mDisplayLabel = ai.loadLabel(pm);
                     mLabel = mDisplayLabel.toString();
                     mPackageInfo = ai;
@@ -480,7 +480,7 @@
             // Finally... whatever, just pick the first package's name.
             try {
                 ApplicationInfo ai = pm.getApplicationInfo(pkgs[0],
-                        PackageManager.GET_UNINSTALLED_PACKAGES);
+                        PackageManager.MATCH_ANY_USER);
                 mDisplayLabel = ai.loadLabel(pm);
                 mLabel = mDisplayLabel.toString();
                 mPackageInfo = ai;
@@ -500,7 +500,7 @@
                 si.mRunningService = service;
                 try {
                     si.mServiceInfo = ActivityThread.getPackageManager().getServiceInfo(
-                            service.service, PackageManager.GET_UNINSTALLED_PACKAGES,
+                            service.service, PackageManager.MATCH_UNINSTALLED_PACKAGES,
                             UserHandle.getUserId(service.uid));
 
                     if (si.mServiceInfo == null) {
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
index 57133b1..db541d5 100644
--- a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
@@ -16,15 +16,20 @@
 package com.android.settings.connecteddevice;
 
 import android.content.Context;
+import android.provider.SearchIndexableResource;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.deviceinfo.UsbBackend;
 import com.android.settings.nfc.NfcPreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
 import com.android.settingslib.drawer.CategoryKey;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 public class ConnectedDeviceDashboardFragment extends DashboardFragment {
@@ -65,4 +70,21 @@
         return controllers;
     }
 
+    /**
+     * For Search.
+     */
+    public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider() {
+                @Override
+                public List<SearchIndexableResource> getXmlResourcesToIndex(
+                        Context context, boolean enabled) {
+                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+                            .isEnabled()) {
+                        return null;
+                    }
+                    final SearchIndexableResource sir = new SearchIndexableResource(context);
+                    sir.xmlResId = R.xml.connected_devices;
+                    return Arrays.asList(sir);
+                }
+            };
 }
\ No newline at end of file
diff --git a/src/com/android/settings/connecteddevice/UsbModePreferenceController.java b/src/com/android/settings/connecteddevice/UsbModePreferenceController.java
index f782e9e..5f700bd 100644
--- a/src/com/android/settings/connecteddevice/UsbModePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/UsbModePreferenceController.java
@@ -58,11 +58,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public boolean isAvailable() {
         return true;
     }
diff --git a/src/com/android/settings/core/InstrumentedFragment.java b/src/com/android/settings/core/InstrumentedFragment.java
index 45e855e..e55cc27 100644
--- a/src/com/android/settings/core/InstrumentedFragment.java
+++ b/src/com/android/settings/core/InstrumentedFragment.java
@@ -17,37 +17,17 @@
 package com.android.settings.core;
 
 import android.content.Context;
-import android.os.Bundle;
 
 import com.android.settings.core.instrumentation.Instrumentable;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
 import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
-import com.android.settings.core.lifecycle.ObservablePreferenceFragment;
+import com.android.settings.core.lifecycle.ObservableFragment;
 import com.android.settings.overlay.FeatureFactory;
 
-/**
- * Instrumented fragment that logs visibility state.
- */
-public abstract class InstrumentedFragment extends ObservablePreferenceFragment
-        implements Instrumentable {
+public abstract class InstrumentedFragment extends ObservableFragment implements Instrumentable {
 
     protected MetricsFeatureProvider mMetricsFeatureProvider;
 
-    // metrics placeholder value. Only use this for development.
-    protected final int PLACEHOLDER_METRIC = 10000;
-    protected final int SYSTEM_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 1;
-    protected final int STORAGE_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 2;
-    protected final int NETWORK_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 3;
-    protected final int CONNECTED_DEVICE_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 4;
-    protected final int APP_AND_NOTIFICATION_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 5;
-    protected final int INPUT_AND_GESTURE_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 6;
-    protected final int LANGUAGE_AND_REGION_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 7;
-    protected final int GESTURE_SWIPE_TO_NOTIFICATION = PLACEHOLDER_METRIC + 8;
-    protected final int GESTURE_DOUBLE_TAP_POWER = PLACEHOLDER_METRIC + 9;
-    protected final int GESTURE_PICKUP = PLACEHOLDER_METRIC + 10;
-    protected final int GESTURE_DOUBLE_TAP_SCREEN = PLACEHOLDER_METRIC + 11;
-    protected final int GESTURE_DOUBLE_TWIST = PLACEHOLDER_METRIC + 12;
-
     public InstrumentedFragment() {
         // Mixin that logs visibility change for activity.
         getLifecycle().addObserver(new VisibilityLoggerMixin(getMetricsCategory()));
@@ -58,8 +38,4 @@
         super.onAttach(context);
         mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
     }
-
-    @Override
-    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
-    }
-}
+}
\ No newline at end of file
diff --git a/src/com/android/settings/core/InstrumentedPreferenceFragment.java b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
new file mode 100644
index 0000000..1724d0c
--- /dev/null
+++ b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
@@ -0,0 +1,65 @@
+/*
+ * 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.core;
+
+import android.content.Context;
+import android.os.Bundle;
+
+import com.android.settings.core.instrumentation.Instrumentable;
+import com.android.settings.core.instrumentation.MetricsFeatureProvider;
+import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
+import com.android.settings.core.lifecycle.ObservablePreferenceFragment;
+import com.android.settings.overlay.FeatureFactory;
+
+/**
+ * Instrumented fragment that logs visibility state.
+ */
+public abstract class InstrumentedPreferenceFragment extends ObservablePreferenceFragment
+        implements Instrumentable {
+
+    protected MetricsFeatureProvider mMetricsFeatureProvider;
+
+    // metrics placeholder value. Only use this for development.
+    protected final int PLACEHOLDER_METRIC = 10000;
+    protected final int SYSTEM_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 1;
+    protected final int STORAGE_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 2;
+    protected final int NETWORK_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 3;
+    protected final int CONNECTED_DEVICE_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 4;
+    protected final int APP_AND_NOTIFICATION_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 5;
+    protected final int INPUT_AND_GESTURE_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 6;
+    protected final int LANGUAGE_AND_REGION_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 7;
+    protected final int GESTURE_SWIPE_TO_NOTIFICATION = PLACEHOLDER_METRIC + 8;
+    protected final int GESTURE_DOUBLE_TAP_POWER = PLACEHOLDER_METRIC + 9;
+    protected final int GESTURE_PICKUP = PLACEHOLDER_METRIC + 10;
+    protected final int GESTURE_DOUBLE_TAP_SCREEN = PLACEHOLDER_METRIC + 11;
+    protected final int GESTURE_DOUBLE_TWIST = PLACEHOLDER_METRIC + 12;
+
+    public InstrumentedPreferenceFragment() {
+        // Mixin that logs visibility change for activity.
+        getLifecycle().addObserver(new VisibilityLoggerMixin(getMetricsCategory()));
+    }
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+    }
+
+    @Override
+    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+    }
+}
diff --git a/src/com/android/settings/core/PreferenceController.java b/src/com/android/settings/core/PreferenceController.java
index 93ffe36..8f551de 100644
--- a/src/com/android/settings/core/PreferenceController.java
+++ b/src/com/android/settings/core/PreferenceController.java
@@ -18,6 +18,7 @@
 import android.content.Context;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
+
 import com.android.settings.search.SearchIndexableRaw;
 
 import java.util.List;
@@ -27,7 +28,7 @@
  */
 public abstract class PreferenceController {
 
-    protected Context mContext;
+    protected final Context mContext;
 
     public PreferenceController(Context context) {
         mContext = context;
@@ -85,7 +86,9 @@
      * @param preference the preference being clicked
      * @return true if click is handled
      */
-    public abstract boolean handlePreferenceTreeClick(Preference preference);
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        return false;
+    }
 
     /**
      * Returns the key for this preference.
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
new file mode 100644
index 0000000..db7eb5a
--- /dev/null
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -0,0 +1,247 @@
+/*
+ * 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.core.gateway;
+
+import com.android.settings.ApnEditor;
+import com.android.settings.ApnSettings;
+import com.android.settings.ChooseLockPassword;
+import com.android.settings.ChooseLockPattern;
+import com.android.settings.CryptKeeperSettings;
+import com.android.settings.DateTimeSettings;
+import com.android.settings.DevelopmentSettings;
+import com.android.settings.DeviceAdminSettings;
+import com.android.settings.DeviceInfoSettings;
+import com.android.settings.DisplaySettings;
+import com.android.settings.DreamSettings;
+import com.android.settings.HomeSettings;
+import com.android.settings.IccLockSettings;
+import com.android.settings.MasterClear;
+import com.android.settings.PrivacySettings;
+import com.android.settings.SecuritySettings;
+import com.android.settings.TestingSettings;
+import com.android.settings.TetherSettings;
+import com.android.settings.TrustedCredentialsSettings;
+import com.android.settings.UserDictionarySettings;
+import com.android.settings.WallpaperTypeSettings;
+import com.android.settings.WifiCallingSettings;
+import com.android.settings.WirelessSettings;
+import com.android.settings.accessibility.AccessibilitySettings;
+import com.android.settings.accessibility.AccessibilitySettingsForSetupWizard;
+import com.android.settings.accessibility.CaptionPropertiesFragment;
+import com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment;
+import com.android.settings.accounts.AccountSettings;
+import com.android.settings.accounts.AccountSyncSettings;
+import com.android.settings.accounts.ChooseAccountActivity;
+import com.android.settings.accounts.ManagedProfileSettings;
+import com.android.settings.accounts.UserAndAccountDashboardFragment;
+import com.android.settings.applications.AdvancedAppSettings;
+import com.android.settings.applications.AppAndNotificationDashboardFragment;
+import com.android.settings.applications.DrawOverlayDetails;
+import com.android.settings.applications.InstalledAppDetails;
+import com.android.settings.applications.ManageApplications;
+import com.android.settings.applications.ManageAssist;
+import com.android.settings.applications.ManageDomainUrls;
+import com.android.settings.applications.NotificationApps;
+import com.android.settings.applications.ProcessStatsSummary;
+import com.android.settings.applications.ProcessStatsUi;
+import com.android.settings.applications.UsageAccessDetails;
+import com.android.settings.applications.VrListenerSettings;
+import com.android.settings.applications.WriteSettingsDetails;
+import com.android.settings.bluetooth.BluetoothSettings;
+import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
+import com.android.settings.dashboard.SupportFragment;
+import com.android.settings.datausage.DataUsageSummary;
+import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
+import com.android.settings.deviceinfo.ImeiInformation;
+import com.android.settings.deviceinfo.PrivateVolumeForget;
+import com.android.settings.deviceinfo.PrivateVolumeSettings;
+import com.android.settings.deviceinfo.PublicVolumeSettings;
+import com.android.settings.deviceinfo.SimStatus;
+import com.android.settings.deviceinfo.Status;
+import com.android.settings.deviceinfo.StorageDashboardFragment;
+import com.android.settings.deviceinfo.StorageSettings;
+import com.android.settings.display.NightDisplaySettings;
+import com.android.settings.enterprise.EnterprisePrivacySettings;
+import com.android.settings.fuelgauge.BatterySaverSettings;
+import com.android.settings.fuelgauge.PowerUsageDetail;
+import com.android.settings.fuelgauge.PowerUsageSummary;
+import com.android.settings.gestures.DoubleTapPowerSettings;
+import com.android.settings.gestures.DoubleTapScreenSettings;
+import com.android.settings.gestures.DoubleTwistGestureSettings;
+import com.android.settings.gestures.GestureSettings;
+import com.android.settings.gestures.PickupGestureSettings;
+import com.android.settings.gestures.SwipeToNotificationSettings;
+import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
+import com.android.settings.inputmethod.InputAndGestureSettings;
+import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
+import com.android.settings.inputmethod.KeyboardLayoutPickerFragment;
+import com.android.settings.inputmethod.PhysicalKeyboardFragment;
+import com.android.settings.inputmethod.SpellCheckersSettings;
+import com.android.settings.inputmethod.UserDictionaryList;
+import com.android.settings.language.LanguageAndRegionSettings;
+import com.android.settings.localepicker.LocaleListEditor;
+import com.android.settings.location.LocationSettings;
+import com.android.settings.network.NetworkDashboardFragment;
+import com.android.settings.nfc.AndroidBeam;
+import com.android.settings.nfc.PaymentSettings;
+import com.android.settings.notification.AppNotificationSettings;
+import com.android.settings.notification.ConfigureNotificationSettings;
+import com.android.settings.notification.NotificationAccessSettings;
+import com.android.settings.notification.NotificationStation;
+import com.android.settings.notification.OtherSoundSettings;
+import com.android.settings.notification.SoundSettings;
+import com.android.settings.notification.ZenAccessSettings;
+import com.android.settings.notification.ZenModeAutomationSettings;
+import com.android.settings.notification.ZenModeEventRuleSettings;
+import com.android.settings.notification.ZenModePrioritySettings;
+import com.android.settings.notification.ZenModeScheduleRuleSettings;
+import com.android.settings.notification.ZenModeSettings;
+import com.android.settings.notification.ZenModeVisualInterruptionSettings;
+import com.android.settings.print.PrintJobSettingsFragment;
+import com.android.settings.print.PrintSettingsFragment;
+import com.android.settings.sim.SimSettings;
+import com.android.settings.system.SystemDashboardFragment;
+import com.android.settings.tts.TextToSpeechSettings;
+import com.android.settings.users.UserSettings;
+import com.android.settings.vpn2.VpnSettings;
+import com.android.settings.wfd.WifiDisplaySettings;
+import com.android.settings.wifi.AdvancedWifiSettings;
+import com.android.settings.wifi.SavedAccessPointsWifiSettings;
+import com.android.settings.wifi.WifiAPITest;
+import com.android.settings.wifi.WifiInfo;
+import com.android.settings.wifi.WifiSettings;
+import com.android.settings.wifi.p2p.WifiP2pSettings;
+
+public class SettingsGateway {
+
+    /**
+     * A list of fragment that can be hosted by SettingsActivity. SettingsActivity will throw a
+     * security exception if the fragment it needs to display is not in this list.
+     */
+    public static final String[] ENTRY_FRAGMENTS = {
+            WirelessSettings.class.getName(),
+            WifiSettings.class.getName(),
+            AdvancedWifiSettings.class.getName(),
+            SavedAccessPointsWifiSettings.class.getName(),
+            BluetoothSettings.class.getName(),
+            SimSettings.class.getName(),
+            TetherSettings.class.getName(),
+            WifiP2pSettings.class.getName(),
+            VpnSettings.class.getName(),
+            DateTimeSettings.class.getName(),
+            LocaleListEditor.class.getName(),
+            InputMethodAndLanguageSettings.class.getName(),
+            AvailableVirtualKeyboardFragment.class.getName(),
+            InputAndGestureSettings.class.getName(),
+            LanguageAndRegionSettings.class.getName(),
+            SpellCheckersSettings.class.getName(),
+            UserDictionaryList.class.getName(),
+            UserDictionarySettings.class.getName(),
+            HomeSettings.class.getName(),
+            DisplaySettings.class.getName(),
+            DeviceInfoSettings.class.getName(),
+            ManageApplications.class.getName(),
+            NotificationApps.class.getName(),
+            ManageAssist.class.getName(),
+            ProcessStatsUi.class.getName(),
+            NotificationStation.class.getName(),
+            LocationSettings.class.getName(),
+            SecuritySettings.class.getName(),
+            UsageAccessDetails.class.getName(),
+            PrivacySettings.class.getName(),
+            DeviceAdminSettings.class.getName(),
+            AccessibilitySettings.class.getName(),
+            AccessibilitySettingsForSetupWizard.class.getName(),
+            CaptionPropertiesFragment.class.getName(),
+            ToggleDaltonizerPreferenceFragment.class.getName(),
+            TextToSpeechSettings.class.getName(),
+            StorageSettings.class.getName(),
+            PrivateVolumeForget.class.getName(),
+            PrivateVolumeSettings.class.getName(),
+            PublicVolumeSettings.class.getName(),
+            DevelopmentSettings.class.getName(),
+            AndroidBeam.class.getName(),
+            WifiDisplaySettings.class.getName(),
+            PowerUsageSummary.class.getName(),
+            AccountSyncSettings.class.getName(),
+            AccountSettings.class.getName(),
+            GestureSettings.class.getName(),
+            SwipeToNotificationSettings.class.getName(),
+            DoubleTapPowerSettings.class.getName(),
+            DoubleTapScreenSettings.class.getName(),
+            PickupGestureSettings.class.getName(),
+            DoubleTwistGestureSettings.class.getName(),
+            CryptKeeperSettings.class.getName(),
+            DataUsageSummary.class.getName(),
+            DreamSettings.class.getName(),
+            UserSettings.class.getName(),
+            NotificationAccessSettings.class.getName(),
+            ZenAccessSettings.class.getName(),
+            PrintSettingsFragment.class.getName(),
+            PrintJobSettingsFragment.class.getName(),
+            TrustedCredentialsSettings.class.getName(),
+            PaymentSettings.class.getName(),
+            KeyboardLayoutPickerFragment.class.getName(),
+            PhysicalKeyboardFragment.class.getName(),
+            ZenModeSettings.class.getName(),
+            SoundSettings.class.getName(),
+            ConfigureNotificationSettings.class.getName(),
+            ChooseLockPassword.ChooseLockPasswordFragment.class.getName(),
+            ChooseLockPattern.ChooseLockPatternFragment.class.getName(),
+            InstalledAppDetails.class.getName(),
+            BatterySaverSettings.class.getName(),
+            AppNotificationSettings.class.getName(),
+            OtherSoundSettings.class.getName(),
+            ApnSettings.class.getName(),
+            ApnEditor.class.getName(),
+            WifiCallingSettings.class.getName(),
+            ZenModePrioritySettings.class.getName(),
+            ZenModeAutomationSettings.class.getName(),
+            ZenModeScheduleRuleSettings.class.getName(),
+            ZenModeEventRuleSettings.class.getName(),
+            ZenModeVisualInterruptionSettings.class.getName(),
+            ProcessStatsUi.class.getName(),
+            PowerUsageDetail.class.getName(),
+            ProcessStatsSummary.class.getName(),
+            DrawOverlayDetails.class.getName(),
+            WriteSettingsDetails.class.getName(),
+            AdvancedAppSettings.class.getName(),
+            WallpaperTypeSettings.class.getName(),
+            VrListenerSettings.class.getName(),
+            ManagedProfileSettings.class.getName(),
+            ChooseAccountActivity.class.getName(),
+            IccLockSettings.class.getName(),
+            ImeiInformation.class.getName(),
+            SimStatus.class.getName(),
+            Status.class.getName(),
+            TestingSettings.class.getName(),
+            WifiAPITest.class.getName(),
+            WifiInfo.class.getName(),
+            MasterClear.class.getName(),
+            NightDisplaySettings.class.getName(),
+            ManageDomainUrls.class.getName(),
+            AutomaticStorageManagerSettings.class.getName(),
+            SupportFragment.class.getName(),
+            StorageDashboardFragment.class.getName(),
+            SystemDashboardFragment.class.getName(),
+            NetworkDashboardFragment.class.getName(),
+            ConnectedDeviceDashboardFragment.class.getName(),
+            AppAndNotificationDashboardFragment.class.getName(),
+            UserAndAccountDashboardFragment.class.getName(),
+            EnterprisePrivacySettings.class.getName(),
+    };
+}
diff --git a/src/com/android/settings/core/instrumentation/MetricsFeatureProviderImpl.java b/src/com/android/settings/core/instrumentation/MetricsFeatureProviderImpl.java
index e4492be..b74c886 100644
--- a/src/com/android/settings/core/instrumentation/MetricsFeatureProviderImpl.java
+++ b/src/com/android/settings/core/instrumentation/MetricsFeatureProviderImpl.java
@@ -16,7 +16,6 @@
 package com.android.settings.core.instrumentation;
 
 import android.content.Context;
-import android.support.annotation.VisibleForTesting;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -92,9 +91,4 @@
             writer.histogram(context, name, bucket);
         }
     }
-
-    @VisibleForTesting
-    public void addLogWriter(LogWriter logWriter) {
-        mLoggerWriters.add(logWriter);
-    }
 }
diff --git a/src/com/android/settings/core/lifecycle/ObservableFragment.java b/src/com/android/settings/core/lifecycle/ObservableFragment.java
new file mode 100644
index 0000000..b146325
--- /dev/null
+++ b/src/com/android/settings/core/lifecycle/ObservableFragment.java
@@ -0,0 +1,87 @@
+/*
+ * 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.core.lifecycle;
+
+import android.annotation.CallSuper;
+import android.app.Fragment;
+import android.content.Context;
+import android.os.Bundle;
+
+public class ObservableFragment extends Fragment {
+
+    private final Lifecycle mLifecycle = new Lifecycle();
+
+    protected Lifecycle getLifecycle() {
+        return mLifecycle;
+    }
+
+    @CallSuper
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        mLifecycle.onAttach(context);
+    }
+
+    @CallSuper
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        mLifecycle.onCreate(savedInstanceState);
+        super.onCreate(savedInstanceState);
+    }
+
+    @CallSuper
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        mLifecycle.onSaveInstanceState(outState);
+    }
+
+    @CallSuper
+    @Override
+    public void onStart() {
+        mLifecycle.onStart();
+        super.onStart();
+    }
+
+    @CallSuper
+    @Override
+    public void onStop() {
+        mLifecycle.onStop();
+        super.onStop();
+    }
+
+    @CallSuper
+    @Override
+    public void onResume() {
+        mLifecycle.onResume();
+        super.onResume();
+    }
+
+    @CallSuper
+    @Override
+    public void onPause() {
+        mLifecycle.onPause();
+        super.onPause();
+    }
+
+    @CallSuper
+    @Override
+    public void onDestroy() {
+        mLifecycle.onDestroy();
+        super.onDestroy();
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/dashboard/DashboardAdapter.java b/src/com/android/settings/dashboard/DashboardAdapter.java
index 136bec0..8ff5607 100644
--- a/src/com/android/settings/dashboard/DashboardAdapter.java
+++ b/src/com/android/settings/dashboard/DashboardAdapter.java
@@ -25,6 +25,7 @@
 import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.util.ArrayMap;
+import android.util.Log;
 import android.util.TypedValue;
 import android.view.ContextThemeWrapper;
 import android.view.LayoutInflater;
@@ -153,6 +154,7 @@
 
     public void setConditions(List<Condition> conditions) {
         final DashboardData prevData = mDashboardData;
+        Log.d(TAG, "adapter setConditions called");
         mDashboardData = new DashboardData.Builder(prevData)
                 .setConditions(conditions)
                 .build();
@@ -165,7 +167,7 @@
         if (position != DashboardData.POSITION_NOT_FOUND) {
             // Since usually tile in parameter and tile in mCategories are same instance,
             // which is hard to be detected by DiffUtil, so we notifyItemChanged directly.
-            notifyItemChanged(position);
+            notifyItemChanged(position, mDashboardData.getItemTypeByPosition(position));
         }
     }
 
diff --git a/src/com/android/settings/dashboard/DashboardContainerFragment.java b/src/com/android/settings/dashboard/DashboardContainerFragment.java
index 45c423f..b3ee808 100644
--- a/src/com/android/settings/dashboard/DashboardContainerFragment.java
+++ b/src/com/android/settings/dashboard/DashboardContainerFragment.java
@@ -28,9 +28,9 @@
 import android.view.ViewGroup;
 
 import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.core.InstrumentedFragment;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
+import com.android.settings.core.InstrumentedFragment;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.overlay.SupportFeatureProvider;
@@ -77,7 +77,7 @@
 
         // check if support tab needs to be selected
         final String selectedTab = getArguments().
-            getString(EXTRA_SELECT_SETTINGS_TAB, ARG_SUMMARY_TAB);
+                getString(EXTRA_SELECT_SETTINGS_TAB, ARG_SUMMARY_TAB);
         if (TextUtils.equals(selectedTab, ARG_SUPPORT_TAB)) {
             mViewPager.setCurrentItem(INDEX_SUPPORT_FRAGMENT);
         } else {
diff --git a/src/com/android/settings/dashboard/DashboardDividerDecoration.java b/src/com/android/settings/dashboard/DashboardDividerDecoration.java
deleted file mode 100644
index ed8a077..0000000
--- a/src/com/android/settings/dashboard/DashboardDividerDecoration.java
+++ /dev/null
@@ -1,92 +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;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.drawable.Drawable;
-import android.support.v4.view.ViewCompat;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceGroupAdapter;
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-
-import com.android.settings.overlay.FeatureFactory;
-
-public class DashboardDividerDecoration extends RecyclerView.ItemDecoration {
-
-    private final DashboardFeatureProvider mDashboardFeatureProvider;
-
-    private Drawable mDivider;
-    private int mDividerHeight;
-
-    public DashboardDividerDecoration(Context context) {
-        mDashboardFeatureProvider = FeatureFactory.getFactory(context)
-                .getDashboardFeatureProvider(context);
-    }
-
-    public void setDivider(Drawable divider) {
-        if (divider != null) {
-            mDividerHeight = divider.getIntrinsicHeight();
-        } else {
-            mDividerHeight = 0;
-        }
-        mDivider = divider;
-    }
-
-    public void setDividerHeight(int dividerHeight) {
-        mDividerHeight = dividerHeight;
-    }
-
-    @Override
-    public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
-        if (mDivider == null) {
-            return;
-        }
-        final int childCount = parent.getChildCount();
-        final int width = parent.getWidth();
-        for (int childViewIndex = 0; childViewIndex < childCount - 1; childViewIndex++) {
-            final View view = parent.getChildAt(childViewIndex);
-            if (shouldDrawDividerBelow(view, parent)) {
-                int top = (int) ViewCompat.getY(view) + view.getHeight();
-                mDivider.setBounds(0, top, width, top + mDividerHeight);
-                mDivider.draw(c);
-            }
-        }
-    }
-
-    private boolean shouldDrawDividerBelow(View view, RecyclerView parent) {
-        final RecyclerView.Adapter adapter = parent.getAdapter();
-        if (adapter == null || !(adapter instanceof PreferenceGroupAdapter)) {
-            return false;
-        }
-        final PreferenceGroupAdapter prefAdapter = (PreferenceGroupAdapter) adapter;
-        final int adapterPosition = parent.getChildAdapterPosition(view);
-        if (adapterPosition == RecyclerView.NO_POSITION) {
-            return false;
-        }
-        final Preference pref = prefAdapter.getItem(adapterPosition);
-        final Preference nextPref = prefAdapter.getItem(adapterPosition + 1);
-        if (nextPref == null) {
-            return false;
-        }
-
-        return mDashboardFeatureProvider.getPriorityGroup(pref)
-                != mDashboardFeatureProvider.getPriorityGroup(nextPref);
-    }
-
-}
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index a3bac9d..2245487 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -43,6 +43,8 @@
     private static final String TAG = "DashboardFeatureImpl";
 
     private static final String DASHBOARD_TILE_PREF_KEY_PREFIX = "dashboard_tile_pref_";
+    private static final String META_DATA_KEY_INTENT_ACTION = "com.android.settings.intent.action";
+
 
     protected final Context mContext;
 
@@ -109,6 +111,9 @@
         if (tile == null || tile.intent == null) {
             return null;
         }
+        if (!TextUtils.isEmpty(tile.key)) {
+            return tile.key;
+        }
         final StringBuilder sb = new StringBuilder(DASHBOARD_TILE_PREF_KEY_PREFIX);
         final ComponentName component = tile.intent.getComponent();
         sb.append(component.getClassName());
@@ -130,13 +135,18 @@
         }
         final Bundle metadata = tile.metaData;
         String clsName = null;
+        String action = null;
         if (metadata != null) {
             clsName = metadata.getString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS);
+            action = metadata.getString(META_DATA_KEY_INTENT_ACTION);
         }
         if (!TextUtils.isEmpty(clsName)) {
             pref.setFragment(clsName);
         } else if (tile.intent != null) {
             final Intent intent = new Intent(tile.intent);
+            if (action != null) {
+                intent.setAction(action);
+            }
             pref.setOnPreferenceClickListener(preference -> {
                 ProfileSelectDialog.updateUserHandlesIfNeeded(mContext, tile);
                 if (tile.userHandle == null) {
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index b0f8734..e59b7ba 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -58,7 +58,6 @@
     private final Map<Class, PreferenceController> mPreferenceControllers =
             new ArrayMap<>();
     private final Set<String> mDashboardTilePrefKeys = new ArraySet<>();
-    private DashboardDividerDecoration mDividerDecoration;
 
     protected ProgressiveDisclosureMixin mProgressiveDisclosureMixin;
     protected DashboardFeatureProvider mDashboardFeatureProvider;
@@ -99,9 +98,6 @@
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
         final View view = super.onCreateView(inflater, container, savedInstanceState);
-        if (mDashboardFeatureProvider.isEnabled()) {
-            getListView().addItemDecoration(mDividerDecoration);
-        }
         return view;
     }
 
@@ -118,7 +114,6 @@
     @Override
     public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
         super.onCreatePreferences(savedInstanceState, rootKey);
-        mDividerDecoration = new DashboardDividerDecoration(getContext());
         refreshAllPreferences(getLogTag());
     }
 
@@ -126,8 +121,6 @@
     public void setDivider(Drawable divider) {
         if (mDashboardFeatureProvider.isEnabled()) {
             // Intercept divider and set it transparent so system divider decoration is disabled.
-            // We will use our decoration to draw divider more intelligently.
-            mDividerDecoration.setDivider(divider);
             super.setDivider(new ColorDrawable(Color.TRANSPARENT));
         } else {
             super.setDivider(divider);
@@ -231,6 +224,13 @@
     protected abstract List<PreferenceController> getPreferenceControllers(Context context);
 
     /**
+     * Returns true if this tile should be displayed
+     */
+    protected boolean displayTile(Tile tile) {
+        return true;
+    }
+
+    /**
      * Displays resource based tiles.
      */
     private void displayResourceTiles() {
@@ -249,7 +249,7 @@
     /**
      * Update state of each preference managed by PreferenceController.
      */
-    private void updatePreferenceStates() {
+    protected void updatePreferenceStates() {
         Collection<PreferenceController> controllers = mPreferenceControllers.values();
         final PreferenceScreen screen = getPreferenceScreen();
         for (PreferenceController controller : controllers) {
@@ -319,6 +319,9 @@
                 Log.d(TAG, "tile does not contain a key, skipping " + tile);
                 continue;
             }
+            if (!displayTile(tile)) {
+                continue;
+            }
             if (mDashboardTilePrefKeys.contains(key)) {
                 // Have the key already, will rebind.
                 final Preference preference = mProgressiveDisclosureMixin.findPreference(
diff --git a/src/com/android/settings/dashboard/DashboardItemAnimator.java b/src/com/android/settings/dashboard/DashboardItemAnimator.java
new file mode 100644
index 0000000..fcaba22
--- /dev/null
+++ b/src/com/android/settings/dashboard/DashboardItemAnimator.java
@@ -0,0 +1,37 @@
+/*
+ * 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;
+
+import android.support.v4.view.ViewCompat;
+import android.support.v7.widget.DefaultItemAnimator;
+import android.support.v7.widget.RecyclerView.ViewHolder;
+
+public class DashboardItemAnimator extends DefaultItemAnimator {
+
+    @Override
+    public boolean animateChange(ViewHolder oldHolder, ViewHolder newHolder, int fromX, int fromY,
+            int toX, int toY) {
+        if (oldHolder == newHolder) {
+            fromX += ViewCompat.getTranslationX(oldHolder.itemView);
+            fromY += ViewCompat.getTranslationY(oldHolder.itemView);
+            if (fromX == toX && fromY == toY) {
+                dispatchMoveFinished(oldHolder);
+                return false;
+            }
+        }
+        return super.animateChange(oldHolder, newHolder, fromX, fromY, toX, toY);
+    }
+}
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index 490808a..136ccaf 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -31,7 +31,7 @@
 import com.android.settings.R;
 import com.android.settings.Settings;
 import com.android.settings.SettingsActivity;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.dashboard.conditional.Condition;
 import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
 import com.android.settings.dashboard.conditional.ConditionManager;
@@ -46,7 +46,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-public class DashboardSummary extends InstrumentedFragment
+public class DashboardSummary extends InstrumentedPreferenceFragment
         implements SettingsDrawerActivity.CategoryListener, ConditionManager.ConditionListener,
         FocusRecyclerView.FocusListener {
     public static final boolean DEBUG = false;
@@ -176,9 +176,12 @@
     public void onWindowFocusChanged(boolean hasWindowFocus) {
         long startTime = System.currentTimeMillis();
         if (hasWindowFocus) {
+            Log.d(TAG, "Listening for condition changes");
             mConditionManager.addListener(this);
+            Log.d(TAG, "conditions refreshed");
             mConditionManager.refreshAll();
         } else {
+            Log.d(TAG, "Stopped listening for condition changes");
             mConditionManager.remListener(this);
         }
         if (DEBUG_TIMING) {
@@ -219,9 +222,11 @@
         mDashboard.setHasFixedSize(true);
         mDashboard.addItemDecoration(new DashboardDecorator(getContext()));
         mDashboard.setListener(this);
+        Log.d(TAG, "adapter created");
         mAdapter = new DashboardAdapter(getContext(), mSuggestionParser, mMetricsFeatureProvider,
                 bundle, mConditionManager.getConditions());
         mDashboard.setAdapter(mAdapter);
+        mDashboard.setItemAnimator(new DashboardItemAnimator());
         mSummaryLoader.setSummaryConsumer(mAdapter);
         ConditionAdapterUtils.addDismiss(mDashboard);
         if (DEBUG_TIMING) {
diff --git a/src/com/android/settings/dashboard/DashboardTilePlaceholderPreferenceController.java b/src/com/android/settings/dashboard/DashboardTilePlaceholderPreferenceController.java
index 6b0018c..eb99fb3 100644
--- a/src/com/android/settings/dashboard/DashboardTilePlaceholderPreferenceController.java
+++ b/src/com/android/settings/dashboard/DashboardTilePlaceholderPreferenceController.java
@@ -53,11 +53,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public String getPreferenceKey() {
         return KEY_PLACEHOLDER;
     }
diff --git a/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java b/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
index 75251b3..8110f32 100644
--- a/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
+++ b/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
@@ -38,7 +38,7 @@
 
     private static final String TAG = "ProgressiveDisclosure";
     private static final String STATE_USER_EXPANDED = "state_user_expanded";
-    private static final int DEFAULT_TILE_LIMIT = 3;
+    private static final int DEFAULT_TILE_LIMIT = 300;
 
     private int mTileLimit = DEFAULT_TILE_LIMIT;
 
diff --git a/src/com/android/settings/dashboard/SearchResultsSummary.java b/src/com/android/settings/dashboard/SearchResultsSummary.java
index 7097485..ef84f8b 100644
--- a/src/com/android/settings/dashboard/SearchResultsSummary.java
+++ b/src/com/android/settings/dashboard/SearchResultsSummary.java
@@ -41,12 +41,12 @@
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.Utils;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.search.Index;
 
 import java.util.HashMap;
 
-public class SearchResultsSummary extends InstrumentedFragment {
+public class SearchResultsSummary extends InstrumentedPreferenceFragment {
 
     private static final String LOG_TAG = "SearchResultsSummary";
 
diff --git a/src/com/android/settings/dashboard/SupportFragment.java b/src/com/android/settings/dashboard/SupportFragment.java
index 63983ce..163bece 100644
--- a/src/com/android/settings/dashboard/SupportFragment.java
+++ b/src/com/android/settings/dashboard/SupportFragment.java
@@ -138,8 +138,8 @@
     @Override
     public void onAccountsUpdated(Account[] accounts) {
         // Account changed, update support items.
-        mSupportItemAdapter.setAccount(
-                mSupportFeatureProvider.getSupportEligibleAccount(mActivity));
+        mSupportItemAdapter.setAccounts(
+                mSupportFeatureProvider.getSupportEligibleAccounts(mActivity));
     }
 
     @Override
diff --git a/src/com/android/settings/dashboard/SupportItemAdapter.java b/src/com/android/settings/dashboard/SupportItemAdapter.java
index 517d8d0..b125fff 100644
--- a/src/com/android/settings/dashboard/SupportItemAdapter.java
+++ b/src/com/android/settings/dashboard/SupportItemAdapter.java
@@ -26,6 +26,7 @@
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
+import android.support.annotation.VisibleForTesting;
 import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
@@ -38,6 +39,7 @@
 import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto;
+import com.android.internal.util.ArrayUtils;
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
 import com.android.settings.overlay.SupportFeatureProvider;
@@ -46,8 +48,8 @@
 import com.android.settings.support.SupportPhoneDialogFragment;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
-import java.util.Objects;
 
 import static com.android.settings.overlay.SupportFeatureProvider.SupportType.CHAT;
 import static com.android.settings.overlay.SupportFeatureProvider.SupportType.PHONE;
@@ -58,6 +60,7 @@
 public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAdapter.ViewHolder> {
 
     private static final String STATE_SELECTED_COUNTRY = "STATE_SELECTED_COUNTRY";
+    private static final String ACCOUNT_SELECTED_INDEX = "ACCOUNT_SELECTED_INDEX";
     private static final int TYPE_ESCALATION_OPTIONS = R.layout.support_escalation_options;
     private static final int TYPE_ESCALATION_OPTIONS_OFFLINE =
             R.layout.support_offline_escalation_options;
@@ -67,7 +70,8 @@
 
     private final Activity mActivity;
     private final EscalationClickListener mEscalationClickListener;
-    private final SpinnerItemSelectListener mSpinnerItemSelectListener;
+    private final OfflineSpinnerItemSelectListener mOfflineSpinnerItemSelectListener;
+    private final OnlineSpinnerItemSelectListener mOnlineSpinnerItemSelectListener;
     private final SupportFeatureProvider mSupportFeatureProvider;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
     private final View.OnClickListener mItemClickListener;
@@ -75,7 +79,8 @@
 
     private String mSelectedCountry;
     private boolean mHasInternet;
-    private Account mAccount;
+    private Account[] mAccounts;
+    private int mSelectedAccountIndex;
 
     public SupportItemAdapter(Activity activity, Bundle savedInstanceState,
             SupportFeatureProvider supportFeatureProvider,
@@ -86,16 +91,20 @@
         mMetricsFeatureProvider = metricsFeatureProvider;
         mItemClickListener = itemClickListener;
         mEscalationClickListener = new EscalationClickListener();
-        mSpinnerItemSelectListener = new SpinnerItemSelectListener();
+        mOfflineSpinnerItemSelectListener = new OfflineSpinnerItemSelectListener();
+        mOnlineSpinnerItemSelectListener = new OnlineSpinnerItemSelectListener();
         mSupportData = new ArrayList<>();
         // Optimistically assume we have Internet access. It will be updated later to correct value.
         mHasInternet = true;
         if (savedInstanceState != null) {
             mSelectedCountry = savedInstanceState.getString(STATE_SELECTED_COUNTRY);
+            mSelectedAccountIndex = savedInstanceState.getInt(ACCOUNT_SELECTED_INDEX);
         } else {
             mSelectedCountry = mSupportFeatureProvider.getCurrentCountryCodeIfHasConfig(PHONE);
+            mSelectedAccountIndex = 0;
         }
-        mAccount = mSupportFeatureProvider.getSupportEligibleAccount(mActivity);
+
+        mAccounts = mSupportFeatureProvider.getSupportEligibleAccounts(mActivity);
         refreshData();
     }
 
@@ -159,9 +168,16 @@
         }
     }
 
-    public void setAccount(Account account) {
-        if (!Objects.equals(mAccount, account)) {
-            mAccount = account;
+    public void setAccounts(Account accounts[]) {
+        if (!Arrays.equals(mAccounts, accounts)) {
+            if (mAccounts.length == 0) {
+                mSelectedAccountIndex = 0;
+            } else {
+                final int index = ArrayUtils.indexOf(accounts, mAccounts[mSelectedAccountIndex]);
+                mSelectedAccountIndex = index != -1 ? index : 0;
+            }
+
+            mAccounts = accounts;
             mSupportFeatureProvider.refreshOperationRules();
             refreshEscalationCards();
         }
@@ -169,6 +185,7 @@
 
     public void onSaveInstanceState(Bundle outState) {
         outState.putString(STATE_SELECTED_COUNTRY, mSelectedCountry);
+        outState.putInt(ACCOUNT_SELECTED_INDEX, mSelectedAccountIndex);
     }
 
     /**
@@ -187,7 +204,7 @@
      * different content.
      */
     private void addEscalationCards() {
-        if (mAccount == null) {
+        if (mAccounts.length == 0) {
             addSignInPromo();
         } else if (mHasInternet) {
             addOnlineEscalationCards();
@@ -341,6 +358,21 @@
             holder.summary2View.setVisibility(mHasInternet && !TextUtils.isEmpty(data.summary2)
                     ? View.VISIBLE : View.GONE);
         }
+
+        bindAccountPicker(holder);
+    }
+
+    @VisibleForTesting
+    public void bindAccountPicker(ViewHolder holder) {
+        final Spinner spinner = (Spinner) holder.itemView.findViewById(R.id.account_spinner);
+
+        final ArrayAdapter<String> adapter = new ArrayAdapter(
+                mActivity, R.layout.support_account_spinner_item,
+                extractAccountNames(mAccounts));
+        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        spinner.setAdapter(adapter);
+        spinner.setOnItemSelectedListener(mOnlineSpinnerItemSelectListener);
+        spinner.setSelection(mSelectedAccountIndex);
     }
 
     private void bindOfflineEscalationOptions(ViewHolder holder, OfflineEscalationData data) {
@@ -360,7 +392,7 @@
                 break;
             }
         }
-        spinner.setOnItemSelectedListener(mSpinnerItemSelectListener);
+        spinner.setOnItemSelectedListener(mOfflineSpinnerItemSelectListener);
         // Bind buttons
         if (data.tollFreePhone != null) {
             holder.text1View.setText(data.tollFreePhone.number);
@@ -415,11 +447,23 @@
      */
     private void tryStartDisclaimerAndSupport(final @SupportFeatureProvider.SupportType int type) {
         if (mSupportFeatureProvider.shouldShowDisclaimerDialog(mActivity)) {
-            DialogFragment fragment = SupportDisclaimerDialogFragment.newInstance(mAccount, type);
+            DialogFragment fragment = SupportDisclaimerDialogFragment.newInstance(
+                    mAccounts[mSelectedAccountIndex], type);
             fragment.show(mActivity.getFragmentManager(), SupportDisclaimerDialogFragment.TAG);
             return;
         }
-        mSupportFeatureProvider.startSupport(mActivity, mAccount, type);
+        mSupportFeatureProvider.startSupport(mActivity, mAccounts[mSelectedAccountIndex], type);
+    }
+
+    private String[] extractAccountNames(Account[] accounts) {
+        String[] accountNames = new String[accounts.length+1];
+        for (int i = 0; i < accounts.length; i++) {
+            accountNames[i] = accounts[i].name;
+        }
+        accountNames[accounts.length] = mActivity.getString(
+                R.string.support_account_picker_add_account);
+
+        return accountNames;
     }
 
     /**
@@ -428,7 +472,7 @@
     private final class EscalationClickListener implements View.OnClickListener {
         @Override
         public void onClick(final View v) {
-            if (mAccount == null) {
+            if (mAccounts.length == 0) {
                 switch (v.getId()) {
                     case android.R.id.text1:
                         mMetricsFeatureProvider.action(mActivity,
@@ -490,7 +534,8 @@
         }
     }
 
-    private final class SpinnerItemSelectListener implements AdapterView.OnItemSelectedListener {
+    private final class OfflineSpinnerItemSelectListener
+            implements AdapterView.OnItemSelectedListener {
 
         @Override
         public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
@@ -508,6 +553,26 @@
         }
     }
 
+    private final class OnlineSpinnerItemSelectListener
+            implements AdapterView.OnItemSelectedListener {
+
+        @Override
+        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+            if (position == mAccounts.length) {
+                mActivity.startActivity(mSupportFeatureProvider.getAccountLoginIntent());
+                // Make sure "Add account" is not shown as selected item
+                parent.setSelection(mSelectedAccountIndex);
+            } else if (position != mSelectedAccountIndex) {
+                mSelectedAccountIndex = position;
+            }
+        }
+
+        @Override
+        public void onNothingSelected(AdapterView<?> parent) {
+            // Do nothing.
+        }
+    }
+
     /**
      * {@link RecyclerView.ViewHolder} for support items.
      */
diff --git a/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java b/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java
index b40baf5..37faeab 100644
--- a/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java
+++ b/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java
@@ -20,12 +20,14 @@
 import android.content.Intent;
 import android.graphics.drawable.Icon;
 import android.net.ConnectivityManager;
+import android.util.Log;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.Settings;
 import com.android.settingslib.WirelessUtils;
 
 public class AirplaneModeCondition extends Condition {
+    public static String TAG = "APM_Condition";
 
     public AirplaneModeCondition(ConditionManager conditionManager) {
         super(conditionManager);
@@ -33,6 +35,7 @@
 
     @Override
     public void refreshState() {
+        Log.d(TAG, "APM condition refreshed");
         setActive(WirelessUtils.isAirplaneModeOn(mManager.getContext()));
     }
 
@@ -47,6 +50,12 @@
     }
 
     @Override
+    protected void setActive(boolean active) {
+        super.setActive(active);
+        Log.d(TAG, "setActive was called with " + active);
+    }
+
+    @Override
     public CharSequence getTitle() {
         return mManager.getContext().getString(R.string.condition_airplane_title);
     }
diff --git a/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java b/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
index c79cdf3..b58ac39 100644
--- a/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
+++ b/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.helper.ItemTouchHelper;
+import android.util.Log;
 import android.view.View;
 import android.view.View.OnLayoutChangeListener;
 import android.view.ViewGroup.LayoutParams;
@@ -31,8 +32,10 @@
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardAdapter;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.WirelessUtils;
 
 public class ConditionAdapterUtils {
+    private static final String TAG = "ConditionAdapterUtils";
 
     public static void addDismiss(final RecyclerView recyclerView) {
         ItemTouchHelper.SimpleCallback callback = new ItemTouchHelper.SimpleCallback(0,
@@ -65,6 +68,11 @@
     public static void bindViews(final Condition condition,
             DashboardAdapter.DashboardItemHolder view, boolean isExpanded,
             View.OnClickListener onClickListener, View.OnClickListener onExpandListener) {
+        if (condition instanceof AirplaneModeCondition) {
+            Log.d(TAG, "Airplane mode condition has been bound with "
+                    + "isActive=" + condition.isActive() + ". Airplane mode is currently " +
+                    WirelessUtils.isAirplaneModeOn(condition.mManager.getContext()));
+        }
         View card = view.itemView.findViewById(R.id.content);
         card.setTag(condition);
         card.setOnClickListener(onClickListener);
diff --git a/src/com/android/settings/dashboard/conditional/ConditionManager.java b/src/com/android/settings/dashboard/conditional/ConditionManager.java
index 691821a..030c62d 100644
--- a/src/com/android/settings/dashboard/conditional/ConditionManager.java
+++ b/src/com/android/settings/dashboard/conditional/ConditionManager.java
@@ -59,9 +59,11 @@
         mContext = context;
         mConditions = new ArrayList<>();
         if (loadConditionsNow) {
+            Log.d(TAG, "conditions loading synchronously");
             ConditionLoader loader = new ConditionLoader();
             loader.onPostExecute(loader.doInBackground());
         } else {
+            Log.d(TAG, "conditions loading asychronously");
             new ConditionLoader().execute();
         }
     }
@@ -229,6 +231,7 @@
     private class ConditionLoader extends AsyncTask<Void, Void, ArrayList<Condition>> {
         @Override
         protected ArrayList<Condition> doInBackground(Void... params) {
+            Log.d(TAG, "loading conditions from xml");
             ArrayList<Condition> conditions = new ArrayList<>();
             mXmlFile = new File(mContext.getFilesDir(), FILE_NAME);
             if (mXmlFile.exists()) {
@@ -240,6 +243,7 @@
 
         @Override
         protected void onPostExecute(ArrayList<Condition> conditions) {
+            Log.d(TAG, "conditions loaded from xml, refreshing conditions");
             mConditions.clear();
             mConditions.addAll(conditions);
             refreshAll();
diff --git a/src/com/android/settings/datetime/AutoTimePreferenceController.java b/src/com/android/settings/datetime/AutoTimePreferenceController.java
new file mode 100644
index 0000000..fdeef29
--- /dev/null
+++ b/src/com/android/settings/datetime/AutoTimePreferenceController.java
@@ -0,0 +1,75 @@
+/*
+ * 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.datetime;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.core.PreferenceController;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+public class AutoTimePreferenceController extends PreferenceController
+        implements Preference.OnPreferenceChangeListener {
+
+    private static final String KEY_AUTO_TIME = "auto_time";
+    private final UpdateTimeAndDateCallback mCallback;
+
+    public AutoTimePreferenceController(Context context, UpdateTimeAndDateCallback callback) {
+        super(context);
+        mCallback = callback;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (!(preference instanceof RestrictedSwitchPreference)) {
+            return;
+        }
+        ((RestrictedSwitchPreference) preference).setDisabledByAdmin(
+                getEnforcedAdminProperty());
+        ((RestrictedSwitchPreference) preference).setChecked(isEnabled());
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_AUTO_TIME;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        boolean autoEnabled = (Boolean) newValue;
+        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AUTO_TIME,
+                autoEnabled ? 1 : 0);
+        mCallback.updateTimeAndDateDisplay(mContext);
+        return true;
+    }
+
+    public boolean isEnabled() {
+        return Settings.Global.getInt(mContext.getContentResolver(),
+                Settings.Global.AUTO_TIME, 0) > 0;
+    }
+
+    private RestrictedLockUtils.EnforcedAdmin getEnforcedAdminProperty() {
+        return RestrictedLockUtils.checkIfAutoTimeRequired(mContext);
+    }
+}
diff --git a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
new file mode 100644
index 0000000..c70289b
--- /dev/null
+++ b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
@@ -0,0 +1,73 @@
+/*
+ * 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.datetime;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.Utils;
+import com.android.settings.core.PreferenceController;
+
+public class AutoTimeZonePreferenceController extends PreferenceController
+        implements Preference.OnPreferenceChangeListener {
+
+    private static final String KEY_AUTO_TIME_ZONE = "auto_zone";
+
+    private final boolean mIsFromSUW;
+    private final UpdateTimeAndDateCallback mCallback;
+
+    public AutoTimeZonePreferenceController(Context context, UpdateTimeAndDateCallback callback,
+            boolean isFromSUW) {
+        super(context);
+        mCallback = callback;
+        mIsFromSUW = isFromSUW;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return !(Utils.isWifiOnly(mContext) || mIsFromSUW);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_AUTO_TIME_ZONE;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (!(preference instanceof SwitchPreference)) {
+            return;
+        }
+        ((SwitchPreference) preference).setChecked(isEnabled());
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        boolean autoZoneEnabled = (Boolean) newValue;
+        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AUTO_TIME_ZONE,
+                autoZoneEnabled ? 1 : 0);
+        mCallback.updateTimeAndDateDisplay(mContext);
+        return true;
+    }
+
+    public boolean isEnabled() {
+        return Settings.Global.getInt(mContext.getContentResolver(),
+                Settings.Global.AUTO_TIME_ZONE, 0) > 0;
+    }
+}
diff --git a/src/com/android/settings/datetime/DatePreferenceController.java b/src/com/android/settings/datetime/DatePreferenceController.java
new file mode 100644
index 0000000..2a06e5a
--- /dev/null
+++ b/src/com/android/settings/datetime/DatePreferenceController.java
@@ -0,0 +1,117 @@
+/*
+ * 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.datetime;
+
+import android.app.Activity;
+import android.app.AlarmManager;
+import android.app.DatePickerDialog;
+import android.content.Context;
+import android.support.annotation.VisibleForTesting;
+import android.support.v7.preference.Preference;
+import android.text.TextUtils;
+import android.text.format.DateFormat;
+import android.widget.DatePicker;
+
+import com.android.settings.core.PreferenceController;
+
+import java.util.Calendar;
+
+public class DatePreferenceController extends PreferenceController implements
+        DatePickerDialog.OnDateSetListener {
+
+    public interface DatePreferenceHost extends UpdateTimeAndDateCallback {
+        void showDatePicker();
+    }
+
+    public static final int DIALOG_DATEPICKER = 0;
+
+    private static final String KEY_DATE = "date";
+
+    private final DatePreferenceHost mHost;
+    private final AutoTimePreferenceController mAutoTimePreferenceController;
+
+    public DatePreferenceController(Context context, DatePreferenceHost host,
+            AutoTimePreferenceController autoTimePreferenceController) {
+        super(context);
+        mHost = host;
+        mAutoTimePreferenceController = autoTimePreferenceController;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final Calendar now = Calendar.getInstance();
+        preference.setSummary(DateFormat.getLongDateFormat(mContext).format(now.getTime()));
+        preference.setEnabled(!mAutoTimePreferenceController.isEnabled());
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (!TextUtils.equals(preference.getKey(), KEY_DATE)) {
+            return false;
+        }
+        mHost.showDatePicker();
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_DATE;
+    }
+
+    @Override
+    public void onDateSet(DatePicker view, int year, int month, int day) {
+        setDate(year, month, day);
+        mHost.updateTimeAndDateDisplay(mContext);
+    }
+
+    public DatePickerDialog buildDatePicker(Activity activity) {
+        final Calendar calendar = Calendar.getInstance();
+        final DatePickerDialog d = new DatePickerDialog(
+                activity,
+                this,
+                calendar.get(Calendar.YEAR),
+                calendar.get(Calendar.MONTH),
+                calendar.get(Calendar.DAY_OF_MONTH));
+        // The system clock can't represent dates outside this range.
+        calendar.clear();
+        calendar.set(2007, Calendar.JANUARY, 1);
+        d.getDatePicker().setMinDate(calendar.getTimeInMillis());
+        calendar.clear();
+        calendar.set(2037, Calendar.DECEMBER, 31);
+        d.getDatePicker().setMaxDate(calendar.getTimeInMillis());
+        return d;
+    }
+
+    @VisibleForTesting
+    void setDate(int year, int month, int day) {
+        Calendar c = Calendar.getInstance();
+
+        c.set(Calendar.YEAR, year);
+        c.set(Calendar.MONTH, month);
+        c.set(Calendar.DAY_OF_MONTH, day);
+        long when = Math.max(c.getTimeInMillis(), DatePreferenceHost.MIN_DATE);
+
+        if (when / 1000 < Integer.MAX_VALUE) {
+            ((AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE)).setTime(when);
+        }
+    }
+}
diff --git a/src/com/android/settings/datetime/TimeChangeListenerMixin.java b/src/com/android/settings/datetime/TimeChangeListenerMixin.java
new file mode 100644
index 0000000..f3729ae
--- /dev/null
+++ b/src/com/android/settings/datetime/TimeChangeListenerMixin.java
@@ -0,0 +1,61 @@
+/*
+ * 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.datetime;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import com.android.settings.core.lifecycle.LifecycleObserver;
+import com.android.settings.core.lifecycle.events.OnPause;
+import com.android.settings.core.lifecycle.events.OnResume;
+
+public class TimeChangeListenerMixin extends BroadcastReceiver
+        implements LifecycleObserver, OnPause, OnResume {
+
+    private final Context mContext;
+    private final UpdateTimeAndDateCallback mCallback;
+
+    public TimeChangeListenerMixin(Context context, UpdateTimeAndDateCallback callback) {
+        mContext = context;
+        mCallback = callback;
+    }
+
+    @Override
+    public void onResume() {
+        // Register for time ticks and other reasons for time change
+        final IntentFilter filter = new IntentFilter();
+        filter.addAction(Intent.ACTION_TIME_TICK);
+        filter.addAction(Intent.ACTION_TIME_CHANGED);
+        filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
+
+        mContext.registerReceiver(this, filter, null, null);
+    }
+
+    @Override
+    public void onPause() {
+        mContext.unregisterReceiver(this);
+    }
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        if (mCallback != null) {
+            mCallback.updateTimeAndDateDisplay(mContext);
+        }
+    }
+}
diff --git a/src/com/android/settings/datetime/TimeFormatPreferenceController.java b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
index 068b790..75fc808 100644
--- a/src/com/android/settings/datetime/TimeFormatPreferenceController.java
+++ b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
@@ -58,8 +58,7 @@
 
     @Override
     public void updateState(Preference preference) {
-        if (!(preference instanceof TwoStatePreference)
-                || !TextUtils.equals(KEY_TIME_FORMAT, preference.getKey())) {
+        if (!(preference instanceof TwoStatePreference)) {
             return;
         }
         ((TwoStatePreference) preference).setChecked(is24Hour());
@@ -96,7 +95,10 @@
 
     private void timeUpdated(boolean is24Hour) {
         Intent timeChanged = new Intent(Intent.ACTION_TIME_CHANGED);
-        timeChanged.putExtra(Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, is24Hour);
+        int timeFormatPreference =
+                is24Hour ? Intent.EXTRA_TIME_PREF_VALUE_USE_24_HOUR
+                        : Intent.EXTRA_TIME_PREF_VALUE_USE_12_HOUR;
+        timeChanged.putExtra(Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, timeFormatPreference);
         mContext.sendBroadcast(timeChanged);
     }
 
diff --git a/src/com/android/settings/datetime/TimePreferenceController.java b/src/com/android/settings/datetime/TimePreferenceController.java
new file mode 100644
index 0000000..4862588
--- /dev/null
+++ b/src/com/android/settings/datetime/TimePreferenceController.java
@@ -0,0 +1,115 @@
+/*
+ * 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.datetime;
+
+import android.app.Activity;
+import android.app.AlarmManager;
+import android.app.TimePickerDialog;
+import android.content.Context;
+import android.support.v7.preference.Preference;
+import android.text.TextUtils;
+import android.text.format.DateFormat;
+import android.widget.TimePicker;
+
+import com.android.settings.core.PreferenceController;
+
+import java.util.Calendar;
+
+public class TimePreferenceController extends PreferenceController implements
+        TimePickerDialog.OnTimeSetListener {
+
+    public interface TimePreferenceHost extends UpdateTimeAndDateCallback {
+        void showTimePicker();
+    }
+
+    public static final int DIALOG_TIMEPICKER = 1;
+
+    private static final String KEY_TIME = "time";
+
+    private final AutoTimePreferenceController mAutoTimePreferenceController;
+    private final TimePreferenceHost mHost;
+
+
+    public TimePreferenceController(Context context,
+            TimePreferenceHost callback,
+            AutoTimePreferenceController autoTimePreferenceController) {
+        super(context);
+        mHost = callback;
+        mAutoTimePreferenceController = autoTimePreferenceController;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final Calendar now = Calendar.getInstance();
+        preference.setSummary(DateFormat.getTimeFormat(mContext).format(now.getTime()));
+        preference.setEnabled(!mAutoTimePreferenceController.isEnabled());
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (!TextUtils.equals(KEY_TIME, preference.getKey())) {
+            return false;
+        }
+        mHost.showTimePicker();
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_TIME;
+    }
+
+    @Override
+    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
+        if (mContext != null) {
+            setTime(hourOfDay, minute);
+            mHost.updateTimeAndDateDisplay(mContext);
+        }
+        // We don't need to call timeUpdated() here because the TIME_CHANGED
+        // broadcast is sent by the AlarmManager as a side effect of setting the
+        // SystemClock time.
+    }
+
+    public TimePickerDialog buildTimePicker(Activity activity) {
+        final Calendar calendar = Calendar.getInstance();
+        return new TimePickerDialog(
+                activity,
+                this,
+                calendar.get(Calendar.HOUR_OF_DAY),
+                calendar.get(Calendar.MINUTE),
+                DateFormat.is24HourFormat(activity));
+    }
+
+    void setTime(int hourOfDay, int minute) {
+        Calendar c = Calendar.getInstance();
+
+        c.set(Calendar.HOUR_OF_DAY, hourOfDay);
+        c.set(Calendar.MINUTE, minute);
+        c.set(Calendar.SECOND, 0);
+        c.set(Calendar.MILLISECOND, 0);
+        long when = Math.max(c.getTimeInMillis(), TimePreferenceHost.MIN_DATE);
+
+        if (when / 1000 < Integer.MAX_VALUE) {
+            ((AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE)).setTime(when);
+        }
+    }
+}
diff --git a/src/com/android/settings/datetime/TimeZonePreferenceController.java b/src/com/android/settings/datetime/TimeZonePreferenceController.java
new file mode 100644
index 0000000..f0b604e
--- /dev/null
+++ b/src/com/android/settings/datetime/TimeZonePreferenceController.java
@@ -0,0 +1,62 @@
+/*
+ * 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.datetime;
+
+import android.content.Context;
+import android.support.annotation.VisibleForTesting;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.core.PreferenceController;
+import com.android.settingslib.datetime.ZoneGetter;
+
+import java.util.Calendar;
+
+public class TimeZonePreferenceController extends PreferenceController {
+
+    private static final String KEY_TIMEZONE = "timezone";
+
+    private final AutoTimeZonePreferenceController mAutoTimeZonePreferenceController;
+
+    public TimeZonePreferenceController(Context context,
+            AutoTimeZonePreferenceController autoTimeZonePreferenceController) {
+        super(context);
+        mAutoTimeZonePreferenceController = autoTimeZonePreferenceController;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        preference.setSummary(getTimeZoneOffsetAndName());
+        preference.setEnabled(!mAutoTimeZonePreferenceController.isEnabled());
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_TIMEZONE;
+    }
+
+    @VisibleForTesting
+    CharSequence getTimeZoneOffsetAndName() {
+        final Calendar now = Calendar.getInstance();
+        return ZoneGetter.getTimeZoneOffsetAndName(mContext,
+                now.getTimeZone(), now.getTime());
+    }
+}
diff --git a/src/com/android/settings/datetime/UpdateTimeAndDateCallback.java b/src/com/android/settings/datetime/UpdateTimeAndDateCallback.java
index e89b5da..333b9aa 100644
--- a/src/com/android/settings/datetime/UpdateTimeAndDateCallback.java
+++ b/src/com/android/settings/datetime/UpdateTimeAndDateCallback.java
@@ -19,6 +19,8 @@
 import android.content.Context;
 
 public interface UpdateTimeAndDateCallback {
+    // Minimum time is Nov 5, 2007, 0:00.
+    long MIN_DATE = 1194220800000L;
 
     void updateTimeAndDateDisplay(Context context);
 }
diff --git a/src/com/android/settings/development/BugReportInPowerPreferenceController.java b/src/com/android/settings/development/BugReportInPowerPreferenceController.java
new file mode 100644
index 0000000..47b2d0d
--- /dev/null
+++ b/src/com/android/settings/development/BugReportInPowerPreferenceController.java
@@ -0,0 +1,119 @@
+/*
+ * 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.development;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.UserManager;
+import android.provider.Settings;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.core.PreferenceController;
+
+public class BugReportInPowerPreferenceController extends PreferenceController {
+
+    private static final String KEY_BUGREPORT_IN_POWER = "bugreport_in_power";
+
+    private UserManager mUserManager;
+    private SwitchPreference mPreference;
+
+    public BugReportInPowerPreferenceController(Context context) {
+        super(context);
+        mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (KEY_BUGREPORT_IN_POWER.equals(preference.getKey())) {
+            final SwitchPreference switchPreference = (SwitchPreference) preference;
+            Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Global.BUGREPORT_IN_POWER_MENU,
+                switchPreference.isChecked() ? 1 : 0);
+            setBugreportStorageProviderStatus();
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        if (isAvailable()) {
+            mPreference = (SwitchPreference) screen.findPreference(KEY_BUGREPORT_IN_POWER);
+        }
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_BUGREPORT_IN_POWER;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return !mUserManager.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES);
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        updatePreference();
+    }
+
+    public void enablePreference(boolean enabled) {
+        if (isAvailable()) {
+            mPreference.setEnabled(enabled);
+        }
+    }
+
+    public void resetPreference() {
+        if (mPreference.isChecked()) {
+            mPreference.setChecked(false);
+            handlePreferenceTreeClick(mPreference);
+        }
+    }
+
+    public boolean updatePreference() {
+        if (!isAvailable()) {
+            return false;
+        }
+        final boolean enabled = Settings.Secure.getInt(
+            mContext.getContentResolver(), Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0;
+        mPreference.setChecked(enabled);
+        return enabled;
+    }
+
+    public void updateBugreportOptions() {
+        if (!isAvailable()) {
+            return;
+        }
+        mPreference.setEnabled(true);
+        setBugreportStorageProviderStatus();
+    }
+
+    private void setBugreportStorageProviderStatus() {
+        final ComponentName componentName = new ComponentName("com.android.shell",
+            "com.android.shell.BugreportStorageProvider");
+        final boolean enabled = mPreference.isChecked();
+        mContext.getPackageManager().setComponentEnabledSetting(componentName,
+            enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
+                : PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,
+            0);
+    }
+
+}
diff --git a/src/com/android/settings/development/BugReportPreferenceController.java b/src/com/android/settings/development/BugReportPreferenceController.java
new file mode 100644
index 0000000..371fb73
--- /dev/null
+++ b/src/com/android/settings/development/BugReportPreferenceController.java
@@ -0,0 +1,62 @@
+/*
+ * 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.development;
+
+import android.content.Context;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.core.PreferenceController;
+
+public class BugReportPreferenceController extends PreferenceController {
+
+    private static final String KEY_BUGREPORT = "bugreport";
+
+    private UserManager mUserManager;
+    private Preference mPreference;
+
+    public BugReportPreferenceController(Context context) {
+        super(context);
+        mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        if (isAvailable()) {
+            mPreference = screen.findPreference(KEY_BUGREPORT);
+        }
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_BUGREPORT;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return !mUserManager.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES);
+    }
+
+    public void enablePreference(boolean enabled) {
+        if (isAvailable()) {
+            mPreference.setEnabled(enabled);
+        }
+    }
+
+}
diff --git a/src/com/android/settings/deviceinfo/AdditionalSystemUpdatePreferenceController.java b/src/com/android/settings/deviceinfo/AdditionalSystemUpdatePreferenceController.java
index 3435b53..8d35eca 100644
--- a/src/com/android/settings/deviceinfo/AdditionalSystemUpdatePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/AdditionalSystemUpdatePreferenceController.java
@@ -29,11 +29,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public boolean isAvailable() {
         return mContext.getResources().getBoolean(
                 com.android.settings.R.bool.config_additional_system_update_setting_enable);
diff --git a/src/com/android/settings/deviceinfo/ManageStoragePreferenceController.java b/src/com/android/settings/deviceinfo/ManageStoragePreferenceController.java
index e64525b..f4dd14e 100644
--- a/src/com/android/settings/deviceinfo/ManageStoragePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/ManageStoragePreferenceController.java
@@ -35,11 +35,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public boolean isAvailable() {
         return mContext.getResources().getBoolean(R.bool.config_storage_manager_settings_enabled);
     }
diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeFormat.java b/src/com/android/settings/deviceinfo/PrivateVolumeFormat.java
index c4ca880..319a09c 100644
--- a/src/com/android/settings/deviceinfo/PrivateVolumeFormat.java
+++ b/src/com/android/settings/deviceinfo/PrivateVolumeFormat.java
@@ -30,10 +30,10 @@
 import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.R;
 
-public class PrivateVolumeFormat extends InstrumentedFragment {
+public class PrivateVolumeFormat extends InstrumentedPreferenceFragment {
     private VolumeInfo mVolume;
     private DiskInfo mDisk;
 
diff --git a/src/com/android/settings/deviceinfo/SerialNumberPreferenceController.java b/src/com/android/settings/deviceinfo/SerialNumberPreferenceController.java
index 1029e20..0362bbc 100644
--- a/src/com/android/settings/deviceinfo/SerialNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/SerialNumberPreferenceController.java
@@ -56,11 +56,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public String getPreferenceKey() {
         return KEY_SERIAL_NUMBER;
     }
diff --git a/src/com/android/settings/display/AutoBrightnessPreferenceController.java b/src/com/android/settings/display/AutoBrightnessPreferenceController.java
index df2000e..1d644a4 100644
--- a/src/com/android/settings/display/AutoBrightnessPreferenceController.java
+++ b/src/com/android/settings/display/AutoBrightnessPreferenceController.java
@@ -46,11 +46,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public void updateState(Preference preference) {
         int brightnessMode = Settings.System.getInt(mContext.getContentResolver(),
                 SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL);
diff --git a/src/com/android/settings/display/AutoRotatePreferenceController.java b/src/com/android/settings/display/AutoRotatePreferenceController.java
index ee940a3..11c9333 100644
--- a/src/com/android/settings/display/AutoRotatePreferenceController.java
+++ b/src/com/android/settings/display/AutoRotatePreferenceController.java
@@ -68,11 +68,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public boolean isAvailable() {
         return RotationPolicy.isRotationLockToggleVisible(mContext);
     }
diff --git a/src/com/android/settings/display/CameraGesturePreferenceController.java b/src/com/android/settings/display/CameraGesturePreferenceController.java
index a3dc6cf..1b60721 100644
--- a/src/com/android/settings/display/CameraGesturePreferenceController.java
+++ b/src/com/android/settings/display/CameraGesturePreferenceController.java
@@ -38,11 +38,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public void updateState(Preference preference) {
         int value = Settings.Secure.getInt(mContext.getContentResolver(),
                 CAMERA_GESTURE_DISABLED, 0);
diff --git a/src/com/android/settings/display/FontSizePreferenceController.java b/src/com/android/settings/display/FontSizePreferenceController.java
index 5014bda..7528f18 100644
--- a/src/com/android/settings/display/FontSizePreferenceController.java
+++ b/src/com/android/settings/display/FontSizePreferenceController.java
@@ -51,9 +51,4 @@
                 strEntryValues);
         preference.setSummary(entries[index]);
     }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
 }
diff --git a/src/com/android/settings/display/LiftToWakePreferenceController.java b/src/com/android/settings/display/LiftToWakePreferenceController.java
index 81ba5f5..e8be936 100644
--- a/src/com/android/settings/display/LiftToWakePreferenceController.java
+++ b/src/com/android/settings/display/LiftToWakePreferenceController.java
@@ -45,11 +45,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         boolean value = (Boolean) newValue;
         Settings.Secure.putInt(mContext.getContentResolver(), WAKE_GESTURE_ENABLED, value ? 1 : 0);
diff --git a/src/com/android/settings/display/NightDisplayPreferenceController.java b/src/com/android/settings/display/NightDisplayPreferenceController.java
index 9cf2409..4b18778 100644
--- a/src/com/android/settings/display/NightDisplayPreferenceController.java
+++ b/src/com/android/settings/display/NightDisplayPreferenceController.java
@@ -28,11 +28,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public boolean isAvailable() {
         return NightDisplayController.isAvailable(mContext);
     }
diff --git a/src/com/android/settings/display/NightModePreferenceController.java b/src/com/android/settings/display/NightModePreferenceController.java
index 874d84f..2eb64c0 100644
--- a/src/com/android/settings/display/NightModePreferenceController.java
+++ b/src/com/android/settings/display/NightModePreferenceController.java
@@ -62,11 +62,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         try {
             final int value = Integer.parseInt((String) newValue);
diff --git a/src/com/android/settings/display/ScreenSaverPreferenceController.java b/src/com/android/settings/display/ScreenSaverPreferenceController.java
index 7335b1f..fab9062 100644
--- a/src/com/android/settings/display/ScreenSaverPreferenceController.java
+++ b/src/com/android/settings/display/ScreenSaverPreferenceController.java
@@ -39,11 +39,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public void updateState(Preference preference) {
         preference.setSummary(DreamSettings.getSummaryTextWithDreamName(mContext));
     }
diff --git a/src/com/android/settings/display/ScreenZoomPreference.java b/src/com/android/settings/display/ScreenZoomPreference.java
index ee2ac95..07f61f8 100644
--- a/src/com/android/settings/display/ScreenZoomPreference.java
+++ b/src/com/android/settings/display/ScreenZoomPreference.java
@@ -16,23 +16,23 @@
 
 package com.android.settings.display;
 
-import com.android.settingslib.display.DisplayDensityUtils;
-
 import android.content.Context;
 import android.support.v4.content.res.TypedArrayUtils;
-import android.support.v7.preference.PreferenceGroup;
+import android.support.v7.preference.Preference;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 
+import com.android.settingslib.display.DisplayDensityUtils;
+
 /**
  * Preference for changing the density of the display on which the preference
  * is visible.
  */
-public class ScreenZoomPreference extends PreferenceGroup {
+public class ScreenZoomPreference extends Preference {
     public ScreenZoomPreference(Context context, AttributeSet attrs) {
         super(context, attrs, TypedArrayUtils.getAttr(context,
-                android.support.v7.preference.R.attr.preferenceScreenStyle,
-                android.R.attr.preferenceScreenStyle));
+                android.support.v7.preference.R.attr.preferenceStyle,
+                android.R.attr.preferenceStyle));
 
         if (TextUtils.isEmpty(getFragment())) {
             setFragment("com.android.settings.display.ScreenZoomSettings");
@@ -49,9 +49,4 @@
             setSummary(entries[currentIndex]);
         }
     }
-
-    @Override
-    protected boolean isOnSameScreenAsChildren() {
-        return false;
-    }
 }
diff --git a/src/com/android/settings/display/TapToWakePreferenceController.java b/src/com/android/settings/display/TapToWakePreferenceController.java
index 18c877a..1f24d74 100644
--- a/src/com/android/settings/display/TapToWakePreferenceController.java
+++ b/src/com/android/settings/display/TapToWakePreferenceController.java
@@ -41,11 +41,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public void updateState(Preference preference) {
         int value = Settings.Secure.getInt(
                 mContext.getContentResolver(), Settings.Secure.DOUBLE_TAP_TO_WAKE, 0);
diff --git a/src/com/android/settings/display/TimeoutPreferenceController.java b/src/com/android/settings/display/TimeoutPreferenceController.java
index d33f813..d409656 100644
--- a/src/com/android/settings/display/TimeoutPreferenceController.java
+++ b/src/com/android/settings/display/TimeoutPreferenceController.java
@@ -52,11 +52,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public void updateState(Preference preference) {
         final TimeoutListPreference timeoutListPreference = (TimeoutListPreference) preference;
         final long currentTimeout = Settings.System.getLong(mContext.getContentResolver(),
diff --git a/src/com/android/settings/display/VrDisplayPreferenceController.java b/src/com/android/settings/display/VrDisplayPreferenceController.java
index 61c3ed2..0eb1c88 100644
--- a/src/com/android/settings/display/VrDisplayPreferenceController.java
+++ b/src/com/android/settings/display/VrDisplayPreferenceController.java
@@ -74,9 +74,4 @@
         }
         return true;
     }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
 }
diff --git a/src/com/android/settings/display/WallpaperPreferenceController.java b/src/com/android/settings/display/WallpaperPreferenceController.java
index 8352377..aa29afc 100644
--- a/src/com/android/settings/display/WallpaperPreferenceController.java
+++ b/src/com/android/settings/display/WallpaperPreferenceController.java
@@ -46,11 +46,6 @@
         disablePreferenceIfManaged((RestrictedPreference) preference);
     }
 
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
     private void disablePreferenceIfManaged(RestrictedPreference pref) {
         final String restriction = DISALLOW_SET_WALLPAPER;
         if (pref != null) {
diff --git a/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java b/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java
new file mode 100644
index 0000000..99ff62e
--- /dev/null
+++ b/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java
@@ -0,0 +1,53 @@
+/*
+ * 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.enterprise;
+
+import android.content.Context;
+import android.support.v7.preference.Preference;
+import android.text.format.DateUtils;
+
+import com.android.settings.R;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+
+import java.util.Date;
+
+public abstract class AdminActionPreferenceControllerBase extends PreferenceController {
+
+    private final Context mContext;
+    protected final EnterprisePrivacyFeatureProvider mFeatureProvider;
+
+    public AdminActionPreferenceControllerBase(Context context) {
+        super(context);
+        mContext = context;
+        mFeatureProvider = FeatureFactory.getFactory(context)
+                .getEnterprisePrivacyFeatureProvider(context);
+    }
+
+    protected abstract Date getAdminActionTimestamp();
+
+    @Override
+    public void updateState(Preference preference) {
+        final Date timestamp = getAdminActionTimestamp();
+        preference.setSummary(timestamp == null ?
+                mContext.getString(R.string.enterprise_privacy_never) :
+                DateUtils.formatDateTime(mContext, timestamp.getTime(),
+                        DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE));
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+}
diff --git a/src/com/android/settings/enterprise/BugReportsPreferenceController.java b/src/com/android/settings/enterprise/BugReportsPreferenceController.java
new file mode 100644
index 0000000..b5b61c3
--- /dev/null
+++ b/src/com/android/settings/enterprise/BugReportsPreferenceController.java
@@ -0,0 +1,37 @@
+/*
+ * 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.enterprise;
+
+import android.content.Context;
+
+import java.util.Date;
+
+public class BugReportsPreferenceController extends AdminActionPreferenceControllerBase {
+
+    private static final String KEY_BUG_REPORTS = "bug_reports";
+
+    public BugReportsPreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    protected Date getAdminActionTimestamp() {
+        return mFeatureProvider.getLastBugReportRequestTime();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_BUG_REPORTS;
+    }
+}
diff --git a/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java b/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java
index 2d8ca1f..d65292f 100644
--- a/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java
+++ b/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java
@@ -31,4 +31,25 @@
      * @see android.app.admin.DevicePolicyManager#getDeviceOwnerComponentOnAnyUser
      */
     ComponentName getDeviceOwnerComponentOnAnyUser();
+
+    /**
+     * Calls {@code DevicePolicyManager.getLastSecurityLogRetrievalTime()}.
+     *
+     * @see android.app.admin.DevicePolicyManager#getLastSecurityLogRetrievalTime
+     */
+    public long getLastSecurityLogRetrievalTime();
+
+    /**
+     * Calls {@code DevicePolicyManager.getLastBugReportRequestTime()}.
+     *
+     * @see android.app.admin.DevicePolicyManager#getLastBugReportRequestTime
+     */
+    public long getLastBugReportRequestTime();
+
+    /**
+     * Calls {@code DevicePolicyManager.getLastNetworkLogRetrievalTime()}.
+     *
+     * @see android.app.admin.DevicePolicyManager#getLastNetworkLogRetrievalTime
+     */
+    public long getLastNetworkLogRetrievalTime();
 }
diff --git a/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java b/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java
index 2b1efb4..710e5ac 100644
--- a/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java
+++ b/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java
@@ -30,4 +30,19 @@
     public ComponentName getDeviceOwnerComponentOnAnyUser() {
         return mDpm.getDeviceOwnerComponentOnAnyUser();
     }
+
+    @Override
+    public long getLastSecurityLogRetrievalTime() {
+        return mDpm.getLastSecurityLogRetrievalTime();
+    }
+
+    @Override
+    public long getLastBugReportRequestTime() {
+        return mDpm.getLastBugReportRequestTime();
+    }
+
+    @Override
+    public long getLastNetworkLogRetrievalTime() {
+        return mDpm.getLastNetworkLogRetrievalTime();
+    }
 }
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProvider.java b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProvider.java
index e2fb0a3..efc02d6 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProvider.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProvider.java
@@ -16,6 +16,30 @@
 
 package com.android.settings.enterprise;
 
+import java.util.Date;
+
 public interface EnterprisePrivacyFeatureProvider {
+
+    /**
+     * Returns whether the device is managed by a Device Owner app.
+     */
     boolean hasDeviceOwner();
+
+    /**
+     * Returns the time at which the Device Owner last retrieved security logs, or {@code null} if
+     * logs were never retrieved by the Device Owner on this device.
+     */
+    Date getLastSecurityLogRetrievalTime();
+
+    /**
+     * Returns the time at which the Device Owner last requested a bug report, or {@code null} if no
+     * bug report was ever requested by the Device Owner on this device.
+     */
+    Date getLastBugReportRequestTime();
+
+    /**
+     * Returns the time at which the Device Owner last retrieved network logs, or {@code null} if
+     * logs were never retrieved by the Device Owner on this device.
+     */
+    Date getLastNetworkLogRetrievalTime();
 }
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
index 8cdf270..2e8b7f6 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
@@ -20,6 +20,8 @@
 
 import com.android.settings.applications.PackageManagerWrapper;
 
+import java.util.Date;
+
 public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFeatureProvider {
 
     private final DevicePolicyManagerWrapper mDpm;
@@ -38,4 +40,20 @@
         }
         return mDpm.getDeviceOwnerComponentOnAnyUser() != null;
     }
+
+    @Override
+    public Date getLastSecurityLogRetrievalTime() {
+        final long timestamp = mDpm.getLastSecurityLogRetrievalTime();
+        return timestamp < 0 ? null : new Date(timestamp);
+    }
+
+    public Date getLastBugReportRequestTime() {
+        final long timestamp = mDpm.getLastBugReportRequestTime();
+        return timestamp < 0 ? null : new Date(timestamp);
+    }
+
+    public Date getLastNetworkLogRetrievalTime() {
+        final long timestamp = mDpm.getLastNetworkLogRetrievalTime();
+        return timestamp < 0 ? null : new Date(timestamp);
+    }
 }
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
index 9ac76df..91d3a65 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
@@ -58,6 +58,9 @@
     protected List<PreferenceController> getPreferenceControllers(Context context) {
         final List controllers = new ArrayList<PreferenceController>();
         controllers.add(new InstalledPackagesPreferenceController(context));
+        controllers.add(new NetworkLogsPreferenceController(context));
+        controllers.add(new BugReportsPreferenceController(context));
+        controllers.add(new SecurityLogsPreferenceController(context));
         return controllers;
     }
 
diff --git a/src/com/android/settings/enterprise/InstalledPackagesPreferenceController.java b/src/com/android/settings/enterprise/InstalledPackagesPreferenceController.java
index 34c72ed..a7afac0 100644
--- a/src/com/android/settings/enterprise/InstalledPackagesPreferenceController.java
+++ b/src/com/android/settings/enterprise/InstalledPackagesPreferenceController.java
@@ -40,7 +40,7 @@
                     @Override
                     public void onNumberOfInstalledAppsResult(int num) {
                         preference.setTitle(mContext.getResources().getQuantityString(
-                                R.plurals.number_installed_packages, num, num));
+                                R.plurals.enterprise_privacy_number_installed_packages, num, num));
                     }
                 });
     }
@@ -51,11 +51,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public String getPreferenceKey() {
         return KEY_NUMBER_INSTALLED_PACKAGES;
     }
diff --git a/src/com/android/settings/enterprise/NetworkLogsPreferenceController.java b/src/com/android/settings/enterprise/NetworkLogsPreferenceController.java
new file mode 100644
index 0000000..d7da525
--- /dev/null
+++ b/src/com/android/settings/enterprise/NetworkLogsPreferenceController.java
@@ -0,0 +1,37 @@
+/*
+ * 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.enterprise;
+
+import android.content.Context;
+
+import java.util.Date;
+
+public class NetworkLogsPreferenceController extends AdminActionPreferenceControllerBase {
+
+    private static final String KEY_NETWORK_LOGS = "network_logs";
+
+    public NetworkLogsPreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    protected Date getAdminActionTimestamp() {
+        return mFeatureProvider.getLastNetworkLogRetrievalTime();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_NETWORK_LOGS;
+    }
+}
diff --git a/src/com/android/settings/enterprise/SecurityLogsPreferenceController.java b/src/com/android/settings/enterprise/SecurityLogsPreferenceController.java
new file mode 100644
index 0000000..60baa63
--- /dev/null
+++ b/src/com/android/settings/enterprise/SecurityLogsPreferenceController.java
@@ -0,0 +1,37 @@
+/*
+ * 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.enterprise;
+
+import android.content.Context;
+
+import java.util.Date;
+
+public class SecurityLogsPreferenceController extends AdminActionPreferenceControllerBase {
+
+    private static final String KEY_SECURITY_LOGS = "security_logs";
+
+    public SecurityLogsPreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    protected Date getAdminActionTimestamp() {
+        return mFeatureProvider.getLastSecurityLogRetrievalTime();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_SECURITY_LOGS;
+    }
+}
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
index c0c0d33..e0c5d65 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
@@ -28,12 +28,12 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.Utils;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 
 /**
  * Sidecar fragment to handle the state around fingerprint enrollment.
  */
-public class FingerprintEnrollSidecar extends InstrumentedFragment {
+public class FingerprintEnrollSidecar extends InstrumentedPreferenceFragment {
 
     private int mEnrollmentSteps = -1;
     private int mEnrollmentRemaining = 0;
diff --git a/src/com/android/settings/fuelgauge/HighPowerDetail.java b/src/com/android/settings/fuelgauge/HighPowerDetail.java
index 580c59f..a59dc78 100644
--- a/src/com/android/settings/fuelgauge/HighPowerDetail.java
+++ b/src/com/android/settings/fuelgauge/HighPowerDetail.java
@@ -138,7 +138,7 @@
     public void onDismiss(DialogInterface dialog) {
         super.onDismiss(dialog);
         Fragment target = getTargetFragment();
-        if (target != null) {
+        if (target != null && target.getActivity() != null) {
             target.onActivityResult(getTargetRequestCode(), 0, null);
         }
     }
diff --git a/src/com/android/settings/gestures/DoubleTapPowerSettings.java b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
index 521c665..b4319f1 100644
--- a/src/com/android/settings/gestures/DoubleTapPowerSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
@@ -17,12 +17,16 @@
 package com.android.settings.gestures;
 
 import android.content.Context;
+import android.provider.SearchIndexableResource;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 public class DoubleTapPowerSettings extends DashboardFragment {
@@ -55,4 +59,19 @@
         controllers.add(new DoubleTapPowerPreferenceController(context, getLifecycle()));
         return controllers;
     }
+
+    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider() {
+                @Override
+                public List<SearchIndexableResource> getXmlResourcesToIndex(
+                        Context context, boolean enabled) {
+                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+                            .isEnabled()) {
+                        return null;
+                    }
+                    final SearchIndexableResource sir = new SearchIndexableResource(context);
+                    sir.xmlResId = R.xml.double_tap_power_settings;
+                    return Arrays.asList(sir);
+                }
+            };
 }
diff --git a/src/com/android/settings/gestures/DoubleTapScreenSettings.java b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
index 3c53947..c10fbb7 100644
--- a/src/com/android/settings/gestures/DoubleTapScreenSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
@@ -18,13 +18,17 @@
 
 import android.content.Context;
 import android.os.UserHandle;
+import android.provider.SearchIndexableResource;
 
 import com.android.internal.hardware.AmbientDisplayConfiguration;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 public class DoubleTapScreenSettings extends DashboardFragment {
@@ -58,4 +62,19 @@
                 new AmbientDisplayConfiguration(context), UserHandle.myUserId()));
         return controllers;
     }
+
+    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider() {
+                @Override
+                public List<SearchIndexableResource> getXmlResourcesToIndex(
+                        Context context, boolean enabled) {
+                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+                            .isEnabled()) {
+                        return null;
+                    }
+                    final SearchIndexableResource sir = new SearchIndexableResource(context);
+                    sir.xmlResId = R.xml.double_tap_screen_settings;
+                    return Arrays.asList(sir);
+                }
+            };
 }
diff --git a/src/com/android/settings/gestures/DoubleTwistGestureSettings.java b/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
index 07b40bb..c11f4a5 100644
--- a/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
+++ b/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
@@ -17,12 +17,16 @@
 package com.android.settings.gestures;
 
 import android.content.Context;
+import android.provider.SearchIndexableResource;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 public class DoubleTwistGestureSettings extends DashboardFragment {
@@ -55,4 +59,19 @@
         controllers.add(new DoubleTwistPreferenceController(context, getLifecycle()));
         return controllers;
     }
+
+    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider() {
+                @Override
+                public List<SearchIndexableResource> getXmlResourcesToIndex(
+                        Context context, boolean enabled) {
+                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+                            .isEnabled()) {
+                        return null;
+                    }
+                    final SearchIndexableResource sir = new SearchIndexableResource(context);
+                    sir.xmlResId = R.xml.double_twist_gesture_settings;
+                    return Arrays.asList(sir);
+                }
+            };
 }
diff --git a/src/com/android/settings/gestures/GesturePreferenceController.java b/src/com/android/settings/gestures/GesturePreferenceController.java
index 345f7b7..ebfccb5 100644
--- a/src/com/android/settings/gestures/GesturePreferenceController.java
+++ b/src/com/android/settings/gestures/GesturePreferenceController.java
@@ -65,11 +65,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public void onStop() {
         if (mVideoPreference != null) {
             mVideoPreference.onViewInvisible();
diff --git a/src/com/android/settings/gestures/PickupGestureSettings.java b/src/com/android/settings/gestures/PickupGestureSettings.java
index 1298dfe..63d3968 100644
--- a/src/com/android/settings/gestures/PickupGestureSettings.java
+++ b/src/com/android/settings/gestures/PickupGestureSettings.java
@@ -18,13 +18,17 @@
 
 import android.content.Context;
 import android.os.UserHandle;
+import android.provider.SearchIndexableResource;
 
 import com.android.internal.hardware.AmbientDisplayConfiguration;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 public class PickupGestureSettings extends DashboardFragment {
@@ -58,4 +62,20 @@
                 new AmbientDisplayConfiguration(context), UserHandle.myUserId()));
         return controllers;
     }
+
+    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider() {
+                @Override
+                public List<SearchIndexableResource> getXmlResourcesToIndex(
+                        Context context, boolean enabled) {
+                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+                            .isEnabled()) {
+                        return null;
+                    }
+                    final SearchIndexableResource sir = new SearchIndexableResource(context);
+                    sir.xmlResId = R.xml.pick_up_gesture_settings;
+                    return Arrays.asList(sir);
+                }
+            };
+
 }
diff --git a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
index 01af974..08dc614 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
@@ -32,11 +32,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public String getPreferenceKey() {
         return PREF_KEY_SWIPE_DOWN_FINGERPRINT;
     }
diff --git a/src/com/android/settings/gestures/SwipeToNotificationSettings.java b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
index 7eeba29..57796a6 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationSettings.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
@@ -17,12 +17,16 @@
 package com.android.settings.gestures;
 
 import android.content.Context;
+import android.provider.SearchIndexableResource;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 public class SwipeToNotificationSettings extends DashboardFragment {
@@ -55,4 +59,19 @@
         controllers.add(new SwipeToNotificationPreferenceController(context, getLifecycle()));
         return controllers;
     }
+
+    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider() {
+                @Override
+                public List<SearchIndexableResource> getXmlResourcesToIndex(
+                        Context context, boolean enabled) {
+                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+                            .isEnabled()) {
+                        return null;
+                    }
+                    final SearchIndexableResource sir = new SearchIndexableResource(context);
+                    sir.xmlResId = R.xml.swipe_to_notification_settings;
+                    return Arrays.asList(sir);
+                }
+            };
 }
diff --git a/src/com/android/settings/inputmethod/SpellCheckerPreferenceController.java b/src/com/android/settings/inputmethod/SpellCheckerPreferenceController.java
index 17d3fdc..8fcaa74 100644
--- a/src/com/android/settings/inputmethod/SpellCheckerPreferenceController.java
+++ b/src/com/android/settings/inputmethod/SpellCheckerPreferenceController.java
@@ -52,11 +52,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public String getPreferenceKey() {
         return KEY_SPELL_CHECKERS;
     }
diff --git a/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java b/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java
index 65b40a3..0d30bcc 100644
--- a/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java
+++ b/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java
@@ -27,7 +27,7 @@
 import android.widget.ArrayAdapter;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.inputmethod.UserDictionaryAddWordContents.LocaleRenderer;
@@ -41,7 +41,7 @@
  * As opposed to the UserDictionaryActivity, this is only invoked within Settings
  * from the UserDictionarySettings.
  */
-public class UserDictionaryAddWordFragment extends InstrumentedFragment
+public class UserDictionaryAddWordFragment extends InstrumentedPreferenceFragment
         implements AdapterView.OnItemSelectedListener,
         com.android.internal.app.LocalePicker.LocaleSelectionListener {
 
diff --git a/src/com/android/settings/language/PhoneLanguagePreferenceController.java b/src/com/android/settings/language/PhoneLanguagePreferenceController.java
index 2b87fd9..cd2f539 100644
--- a/src/com/android/settings/language/PhoneLanguagePreferenceController.java
+++ b/src/com/android/settings/language/PhoneLanguagePreferenceController.java
@@ -36,11 +36,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public void updateState(Preference preference) {
         if (preference == null) {
             return;
diff --git a/src/com/android/settings/language/TtsPreferenceController.java b/src/com/android/settings/language/TtsPreferenceController.java
index ffc1eb1..9b40b6d 100644
--- a/src/com/android/settings/language/TtsPreferenceController.java
+++ b/src/com/android/settings/language/TtsPreferenceController.java
@@ -49,11 +49,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public String getPreferenceKey() {
         return KEY_TTS_SETTINGS;
     }
diff --git a/src/com/android/settings/language/UserDictionaryPreferenceController.java b/src/com/android/settings/language/UserDictionaryPreferenceController.java
index d26761b..01ce3aa 100644
--- a/src/com/android/settings/language/UserDictionaryPreferenceController.java
+++ b/src/com/android/settings/language/UserDictionaryPreferenceController.java
@@ -44,11 +44,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public String getPreferenceKey() {
         return KEY_USER_DICTIONARY_SETTINGS;
     }
diff --git a/src/com/android/settings/network/MobileNetworkPreferenceController.java b/src/com/android/settings/network/MobileNetworkPreferenceController.java
index 588d80c..7c8cd40 100644
--- a/src/com/android/settings/network/MobileNetworkPreferenceController.java
+++ b/src/com/android/settings/network/MobileNetworkPreferenceController.java
@@ -40,11 +40,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public boolean isAvailable() {
         return !mIsSecondaryUser
                 && !Utils.isWifiOnly(mContext)
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index cb75f0e..a58a879 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -18,15 +18,19 @@
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.content.Context;
+import android.provider.SearchIndexableResource;
 import android.util.Log;
 
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.drawer.CategoryKey;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import static com.android.settings.network.MobilePlanPreferenceController
@@ -107,4 +111,19 @@
         }
         return 0;
     }
+
+    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider() {
+                @Override
+                public List<SearchIndexableResource> getXmlResourcesToIndex(
+                        Context context, boolean enabled) {
+                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+                            .isEnabled()) {
+                        return null;
+                    }
+                    final SearchIndexableResource sir = new SearchIndexableResource(context);
+                    sir.xmlResId = R.xml.network_and_internet;
+                    return Arrays.asList(sir);
+                }
+            };
 }
diff --git a/src/com/android/settings/network/NetworkResetPreferenceController.java b/src/com/android/settings/network/NetworkResetPreferenceController.java
index 2842139..e357fbe 100644
--- a/src/com/android/settings/network/NetworkResetPreferenceController.java
+++ b/src/com/android/settings/network/NetworkResetPreferenceController.java
@@ -32,11 +32,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public boolean isAvailable() {
         return !RestrictedLockUtils.hasBaseUserRestriction(mContext,
                 UserManager.DISALLOW_NETWORK_RESET, UserHandle.myUserId());
diff --git a/src/com/android/settings/network/ProxyPreferenceController.java b/src/com/android/settings/network/ProxyPreferenceController.java
index 54b8ca9..edec247 100644
--- a/src/com/android/settings/network/ProxyPreferenceController.java
+++ b/src/com/android/settings/network/ProxyPreferenceController.java
@@ -31,11 +31,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public boolean isAvailable() {
         // proxy UI disabled until we have better app support
         return false;
diff --git a/src/com/android/settings/network/TetherPreferenceController.java b/src/com/android/settings/network/TetherPreferenceController.java
index f6ef678..e24c873 100644
--- a/src/com/android/settings/network/TetherPreferenceController.java
+++ b/src/com/android/settings/network/TetherPreferenceController.java
@@ -49,11 +49,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         final Preference preference = screen.findPreference(KEY_TETHER_SETTINGS);
diff --git a/src/com/android/settings/network/VpnPreferenceController.java b/src/com/android/settings/network/VpnPreferenceController.java
index 146b400..f7e230f 100644
--- a/src/com/android/settings/network/VpnPreferenceController.java
+++ b/src/com/android/settings/network/VpnPreferenceController.java
@@ -41,11 +41,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         // Manually set dependencies for Wifi when not toggleable.
diff --git a/src/com/android/settings/network/WifiCallingPreferenceController.java b/src/com/android/settings/network/WifiCallingPreferenceController.java
index 5036c46..b35d476 100644
--- a/src/com/android/settings/network/WifiCallingPreferenceController.java
+++ b/src/com/android/settings/network/WifiCallingPreferenceController.java
@@ -35,11 +35,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         final Preference pref = screen.findPreference(KEY_WFC_SETTINGS);
diff --git a/src/com/android/settings/nfc/AndroidBeam.java b/src/com/android/settings/nfc/AndroidBeam.java
index 76b67e8..fe264f3 100644
--- a/src/com/android/settings/nfc/AndroidBeam.java
+++ b/src/com/android/settings/nfc/AndroidBeam.java
@@ -29,7 +29,7 @@
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settingslib.HelpUtils;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.ShowAdminSupportDetailsDialog;
@@ -38,7 +38,7 @@
 
 import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 
-public class AndroidBeam extends InstrumentedFragment
+public class AndroidBeam extends InstrumentedPreferenceFragment
         implements SwitchBar.OnSwitchChangeListener {
     private View mView;
     private NfcAdapter mNfcAdapter;
diff --git a/src/com/android/settings/nfc/NfcPreferenceController.java b/src/com/android/settings/nfc/NfcPreferenceController.java
index 6303d5b..65c2d4c 100644
--- a/src/com/android/settings/nfc/NfcPreferenceController.java
+++ b/src/com/android/settings/nfc/NfcPreferenceController.java
@@ -96,11 +96,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public boolean isAvailable() {
         return mNfcAdapter != null;
     }
diff --git a/src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceController.java b/src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceController.java
new file mode 100644
index 0000000..f513882
--- /dev/null
+++ b/src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceController.java
@@ -0,0 +1,56 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.accounts.AccountRestrictionHelper;
+import com.android.settings.core.PreferenceController;
+import com.android.settingslib.RestrictedPreference;
+
+/**
+ * Base class for preference controller that handles preference that enforce adjust volume
+ * restriction
+ */
+public abstract class AdjustVolumeRestrictedPreferenceController extends PreferenceController {
+
+    private AccountRestrictionHelper mHelper;
+
+    public AdjustVolumeRestrictedPreferenceController(Context context) {
+        this(context, new AccountRestrictionHelper(context));
+    }
+
+    @VisibleForTesting
+    AdjustVolumeRestrictedPreferenceController(Context context, AccountRestrictionHelper helper) {
+        super(context);
+        mHelper = helper;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (!(preference instanceof RestrictedPreference)) {
+            return;
+        }
+        mHelper.enforceRestrictionOnPreference((RestrictedPreference) preference,
+                UserManager.DISALLOW_ADJUST_VOLUME, UserHandle.myUserId());
+    }
+
+}
diff --git a/src/com/android/settings/notification/AlarmRingtonePreferenceController.java b/src/com/android/settings/notification/AlarmRingtonePreferenceController.java
new file mode 100644
index 0000000..2e7aab0
--- /dev/null
+++ b/src/com/android/settings/notification/AlarmRingtonePreferenceController.java
@@ -0,0 +1,39 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.RingtoneManager;
+
+public class AlarmRingtonePreferenceController extends RingtonePreferenceControllerBase {
+
+    private static final String KEY_ALARM_RINGTONE = "alarm_ringtone";
+
+    public AlarmRingtonePreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_ALARM_RINGTONE;
+    }
+
+    @Override
+    public int getRingtoneType() {
+        return RingtoneManager.TYPE_ALARM;
+    }
+}
diff --git a/src/com/android/settings/notification/AlarmVolumePreferenceController.java b/src/com/android/settings/notification/AlarmVolumePreferenceController.java
new file mode 100644
index 0000000..e9c4b57
--- /dev/null
+++ b/src/com/android/settings/notification/AlarmVolumePreferenceController.java
@@ -0,0 +1,64 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.AudioManager;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settings.notification.VolumeSeekBarPreference.Callback;
+
+public class AlarmVolumePreferenceController extends
+    VolumeSeekBarPreferenceController {
+
+    private static final String KEY_ALARM_VOLUME = "alarm_volume";
+    private AudioHelper mHelper;
+
+    public AlarmVolumePreferenceController(Context context, Callback callback,
+        Lifecycle lifecycle) {
+        this(context, callback, lifecycle, new AudioHelper(context));
+    }
+
+    @VisibleForTesting
+    AlarmVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle,
+        AudioHelper helper) {
+        super(context, callback, lifecycle);
+        mHelper = helper;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return !mHelper.isSingleVolume();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_ALARM_VOLUME;
+    }
+
+    @Override
+    public int getAudioStream() {
+        return AudioManager.STREAM_ALARM;
+    }
+
+    @Override
+    public int getMuteIcon() {
+        return com.android.internal.R.drawable.ic_audio_alarm_mute;
+    }
+
+}
diff --git a/src/com/android/settings/notification/AudioHelper.java b/src/com/android/settings/notification/AudioHelper.java
new file mode 100644
index 0000000..ea5bc4a
--- /dev/null
+++ b/src/com/android/settings/notification/AudioHelper.java
@@ -0,0 +1,37 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.AudioSystem;
+
+/**
+ * Helper class to wrap API for testing
+ */
+public class AudioHelper {
+
+    private Context mContext;
+
+    public AudioHelper(Context context) {
+        mContext = context;
+    }
+
+    public boolean isSingleVolume() {
+        return AudioSystem.isSingleVolume(mContext);
+    }
+
+}
diff --git a/src/com/android/settings/notification/CastPreferenceController.java b/src/com/android/settings/notification/CastPreferenceController.java
new file mode 100644
index 0000000..7de5c48
--- /dev/null
+++ b/src/com/android/settings/notification/CastPreferenceController.java
@@ -0,0 +1,51 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.Utils;
+import com.android.settings.core.PreferenceController;
+import java.util.List;
+
+public class CastPreferenceController extends PreferenceController {
+
+    private static final String KEY_WIFI_DISPLAY = "wifi_display";
+
+    public CastPreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_WIFI_DISPLAY;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public void updateNonIndexableKeys(List<String> keys) {
+        if (!Utils.isVoiceCapable(mContext)) {
+            keys.add(KEY_WIFI_DISPLAY);
+        }
+    }
+
+}
diff --git a/src/com/android/settings/notification/ChannelNotificationSettings.java b/src/com/android/settings/notification/ChannelNotificationSettings.java
index 8cbdd60..02cc436 100644
--- a/src/com/android/settings/notification/ChannelNotificationSettings.java
+++ b/src/com/android/settings/notification/ChannelNotificationSettings.java
@@ -156,7 +156,7 @@
             @Override
             public boolean onPreferenceChange(Preference preference, Object newValue) {
                 final boolean vibrate = (Boolean) newValue;
-                mChannel.setVibration(vibrate);
+                mChannel.enableVibration(vibrate);
                 mChannel.lockFields(NotificationChannel.USER_LOCKED_VIBRATION);
                 mBackend.updateChannel(mPkg, mUid, mChannel);
                 return true;
diff --git a/src/com/android/settings/notification/EmergencyBroadcastPreferenceController.java b/src/com/android/settings/notification/EmergencyBroadcastPreferenceController.java
new file mode 100644
index 0000000..1154493
--- /dev/null
+++ b/src/com/android/settings/notification/EmergencyBroadcastPreferenceController.java
@@ -0,0 +1,99 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.accounts.AccountRestrictionHelper;
+import com.android.settings.core.PreferenceController;
+import com.android.settingslib.RestrictedPreference;
+
+/**
+ * Base class for preference controller that handles preference that enforce adjust volume
+ * restriction
+ */
+public class EmergencyBroadcastPreferenceController extends PreferenceController {
+
+    private static final String KEY_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
+
+    private AccountRestrictionHelper mHelper;
+    private UserManager mUserManager;
+    private PackageManager mPm;
+    private boolean mCellBroadcastAppLinkEnabled;
+
+    public EmergencyBroadcastPreferenceController(Context context) {
+        this(context, new AccountRestrictionHelper(context));
+    }
+
+    @VisibleForTesting
+    EmergencyBroadcastPreferenceController(Context context, AccountRestrictionHelper helper) {
+        super(context);
+        mHelper = helper;
+        mUserManager = UserManager.get(context);
+        mPm = mContext.getPackageManager();
+        // Enable link to CMAS app settings depending on the value in config.xml.
+        mCellBroadcastAppLinkEnabled = isCellBroadcastAppLinkEnabled();
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (!(preference instanceof RestrictedPreference)) {
+            return;
+        }
+        ((RestrictedPreference) preference).checkRestrictionAndSetDisabled(
+            UserManager.DISALLOW_CONFIG_CELL_BROADCASTS);
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        return false;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_CELL_BROADCAST_SETTINGS;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return mUserManager.isAdminUser() && mCellBroadcastAppLinkEnabled
+            && !mHelper.hasBaseUserRestriction(
+                UserManager.DISALLOW_CONFIG_CELL_BROADCASTS, UserHandle.myUserId());
+    }
+
+    private boolean isCellBroadcastAppLinkEnabled() {
+        boolean enabled = mContext.getResources().getBoolean(
+            com.android.internal.R.bool.config_cellBroadcastAppLinks);
+        if (enabled) {
+            try {
+                if (mPm.getApplicationEnabledSetting("com.android.cellbroadcastreceiver")
+                    == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
+                    enabled = false;  // CMAS app disabled
+                }
+            } catch (IllegalArgumentException ignored) {
+                enabled = false;  // CMAS app not installed
+            }
+        }
+        return enabled;
+    }
+
+}
\ No newline at end of file
diff --git a/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java b/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
index 15f8c9f..a7ebbe1 100644
--- a/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
@@ -76,11 +76,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         mLockscreen =
diff --git a/src/com/android/settings/notification/MediaVolumePreferenceController.java b/src/com/android/settings/notification/MediaVolumePreferenceController.java
new file mode 100644
index 0000000..fb8dba5
--- /dev/null
+++ b/src/com/android/settings/notification/MediaVolumePreferenceController.java
@@ -0,0 +1,53 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.AudioManager;
+import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settings.notification.VolumeSeekBarPreference.Callback;
+
+public class MediaVolumePreferenceController extends
+    VolumeSeekBarPreferenceController {
+
+    private static final String KEY_MEDIA_VOLUME = "media_volume";
+
+    public MediaVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle) {
+        super(context, callback, lifecycle);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_MEDIA_VOLUME;
+    }
+
+    @Override
+    public int getAudioStream() {
+        return AudioManager.STREAM_MUSIC;
+    }
+
+    @Override
+    public int getMuteIcon() {
+        return com.android.internal.R.drawable.ic_audio_media_mute;
+    }
+
+}
diff --git a/src/com/android/settings/notification/NotificationRingtonePreferenceController.java b/src/com/android/settings/notification/NotificationRingtonePreferenceController.java
new file mode 100644
index 0000000..72e8d8f
--- /dev/null
+++ b/src/com/android/settings/notification/NotificationRingtonePreferenceController.java
@@ -0,0 +1,39 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.RingtoneManager;
+
+public class NotificationRingtonePreferenceController extends RingtonePreferenceControllerBase {
+
+    private static final String KEY_NOTIFICATION_RINGTONE = "notification_ringtone";
+
+    public NotificationRingtonePreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_NOTIFICATION_RINGTONE;
+    }
+
+    @Override
+    public int getRingtoneType() {
+        return RingtoneManager.TYPE_NOTIFICATION;
+    }
+}
diff --git a/src/com/android/settings/notification/NotificationStation.java b/src/com/android/settings/notification/NotificationStation.java
index 59bc0aa..04897e4 100644
--- a/src/com/android/settings/notification/NotificationStation.java
+++ b/src/com/android/settings/notification/NotificationStation.java
@@ -502,7 +502,7 @@
     private CharSequence loadPackageName(String pkg) {
         try {
             ApplicationInfo info = mPm.getApplicationInfo(pkg,
-                    PackageManager.GET_UNINSTALLED_PACKAGES);
+                    PackageManager.MATCH_ANY_USER);
             if (info != null) return mPm.getApplicationLabel(info);
         } catch (PackageManager.NameNotFoundException e) {
             Log.e(TAG, "Cannot load package name", e);
diff --git a/src/com/android/settings/notification/NotificationVolumePreferenceController.java b/src/com/android/settings/notification/NotificationVolumePreferenceController.java
new file mode 100644
index 0000000..e4759d7
--- /dev/null
+++ b/src/com/android/settings/notification/NotificationVolumePreferenceController.java
@@ -0,0 +1,66 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.AudioManager;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.Utils;
+import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settings.notification.VolumeSeekBarPreference.Callback;
+
+public class NotificationVolumePreferenceController extends
+    RingVolumePreferenceController {
+
+    private static final String KEY_NOTIFICATION_VOLUME = "notification_volume";
+    private AudioHelper mHelper;
+
+    public NotificationVolumePreferenceController(Context context, Callback callback,
+        Lifecycle lifecycle) {
+        this(context, callback, lifecycle, new AudioHelper(context));
+    }
+
+    @VisibleForTesting
+    NotificationVolumePreferenceController(Context context,
+        VolumeSeekBarPreference.Callback callback, Lifecycle lifecycle, AudioHelper helper) {
+        super(context, callback, lifecycle);
+        mHelper = helper;
+    }
+
+
+    @Override
+    public boolean isAvailable() {
+        return !Utils.isVoiceCapable(mContext) && !mHelper.isSingleVolume();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_NOTIFICATION_VOLUME;
+    }
+
+    @Override
+    public int getAudioStream() {
+        return AudioManager.STREAM_NOTIFICATION;
+    }
+
+    @Override
+    public int getMuteIcon() {
+        return com.android.internal.R.drawable.ic_audio_ring_notif_mute;
+    }
+
+}
diff --git a/src/com/android/settings/notification/PhoneRingtonePreferenceController.java b/src/com/android/settings/notification/PhoneRingtonePreferenceController.java
new file mode 100644
index 0000000..cb11151
--- /dev/null
+++ b/src/com/android/settings/notification/PhoneRingtonePreferenceController.java
@@ -0,0 +1,45 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.RingtoneManager;
+import com.android.settings.Utils;
+
+public class PhoneRingtonePreferenceController extends RingtonePreferenceControllerBase {
+
+    private static final String KEY_PHONE_RINGTONE = "ringtone";
+
+    public PhoneRingtonePreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_PHONE_RINGTONE;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return Utils.isVoiceCapable(mContext);
+    }
+
+    @Override
+    public int getRingtoneType() {
+        return RingtoneManager.TYPE_RINGTONE;
+    }
+}
diff --git a/src/com/android/settings/notification/PulseNotificationPreferenceController.java b/src/com/android/settings/notification/PulseNotificationPreferenceController.java
index de365f1..3e37ab0 100644
--- a/src/com/android/settings/notification/PulseNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/PulseNotificationPreferenceController.java
@@ -69,11 +69,6 @@
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return false;
-    }
-
-    @Override
     public String getPreferenceKey() {
         return KEY_NOTIFICATION_PULSE;
     }
diff --git a/src/com/android/settings/notification/RingVolumePreferenceController.java b/src/com/android/settings/notification/RingVolumePreferenceController.java
new file mode 100644
index 0000000..2297837
--- /dev/null
+++ b/src/com/android/settings/notification/RingVolumePreferenceController.java
@@ -0,0 +1,207 @@
+/*
+ * 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.notification;
+
+import android.app.NotificationManager;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
+import android.content.pm.ServiceInfo;
+import android.media.AudioManager;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.os.Vibrator;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.Utils;
+import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settings.notification.VolumeSeekBarPreference.Callback;
+
+import java.util.Objects;
+
+public class RingVolumePreferenceController extends VolumeSeekBarPreferenceController {
+
+    private static final String TAG = "RingVolumeController";
+    private static final String KEY_RING_VOLUME = "ring_volume";
+
+    private AudioManager mAudioManager;
+    private Vibrator mVibrator;
+    private int mRingerMode = -1;
+    private ComponentName mSuppressor;
+    private final RingReceiver mReceiver = new RingReceiver();
+    private final H mHandler = new H();
+    private AudioHelper mHelper;
+
+    public RingVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle) {
+        this(context, callback, lifecycle, new AudioHelper(context));
+    }
+
+    @VisibleForTesting
+    RingVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle,
+        AudioHelper helper) {
+        super(context, callback, lifecycle);
+        mHelper = helper;
+        mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+        mVibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
+        if (mVibrator != null && !mVibrator.hasVibrator()) {
+            mVibrator = null;
+        }
+        updateRingerMode();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        mReceiver.register(true);
+        updateEffectsSuppressor();
+        updatePreferenceIcon();
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        mReceiver.register(false);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_RING_VOLUME;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return Utils.isVoiceCapable(mContext) && !mHelper.isSingleVolume();
+    }
+
+    @Override
+    public int getAudioStream() {
+        return AudioManager.STREAM_RING;
+    }
+
+    @Override
+    public int getMuteIcon() {
+        return com.android.internal.R.drawable.ic_audio_ring_notif_mute;
+    }
+
+    private void updateRingerMode() {
+        final int ringerMode = mAudioManager.getRingerModeInternal();
+        if (mRingerMode == ringerMode) return;
+        mRingerMode = ringerMode;
+        updatePreferenceIcon();
+    }
+
+    private boolean wasRingerModeVibrate() {
+        return mVibrator != null && mRingerMode == AudioManager.RINGER_MODE_SILENT
+            && mAudioManager.getLastAudibleStreamVolume(AudioManager.STREAM_RING) == 0;
+    }
+
+    private void updateEffectsSuppressor() {
+        final ComponentName suppressor = NotificationManager.from(mContext).getEffectsSuppressor();
+        if (Objects.equals(suppressor, mSuppressor)) return;
+        mSuppressor = suppressor;
+        if (mPreference != null) {
+            final String text = suppressor != null ?
+                mContext.getString(com.android.internal.R.string.muted_by,
+                    getSuppressorCaption(suppressor)) : null;
+            mPreference.setSuppressionText(text);
+        }
+        updatePreferenceIcon();
+    }
+
+    private void updatePreferenceIcon() {
+        if (mPreference != null) {
+            mPreference.showIcon(mSuppressor != null
+                ? com.android.internal.R.drawable.ic_audio_ring_notif_mute
+                : mRingerMode == AudioManager.RINGER_MODE_VIBRATE || wasRingerModeVibrate()
+                    ? com.android.internal.R.drawable.ic_audio_ring_notif_vibrate
+                    : com.android.internal.R.drawable.ic_audio_ring_notif);
+        }
+    }
+
+    private String getSuppressorCaption(ComponentName suppressor) {
+        final PackageManager pm = mContext.getPackageManager();
+        try {
+            final ServiceInfo info = pm.getServiceInfo(suppressor, 0);
+            if (info != null) {
+                final CharSequence seq = info.loadLabel(pm);
+                if (seq != null) {
+                    final String str = seq.toString().trim();
+                    if (str.length() > 0) {
+                        return str;
+                    }
+                }
+            }
+        } catch (Throwable e) {
+            Log.w(TAG, "Error loading suppressor caption", e);
+        }
+        return suppressor.getPackageName();
+    }
+
+    private final class H extends Handler {
+        private static final int UPDATE_EFFECTS_SUPPRESSOR = 1;
+        private static final int UPDATE_RINGER_MODE = 2;
+
+        private H() {
+            super(Looper.getMainLooper());
+        }
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case UPDATE_EFFECTS_SUPPRESSOR:
+                    updateEffectsSuppressor();
+                    break;
+                case UPDATE_RINGER_MODE:
+                    updateRingerMode();
+                    break;
+            }
+        }
+    }
+
+    private class RingReceiver extends BroadcastReceiver {
+        private boolean mRegistered;
+
+        public void register(boolean register) {
+            if (mRegistered == register) return;
+            if (register) {
+                final IntentFilter filter = new IntentFilter();
+                filter.addAction(NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED);
+                filter.addAction(AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION);
+                mContext.registerReceiver(this, filter);
+            } else {
+                mContext.unregisterReceiver(this);
+            }
+            mRegistered = register;
+        }
+
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            final String action = intent.getAction();
+            if (NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED.equals(action)) {
+                mHandler.sendEmptyMessage(H.UPDATE_EFFECTS_SUPPRESSOR);
+            } else if (AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION.equals(action)) {
+                mHandler.sendEmptyMessage(H.UPDATE_RINGER_MODE);
+            }
+        }
+    }
+
+}
diff --git a/src/com/android/settings/notification/RingtonePreferenceControllerBase.java b/src/com/android/settings/notification/RingtonePreferenceControllerBase.java
new file mode 100644
index 0000000..333f08a
--- /dev/null
+++ b/src/com/android/settings/notification/RingtonePreferenceControllerBase.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.notification;
+
+import android.content.Context;
+import android.media.Ringtone;
+import android.media.RingtoneManager;
+import android.net.Uri;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.core.PreferenceController;
+
+public abstract class RingtonePreferenceControllerBase extends PreferenceController {
+
+    public RingtonePreferenceControllerBase(Context context) {
+        super(context);
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        return false;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        Uri ringtoneUri = RingtoneManager.getActualDefaultRingtoneUri(mContext, getRingtoneType());
+        final CharSequence summary = Ringtone.getTitle(
+            mContext, ringtoneUri, false /* followSettingsUri */, true /* allowRemote */);
+        if (summary != null) {
+            preference.setSummary(summary);
+        }
+    }
+
+    public abstract int getRingtoneType();
+
+}
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index 1ec3164..9166377 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -20,37 +20,25 @@
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
-import android.app.DialogFragment;
 import android.app.FragmentManager;
 import android.app.NotificationManager;
 import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.ContentResolver;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.pm.PackageManager;
-import android.content.pm.ServiceInfo;
-import android.database.ContentObserver;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteException;
 import android.media.AudioManager;
 import android.media.AudioSystem;
 import android.media.Ringtone;
 import android.media.RingtoneManager;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.os.Vibrator;
 import android.preference.SeekBarVolumizer;
-import android.provider.MediaStore;
-import android.provider.OpenableColumns;
 import android.provider.SearchIndexableResource;
 import android.provider.Settings;
 import android.support.v7.preference.Preference;
@@ -64,40 +52,24 @@
 import com.android.settings.R;
 import com.android.settings.RingtonePreference;
 import com.android.settings.DefaultRingtonePreference;
-import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
+import com.android.settings.core.PreferenceController;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.dashboard.SummaryLoader;
 import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.search.Indexable;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedPreference;
 
+import com.android.settingslib.drawer.CategoryKey;
 import java.text.NumberFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Objects;
 
-import static android.content.ContentProvider.getUriWithoutUserId;
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-public class SoundSettings extends SettingsPreferenceFragment
-        implements Indexable, OnPreferenceChangeListener {
+public class SoundSettings extends DashboardFragment
+        implements OnPreferenceChangeListener {
     private static final String TAG = "SoundSettings";
 
-    private static final String KEY_MEDIA_VOLUME = "media_volume";
-    private static final String KEY_ALARM_VOLUME = "alarm_volume";
-    private static final String KEY_RING_VOLUME = "ring_volume";
-    private static final String KEY_NOTIFICATION_VOLUME = "notification_volume";
-    private static final String KEY_PHONE_RINGTONE = "ringtone";
-    private static final String KEY_NOTIFICATION_RINGTONE = "notification_ringtone";
-    private static final String KEY_ALARM_RINGTONE = "alarm_ringtone";
-    private static final String KEY_VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
-    private static final String KEY_WIFI_DISPLAY = "wifi_display";
-    private static final String KEY_ZEN_MODE = "zen_mode";
-    private static final String KEY_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
-
     private static final String KEY_WORK_CATEGORY = "sound_work_settings_section";
     private static final String KEY_WORK_USE_PERSONAL_SOUNDS = "work_use_personal_sounds";
     private static final String KEY_WORK_PHONE_RINGTONE = "work_ringtone";
@@ -107,34 +79,13 @@
     private static final String SELECTED_PREFERENCE_KEY = "selected_preference";
     private static final int REQUEST_CODE = 200;
 
-    private static final String[] RESTRICTED_KEYS = {
-        KEY_MEDIA_VOLUME,
-        KEY_ALARM_VOLUME,
-        KEY_RING_VOLUME,
-        KEY_NOTIFICATION_VOLUME,
-        KEY_ZEN_MODE,
-    };
-
     private static final int SAMPLE_CUTOFF = 2000;  // manually cap sample playback at 2 seconds
 
     private final VolumePreferenceCallback mVolumeCallback = new VolumePreferenceCallback();
     private final H mHandler = new H();
-    private final SettingsObserver mSettingsObserver = new SettingsObserver();
-    private final Receiver mReceiver = new Receiver();
-    private final ArrayList<VolumeSeekBarPreference> mVolumePrefs = new ArrayList<>();
 
     private Context mContext;
     private boolean mVoiceCapable;
-    private Vibrator mVibrator;
-    private AudioManager mAudioManager;
-    private VolumeSeekBarPreference mRingOrNotificationPreference;
-
-    private Preference mPhoneRingtonePreference;
-    private Preference mNotificationRingtonePreference;
-    private Preference mAlarmRingtonePreference;
-    private TwoStatePreference mVibrateWhenRinging;
-    private ComponentName mSuppressor;
-    private int mRingerMode = -1;
 
     private PreferenceGroup mWorkPreferenceCategory;
     private TwoStatePreference mWorkUsePersonalSounds;
@@ -142,7 +93,6 @@
     private Preference mWorkNotificationRingtonePreference;
     private Preference mWorkAlarmRingtonePreference;
 
-    private PackageManager mPm;
     private UserManager mUserManager;
     private RingtonePreference mRequestPreference;
 
@@ -157,63 +107,9 @@
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         mContext = getActivity();
-        mPm = getPackageManager();
         mUserManager = UserManager.get(getContext());
         mVoiceCapable = Utils.isVoiceCapable(mContext);
 
-        mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
-        mVibrator = (Vibrator) getActivity().getSystemService(Context.VIBRATOR_SERVICE);
-        if (mVibrator != null && !mVibrator.hasVibrator()) {
-            mVibrator = null;
-        }
-
-        addPreferencesFromResource(R.xml.sound_settings);
-
-        initVolumePreference(KEY_MEDIA_VOLUME, AudioManager.STREAM_MUSIC,
-                com.android.internal.R.drawable.ic_audio_media_mute);
-        initVolumePreference(KEY_ALARM_VOLUME, AudioManager.STREAM_ALARM,
-                com.android.internal.R.drawable.ic_audio_alarm_mute);
-        if (mVoiceCapable) {
-            mRingOrNotificationPreference =
-                    initVolumePreference(KEY_RING_VOLUME, AudioManager.STREAM_RING,
-                            com.android.internal.R.drawable.ic_audio_ring_notif_mute);
-            removePreference(KEY_NOTIFICATION_VOLUME);
-        } else {
-            mRingOrNotificationPreference =
-                    initVolumePreference(KEY_NOTIFICATION_VOLUME, AudioManager.STREAM_NOTIFICATION,
-                            com.android.internal.R.drawable.ic_audio_ring_notif_mute);
-            removePreference(KEY_RING_VOLUME);
-        }
-
-        if (!shouldShowRingtoneSettings()) {
-            removePreference(KEY_RING_VOLUME);
-            removePreference(KEY_NOTIFICATION_VOLUME);
-            removePreference(KEY_ALARM_VOLUME);
-        }
-
-        // Enable link to CMAS app settings depending on the value in config.xml.
-        boolean isCellBroadcastAppLinkEnabled = this.getResources().getBoolean(
-                com.android.internal.R.bool.config_cellBroadcastAppLinks);
-        try {
-            if (isCellBroadcastAppLinkEnabled) {
-                if (mPm.getApplicationEnabledSetting("com.android.cellbroadcastreceiver")
-                        == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
-                    isCellBroadcastAppLinkEnabled = false;  // CMAS app disabled
-                }
-            }
-        } catch (IllegalArgumentException ignored) {
-            isCellBroadcastAppLinkEnabled = false;  // CMAS app not installed
-        }
-        if (!mUserManager.isAdminUser() || !isCellBroadcastAppLinkEnabled ||
-                RestrictedLockUtils.hasBaseUserRestriction(mContext,
-                        UserManager.DISALLOW_CONFIG_CELL_BROADCASTS, UserHandle.myUserId())) {
-            removePreference(KEY_CELL_BROADCAST_SETTINGS);
-        }
-        initRingtones();
-        initVibrateWhenRinging();
-        updateRingerMode();
-        updateEffectsSuppressor();
-
         if (savedInstanceState != null) {
             String selectedPreference = savedInstanceState.getString(SELECTED_PREFERENCE_KEY, null);
             if (!TextUtils.isEmpty(selectedPreference)) {
@@ -225,34 +121,6 @@
     @Override
     public void onResume() {
         super.onResume();
-        lookupRingtoneNames();
-        mSettingsObserver.register(true);
-        mReceiver.register(true);
-        updateRingOrNotificationPreference();
-        updateEffectsSuppressor();
-        for (VolumeSeekBarPreference volumePref : mVolumePrefs) {
-            volumePref.onActivityResume();
-        }
-
-        final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(mContext,
-                UserManager.DISALLOW_ADJUST_VOLUME, UserHandle.myUserId());
-        final boolean hasBaseRestriction = RestrictedLockUtils.hasBaseUserRestriction(mContext,
-                UserManager.DISALLOW_ADJUST_VOLUME, UserHandle.myUserId());
-        for (String key : RESTRICTED_KEYS) {
-            Preference pref = findPreference(key);
-            if (pref != null) {
-                pref.setEnabled(!hasBaseRestriction);
-            }
-            if (pref instanceof RestrictedPreference && !hasBaseRestriction) {
-                ((RestrictedPreference) pref).setDisabledByAdmin(admin);
-            }
-        }
-        RestrictedPreference broadcastSettingsPref = (RestrictedPreference) findPreference(
-                KEY_CELL_BROADCAST_SETTINGS);
-        if (broadcastSettingsPref != null) {
-            broadcastSettingsPref.checkRestrictionAndSetDisabled(
-                    UserManager.DISALLOW_CONFIG_CELL_BROADCASTS);
-        }
 
         mManagedProfileId = Utils.getManagedProfileId(mUserManager, UserHandle.myUserId());
         if (mManagedProfileId != UserHandle.USER_NULL && shouldShowRingtoneSettings()) {
@@ -272,12 +140,7 @@
     @Override
     public void onPause() {
         super.onPause();
-        for (VolumeSeekBarPreference volumePref : mVolumePrefs) {
-            volumePref.onActivityPause();
-        }
         mVolumeCallback.stopSample();
-        mSettingsObserver.register(false);
-        mReceiver.register(false);
     }
 
     @Override
@@ -292,6 +155,45 @@
     }
 
     @Override
+    protected String getCategoryKey() {
+        return CategoryKey.CATEGORY_SOUND;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.sound_settings;
+    }
+
+    @Override
+    protected List<PreferenceController> getPreferenceControllers(Context context) {
+        final List<PreferenceController> controllers = new ArrayList<>();
+        Lifecycle lifecycle = getLifecycle();
+        controllers.add(new CastPreferenceController(context));
+        controllers.add(new ZenModePreferenceController(context));
+        controllers.add(new EmergencyBroadcastPreferenceController(context));
+        controllers.add(new VibrateWhenRingPreferenceController(context));
+
+        // === Volumes ===
+        controllers.add(new AlarmVolumePreferenceController(context, mVolumeCallback, lifecycle));
+        controllers.add(new MediaVolumePreferenceController(context, mVolumeCallback, lifecycle));
+        controllers.add(
+            new NotificationVolumePreferenceController(context, mVolumeCallback, lifecycle));
+        controllers.add(new RingVolumePreferenceController(context, mVolumeCallback, lifecycle));
+
+        // === Phone & notification ringtone ===
+        controllers.add(new PhoneRingtonePreferenceController(context));
+        controllers.add(new AlarmRingtonePreferenceController(context));
+        controllers.add(new NotificationRingtonePreferenceController(context));
+
+        return controllers;
+    }
+
+    @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (mRequestPreference != null) {
             mRequestPreference.onActivityResult(requestCode, resultCode, data);
@@ -336,68 +238,7 @@
 
     // === Volumes ===
 
-    private VolumeSeekBarPreference initVolumePreference(String key, int stream, int muteIcon) {
-        final VolumeSeekBarPreference volumePref = (VolumeSeekBarPreference) findPreference(key);
-        volumePref.setCallback(mVolumeCallback);
-        volumePref.setStream(stream);
-        mVolumePrefs.add(volumePref);
-        volumePref.setMuteIcon(muteIcon);
-        return volumePref;
-    }
-
-    private void updateRingOrNotificationPreference() {
-        mRingOrNotificationPreference.showIcon(mSuppressor != null
-                ? com.android.internal.R.drawable.ic_audio_ring_notif_mute
-                : mRingerMode == AudioManager.RINGER_MODE_VIBRATE || wasRingerModeVibrate()
-                ? com.android.internal.R.drawable.ic_audio_ring_notif_vibrate
-                : com.android.internal.R.drawable.ic_audio_ring_notif);
-    }
-
-    private boolean wasRingerModeVibrate() {
-        return mVibrator != null && mRingerMode == AudioManager.RINGER_MODE_SILENT
-                && mAudioManager.getLastAudibleStreamVolume(AudioManager.STREAM_RING) == 0;
-    }
-
-    private void updateRingerMode() {
-        final int ringerMode = mAudioManager.getRingerModeInternal();
-        if (mRingerMode == ringerMode) return;
-        mRingerMode = ringerMode;
-        updateRingOrNotificationPreference();
-    }
-
-    private void updateEffectsSuppressor() {
-        final ComponentName suppressor = NotificationManager.from(mContext).getEffectsSuppressor();
-        if (Objects.equals(suppressor, mSuppressor)) return;
-        mSuppressor = suppressor;
-        if (mRingOrNotificationPreference != null) {
-            final String text = suppressor != null ?
-                    mContext.getString(com.android.internal.R.string.muted_by,
-                            getSuppressorCaption(suppressor)) : null;
-            mRingOrNotificationPreference.setSuppressionText(text);
-        }
-        updateRingOrNotificationPreference();
-    }
-
-    private String getSuppressorCaption(ComponentName suppressor) {
-        final PackageManager pm = mContext.getPackageManager();
-        try {
-            final ServiceInfo info = pm.getServiceInfo(suppressor, 0);
-            if (info != null) {
-                final CharSequence seq = info.loadLabel(pm);
-                if (seq != null) {
-                    final String str = seq.toString().trim();
-                    if (str.length() > 0) {
-                        return str;
-                    }
-                }
-            }
-        } catch (Throwable e) {
-            Log.w(TAG, "Error loading suppressor caption", e);
-        }
-        return suppressor.getPackageName();
-    }
-
-    private final class VolumePreferenceCallback implements VolumeSeekBarPreference.Callback {
+    final class VolumePreferenceCallback implements VolumeSeekBarPreference.Callback {
         private SeekBarVolumizer mCurrent;
 
         @Override
@@ -431,48 +272,6 @@
         return !AudioSystem.isSingleVolume(mContext);
     }
 
-    private void initRingtones() {
-        mPhoneRingtonePreference = getPreferenceScreen().findPreference(KEY_PHONE_RINGTONE);
-        if (mPhoneRingtonePreference != null && !mVoiceCapable) {
-            getPreferenceScreen().removePreference(mPhoneRingtonePreference);
-            mPhoneRingtonePreference = null;
-        }
-        mNotificationRingtonePreference =
-                getPreferenceScreen().findPreference(KEY_NOTIFICATION_RINGTONE);
-        mAlarmRingtonePreference = getPreferenceScreen().findPreference(KEY_ALARM_RINGTONE);
-    }
-
-    private void lookupRingtoneNames() {
-        AsyncTask.execute(mLookupRingtoneNames);
-    }
-
-    private final Runnable mLookupRingtoneNames = new Runnable() {
-        @Override
-        public void run() {
-            if (mPhoneRingtonePreference != null) {
-                final CharSequence summary = updateRingtoneName(
-                        mContext, RingtoneManager.TYPE_RINGTONE);
-                if (summary != null) {
-                    mHandler.obtainMessage(H.UPDATE_PHONE_RINGTONE, summary).sendToTarget();
-                }
-            }
-            if (mNotificationRingtonePreference != null) {
-                final CharSequence summary = updateRingtoneName(
-                        mContext, RingtoneManager.TYPE_NOTIFICATION);
-                if (summary != null) {
-                    mHandler.obtainMessage(H.UPDATE_NOTIFICATION_RINGTONE, summary).sendToTarget();
-                }
-            }
-            if (mAlarmRingtonePreference != null) {
-                final CharSequence summary =
-                        updateRingtoneName(mContext, RingtoneManager.TYPE_ALARM);
-                if (summary != null) {
-                    mHandler.obtainMessage(H.UPDATE_ALARM_RINGTONE, summary).sendToTarget();
-                }
-            }
-        }
-    };
-
     private static CharSequence updateRingtoneName(Context context, int type) {
         if (context == null) {
             Log.e(TAG, "Unable to update ringtone name, no context provided");
@@ -483,74 +282,11 @@
                 true /* allowRemote */);
     }
 
-    // === Vibrate when ringing ===
-
-    private void initVibrateWhenRinging() {
-        mVibrateWhenRinging =
-                (TwoStatePreference) getPreferenceScreen().findPreference(KEY_VIBRATE_WHEN_RINGING);
-        if (mVibrateWhenRinging == null) {
-            Log.i(TAG, "Preference not found: " + KEY_VIBRATE_WHEN_RINGING);
-            return;
-        }
-        if (!mVoiceCapable) {
-            getPreferenceScreen().removePreference(mVibrateWhenRinging);
-            mVibrateWhenRinging = null;
-            return;
-        }
-        mVibrateWhenRinging.setPersistent(false);
-        updateVibrateWhenRinging();
-        mVibrateWhenRinging.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
-            @Override
-            public boolean onPreferenceChange(Preference preference, Object newValue) {
-                final boolean val = (Boolean) newValue;
-                return Settings.System.putInt(getContentResolver(),
-                        Settings.System.VIBRATE_WHEN_RINGING,
-                        val ? 1 : 0);
-            }
-        });
-    }
-
-    private void updateVibrateWhenRinging() {
-        if (mVibrateWhenRinging == null) return;
-        mVibrateWhenRinging.setChecked(Settings.System.getInt(getContentResolver(),
-                Settings.System.VIBRATE_WHEN_RINGING, 0) != 0);
-    }
-
     // === Callbacks ===
 
-    private final class SettingsObserver extends ContentObserver {
-        private final Uri VIBRATE_WHEN_RINGING_URI =
-                Settings.System.getUriFor(Settings.System.VIBRATE_WHEN_RINGING);
-
-        public SettingsObserver() {
-            super(mHandler);
-        }
-
-        public void register(boolean register) {
-            final ContentResolver cr = getContentResolver();
-            if (register) {
-                cr.registerContentObserver(VIBRATE_WHEN_RINGING_URI, false, this);
-            } else {
-                cr.unregisterContentObserver(this);
-            }
-        }
-
-        @Override
-        public void onChange(boolean selfChange, Uri uri) {
-            super.onChange(selfChange, uri);
-            if (VIBRATE_WHEN_RINGING_URI.equals(uri)) {
-                updateVibrateWhenRinging();
-            }
-        }
-    }
 
     private final class H extends Handler {
-        private static final int UPDATE_PHONE_RINGTONE = 1;
-        private static final int UPDATE_NOTIFICATION_RINGTONE = 2;
-        private static final int STOP_SAMPLE = 3;
-        private static final int UPDATE_EFFECTS_SUPPRESSOR = 4;
-        private static final int UPDATE_RINGER_MODE = 5;
-        private static final int UPDATE_ALARM_RINGTONE = 6;
+        private static final int STOP_SAMPLE = 1;
 
         private H() {
             super(Looper.getMainLooper());
@@ -559,51 +295,9 @@
         @Override
         public void handleMessage(Message msg) {
             switch (msg.what) {
-                case UPDATE_PHONE_RINGTONE:
-                    mPhoneRingtonePreference.setSummary((CharSequence) msg.obj);
-                    break;
-                case UPDATE_NOTIFICATION_RINGTONE:
-                    mNotificationRingtonePreference.setSummary((CharSequence) msg.obj);
-                    break;
                 case STOP_SAMPLE:
                     mVolumeCallback.stopSample();
                     break;
-                case UPDATE_EFFECTS_SUPPRESSOR:
-                    updateEffectsSuppressor();
-                    break;
-                case UPDATE_RINGER_MODE:
-                    updateRingerMode();
-                    break;
-                case UPDATE_ALARM_RINGTONE:
-                    mAlarmRingtonePreference.setSummary((CharSequence) msg.obj);
-                    break;
-            }
-        }
-    }
-
-    private class Receiver extends BroadcastReceiver {
-        private boolean mRegistered;
-
-        public void register(boolean register) {
-            if (mRegistered == register) return;
-            if (register) {
-                final IntentFilter filter = new IntentFilter();
-                filter.addAction(NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED);
-                filter.addAction(AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION);
-                mContext.registerReceiver(this, filter);
-            } else {
-                mContext.unregisterReceiver(this);
-            }
-            mRegistered = register;
-        }
-
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            final String action = intent.getAction();
-            if (NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED.equals(action)) {
-                mHandler.sendEmptyMessage(H.UPDATE_EFFECTS_SUPPRESSOR);
-            } else if (AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION.equals(action)) {
-                mHandler.sendEmptyMessage(H.UPDATE_RINGER_MODE);
             }
         }
     }
@@ -684,34 +378,14 @@
 
         public List<String> getNonIndexableKeys(Context context) {
             final ArrayList<String> rt = new ArrayList<String>();
-            if (Utils.isVoiceCapable(context)) {
-                rt.add(KEY_NOTIFICATION_VOLUME);
-            } else {
-                rt.add(KEY_RING_VOLUME);
-                rt.add(KEY_PHONE_RINGTONE);
-                rt.add(KEY_WIFI_DISPLAY);
-                rt.add(KEY_VIBRATE_WHEN_RINGING);
-            }
-
-            final PackageManager pm = context.getPackageManager();
-            final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
-
-            // Enable link to CMAS app settings depending on the value in config.xml.
-            boolean isCellBroadcastAppLinkEnabled = context.getResources().getBoolean(
-                    com.android.internal.R.bool.config_cellBroadcastAppLinks);
-            try {
-                if (isCellBroadcastAppLinkEnabled) {
-                    if (pm.getApplicationEnabledSetting("com.android.cellbroadcastreceiver")
-                            == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
-                        isCellBroadcastAppLinkEnabled = false;  // CMAS app disabled
-                    }
-                }
-            } catch (IllegalArgumentException ignored) {
-                isCellBroadcastAppLinkEnabled = false;  // CMAS app not installed
-            }
-            if (!um.isAdminUser() || !isCellBroadcastAppLinkEnabled) {
-                rt.add(KEY_CELL_BROADCAST_SETTINGS);
-            }
+            new NotificationVolumePreferenceController(
+                context, null /* Callback */, null /* Lifecycle */).updateNonIndexableKeys(rt);
+            new RingVolumePreferenceController(
+                context, null /* Callback */, null /* Lifecycle */).updateNonIndexableKeys(rt);
+            new CastPreferenceController(context).updateNonIndexableKeys(rt);
+            new PhoneRingtonePreferenceController(context).updateNonIndexableKeys(rt);
+            new VibrateWhenRingPreferenceController(context).updateNonIndexableKeys(rt);
+            new EmergencyBroadcastPreferenceController(context).updateNonIndexableKeys(rt);
 
             return rt;
         }
diff --git a/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java b/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
new file mode 100644
index 0000000..2160f3d
--- /dev/null
+++ b/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
@@ -0,0 +1,129 @@
+/*
+ * 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.notification;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+import android.support.v7.preference.TwoStatePreference;
+
+import com.android.settings.Utils;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.core.lifecycle.LifecycleObserver;
+import com.android.settings.core.lifecycle.events.OnPause;
+import com.android.settings.core.lifecycle.events.OnResume;
+
+import static android.provider.Settings.System.VIBRATE_WHEN_RINGING;
+
+public class VibrateWhenRingPreferenceController extends PreferenceController implements
+        Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause {
+
+    private static final String KEY_VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
+    private SettingObserver mSettingObserver;
+
+    public VibrateWhenRingPreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        Preference preference = screen.findPreference(KEY_VIBRATE_WHEN_RINGING);
+        if (preference != null) {
+            mSettingObserver = new SettingObserver(preference);
+            preference.setPersistent(false);
+        }
+    }
+
+    @Override
+    public void onResume() {
+        if (mSettingObserver != null) {
+            mSettingObserver.register(true /* register */);
+        }
+    }
+
+    @Override
+    public void onPause() {
+        if (mSettingObserver != null) {
+            mSettingObserver.register(false /* register */);
+        }
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        return false;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_VIBRATE_WHEN_RINGING;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return Utils.isVoiceCapable(mContext);
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        ((TwoStatePreference) preference).setChecked(
+            Settings.System.getInt(mContext.getContentResolver(), VIBRATE_WHEN_RINGING, 0) != 0);
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean val = (Boolean) newValue;
+        return Settings.System.putInt(mContext.getContentResolver(),
+            VIBRATE_WHEN_RINGING, val ? 1 : 0);
+    }
+
+    private final class SettingObserver extends ContentObserver {
+
+        private final Uri VIBRATE_WHEN_RINGING_URI =
+            Settings.System.getUriFor(VIBRATE_WHEN_RINGING);
+
+        private final Preference mPreference;
+
+        public SettingObserver(Preference preference) {
+            super(new Handler());
+            mPreference = preference;
+        }
+
+        public void register(boolean register) {
+            final ContentResolver cr = mContext.getContentResolver();
+            if (register) {
+                cr.registerContentObserver(VIBRATE_WHEN_RINGING_URI, false, this);
+            } else {
+                cr.unregisterContentObserver(this);
+            }
+        }
+
+        @Override
+        public void onChange(boolean selfChange, Uri uri) {
+            super.onChange(selfChange, uri);
+            if (VIBRATE_WHEN_RINGING_URI.equals(uri)) {
+                updateState(mPreference);
+            }
+        }
+    }
+
+}
diff --git a/src/com/android/settings/notification/VolumeSeekBarPreference.java b/src/com/android/settings/notification/VolumeSeekBarPreference.java
index 7b02cae..5ab1d29 100644
--- a/src/com/android/settings/notification/VolumeSeekBarPreference.java
+++ b/src/com/android/settings/notification/VolumeSeekBarPreference.java
@@ -146,7 +146,9 @@
     @Override
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
         super.onProgressChanged(seekBar, progress, fromTouch);
-        mCallback.onStreamValueChanged(mStream, progress);
+        if (mCallback != null) {
+            mCallback.onStreamValueChanged(mStream, progress);
+        }
     }
 
     private void updateIconView() {
diff --git a/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java b/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java
new file mode 100644
index 0000000..eeb9c28
--- /dev/null
+++ b/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java
@@ -0,0 +1,75 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settings.core.lifecycle.LifecycleObserver;
+import com.android.settings.core.lifecycle.events.OnPause;
+import com.android.settings.core.lifecycle.events.OnResume;
+import com.android.settings.notification.VolumeSeekBarPreference.Callback;
+
+/**
+ * Base class for preference controller that handles VolumeSeekBarPreference
+ */
+public abstract class VolumeSeekBarPreferenceController extends
+        AdjustVolumeRestrictedPreferenceController implements LifecycleObserver, OnResume, OnPause {
+
+    protected VolumeSeekBarPreference mPreference;
+    protected VolumeSeekBarPreference.Callback mVolumePreferenceCallback;
+
+    public VolumeSeekBarPreferenceController(Context context, Callback callback,
+            Lifecycle lifecycle) {
+        super(context);
+        mVolumePreferenceCallback = callback;
+        if (lifecycle != null) {
+            lifecycle.addObserver(this);
+        }
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        if (isAvailable()) {
+            mPreference = (VolumeSeekBarPreference) screen.findPreference(getPreferenceKey());
+            mPreference.setCallback(mVolumePreferenceCallback);
+            mPreference.setStream(getAudioStream());
+            mPreference.setMuteIcon(getMuteIcon());
+        }
+    }
+
+    @Override
+    public void onResume() {
+        if (mPreference != null) {
+            mPreference.onActivityResume();
+        }
+    }
+
+    @Override
+    public void onPause() {
+        if (mPreference != null) {
+            mPreference.onActivityPause();
+        }
+    }
+
+    protected abstract int getAudioStream();
+
+    protected abstract int getMuteIcon();
+
+}
diff --git a/src/com/android/settings/notification/ZenModePreferenceController.java b/src/com/android/settings/notification/ZenModePreferenceController.java
new file mode 100644
index 0000000..61bbe9a
--- /dev/null
+++ b/src/com/android/settings/notification/ZenModePreferenceController.java
@@ -0,0 +1,39 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+
+public class ZenModePreferenceController extends AdjustVolumeRestrictedPreferenceController {
+
+    private static final String KEY_ZEN_MODE = "zen_mode";
+
+    public ZenModePreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_ZEN_MODE;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+}
diff --git a/src/com/android/settings/overlay/FeatureFactory.java b/src/com/android/settings/overlay/FeatureFactory.java
index 75f1001..3532274 100644
--- a/src/com/android/settings/overlay/FeatureFactory.java
+++ b/src/com/android/settings/overlay/FeatureFactory.java
@@ -83,6 +83,8 @@
 
     public abstract SearchFeatureProvider getSearchFeatureProvider(Context context);
 
+    public abstract SurveyFeatureProvider getSurveyFeatureProvider(Context context);
+
     public static final class FactoryNotFoundException extends RuntimeException {
         public FactoryNotFoundException(Throwable throwable) {
             super("Unable to create factory. Did you misconfigure Proguard?", throwable);
diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.java b/src/com/android/settings/overlay/FeatureFactoryImpl.java
index cb172af..313c270 100644
--- a/src/com/android/settings/overlay/FeatureFactoryImpl.java
+++ b/src/com/android/settings/overlay/FeatureFactoryImpl.java
@@ -110,4 +110,9 @@
         }
         return mSearchFeatureProvider;
     }
+
+    @Override
+    public SurveyFeatureProvider getSurveyFeatureProvider(Context context) {
+        return null;
+    }
 }
diff --git a/src/com/android/settings/overlay/SupportFeatureProvider.java b/src/com/android/settings/overlay/SupportFeatureProvider.java
index 506d1bc..24ec7b5 100644
--- a/src/com/android/settings/overlay/SupportFeatureProvider.java
+++ b/src/com/android/settings/overlay/SupportFeatureProvider.java
@@ -18,6 +18,7 @@
 
 import android.accounts.Account;
 import android.annotation.IntDef;
+import android.annotation.NonNull;
 import android.annotation.StringRes;
 import android.app.Activity;
 import android.content.Context;
@@ -111,15 +112,16 @@
     void setShouldShowDisclaimerDialog(Context context, boolean shouldShow);
 
     /**
-     * Returns an {@link Account} that's eligible for support options.
+     * Returns array of {@link Account} that's eligible for support options.
      */
-    Account getSupportEligibleAccount(Context context);
+    @NonNull
+    Account[] getSupportEligibleAccounts(Context context);
 
     /**
      * Starts support activity of specified type
      *
      * @param activity Calling activity
-     * @param account A account returned by {@link #getSupportEligibleAccount}
+     * @param account A account that selected by user
      * @param type The type of support account needs.
      */
     void startSupport(Activity activity, Account account, @SupportType int type);
diff --git a/src/com/android/settings/overlay/SurveyFeatureProvider.java b/src/com/android/settings/overlay/SurveyFeatureProvider.java
new file mode 100644
index 0000000..79e907f
--- /dev/null
+++ b/src/com/android/settings/overlay/SurveyFeatureProvider.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.overlay;
+
+import android.app.Activity;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.IntentFilter;
+import android.support.annotation.Nullable;
+
+/**
+ * An interface for classes wishing to provide the ability to serve surveys to implement.
+ */
+public interface SurveyFeatureProvider {
+
+    /**
+     * Downloads a survey asynchronously to shared preferences to be served at a later date.
+     *
+     * @param activity A valid context.
+     * @param surveyId A unique Id representing a survey to download.
+     * @param data a text blob to be attached to the survey results.
+     */
+    void downloadSurvey(Activity activity, String surveyId, @Nullable String data);
+
+    /**
+     * Shows a previously downloaded survey/prompt if possible in the activity provided.
+     *
+     * @param activity The host activity to show the survey in.
+     * @param surveyId A unique Id representing a survey to download.
+     */
+    void showSurveyIfAvailable(Activity activity, String surveyId);
+
+    /**
+     * A helper method to get the surveyId. Implementers should create a mapping of
+     * keys to surveyIds and provide them via this function.
+     *
+     * @param context A valid context.
+     * @param key The key to get the surveyId for.
+     * @return The unique Id as a string or null on error.
+     */
+    String getSurveyId(Context context, String key);
+}
diff --git a/src/com/android/settings/password/FingerprintManagerWrapper.java b/src/com/android/settings/password/FingerprintManagerWrapper.java
new file mode 100644
index 0000000..b00f786
--- /dev/null
+++ b/src/com/android/settings/password/FingerprintManagerWrapper.java
@@ -0,0 +1,47 @@
+/*
+ * 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.password;
+
+import android.annotation.NonNull;
+import android.hardware.fingerprint.FingerprintManager;
+
+import com.android.internal.util.Preconditions;
+
+/**
+ * Wrapper of {@link FingerprintManager}. Workaround for roboelectic testing. See
+ * {@link IFingerprintManager} for details.
+ */
+public class FingerprintManagerWrapper implements IFingerprintManager {
+    private @NonNull FingerprintManager mFingerprintManager;
+
+    public FingerprintManagerWrapper(@NonNull FingerprintManager fingerprintManager) {
+        Preconditions.checkNotNull(fingerprintManager);
+        mFingerprintManager = fingerprintManager;
+    }
+
+    public boolean isHardwareDetected() {
+        return mFingerprintManager.isHardwareDetected();
+    }
+
+    public boolean hasEnrolledFingerprints(int userId) {
+        return mFingerprintManager.hasEnrolledFingerprints(userId);
+    }
+
+    public long preEnroll() {
+        return mFingerprintManager.preEnroll();
+    }
+}
diff --git a/src/com/android/settings/password/IFingerprintManager.java b/src/com/android/settings/password/IFingerprintManager.java
new file mode 100644
index 0000000..15a9242
--- /dev/null
+++ b/src/com/android/settings/password/IFingerprintManager.java
@@ -0,0 +1,31 @@
+/*
+ * 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.password;
+
+/**
+ * This is the workaround to allow us test {@link SetNewPasswordController} which uses a new hidden
+ * API {@link android.hardware.fingerprint.FingerprintManager#hasEnrolledFingerprints(int)} that
+ * roboelectric does not support yet. Having roboelectic to support latest platform API is tracked
+ * in b/30995831.
+ */
+public interface IFingerprintManager {
+    boolean isHardwareDetected();
+
+    boolean hasEnrolledFingerprints(int userId);
+
+    long preEnroll();
+}
diff --git a/src/com/android/settings/password/SetNewPasswordActivity.java b/src/com/android/settings/password/SetNewPasswordActivity.java
index 6ca90a4..585f4f4 100644
--- a/src/com/android/settings/password/SetNewPasswordActivity.java
+++ b/src/com/android/settings/password/SetNewPasswordActivity.java
@@ -16,23 +16,26 @@
 
 package com.android.settings.password;
 
-import android.annotation.Nullable;
+import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PARENT_PROFILE_PASSWORD;
+import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
+
 import android.app.Activity;
 import android.app.admin.DevicePolicyManager;
 import android.content.Intent;
 import android.os.Bundle;
+import android.util.Log;
 
 import com.android.settings.ChooseLockGeneric;
 import com.android.settings.SetupChooseLockGeneric;
 import com.android.settings.Utils;
 
-
 /**
  * Trampolines {@link DevicePolicyManager#ACTION_SET_NEW_PASSWORD} and
  * {@link DevicePolicyManager#ACTION_SET_NEW_PARENT_PROFILE_PASSWORD} intent to the appropriate UI
  * activity for handling set new password.
  */
 public class SetNewPasswordActivity extends Activity implements SetNewPasswordController.Ui {
+    private static final String TAG = "SetNewPasswordActivity";
     private String mNewPasswordAction;
     private SetNewPasswordController mSetNewPasswordController;
 
@@ -41,19 +44,23 @@
         super.onCreate(savedState);
 
         mNewPasswordAction = getIntent().getAction();
-        mSetNewPasswordController = new SetNewPasswordController(this, this);
+        if (!ACTION_SET_NEW_PASSWORD.equals(mNewPasswordAction)
+                && !ACTION_SET_NEW_PARENT_PROFILE_PASSWORD.equals(mNewPasswordAction)) {
+            Log.e(TAG, "Unexpected action to launch this activity");
+            finish();
+            return;
+        }
+        mSetNewPasswordController = SetNewPasswordController.create(this, this, getIntent());
         mSetNewPasswordController.dispatchSetNewPasswordIntent();
     }
 
     @Override
-    public void launchChooseLock(@Nullable Bundle chooseLockFingerprintExtras) {
+    public void launchChooseLock(Bundle chooseLockFingerprintExtras) {
         final boolean isInSetupWizard = !Utils.isDeviceProvisioned(this);
         Intent intent = isInSetupWizard ? new Intent(this, SetupChooseLockGeneric.class)
                 : new Intent(this, ChooseLockGeneric.class);
         intent.setAction(mNewPasswordAction);
-        if (chooseLockFingerprintExtras != null) {
-            intent.putExtras(chooseLockFingerprintExtras);
-        }
+        intent.putExtras(chooseLockFingerprintExtras);
         startActivity(intent);
         finish();
     }
diff --git a/src/com/android/settings/password/SetNewPasswordController.java b/src/com/android/settings/password/SetNewPasswordController.java
index 03afa76..00cf33e 100644
--- a/src/com/android/settings/password/SetNewPasswordController.java
+++ b/src/com/android/settings/password/SetNewPasswordController.java
@@ -16,18 +16,23 @@
 
 package com.android.settings.password;
 
+import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
+import static android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT;
+import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
 import static com.android.internal.util.Preconditions.checkNotNull;
 
 import android.annotation.Nullable;
+import android.app.ActivityManager;
 import android.app.admin.DevicePolicyManager;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.Bundle;
-import android.os.UserHandle;
+import android.os.UserManager;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.ChooseLockGeneric;
 import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.Utils;
@@ -43,31 +48,52 @@
 
     interface Ui {
         /** Starts the {@link ChooseLockGeneric} activity with the given extras. */
-        void launchChooseLock(@Nullable Bundle chooseLockFingerprintExtras);
+        void launchChooseLock(Bundle chooseLockFingerprintExtras);
     }
 
-    private final int mCurrentUserId;
+    /**
+     * Which user is setting new password.
+     */
+    private final int mTargetUserId;
     private final PackageManager mPackageManager;
-    @Nullable private final FingerprintManager mFingerprintManager;
+    @Nullable private final IFingerprintManager mFingerprintManager;
     private final DevicePolicyManager mDevicePolicyManager;
     private final Ui mUi;
 
-    public SetNewPasswordController(Context context, Ui ui) {
-        this(context.getUserId(),
+    public static SetNewPasswordController create(Context context, Ui ui, Intent intent) {
+        // Trying to figure out which user is setting new password. If it is
+        // ACTION_SET_NEW_PARENT_PROFILE_PASSWORD or the calling user is not allowed to set
+        // separate profile challenge, it is the current user to set new password. Otherwise,
+        // it is the user who starts this activity setting new password.
+        int userId = ActivityManager.getCurrentUser();
+        if (ACTION_SET_NEW_PASSWORD.equals(intent.getAction())) {
+            final int callingUserId = Utils.getSecureTargetUser(context.getActivityToken(),
+                    UserManager.get(context), null, intent.getExtras()).getIdentifier();
+            final LockPatternUtils lockPatternUtils = new LockPatternUtils(context);
+            if (lockPatternUtils.isSeparateProfileChallengeAllowed(callingUserId)) {
+                userId = callingUserId;
+            }
+        }
+        // Create a wrapper of FingerprintManager for testing, see IFingerPrintManager for details.
+        final FingerprintManager fingerprintManager = Utils.getFingerprintManagerOrNull(context);
+        final IFingerprintManager fingerprintManagerWrapper =
+                fingerprintManager == null
+                        ? null
+                        : new FingerprintManagerWrapper(fingerprintManager);
+        return new SetNewPasswordController(userId,
                 context.getPackageManager(),
-                Utils.getFingerprintManagerOrNull(context),
-                (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE),
-                ui);
+                fingerprintManagerWrapper,
+                (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE), ui);
     }
 
     @VisibleForTesting
     SetNewPasswordController(
-            int currentUserId,
+            int targetUserId,
             PackageManager packageManager,
-            FingerprintManager fingerprintManager,
+            IFingerprintManager fingerprintManager,
             DevicePolicyManager devicePolicyManager,
             Ui ui) {
-        mCurrentUserId = currentUserId;
+        mTargetUserId = targetUserId;
         mPackageManager = checkNotNull(packageManager);
         mFingerprintManager = fingerprintManager;
         mDevicePolicyManager = checkNotNull(devicePolicyManager);
@@ -78,38 +104,38 @@
      * Dispatches the set new password intent to the correct activity that handles it.
      */
     public void dispatchSetNewPasswordIntent() {
+        final Bundle extras;
         if (mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)
                 && mFingerprintManager != null
                 && mFingerprintManager.isHardwareDetected()
-                && !mFingerprintManager.hasEnrolledFingerprints()
+                && !mFingerprintManager.hasEnrolledFingerprints(mTargetUserId)
                 && !isFingerprintDisabledByAdmin()) {
-            mUi.launchChooseLock(getFingerprintChooseLockExtras());
+            extras = getFingerprintChooseLockExtras();
         } else {
-            mUi.launchChooseLock(null);
+            extras = new Bundle();
         }
+        // No matter we show fingerprint options or not, we should tell the next activity which
+        // user is setting new password.
+        extras.putInt(Intent.EXTRA_USER_ID, mTargetUserId);
+        mUi.launchChooseLock(extras);
     }
 
     private Bundle getFingerprintChooseLockExtras() {
         Bundle chooseLockExtras = new Bundle();
-        if (mFingerprintManager != null) {
-            long challenge = mFingerprintManager.preEnroll();
-            chooseLockExtras.putInt(ChooseLockGeneric.ChooseLockGenericFragment.MINIMUM_QUALITY_KEY,
-                    DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
-            chooseLockExtras.putBoolean(
-                    ChooseLockGeneric.ChooseLockGenericFragment.HIDE_DISABLED_PREFS, true);
-            chooseLockExtras.putBoolean(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, true);
-            chooseLockExtras.putLong(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, challenge);
-            chooseLockExtras.putBoolean(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, true);
-            if (mCurrentUserId != UserHandle.USER_NULL) {
-                chooseLockExtras.putInt(Intent.EXTRA_USER_ID, mCurrentUserId);
-            }
-        }
+        long challenge = mFingerprintManager.preEnroll();
+        chooseLockExtras.putInt(ChooseLockGeneric.ChooseLockGenericFragment.MINIMUM_QUALITY_KEY,
+                PASSWORD_QUALITY_SOMETHING);
+        chooseLockExtras.putBoolean(
+                ChooseLockGeneric.ChooseLockGenericFragment.HIDE_DISABLED_PREFS, true);
+        chooseLockExtras.putBoolean(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, true);
+        chooseLockExtras.putLong(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, challenge);
+        chooseLockExtras.putBoolean(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, true);
         return chooseLockExtras;
     }
 
     private boolean isFingerprintDisabledByAdmin() {
-        int disabledFeatures = mDevicePolicyManager.getKeyguardDisabledFeatures(
-                null, mCurrentUserId);
-        return (disabledFeatures & DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT) != 0;
+        int disabledFeatures =
+                mDevicePolicyManager.getKeyguardDisabledFeatures(null, mTargetUserId);
+        return (disabledFeatures & KEYGUARD_DISABLE_FINGERPRINT) != 0;
     }
 }
diff --git a/src/com/android/settings/search/Index.java b/src/com/android/settings/search/Index.java
index ccedd62..bff841b 100644
--- a/src/com/android/settings/search/Index.java
+++ b/src/com/android/settings/search/Index.java
@@ -110,6 +110,9 @@
 
     public static final String ENTRIES_SEPARATOR = "|";
 
+    static final String FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER =
+            "SEARCH_INDEX_DATA_PROVIDER";
+
     // If you change the order of columns here, you SHOULD change the COLUMN_INDEX_XXX values
     private static final String[] SELECT_COLUMNS = new String[] {
             IndexColumns.DATA_RANK,               // 0
@@ -155,9 +158,6 @@
     private static final String HYPHEN = "-";
     private static final String SPACE = " ";
 
-    private static final String FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER =
-            "SEARCH_INDEX_DATA_PROVIDER";
-
     private static final String NODE_NAME_PREFERENCE_SCREEN = "PreferenceScreen";
     private static final String NODE_NAME_CHECK_BOX_PREFERENCE = "CheckBoxPreference";
     private static final String NODE_NAME_LIST_PREFERENCE = "ListPreference";
diff --git a/src/com/android/settings/search/Indexable.java b/src/com/android/settings/search/Indexable.java
index 19f88ae..e87d9dc 100644
--- a/src/com/android/settings/search/Indexable.java
+++ b/src/com/android/settings/search/Indexable.java
@@ -33,7 +33,7 @@
  */
 public interface Indexable {
 
-    public interface SearchIndexProvider {
+    interface SearchIndexProvider {
         /**
          * Return a list of references for indexing.
          *
diff --git a/src/com/android/settings/search/Ranking.java b/src/com/android/settings/search/Ranking.java
index 1070200..28861ca 100644
--- a/src/com/android/settings/search/Ranking.java
+++ b/src/com/android/settings/search/Ranking.java
@@ -32,6 +32,7 @@
 import com.android.settings.applications.AdvancedAppSettings;
 import com.android.settings.applications.SpecialAccessSettings;
 import com.android.settings.bluetooth.BluetoothSettings;
+import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
 import com.android.settings.datausage.DataUsageMeteredSettings;
 import com.android.settings.datausage.DataUsageSummary;
 import com.android.settings.deviceinfo.StorageDashboardFragment;
@@ -108,6 +109,7 @@
 
         // BT
         sRankMap.put(BluetoothSettings.class.getName(), RANK_BT);
+        sRankMap.put(ConnectedDeviceDashboardFragment.class.getName(), RANK_BT);
 
         // SIM Cards
         sRankMap.put(SimSettings.class.getName(), RANK_SIM);
diff --git a/src/com/android/settings/search/SearchIndexableResources.java b/src/com/android/settings/search/SearchIndexableResources.java
index 7888c0f..7fa302c 100644
--- a/src/com/android/settings/search/SearchIndexableResources.java
+++ b/src/com/android/settings/search/SearchIndexableResources.java
@@ -17,6 +17,10 @@
 package com.android.settings.search;
 
 import android.provider.SearchIndexableResource;
+import android.support.annotation.DrawableRes;
+import android.support.annotation.VisibleForTesting;
+import android.support.annotation.XmlRes;
+
 import com.android.settings.DateTimeSettings;
 import com.android.settings.DevelopmentSettings;
 import com.android.settings.DeviceInfoSettings;
@@ -30,9 +34,12 @@
 import com.android.settings.WirelessSettings;
 import com.android.settings.accessibility.AccessibilitySettings;
 import com.android.settings.accounts.AccountSettings;
+import com.android.settings.accounts.UserAndAccountDashboardFragment;
 import com.android.settings.applications.AdvancedAppSettings;
+import com.android.settings.applications.AppAndNotificationDashboardFragment;
 import com.android.settings.applications.SpecialAccessSettings;
 import com.android.settings.bluetooth.BluetoothSettings;
+import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
 import com.android.settings.datausage.DataUsageMeteredSettings;
 import com.android.settings.datausage.DataUsageSummary;
 import com.android.settings.deviceinfo.StorageDashboardFragment;
@@ -41,10 +48,16 @@
 import com.android.settings.enterprise.EnterprisePrivacySettings;
 import com.android.settings.fuelgauge.BatterySaverSettings;
 import com.android.settings.fuelgauge.PowerUsageSummary;
+import com.android.settings.gestures.DoubleTapPowerSettings;
+import com.android.settings.gestures.DoubleTapScreenSettings;
+import com.android.settings.gestures.DoubleTwistGestureSettings;
 import com.android.settings.gestures.GestureSettings;
+import com.android.settings.gestures.PickupGestureSettings;
+import com.android.settings.gestures.SwipeToNotificationSettings;
 import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
 import com.android.settings.location.LocationSettings;
 import com.android.settings.location.ScanningSettings;
+import com.android.settings.network.NetworkDashboardFragment;
 import com.android.settings.notification.ConfigureNotificationSettings;
 import com.android.settings.notification.OtherSoundSettings;
 import com.android.settings.notification.SoundSettings;
@@ -64,292 +77,83 @@
 
 public final class SearchIndexableResources {
 
-    public static int NO_DATA_RES_ID = 0;
+    @XmlRes
+    public static final int NO_DATA_RES_ID = 0;
 
-    private static HashMap<String, SearchIndexableResource> sResMap =
-            new HashMap<String, SearchIndexableResource>();
+    private static final HashMap<String, SearchIndexableResource> sResMap = new HashMap<>();
+
+    @VisibleForTesting
+    static void addIndex(Class<?> indexClass, @XmlRes int xmlResId,
+            @DrawableRes int iconResId) {
+        String className = indexClass.getName();
+        int rank = Ranking.getRankForClassName(className);
+        sResMap.put(className, new SearchIndexableResource(rank, xmlResId, className, iconResId));
+    }
 
     static {
-        sResMap.put(WifiSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(WifiSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        WifiSettings.class.getName(),
-                        R.drawable.ic_settings_wireless));
-
-        sResMap.put(AdvancedWifiSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(AdvancedWifiSettings.class.getName()),
-                        R.xml.wifi_advanced_settings,
-                        AdvancedWifiSettings.class.getName(),
-                        R.drawable.ic_settings_wireless));
-
-        sResMap.put(SavedAccessPointsWifiSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(SavedAccessPointsWifiSettings.class.getName()),
-                        R.xml.wifi_display_saved_access_points,
-                        SavedAccessPointsWifiSettings.class.getName(),
-                        R.drawable.ic_settings_wireless));
-
-        sResMap.put(BluetoothSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(BluetoothSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        BluetoothSettings.class.getName(),
-                        R.drawable.ic_settings_bluetooth));
-
-        sResMap.put(SimSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(SimSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        SimSettings.class.getName(),
-                        R.drawable.ic_sim_sd));
-
-        sResMap.put(DataUsageSummary.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(DataUsageSummary.class.getName()),
-                        NO_DATA_RES_ID,
-                        DataUsageSummary.class.getName(),
-                        R.drawable.ic_settings_data_usage));
-
-        sResMap.put(DataUsageMeteredSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(DataUsageMeteredSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        DataUsageMeteredSettings.class.getName(),
-                        R.drawable.ic_settings_data_usage));
-
-        sResMap.put(WirelessSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(WirelessSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        WirelessSettings.class.getName(),
-                        R.drawable.ic_settings_more));
-
-        sResMap.put(ScreenZoomSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(ScreenZoomSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        ScreenZoomSettings.class.getName(),
-                        R.drawable.ic_settings_display));
-
-        sResMap.put(DisplaySettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(DisplaySettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        DisplaySettings.class.getName(),
-                        R.drawable.ic_settings_display));
-
-        sResMap.put(WallpaperTypeSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(WallpaperTypeSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        WallpaperTypeSettings.class.getName(),
-                        R.drawable.ic_settings_display));
-
-        sResMap.put(ConfigureNotificationSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(ConfigureNotificationSettings.class.getName()),
-                        R.xml.configure_notification_settings,
-                        ConfigureNotificationSettings.class.getName(),
-                        R.drawable.ic_settings_notifications));
-
-        sResMap.put(SoundSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(SoundSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        SoundSettings.class.getName(),
-                        R.drawable.ic_settings_sound));
-
-        sResMap.put(OtherSoundSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(OtherSoundSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        OtherSoundSettings.class.getName(),
-                        R.drawable.ic_settings_sound));
-
-        sResMap.put(ZenModeSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(ZenModeSettings.class.getName()),
-                        R.xml.zen_mode_settings,
-                        ZenModeSettings.class.getName(),
-                        R.drawable.ic_settings_notifications));
-
-        sResMap.put(ZenModePrioritySettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(ZenModePrioritySettings.class.getName()),
-                        R.xml.zen_mode_priority_settings,
-                        ZenModePrioritySettings.class.getName(),
-                        R.drawable.ic_settings_notifications));
-
-        sResMap.put(StorageSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(StorageSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        StorageSettings.class.getName(),
-                        R.drawable.ic_settings_storage));
-
-        sResMap.put(PowerUsageSummary.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(PowerUsageSummary.class.getName()),
-                        R.xml.power_usage_summary,
-                        PowerUsageSummary.class.getName(),
-                        R.drawable.ic_settings_battery));
-
-        sResMap.put(BatterySaverSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(BatterySaverSettings.class.getName()),
-                        R.xml.battery_saver_settings,
-                        BatterySaverSettings.class.getName(),
-                        R.drawable.ic_settings_battery));
-
-        sResMap.put(AdvancedAppSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(AdvancedAppSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        AdvancedAppSettings.class.getName(),
-                        R.drawable.ic_settings_applications));
-
-        sResMap.put(SpecialAccessSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(SpecialAccessSettings.class.getName()),
-                        R.xml.special_access,
-                        SpecialAccessSettings.class.getName(),
-                        R.drawable.ic_settings_applications));
-
-        sResMap.put(UserSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(UserSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        UserSettings.class.getName(),
-                        R.drawable.ic_settings_multiuser));
-
-        sResMap.put(GestureSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(GestureSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        GestureSettings.class.getName(),
-                        R.drawable.ic_settings_gestures));
-
-        sResMap.put(LocationSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(LocationSettings.class.getName()),
-                        R.xml.location_settings,
-                        LocationSettings.class.getName(),
-                        R.drawable.ic_settings_location));
-
-        sResMap.put(ScanningSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(ScanningSettings.class.getName()),
-                        R.xml.location_scanning,
-                        ScanningSettings.class.getName(),
-                        R.drawable.ic_settings_location));
-
-        sResMap.put(SecuritySettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(SecuritySettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        SecuritySettings.class.getName(),
-                        R.drawable.ic_settings_security));
-
-        sResMap.put(ScreenPinningSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(ScreenPinningSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        ScreenPinningSettings.class.getName(),
-                        R.drawable.ic_settings_security));
-
-        sResMap.put(AccountSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(AccountSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        AccountSettings.class.getName(),
-                        R.drawable.ic_settings_accounts));
-
-        sResMap.put(InputMethodAndLanguageSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(InputMethodAndLanguageSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        InputMethodAndLanguageSettings.class.getName(),
-                        R.drawable.ic_settings_language));
-
-        sResMap.put(PrivacySettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(PrivacySettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        PrivacySettings.class.getName(),
-                        R.drawable.ic_settings_backup));
-
-        sResMap.put(DateTimeSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(DateTimeSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        DateTimeSettings.class.getName(),
-                        R.drawable.ic_settings_date_time));
-
-        sResMap.put(AccessibilitySettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(AccessibilitySettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        AccessibilitySettings.class.getName(),
-                        R.drawable.ic_settings_accessibility));
-
-        sResMap.put(PrintSettingsFragment.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(PrintSettingsFragment.class.getName()),
-                        NO_DATA_RES_ID,
-                        PrintSettingsFragment.class.getName(),
-                        R.drawable.ic_settings_print));
-
-        sResMap.put(DevelopmentSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(DevelopmentSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        DevelopmentSettings.class.getName(),
-                        R.drawable.ic_settings_development));
-
-        sResMap.put(DeviceInfoSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(DeviceInfoSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        DeviceInfoSettings.class.getName(),
-                        R.drawable.ic_settings_about));
-
-        sResMap.put(LegalSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(LegalSettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        LegalSettings.class.getName(),
-                        R.drawable.ic_settings_about));
-
-        sResMap.put(ZenModeVisualInterruptionSettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(
-                                ZenModeVisualInterruptionSettings.class.getName()),
-                        R.xml.zen_mode_visual_interruptions_settings,
-                        ZenModeVisualInterruptionSettings.class.getName(),
-                        R.drawable.ic_settings_notifications));
-
-        sResMap.put(SystemDashboardFragment.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(SystemDashboardFragment.class.getName()),
-                        NO_DATA_RES_ID,
-                        SystemDashboardFragment.class.getName(),
-                        R.drawable.ic_settings_about));
-
-        sResMap.put(StorageDashboardFragment.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(StorageDashboardFragment.class.getName()),
-                        NO_DATA_RES_ID,
-                        StorageDashboardFragment.class.getName(),
-                        R.drawable.ic_settings_storage));
-
-        sResMap.put(EnterprisePrivacySettings.class.getName(),
-                new SearchIndexableResource(
-                        Ranking.getRankForClassName(EnterprisePrivacySettings.class.getName()),
-                        NO_DATA_RES_ID,
-                        EnterprisePrivacySettings.class.getName(),
-                        R.drawable.ic_settings_about));
+        addIndex(WifiSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_wireless);
+        addIndex(NetworkDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_wireless);
+        addIndex(AdvancedWifiSettings.class,
+                R.xml.wifi_advanced_settings, R.drawable.ic_settings_wireless);
+        addIndex(SavedAccessPointsWifiSettings.class,
+                R.xml.wifi_display_saved_access_points, R.drawable.ic_settings_wireless);
+        addIndex(BluetoothSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_bluetooth);
+        addIndex(SimSettings.class, NO_DATA_RES_ID, R.drawable.ic_sim_sd);
+        addIndex(DataUsageSummary.class, NO_DATA_RES_ID, R.drawable.ic_settings_data_usage);
+        addIndex(DataUsageMeteredSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_data_usage);
+        addIndex(WirelessSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_more);
+        addIndex(ScreenZoomSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_display);
+        addIndex(DisplaySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_display);
+        addIndex(WallpaperTypeSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_display);
+        addIndex(ConfigureNotificationSettings.class,
+                R.xml.configure_notification_settings, R.drawable.ic_settings_notifications);
+        addIndex(AppAndNotificationDashboardFragment.class, NO_DATA_RES_ID,
+                R.drawable.ic_settings_applications);
+        addIndex(SoundSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_sound);
+        addIndex(OtherSoundSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_sound);
+        addIndex(ZenModeSettings.class,
+                R.xml.zen_mode_settings, R.drawable.ic_settings_notifications);
+        addIndex(ZenModePrioritySettings.class,
+                R.xml.zen_mode_priority_settings, R.drawable.ic_settings_notifications);
+        addIndex(StorageSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_storage);
+        addIndex(PowerUsageSummary.class,
+                R.xml.power_usage_summary, R.drawable.ic_settings_battery);
+        addIndex(BatterySaverSettings.class,
+                R.xml.battery_saver_settings, R.drawable.ic_settings_battery);
+        addIndex(AdvancedAppSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_applications);
+        addIndex(SpecialAccessSettings.class,
+                R.xml.special_access, R.drawable.ic_settings_applications);
+        addIndex(UserSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_multiuser);
+        addIndex(GestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
+        addIndex(PickupGestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
+        addIndex(DoubleTapScreenSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
+        addIndex(DoubleTapPowerSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
+        addIndex(DoubleTwistGestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
+        addIndex(SwipeToNotificationSettings.class, NO_DATA_RES_ID,
+                R.drawable.ic_settings_gestures);
+        addIndex(LocationSettings.class, R.xml.location_settings, R.drawable.ic_settings_location);
+        addIndex(ScanningSettings.class, R.xml.location_scanning, R.drawable.ic_settings_location);
+        addIndex(SecuritySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_security);
+        addIndex(ScreenPinningSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_security);
+        addIndex(AccountSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_accounts);
+        addIndex(UserAndAccountDashboardFragment.class, NO_DATA_RES_ID,
+                R.drawable.ic_settings_accounts);
+        addIndex(InputMethodAndLanguageSettings.class,
+                NO_DATA_RES_ID, R.drawable.ic_settings_language);
+        addIndex(PrivacySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_backup);
+        addIndex(DateTimeSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_date_time);
+        addIndex(AccessibilitySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_accessibility);
+        addIndex(PrintSettingsFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_print);
+        addIndex(DevelopmentSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_development);
+        addIndex(DeviceInfoSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
+        addIndex(LegalSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
+        addIndex(ZenModeVisualInterruptionSettings.class,
+                R.xml.zen_mode_visual_interruptions_settings,
+                R.drawable.ic_settings_notifications);
+        addIndex(SystemDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
+        addIndex(StorageDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_storage);
+        addIndex(ConnectedDeviceDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_bt_laptop);
+        addIndex(EnterprisePrivacySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
     }
 
     private SearchIndexableResources() {
diff --git a/src/com/android/settings/search2/DatabaseIndexingManager.java b/src/com/android/settings/search2/DatabaseIndexingManager.java
new file mode 100644
index 0000000..9bb4538
--- /dev/null
+++ b/src/com/android/settings/search2/DatabaseIndexingManager.java
@@ -0,0 +1,963 @@
+/*
+ * 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.search2;
+
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.res.XmlResourceParser;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteException;
+import android.database.sqlite.SQLiteFullException;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.provider.SearchIndexableData;
+import android.provider.SearchIndexableResource;
+import android.provider.SearchIndexablesContract;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.Xml;
+
+import com.android.settings.search.IndexDatabaseHelper;
+import com.android.settings.search.Indexable;
+import com.android.settings.search.Ranking;
+import com.android.settings.search.SearchIndexableRaw;
+import com.android.settings.search.SearchIndexableResources;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_CLASS_NAME;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_ENTRIES;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_ICON_RESID;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_INTENT_ACTION;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_INTENT_TARGET_CLASS;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_INTENT_TARGET_PACKAGE;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_KEY;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_KEYWORDS;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_RANK;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_SCREEN_TITLE;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_SUMMARY_OFF;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_SUMMARY_ON;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_TITLE;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_USER_ID;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_CLASS_NAME;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_ICON_RESID;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_ACTION;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_CLASS;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RANK;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RESID;
+
+/**
+ * Consumes the SearchIndexableProvider content providers.
+ * Updates the Resource, Raw Data and non-indexable data for Search.
+ */
+public class DatabaseIndexingManager {
+    private static final String LOG_TAG = "DatabaseIndexingManager";
+
+    // Those indices should match the indices of SELECT_COLUMNS !
+    public static final int COLUMN_INDEX_RANK = 0;
+    public static final int COLUMN_INDEX_TITLE = 1;
+    public static final int COLUMN_INDEX_SUMMARY_ON = 2;
+    public static final int COLUMN_INDEX_SUMMARY_OFF = 3;
+    public static final int COLUMN_INDEX_ENTRIES = 4;
+    public static final int COLUMN_INDEX_KEYWORDS = 5;
+    public static final int COLUMN_INDEX_CLASS_NAME = 6;
+    public static final int COLUMN_INDEX_SCREEN_TITLE = 7;
+    public static final int COLUMN_INDEX_ICON = 8;
+    public static final int COLUMN_INDEX_INTENT_ACTION = 9;
+    public static final int COLUMN_INDEX_INTENT_ACTION_TARGET_PACKAGE = 10;
+    public static final int COLUMN_INDEX_INTENT_ACTION_TARGET_CLASS = 11;
+    public static final int COLUMN_INDEX_ENABLED = 12;
+    public static final int COLUMN_INDEX_KEY = 13;
+    public static final int COLUMN_INDEX_USER_ID = 14;
+
+    // If you change the order of columns here, you SHOULD change the COLUMN_INDEX_XXX values
+    private static final String[] SELECT_COLUMNS = new String[] {
+            IndexDatabaseHelper.IndexColumns.DATA_RANK,               // 0
+            IndexDatabaseHelper.IndexColumns.DATA_TITLE,              // 1
+            IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON,         // 2
+            IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF,        // 3
+            IndexDatabaseHelper.IndexColumns.DATA_ENTRIES,            // 4
+            IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS,           // 5
+            IndexDatabaseHelper.IndexColumns.CLASS_NAME,              // 6
+            IndexDatabaseHelper.IndexColumns.SCREEN_TITLE,            // 7
+            IndexDatabaseHelper.IndexColumns.ICON,                    // 8
+            IndexDatabaseHelper.IndexColumns.INTENT_ACTION,           // 9
+            IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE,   // 10
+            IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS,     // 11
+            IndexDatabaseHelper.IndexColumns.ENABLED,                 // 12
+            IndexDatabaseHelper.IndexColumns.DATA_KEY_REF             // 13
+    };
+
+    private static final String[] MATCH_COLUMNS_PRIMARY = {
+            IndexDatabaseHelper.IndexColumns.DATA_TITLE,
+            IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED,
+            IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS
+    };
+
+    private static final String[] MATCH_COLUMNS_SECONDARY = {
+            IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON,
+            IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED,
+            IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF,
+            IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED,
+            IndexDatabaseHelper.IndexColumns.DATA_ENTRIES
+    };
+
+
+    private static final String NODE_NAME_PREFERENCE_SCREEN = "PreferenceScreen";
+    private static final String NODE_NAME_CHECK_BOX_PREFERENCE = "CheckBoxPreference";
+    private static final String NODE_NAME_LIST_PREFERENCE = "ListPreference";
+
+    private static final List<String> EMPTY_LIST = Collections.<String>emptyList();
+
+    private final String mBaseAuthority;
+
+    /**
+     * A private class to describe the update data for the Index database
+     */
+    private static class UpdateData {
+        public List<SearchIndexableData> dataToUpdate;
+        public List<SearchIndexableData> dataToDelete;
+        public Map<String, List<String>> nonIndexableKeys;
+
+        public boolean forceUpdate;
+        public boolean fullIndex;
+
+        public UpdateData() {
+            dataToUpdate = new ArrayList<SearchIndexableData>();
+            dataToDelete = new ArrayList<SearchIndexableData>();
+            nonIndexableKeys = new HashMap<String, List<String>>();
+        }
+
+        public UpdateData(DatabaseIndexingManager.UpdateData other) {
+            dataToUpdate = new ArrayList<SearchIndexableData>(other.dataToUpdate);
+            dataToDelete = new ArrayList<SearchIndexableData>(other.dataToDelete);
+            nonIndexableKeys = new HashMap<String, List<String>>(other.nonIndexableKeys);
+            forceUpdate = other.forceUpdate;
+            fullIndex = other.fullIndex;
+        }
+
+        public DatabaseIndexingManager.UpdateData copy() {
+            return new DatabaseIndexingManager.UpdateData(this);
+        }
+
+        public void clear() {
+            dataToUpdate.clear();
+            dataToDelete.clear();
+            nonIndexableKeys.clear();
+            forceUpdate = false;
+            fullIndex = false;
+        }
+    }
+
+    private final AtomicBoolean mIsAvailable = new AtomicBoolean(false);
+    private final DatabaseIndexingManager.UpdateData mDataToProcess =
+            new DatabaseIndexingManager.UpdateData();
+    private Context mContext;
+
+    public DatabaseIndexingManager(Context context, String baseAuthority) {
+        mContext = context;
+        mBaseAuthority = baseAuthority;
+    }
+
+    public void setContext(Context context) {
+        mContext = context;
+    }
+
+    public boolean isAvailable() {
+        return mIsAvailable.get();
+    }
+
+    public void update() {
+        AsyncTask.execute(new Runnable() {
+            @Override
+            public void run() {
+                final Intent intent = new Intent(SearchIndexablesContract.PROVIDER_INTERFACE);
+                List<ResolveInfo> list =
+                        mContext.getPackageManager().queryIntentContentProviders(intent, 0);
+
+                final int size = list.size();
+                for (int n = 0; n < size; n++) {
+                    final ResolveInfo info = list.get(n);
+                    if (!DatabaseIndexingUtils.isWellKnownProvider(info, mContext)) {
+                        continue;
+                    }
+                    final String authority = info.providerInfo.authority;
+                    final String packageName = info.providerInfo.packageName;
+
+                    addIndexablesFromRemoteProvider(packageName, authority);
+                    addNonIndexablesKeysFromRemoteProvider(packageName, authority);
+                }
+
+                mDataToProcess.fullIndex = true;
+                updateInternal();
+            }
+        });
+    }
+
+    private boolean addIndexablesFromRemoteProvider(String packageName, String authority) {
+        try {
+            final int baseRank = Ranking.getBaseRankForAuthority(authority);
+
+            final Context context = mBaseAuthority.equals(authority) ?
+                    mContext : mContext.createPackageContext(packageName, 0);
+
+            final Uri uriForResources = buildUriForXmlResources(authority);
+            addIndexablesForXmlResourceUri(context, packageName, uriForResources,
+                    SearchIndexablesContract.INDEXABLES_XML_RES_COLUMNS, baseRank);
+
+            final Uri uriForRawData = buildUriForRawData(authority);
+            addIndexablesForRawDataUri(context, packageName, uriForRawData,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS, baseRank);
+            return true;
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.w(LOG_TAG, "Could not create context for " + packageName + ": "
+                    + Log.getStackTraceString(e));
+            return false;
+        }
+    }
+
+    private void addNonIndexablesKeysFromRemoteProvider(String packageName,
+            String authority) {
+        final List<String> keys =
+                getNonIndexablesKeysFromRemoteProvider(packageName, authority);
+        addNonIndexableKeys(packageName, keys);
+    }
+
+    private List<String> getNonIndexablesKeysFromRemoteProvider(String packageName,
+            String authority) {
+        try {
+            final Context packageContext = mContext.createPackageContext(packageName, 0);
+
+            final Uri uriForNonIndexableKeys = buildUriForNonIndexableKeys(authority);
+            return getNonIndexablesKeys(packageContext, uriForNonIndexableKeys,
+                    SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS);
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.w(LOG_TAG, "Could not create context for " + packageName + ": "
+                    + Log.getStackTraceString(e));
+            return EMPTY_LIST;
+        }
+    }
+
+    private List<String> getNonIndexablesKeys(Context packageContext, Uri uri,
+            String[] projection) {
+
+        final ContentResolver resolver = packageContext.getContentResolver();
+        final Cursor cursor = resolver.query(uri, projection, null, null, null);
+
+        if (cursor == null) {
+            Log.w(LOG_TAG, "Cannot add index data for Uri: " + uri.toString());
+            return EMPTY_LIST;
+        }
+
+        List<String> result = new ArrayList<String>();
+        try {
+            final int count = cursor.getCount();
+            if (count > 0) {
+                while (cursor.moveToNext()) {
+                    final String key = cursor.getString(COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE);
+                    result.add(key);
+                }
+            }
+            return result;
+        } finally {
+            cursor.close();
+        }
+    }
+
+    public void addIndexableData(SearchIndexableData data) {
+        synchronized (mDataToProcess) {
+            mDataToProcess.dataToUpdate.add(data);
+        }
+    }
+
+    public void deleteIndexableData(SearchIndexableData data) {
+        synchronized (mDataToProcess) {
+            mDataToProcess.dataToDelete.add(data);
+        }
+    }
+
+    public void addNonIndexableKeys(String authority, List<String> keys) {
+        synchronized (mDataToProcess) {
+            mDataToProcess.nonIndexableKeys.put(authority, keys);
+        }
+    }
+
+    private void updateFromRemoteProvider(String packageName, String authority) {
+        if (addIndexablesFromRemoteProvider(packageName, authority)) {
+            updateInternal();
+        }
+    }
+
+    /**
+     * Update the Index for a specific class name resources
+     *
+     * @param className the class name (typically a fragment name).
+     * @param rebuild true means that you want to delete the data from the Index first.
+     * @param includeInSearchResults true means that you want the bit "enabled" set so that the
+     *                               data will be seen included into the search results
+     */
+    public void updateFromClassNameResource(String className, final boolean rebuild,
+            boolean includeInSearchResults) {
+        if (className == null) {
+            throw new IllegalArgumentException("class name cannot be null!");
+        }
+        final SearchIndexableResource res = SearchIndexableResources.getResourceByName(className);
+        if (res == null ) {
+            Log.e(LOG_TAG, "Cannot find SearchIndexableResources for class name: " + className);
+            return;
+        }
+        res.context = mContext;
+        res.enabled = includeInSearchResults;
+        AsyncTask.execute(new Runnable() {
+            @Override
+            public void run() {
+                if (rebuild) {
+                    deleteIndexableData(res);
+                }
+                addIndexableData(res);
+                mDataToProcess.forceUpdate = true;
+                updateInternal();
+                res.enabled = false;
+            }
+        });
+    }
+
+    public void updateFromSearchIndexableData(final SearchIndexableData data) {
+        AsyncTask.execute(new Runnable() {
+            @Override
+            public void run() {
+                addIndexableData(data);
+                mDataToProcess.forceUpdate = true;
+                updateInternal();
+            }
+        });
+    }
+
+    private SQLiteDatabase getReadableDatabase() {
+        return IndexDatabaseHelper.getInstance(mContext).getReadableDatabase();
+    }
+
+    private SQLiteDatabase getWritableDatabase() {
+        try {
+            return IndexDatabaseHelper.getInstance(mContext).getWritableDatabase();
+        } catch (SQLiteException e) {
+            Log.e(LOG_TAG, "Cannot open writable database", e);
+            return null;
+        }
+    }
+
+    private static Uri buildUriForXmlResources(String authority) {
+        return Uri.parse("content://" + authority + "/" +
+                SearchIndexablesContract.INDEXABLES_XML_RES_PATH);
+    }
+
+    private static Uri buildUriForRawData(String authority) {
+        return Uri.parse("content://" + authority + "/" +
+                SearchIndexablesContract.INDEXABLES_RAW_PATH);
+    }
+
+    private static Uri buildUriForNonIndexableKeys(String authority) {
+        return Uri.parse("content://" + authority + "/" +
+                SearchIndexablesContract.NON_INDEXABLES_KEYS_PATH);
+    }
+
+    private void updateInternal() {
+        synchronized (mDataToProcess) {
+            final DatabaseIndexingManager.UpdateIndexTask task =
+                    new DatabaseIndexingManager.UpdateIndexTask();
+            DatabaseIndexingManager.UpdateData copy = mDataToProcess.copy();
+            task.execute(copy);
+            mDataToProcess.clear();
+        }
+    }
+
+    private void addIndexablesForXmlResourceUri(Context packageContext, String packageName,
+            Uri uri, String[] projection, int baseRank) {
+
+        final ContentResolver resolver = packageContext.getContentResolver();
+        final Cursor cursor = resolver.query(uri, projection, null, null, null);
+
+        if (cursor == null) {
+            Log.w(LOG_TAG, "Cannot add index data for Uri: " + uri.toString());
+            return;
+        }
+
+        try {
+            final int count = cursor.getCount();
+            if (count > 0) {
+                while (cursor.moveToNext()) {
+                    final int providerRank = cursor.getInt(COLUMN_INDEX_XML_RES_RANK);
+                    final int rank = (providerRank > 0) ? baseRank + providerRank : baseRank;
+
+                    final int xmlResId = cursor.getInt(COLUMN_INDEX_XML_RES_RESID);
+
+                    final String className = cursor.getString(COLUMN_INDEX_XML_RES_CLASS_NAME);
+                    final int iconResId = cursor.getInt(COLUMN_INDEX_XML_RES_ICON_RESID);
+
+                    final String action = cursor.getString(COLUMN_INDEX_XML_RES_INTENT_ACTION);
+                    final String targetPackage = cursor.getString(
+                            COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE);
+                    final String targetClass = cursor.getString(
+                            COLUMN_INDEX_XML_RES_INTENT_TARGET_CLASS);
+
+                    SearchIndexableResource sir = new SearchIndexableResource(packageContext);
+                    sir.rank = rank;
+                    sir.xmlResId = xmlResId;
+                    sir.className = className;
+                    sir.packageName = packageName;
+                    sir.iconResId = iconResId;
+                    sir.intentAction = action;
+                    sir.intentTargetPackage = targetPackage;
+                    sir.intentTargetClass = targetClass;
+
+                    addIndexableData(sir);
+                }
+            }
+        } finally {
+            cursor.close();
+        }
+    }
+
+    private void addIndexablesForRawDataUri(Context packageContext, String packageName,
+            Uri uri, String[] projection, int baseRank) {
+
+        final ContentResolver resolver = packageContext.getContentResolver();
+        final Cursor cursor = resolver.query(uri, projection, null, null, null);
+
+        if (cursor == null) {
+            Log.w(LOG_TAG, "Cannot add index data for Uri: " + uri.toString());
+            return;
+        }
+
+        try {
+            final int count = cursor.getCount();
+            if (count > 0) {
+                while (cursor.moveToNext()) {
+                    final int providerRank = cursor.getInt(COLUMN_INDEX_RAW_RANK);
+                    final int rank = (providerRank > 0) ? baseRank + providerRank : baseRank;
+
+                    final String title = cursor.getString(COLUMN_INDEX_RAW_TITLE);
+                    final String summaryOn = cursor.getString(COLUMN_INDEX_RAW_SUMMARY_ON);
+                    final String summaryOff = cursor.getString(COLUMN_INDEX_RAW_SUMMARY_OFF);
+                    final String entries = cursor.getString(COLUMN_INDEX_RAW_ENTRIES);
+                    final String keywords = cursor.getString(COLUMN_INDEX_RAW_KEYWORDS);
+
+                    final String screenTitle = cursor.getString(COLUMN_INDEX_RAW_SCREEN_TITLE);
+
+                    final String className = cursor.getString(COLUMN_INDEX_RAW_CLASS_NAME);
+                    final int iconResId = cursor.getInt(COLUMN_INDEX_RAW_ICON_RESID);
+
+                    final String action = cursor.getString(COLUMN_INDEX_RAW_INTENT_ACTION);
+                    final String targetPackage = cursor.getString(
+                            COLUMN_INDEX_RAW_INTENT_TARGET_PACKAGE);
+                    final String targetClass = cursor.getString(
+                            COLUMN_INDEX_RAW_INTENT_TARGET_CLASS);
+
+                    final String key = cursor.getString(COLUMN_INDEX_RAW_KEY);
+                    final int userId = cursor.getInt(COLUMN_INDEX_RAW_USER_ID);
+
+                    SearchIndexableRaw data = new SearchIndexableRaw(packageContext);
+                    data.rank = rank;
+                    data.title = title;
+                    data.summaryOn = summaryOn;
+                    data.summaryOff = summaryOff;
+                    data.entries = entries;
+                    data.keywords = keywords;
+                    data.screenTitle = screenTitle;
+                    data.className = className;
+                    data.packageName = packageName;
+                    data.iconResId = iconResId;
+                    data.intentAction = action;
+                    data.intentTargetPackage = targetPackage;
+                    data.intentTargetClass = targetClass;
+                    data.key = key;
+                    data.userId = userId;
+
+                    addIndexableData(data);
+                }
+            }
+        } finally {
+            cursor.close();
+        }
+    }
+
+    private void indexOneSearchIndexableData(SQLiteDatabase database, String localeStr,
+            SearchIndexableData data, Map<String, List<String>> nonIndexableKeys) {
+        if (data instanceof SearchIndexableResource) {
+            indexOneResource(database, localeStr, (SearchIndexableResource) data, nonIndexableKeys);
+        } else if (data instanceof SearchIndexableRaw) {
+            indexOneRaw(database, localeStr, (SearchIndexableRaw) data);
+        }
+    }
+
+    private void indexOneRaw(SQLiteDatabase database, String localeStr,
+            SearchIndexableRaw raw) {
+        // Should be the same locale as the one we are processing
+        if (!raw.locale.toString().equalsIgnoreCase(localeStr)) {
+            return;
+        }
+
+        updateOneRowWithFilteredData(database, localeStr,
+                raw.title,
+                raw.summaryOn,
+                raw.summaryOff,
+                raw.entries,
+                raw.className,
+                raw.screenTitle,
+                raw.iconResId,
+                raw.rank,
+                raw.keywords,
+                raw.intentAction,
+                raw.intentTargetPackage,
+                raw.intentTargetClass,
+                raw.enabled,
+                raw.key,
+                raw.userId);
+    }
+
+    private void indexOneResource(SQLiteDatabase database, String localeStr,
+            SearchIndexableResource sir, Map<String, List<String>> nonIndexableKeysFromResource) {
+
+        if (sir == null) {
+            Log.e(LOG_TAG, "Cannot index a null resource!");
+            return;
+        }
+
+        final List<String> nonIndexableKeys = new ArrayList<String>();
+
+        if (sir.xmlResId > SearchIndexableResources.NO_DATA_RES_ID) {
+            List<String> resNonIndxableKeys = nonIndexableKeysFromResource.get(sir.packageName);
+            if (resNonIndxableKeys != null && resNonIndxableKeys.size() > 0) {
+                nonIndexableKeys.addAll(resNonIndxableKeys);
+            }
+
+            indexFromResource(sir.context, database, localeStr,
+                    sir.xmlResId, sir.className, sir.iconResId, sir.rank,
+                    sir.intentAction, sir.intentTargetPackage, sir.intentTargetClass,
+                    nonIndexableKeys);
+        } else {
+            if (TextUtils.isEmpty(sir.className)) {
+                Log.w(LOG_TAG, "Cannot index an empty Search Provider name!");
+                return;
+            }
+
+            final Class<?> clazz = DatabaseIndexingUtils.getIndexableClass(sir.className);
+            if (clazz == null) {
+                Log.d(LOG_TAG, "SearchIndexableResource '" + sir.className +
+                        "' should implement the " + Indexable.class.getName() + " interface!");
+                return;
+            }
+
+            // Will be non null only for a Local provider implementing a
+            // SEARCH_INDEX_DATA_PROVIDER field
+            final Indexable.SearchIndexProvider provider =
+                    DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+            if (provider != null) {
+                List<String> providerNonIndexableKeys = provider.getNonIndexableKeys(sir.context);
+                if (providerNonIndexableKeys != null && providerNonIndexableKeys.size() > 0) {
+                    nonIndexableKeys.addAll(providerNonIndexableKeys);
+                }
+
+                indexFromProvider(mContext, database, localeStr, provider, sir.className,
+                        sir.iconResId, sir.rank, sir.enabled, nonIndexableKeys);
+            }
+        }
+    }
+
+    private void indexFromResource(Context context, SQLiteDatabase database, String localeStr,
+            int xmlResId, String fragmentName, int iconResId, int rank,
+            String intentAction, String intentTargetPackage, String intentTargetClass,
+            List<String> nonIndexableKeys) {
+
+        XmlResourceParser parser = null;
+        try {
+            parser = context.getResources().getXml(xmlResId);
+
+            int type;
+            while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
+                    && type != XmlPullParser.START_TAG) {
+                // Parse next until start tag is found
+            }
+
+            String nodeName = parser.getName();
+            if (!NODE_NAME_PREFERENCE_SCREEN.equals(nodeName)) {
+                throw new RuntimeException(
+                        "XML document must start with <PreferenceScreen> tag; found"
+                                + nodeName + " at " + parser.getPositionDescription());
+            }
+
+            final int outerDepth = parser.getDepth();
+            final AttributeSet attrs = Xml.asAttributeSet(parser);
+
+            final String screenTitle = XMLParserUtil.getDataTitle(context, attrs);
+
+            String key = XMLParserUtil.getDataKey(context, attrs);
+
+            String title;
+            String summary;
+            String keywords;
+
+            // Insert rows for the main PreferenceScreen node. Rewrite the data for removing
+            // hyphens.
+            if (!nonIndexableKeys.contains(key)) {
+                title = XMLParserUtil.getDataTitle(context, attrs);
+                summary = XMLParserUtil.getDataSummary(context, attrs);
+                keywords = XMLParserUtil.getDataKeywords(context, attrs);
+
+                updateOneRowWithFilteredData(database, localeStr, title, summary, null, null,
+                        fragmentName, screenTitle, iconResId, rank,
+                        keywords, intentAction, intentTargetPackage, intentTargetClass, true,
+                        key, -1 /* default user id */);
+            }
+
+            while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
+                    && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) {
+                if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
+                    continue;
+                }
+
+                nodeName = parser.getName();
+
+                key = XMLParserUtil.getDataKey(context, attrs);
+                if (nonIndexableKeys.contains(key)) {
+                    continue;
+                }
+
+                title = XMLParserUtil.getDataTitle(context, attrs);
+                keywords = XMLParserUtil.getDataKeywords(context, attrs);
+
+                if (!nodeName.equals(NODE_NAME_CHECK_BOX_PREFERENCE)) {
+                    summary = XMLParserUtil.getDataSummary(context, attrs);
+
+                    String entries = null;
+
+                    if (nodeName.endsWith(NODE_NAME_LIST_PREFERENCE)) {
+                        entries = XMLParserUtil.getDataEntries(context, attrs);
+                    }
+
+                    // Insert rows for the child nodes of PreferenceScreen
+                    updateOneRowWithFilteredData(database, localeStr, title, summary, null, entries,
+                            fragmentName, screenTitle, iconResId, rank,
+                            keywords, intentAction, intentTargetPackage, intentTargetClass,
+                            true, key, -1 /* default user id */);
+                } else {
+                    String summaryOn = XMLParserUtil.getDataSummaryOn(context, attrs);
+                    String summaryOff = XMLParserUtil.getDataSummaryOff(context, attrs);
+
+                    if (TextUtils.isEmpty(summaryOn) && TextUtils.isEmpty(summaryOff)) {
+                        summaryOn = XMLParserUtil.getDataSummary(context, attrs);
+                    }
+
+                    updateOneRowWithFilteredData(database, localeStr, title, summaryOn, summaryOff,
+                            null, fragmentName, screenTitle, iconResId, rank,
+                            keywords, intentAction, intentTargetPackage, intentTargetClass,
+                            true, key, -1 /* default user id */);
+                }
+            }
+
+        } catch (XmlPullParserException e) {
+            throw new RuntimeException("Error parsing PreferenceScreen", e);
+        } catch (IOException e) {
+            throw new RuntimeException("Error parsing PreferenceScreen", e);
+        } finally {
+            if (parser != null) parser.close();
+        }
+    }
+
+    private void indexFromProvider(Context context, SQLiteDatabase database, String localeStr,
+            Indexable.SearchIndexProvider provider, String className, int iconResId, int rank,
+            boolean enabled, List<String> nonIndexableKeys) {
+
+        if (provider == null) {
+            Log.w(LOG_TAG, "Cannot find provider: " + className);
+            return;
+        }
+
+        final List<SearchIndexableRaw> rawList = provider.getRawDataToIndex(context, enabled);
+
+        if (rawList != null) {
+            final int rawSize = rawList.size();
+            for (int i = 0; i < rawSize; i++) {
+                SearchIndexableRaw raw = rawList.get(i);
+
+                // Should be the same locale as the one we are processing
+                if (!raw.locale.toString().equalsIgnoreCase(localeStr)) {
+                    continue;
+                }
+
+                if (nonIndexableKeys.contains(raw.key)) {
+                    continue;
+                }
+
+                updateOneRowWithFilteredData(database, localeStr,
+                        raw.title,
+                        raw.summaryOn,
+                        raw.summaryOff,
+                        raw.entries,
+                        className,
+                        raw.screenTitle,
+                        iconResId,
+                        rank,
+                        raw.keywords,
+                        raw.intentAction,
+                        raw.intentTargetPackage,
+                        raw.intentTargetClass,
+                        raw.enabled,
+                        raw.key,
+                        raw.userId);
+            }
+        }
+
+        final List<SearchIndexableResource> resList =
+                provider.getXmlResourcesToIndex(context, enabled);
+        if (resList != null) {
+            final int resSize = resList.size();
+            for (int i = 0; i < resSize; i++) {
+                SearchIndexableResource item = resList.get(i);
+
+                // Should be the same locale as the one we are processing
+                if (!item.locale.toString().equalsIgnoreCase(localeStr)) {
+                    continue;
+                }
+
+                final int itemIconResId = (item.iconResId == 0) ? iconResId : item.iconResId;
+                final int itemRank = (item.rank == 0) ? rank : item.rank;
+                String itemClassName = (TextUtils.isEmpty(item.className))
+                        ? className : item.className;
+
+                indexFromResource(context, database, localeStr,
+                        item.xmlResId, itemClassName, itemIconResId, itemRank,
+                        item.intentAction, item.intentTargetPackage,
+                        item.intentTargetClass, nonIndexableKeys);
+            }
+        }
+    }
+
+    private void updateOneRowWithFilteredData(SQLiteDatabase database, String locale,
+            String title, String summaryOn, String summaryOff, String entries,
+            String className,
+            String screenTitle, int iconResId, int rank, String keywords,
+            String intentAction, String intentTargetPackage, String intentTargetClass,
+            boolean enabled, String key, int userId) {
+
+        final String updatedTitle = XMLParserUtil.normalizeHyphen(title);
+        final String updatedSummaryOn = XMLParserUtil.normalizeHyphen(summaryOn);
+        final String updatedSummaryOff = XMLParserUtil.normalizeHyphen(summaryOff);
+
+        final String normalizedTitle = XMLParserUtil.normalizeString(updatedTitle);
+        final String normalizedSummaryOn = XMLParserUtil.normalizeString(updatedSummaryOn);
+        final String normalizedSummaryOff = XMLParserUtil.normalizeString(updatedSummaryOff);
+
+        final String spaceDelimitedKeywords = XMLParserUtil.normalizeKeywords(keywords);
+
+        updateOneRow(database, locale,
+                updatedTitle, normalizedTitle, updatedSummaryOn, normalizedSummaryOn,
+                updatedSummaryOff, normalizedSummaryOff, entries, className, screenTitle, iconResId,
+                rank, spaceDelimitedKeywords, intentAction, intentTargetPackage, intentTargetClass,
+                enabled, key, userId);
+    }
+
+    private void updateOneRow(SQLiteDatabase database, String locale, String updatedTitle,
+            String normalizedTitle, String updatedSummaryOn, String normalizedSummaryOn,
+            String updatedSummaryOff, String normalizedSummaryOff, String entries, String className,
+            String screenTitle, int iconResId, int rank, String spaceDelimitedKeywords,
+            String intentAction, String intentTargetPackage, String intentTargetClass,
+            boolean enabled, String key, int userId) {
+
+        if (TextUtils.isEmpty(updatedTitle)) {
+            return;
+        }
+
+        // The DocID should contains more than the title string itself (you may have two settings
+        // with the same title). So we need to use a combination of the title and the screenTitle.
+        StringBuilder sb = new StringBuilder(updatedTitle);
+        sb.append(screenTitle);
+        int docId = sb.toString().hashCode();
+
+        ContentValues values = new ContentValues();
+        values.put(IndexDatabaseHelper.IndexColumns.DOCID, docId);
+        values.put(IndexDatabaseHelper.IndexColumns.LOCALE, locale);
+        values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, rank);
+        values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, updatedTitle);
+        values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, normalizedTitle);
+        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, updatedSummaryOn);
+        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED,
+                normalizedSummaryOn);
+        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, updatedSummaryOff);
+        values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED,
+                normalizedSummaryOff);
+        values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, entries);
+        values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, spaceDelimitedKeywords);
+        values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, className);
+        values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, screenTitle);
+        values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, intentAction);
+        values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, intentTargetPackage);
+        values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, intentTargetClass);
+        values.put(IndexDatabaseHelper.IndexColumns.ICON, iconResId);
+        values.put(IndexDatabaseHelper.IndexColumns.ENABLED, enabled);
+        values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, key);
+        values.put(IndexDatabaseHelper.IndexColumns.USER_ID, userId);
+
+        database.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values);
+    }
+
+    /**
+     * A private class for updating the Index database
+     */
+    private class UpdateIndexTask extends AsyncTask<DatabaseIndexingManager.UpdateData, Integer,
+            Void> {
+
+        @Override
+        protected void onPreExecute() {
+            super.onPreExecute();
+            mIsAvailable.set(false);
+        }
+
+        @Override
+        protected void onPostExecute(Void aVoid) {
+            super.onPostExecute(aVoid);
+            mIsAvailable.set(true);
+        }
+
+        @Override
+        protected Void doInBackground(DatabaseIndexingManager.UpdateData... params) {
+            try {
+                final List<SearchIndexableData> dataToUpdate = params[0].dataToUpdate;
+                final List<SearchIndexableData> dataToDelete = params[0].dataToDelete;
+                final Map<String, List<String>> nonIndexableKeys = params[0].nonIndexableKeys;
+
+                final boolean forceUpdate = params[0].forceUpdate;
+                final boolean fullIndex = params[0].fullIndex;
+
+                final SQLiteDatabase database = getWritableDatabase();
+                if (database == null) {
+                    Log.e(LOG_TAG, "Cannot update Index as I cannot get a writable database");
+                    return null;
+                }
+                final String localeStr = Locale.getDefault().toString();
+
+                try {
+                    database.beginTransaction();
+                    if (dataToDelete.size() > 0) {
+                        processDataToDelete(database, localeStr, dataToDelete);
+                    }
+                    if (dataToUpdate.size() > 0) {
+                        processDataToUpdate(database, localeStr, dataToUpdate, nonIndexableKeys,
+                                forceUpdate);
+                    }
+                    database.setTransactionSuccessful();
+                } finally {
+                    database.endTransaction();
+                }
+                if (fullIndex) {
+                    IndexDatabaseHelper.setLocaleIndexed(mContext, localeStr);
+                }
+            } catch (SQLiteFullException e) {
+                Log.e(LOG_TAG, "Unable to index search, out of space", e);
+            }
+
+            return null;
+        }
+
+        private boolean processDataToUpdate(SQLiteDatabase database, String localeStr,
+                List<SearchIndexableData> dataToUpdate, Map<String, List<String>> nonIndexableKeys,
+                boolean forceUpdate) {
+
+            if (!forceUpdate && IndexDatabaseHelper.isLocaleAlreadyIndexed(mContext, localeStr)) {
+                Log.d(LOG_TAG, "Locale '" + localeStr + "' is already indexed");
+                return true;
+            }
+
+            boolean result = false;
+            final long current = System.currentTimeMillis();
+
+            final int count = dataToUpdate.size();
+            for (int n = 0; n < count; n++) {
+                final SearchIndexableData data = dataToUpdate.get(n);
+                try {
+                    indexOneSearchIndexableData(database, localeStr, data, nonIndexableKeys);
+                } catch (Exception e) {
+                    Log.e(LOG_TAG, "Cannot index: " + (data != null ? data.className : data)
+                            + " for locale: " + localeStr, e);
+                }
+            }
+
+            final long now = System.currentTimeMillis();
+            Log.d(LOG_TAG, "Indexing locale '" + localeStr + "' took " +
+                    (now - current) + " millis");
+            return result;
+        }
+
+        private boolean processDataToDelete(SQLiteDatabase database, String localeStr,
+                List<SearchIndexableData> dataToDelete) {
+
+            boolean result = false;
+            final long current = System.currentTimeMillis();
+
+            final int count = dataToDelete.size();
+            for (int n = 0; n < count; n++) {
+                final SearchIndexableData data = dataToDelete.get(n);
+                if (data == null) {
+                    continue;
+                }
+                if (!TextUtils.isEmpty(data.className)) {
+                    delete(database, IndexDatabaseHelper.IndexColumns.CLASS_NAME, data.className);
+                } else  {
+                    if (data instanceof SearchIndexableRaw) {
+                        final SearchIndexableRaw raw = (SearchIndexableRaw) data;
+                        if (!TextUtils.isEmpty(raw.title)) {
+                            delete(database, IndexDatabaseHelper.IndexColumns.DATA_TITLE,
+                                    raw.title);
+                        }
+                    }
+                }
+            }
+
+            final long now = System.currentTimeMillis();
+            Log.d(LOG_TAG, "Deleting data for locale '" + localeStr + "' took " +
+                    (now - current) + " millis");
+            return result;
+        }
+
+        private int delete(SQLiteDatabase database, String columName, String value) {
+            final String whereClause = columName + "=?";
+            final String[] whereArgs = new String[] { value };
+
+            return database.delete(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, whereClause,
+                    whereArgs);
+        }
+    }
+}
diff --git a/src/com/android/settings/search2/DatabaseIndexingUtils.java b/src/com/android/settings/search2/DatabaseIndexingUtils.java
new file mode 100644
index 0000000..a8f64df
--- /dev/null
+++ b/src/com/android/settings/search2/DatabaseIndexingUtils.java
@@ -0,0 +1,118 @@
+/*
+ * 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.search2;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.settings.search.Indexable;
+
+import java.lang.reflect.Field;
+
+/**
+ * Utility class for {@like DatabaseIndexingManager} to handle the mapping between Payloads
+ * and Preference controllers, and managing indexable classes.
+ */
+public class DatabaseIndexingUtils {
+
+    private static final String LOG_TAG = "IndexingUtil";
+
+    private static final String FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER =
+            "SEARCH_INDEX_DATA_PROVIDER";
+
+    public static Class<?> getIndexableClass(String className) {
+        final Class<?> clazz;
+        try {
+            clazz = Class.forName(className);
+        } catch (ClassNotFoundException e) {
+            Log.d(LOG_TAG, "Cannot find class: " + className);
+            return null;
+        }
+        return isIndexableClass(clazz) ? clazz : null;
+    }
+
+    public static boolean isIndexableClass(final Class<?> clazz) {
+        return (clazz != null) && Indexable.class.isAssignableFrom(clazz);
+    }
+
+    public static Indexable.SearchIndexProvider getSearchIndexProvider(final Class<?> clazz) {
+        try {
+            final Field f = clazz.getField(FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER);
+            return (Indexable.SearchIndexProvider) f.get(null);
+        } catch (NoSuchFieldException e) {
+            Log.d(LOG_TAG, "Cannot find field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+        } catch (SecurityException se) {
+            Log.d(LOG_TAG,
+                    "Security exception for field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+        } catch (IllegalAccessException e) {
+            Log.d(LOG_TAG,
+                    "Illegal access to field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+        } catch (IllegalArgumentException e) {
+            Log.d(LOG_TAG,
+                    "Illegal argument when accessing field '" +
+                            FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+        }
+        return null;
+    }
+
+    /**
+     * Only allow a "well known" SearchIndexablesProvider. The provider should:
+     *
+     * - have read/write {@link Manifest.permission#READ_SEARCH_INDEXABLES}
+     * - be from a privileged package
+     */
+    public static boolean isWellKnownProvider(ResolveInfo info, Context context) {
+        final String authority = info.providerInfo.authority;
+        final String packageName = info.providerInfo.applicationInfo.packageName;
+
+        if (TextUtils.isEmpty(authority) || TextUtils.isEmpty(packageName)) {
+            return false;
+        }
+
+        final String readPermission = info.providerInfo.readPermission;
+        final String writePermission = info.providerInfo.writePermission;
+
+        if (TextUtils.isEmpty(readPermission) || TextUtils.isEmpty(writePermission)) {
+            return false;
+        }
+
+        if (!android.Manifest.permission.READ_SEARCH_INDEXABLES.equals(readPermission) ||
+                !android.Manifest.permission.READ_SEARCH_INDEXABLES.equals(writePermission)) {
+            return false;
+        }
+
+        return isPrivilegedPackage(packageName, context);
+    }
+
+    public static boolean isPrivilegedPackage(String packageName, Context context) {
+        final PackageManager pm = context.getPackageManager();
+        try {
+            PackageInfo packInfo = pm.getPackageInfo(packageName, 0);
+            return ((packInfo.applicationInfo.privateFlags
+                    & ApplicationInfo.PRIVATE_FLAG_PRIVILEGED) != 0);
+        } catch (PackageManager.NameNotFoundException e) {
+            return false;
+        }
+    }
+}
diff --git a/src/com/android/settings/search2/DatabaseResultLoader.java b/src/com/android/settings/search2/DatabaseResultLoader.java
index aca94b1..b268f6a 100644
--- a/src/com/android/settings/search2/DatabaseResultLoader.java
+++ b/src/com/android/settings/search2/DatabaseResultLoader.java
@@ -16,31 +16,37 @@
 
 package com.android.settings.search2;
 
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 import android.graphics.drawable.Drawable;
+import android.os.Bundle;
 import android.support.annotation.VisibleForTesting;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.settings.SettingsActivity;
+import com.android.settings.Utils;
 import com.android.settings.search.Index;
 import com.android.settings.search.IndexDatabaseHelper;
 import com.android.settings.utils.AsyncLoader;
-import com.android.settings.R;
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
-
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_ICON_RESID;
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_SUMMARY_ON;
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RANK;
+import java.util.Map;
 
 
 /**
  * AsyncTask to retrieve Settings, First party app and any intent based results.
  */
 public class DatabaseResultLoader extends AsyncLoader<List<SearchResult>> {
+    private static final String LOG = "DatabaseResultLoader";
     private final String mQueryText;
     private final Context mContext;
     protected final SQLiteDatabase mDatabase;
@@ -64,7 +70,7 @@
         }
 
         String query = getSQLQuery();
-        Cursor result  = mDatabase.rawQuery(query, null);
+        Cursor result = mDatabase.rawQuery(query, null);
 
         return parseCursorForSearch(result);
     }
@@ -77,10 +83,12 @@
 
     protected String getSQLQuery() {
         return String.format("SELECT data_rank, data_title, data_summary_on, " +
-                "data_summary_off, data_entries, data_keywords, class_name, screen_title, icon, " +
-                "intent_action, intent_target_package, intent_target_class, enabled, " +
-                "data_key_reference FROM prefs_index WHERE prefs_index MATCH 'data_title:%s* " +
-                "OR data_title_normalized:%s* OR data_keywords:%s*' AND locale = 'en_US'",
+                        "data_summary_off, data_entries, data_keywords, class_name, screen_title,"
+                        + " icon, " +
+                        "intent_action, intent_target_package, intent_target_class, enabled, " +
+                        "data_key_reference FROM prefs_index WHERE prefs_index MATCH "
+                        + "'data_title:%s* " +
+                        "OR data_title_normalized:%s* OR data_keywords:%s*' AND locale = 'en_US'",
                 mQueryText, mQueryText, mQueryText);
     }
 
@@ -89,36 +97,89 @@
         if (cursorResults == null) {
             return null;
         }
+        final Map<String, Context> contextMap = new HashMap<>();
         final ArrayList<SearchResult> results = new ArrayList<>();
 
         while (cursorResults.moveToNext()) {
-            final String title = cursorResults.getString(Index.COLUMN_INDEX_TITLE);
-            final String summaryOn = cursorResults.getString(COLUMN_INDEX_RAW_SUMMARY_ON);
-            final ArrayList<String> breadcrumbs = new ArrayList<>();
-            final int rank = cursorResults.getInt(COLUMN_INDEX_XML_RES_RANK);
-
-            final String intentString = cursorResults.getString(Index.COLUMN_INDEX_INTENT_ACTION);
-            final IntentPayload intentPayload = new IntentPayload(new Intent(intentString));
-            final int iconID = cursorResults.getInt(COLUMN_INDEX_RAW_ICON_RESID);
-            Drawable icon;
-            try {
-                icon = mContext.getDrawable(iconID);
-            } catch (Resources.NotFoundException nfe) {
-                icon = mContext.getDrawable(R.drawable.ic_search_history);
+            SearchResult result = buildSingleSearchResultFromCursor(contextMap, cursorResults);
+            if (result != null) {
+                results.add(result);
             }
-
-
-            SearchResult.Builder builder = new SearchResult.Builder();
-            builder.addTitle(title)
-                    .addSummary(summaryOn)
-                    .addBreadcrumbs(breadcrumbs)
-                    .addRank(rank)
-                    .addIcon(icon)
-                    .addPayload(intentPayload);
-            results.add(builder.build());
         }
         Collections.sort(results);
         return results;
     }
 
+    private SearchResult buildSingleSearchResultFromCursor(Map<String, Context> contextMap,
+            Cursor cursor) {
+        final String pkgName = cursor.getString(Index.COLUMN_INDEX_INTENT_ACTION_TARGET_PACKAGE);
+        final String action = cursor.getString(Index.COLUMN_INDEX_INTENT_ACTION);
+        final String title = cursor.getString(Index.COLUMN_INDEX_TITLE);
+        final String summaryOn = cursor.getString(Index.COLUMN_INDEX_SUMMARY_ON);
+        final String className = cursor.getString(Index.COLUMN_INDEX_CLASS_NAME);
+        final int rank = cursor.getInt(Index.COLUMN_INDEX_RANK);
+        final String key = cursor.getString(Index.COLUMN_INDEX_KEY);
+        final String iconResStr = cursor.getString(Index.COLUMN_INDEX_ICON);
+
+        final ResultPayload payload;
+        if (TextUtils.isEmpty(action)) {
+            final String screenTitle = cursor.getString(Index.COLUMN_INDEX_SCREEN_TITLE);
+            // Action is null, we will launch it as a sub-setting
+            final Bundle args = new Bundle();
+            args.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key);
+            final Intent intent = Utils.onBuildStartFragmentIntent(mContext,
+                    className, args, null, 0, screenTitle, false);
+            payload = new IntentPayload(intent);
+        } else {
+            final Intent intent = new Intent(action);
+            final String targetClass = cursor.getString(
+                    Index.COLUMN_INDEX_INTENT_ACTION_TARGET_CLASS);
+            if (!TextUtils.isEmpty(pkgName) && !TextUtils.isEmpty(targetClass)) {
+                final ComponentName component = new ComponentName(pkgName, targetClass);
+                intent.setComponent(component);
+            }
+            intent.putExtra(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key);
+            payload = new IntentPayload(intent);
+        }
+        SearchResult.Builder builder = new SearchResult.Builder();
+        builder.addTitle(title)
+                .addSummary(summaryOn)
+                .addRank(rank)
+                .addIcon(getIconForPackage(contextMap, pkgName, className, iconResStr))
+                .addPayload(payload);
+        return builder.build();
+    }
+
+    private Drawable getIconForPackage(Map<String, Context> contextMap, String pkgName,
+            String className, String iconResStr) {
+        final int iconId = TextUtils.isEmpty(iconResStr)
+                ? 0 : Integer.parseInt(iconResStr);
+        Drawable icon;
+        Context packageContext;
+        if (iconId == 0) {
+            icon = null;
+        } else {
+            if (TextUtils.isEmpty(className) && !TextUtils.isEmpty(pkgName)) {
+                packageContext = contextMap.get(pkgName);
+                if (packageContext == null) {
+                    try {
+                        packageContext = mContext.createPackageContext(pkgName, 0);
+                    } catch (PackageManager.NameNotFoundException e) {
+                        Log.e(LOG, "Cannot create Context for package: " + pkgName);
+                        return null;
+                    }
+                    contextMap.put(pkgName, packageContext);
+                }
+            } else {
+                packageContext = mContext;
+            }
+            try {
+                icon = packageContext.getDrawable(iconId);
+            } catch (Resources.NotFoundException nfe) {
+                icon = null;
+            }
+        }
+        return icon;
+    }
+
 }
diff --git a/src/com/android/settings/search2/InstalledAppResultLoader.java b/src/com/android/settings/search2/InstalledAppResultLoader.java
new file mode 100644
index 0000000..449e52c
--- /dev/null
+++ b/src/com/android/settings/search2/InstalledAppResultLoader.java
@@ -0,0 +1,139 @@
+/*
+ * 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.search2;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.UserInfo;
+import android.net.Uri;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.provider.Settings;
+import android.text.TextUtils;
+
+import com.android.settings.applications.PackageManagerWrapper;
+import com.android.settings.utils.AsyncLoader;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Search loader for installed apps.
+ */
+public class InstalledAppResultLoader extends AsyncLoader<List<SearchResult>> {
+
+    private static final int NAME_NO_MATCH = -1;
+    private static final int NAME_EXACT_MATCH = 0;
+
+    private final String mQuery;
+    private final UserManager mUserManager;
+    private final PackageManagerWrapper mPackageManager;
+
+    public InstalledAppResultLoader(Context context, PackageManagerWrapper pmWrapper,
+            String query) {
+        super(context);
+        mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+        mPackageManager = pmWrapper;
+        mQuery = query;
+    }
+
+    @Override
+    public List<SearchResult> loadInBackground() {
+        final List<SearchResult> results = new ArrayList<>();
+        final PackageManager pm = mPackageManager.getPackageManager();
+
+        for (UserInfo user : getUsersToCount()) {
+            final List<ApplicationInfo> apps =
+                    mPackageManager.getInstalledApplicationsAsUser(
+                            PackageManager.MATCH_DISABLED_COMPONENTS
+                                    | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
+                                    | (user.isAdmin() ? PackageManager.MATCH_ANY_USER : 0),
+                            user.id);
+            for (ApplicationInfo info : apps) {
+                if (info.isSystemApp()) {
+                    continue;
+                }
+                final CharSequence label = info.loadLabel(pm);
+                final int wordDiff = getWordDifference(label.toString(), mQuery);
+                if (wordDiff == NAME_NO_MATCH) {
+                    continue;
+                }
+                final Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
+                        .setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
+                        .setData(Uri.fromParts("package", info.packageName, null));
+
+                final SearchResult.Builder builder = new SearchResult.Builder();
+                builder.addIcon(info.loadIcon(pm))
+                        .addTitle(info.loadLabel(pm))
+                        .addRank(wordDiff)
+                        .addPayload(new IntentPayload(intent));
+                results.add(builder.build());
+            }
+        }
+        Collections.sort(results);
+        return results;
+    }
+
+    @Override
+    protected void onDiscardResult(List<SearchResult> result) {
+
+    }
+
+    private List<UserInfo> getUsersToCount() {
+        return mUserManager.getProfiles(UserHandle.myUserId());
+    }
+
+    /**
+     * Returns "difference" between appName and query string. appName must contain all
+     * characters from query, in the same order. If not, returns NAME_NO_MATCH. If they do match,
+     * returns an int value representing how different they are, NAME_EXACT_MATCH means they match
+     * perfectly, and larger values means they are less similar.
+     * <p/>
+     * Example:
+     * appName: Abcde, query: Abcde, Returns NAME_EXACT_MATCH
+     * appName: Abcde, query: ade, Returns 2
+     * appName: Abcde, query: ae, Returns 3
+     * appName: Abcde, query: ea, Returns NAME_NO_MATCH
+     * appName: Abcde, query: xyz, Returns NAME_NO_MATCH
+     */
+    private int getWordDifference(String appName, String query) {
+        if (TextUtils.isEmpty(appName) || TextUtils.isEmpty(query)) {
+            return NAME_NO_MATCH;
+        }
+        final char[] queryTokens = query.toString().toLowerCase().toCharArray();
+        final char[] valueText = appName.toLowerCase().toCharArray();
+        if (queryTokens.length > valueText.length) {
+            return NAME_NO_MATCH;
+        }
+        int i = 0;
+        int j = 0;
+        while (i < valueText.length && j < queryTokens.length) {
+            if (valueText[i++] == queryTokens[j]) {
+                j++;
+            }
+        }
+        if (j != queryTokens.length) {
+            return NAME_NO_MATCH;
+        }
+        // Use the diff in length as a proxy of how close the 2 words match. Value range from 0
+        // to infinity.
+        return valueText.length - queryTokens.length;
+    }
+}
diff --git a/src/com/android/settings/search2/IntentSearchViewHolder.java b/src/com/android/settings/search2/IntentSearchViewHolder.java
index 0b99d6e..0ef27d0 100644
--- a/src/com/android/settings/search2/IntentSearchViewHolder.java
+++ b/src/com/android/settings/search2/IntentSearchViewHolder.java
@@ -15,9 +15,11 @@
  */
 package com.android.settings.search2;
 
+import android.app.Fragment;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
+
 import com.android.settings.R;
 
 /**
@@ -25,6 +27,7 @@
  * The DatabaseResultLoader is the primary use case for this ViewHolder.
  */
 public class IntentSearchViewHolder extends SearchViewHolder {
+
     public final TextView titleView;
     public final TextView summaryView;
     public final ImageView iconView;
@@ -33,12 +36,22 @@
         super(view);
         titleView = (TextView) view.findViewById(R.id.title);
         summaryView = (TextView) view.findViewById(R.id.summary);
-        iconView= (ImageView) view.findViewById(R.id.icon);
+        iconView = (ImageView) view.findViewById(R.id.icon);
     }
 
-    public void onBind(SearchResult result) {
+    @Override
+    public void onBind(Fragment fragment, SearchResult result) {
         titleView.setText(result.title);
         summaryView.setText(result.summary);
         iconView.setImageDrawable(result.icon);
+        if (result.icon == null) {
+            iconView.setBackgroundResource(R.drawable.empty_icon);
+        }
+        itemView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                fragment.startActivity(((IntentPayload) result.payload).intent);
+            }
+        });
     }
 }
diff --git a/src/com/android/settings/search2/ResultPayload.java b/src/com/android/settings/search2/ResultPayload.java
index 3a4e477..84df7b6 100644
--- a/src/com/android/settings/search2/ResultPayload.java
+++ b/src/com/android/settings/search2/ResultPayload.java
@@ -31,8 +31,19 @@
     @IntDef({PayloadType.INLINE_SLIDER, PayloadType.INLINE_SWITCH, PayloadType.INTENT})
     @Retention(RetentionPolicy.SOURCE)
     public @interface PayloadType {
+        /**
+         * Resulting page will be started using an intent
+         */
         int INTENT = 0;
+
+        /**
+         * Result is a inline widget, using a slider widget as UI.
+         */
         int INLINE_SLIDER = 1;
+
+        /**
+         * Result is a inline widget, using a toggle widget as UI.
+         */
         int INLINE_SWITCH = 2;
     }
 
diff --git a/src/com/android/settings/search2/SearchFeatureProvider.java b/src/com/android/settings/search2/SearchFeatureProvider.java
index 14f5d13..ad26eae 100644
--- a/src/com/android/settings/search2/SearchFeatureProvider.java
+++ b/src/com/android/settings/search2/SearchFeatureProvider.java
@@ -16,7 +16,7 @@
 package com.android.settings.search2;
 
 import android.app.Activity;
-import android.widget.SearchView;
+import android.content.Context;
 import android.view.Menu;
 
 /**
@@ -31,8 +31,29 @@
 
     /**
      * Inserts the Menu items into Settings activity.
+     *
      * @param menu Items will be inserted into this menu.
      * @param activity The activity that precedes SearchActivity.
      */
     void setUpSearchMenu(Menu menu, Activity activity);
+
+    /**
+     * Returns a new loader to search in index database.
+     */
+    DatabaseResultLoader getDatabaseSearchLoader(Context context, String query);
+
+    /**
+     * Returns a new loader to search installed apps.
+     */
+    InstalledAppResultLoader getInstalledAppSearchLoader(Context context, String query);
+
+    /**
+     * Returns the manager for indexing Settings data.
+     */
+    DatabaseIndexingManager getIndexingManager(Context context);
+
+    /**
+     * Updates the Settings indexes
+     */
+    void updateIndex(Context context);
 }
diff --git a/src/com/android/settings/search2/SearchFeatureProviderImpl.java b/src/com/android/settings/search2/SearchFeatureProviderImpl.java
index 3c6dc35..e2d25ad 100644
--- a/src/com/android/settings/search2/SearchFeatureProviderImpl.java
+++ b/src/com/android/settings/search2/SearchFeatureProviderImpl.java
@@ -19,11 +19,13 @@
 import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
-import android.widget.SearchView;
 import android.view.Menu;
-
 import android.view.MenuItem;
+
 import com.android.settings.R;
+import com.android.settings.search.Index;
+
+import com.android.settings.applications.PackageManagerWrapperImpl;
 
 /**
  * FeatureProvider for the refactored search code.
@@ -31,6 +33,7 @@
 public class SearchFeatureProviderImpl implements SearchFeatureProvider {
     protected Context mContext;
 
+    private DatabaseIndexingManager mDatabaseIndexingManager;
 
     public SearchFeatureProviderImpl(Context context) {
         mContext = context;
@@ -48,16 +51,45 @@
         }
         String menuTitle = mContext.getString(R.string.search_menu);
         MenuItem menuItem = menu.add(Menu.NONE, Menu.NONE, Menu.NONE, menuTitle)
-            .setIcon(R.drawable.abc_ic_search_api_material)
-            .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
-                @Override
-                public boolean onMenuItemClick(MenuItem item) {
-                    Intent intent = new Intent(activity, SearchActivity.class);
-                    activity.startActivity(intent);
-                    return true;
-                }
-            });
+                .setIcon(R.drawable.abc_ic_search_api_material)
+                .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
+                    @Override
+                    public boolean onMenuItemClick(MenuItem item) {
+                        Intent intent = new Intent(activity, SearchActivity.class);
+                        activity.startActivity(intent);
+                        return true;
+                    }
+                });
 
         menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
     }
+
+    @Override
+    public DatabaseResultLoader getDatabaseSearchLoader(Context context, String query) {
+        return new DatabaseResultLoader(context, query);
+    }
+
+    @Override
+    public InstalledAppResultLoader getInstalledAppSearchLoader(Context context, String query) {
+        return new InstalledAppResultLoader(
+                context, new PackageManagerWrapperImpl(context.getPackageManager()), query);
+    }
+
+    @Override
+    public DatabaseIndexingManager getIndexingManager(Context context) {
+        if (mDatabaseIndexingManager == null) {
+            mDatabaseIndexingManager = new DatabaseIndexingManager(context.getApplicationContext(),
+                    context.getPackageName());
+        }
+        return mDatabaseIndexingManager;
+    }
+
+    @Override
+    public void updateIndex(Context context) {
+        if (isEnabled()) {
+            getIndexingManager(context).update();
+        } else {
+            Index.getInstance(context).update();
+        }
+    }
 }
diff --git a/src/com/android/settings/search2/SearchFragment.java b/src/com/android/settings/search2/SearchFragment.java
index 18f20be..fca52e9 100644
--- a/src/com/android/settings/search2/SearchFragment.java
+++ b/src/com/android/settings/search2/SearchFragment.java
@@ -16,107 +16,112 @@
 
 package com.android.settings.search2;
 
+import android.app.ActionBar;
 import android.app.Activity;
+import android.app.LoaderManager;
+import android.content.Context;
 import android.content.Loader;
 import android.os.Bundle;
-import android.app.LoaderManager;
+import android.support.annotation.VisibleForTesting;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
-import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
-import android.view.Menu;
-import android.view.MenuInflater;
+import android.widget.LinearLayout.LayoutParams;
 import android.widget.SearchView;
 
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.overlay.FeatureFactory;
 
 import java.util.List;
 
 public class SearchFragment extends InstrumentedFragment implements
-        SearchView.OnQueryTextListener, MenuItem.OnActionExpandListener,
-        LoaderManager.LoaderCallbacks<List<SearchResult>>  {
+        SearchView.OnQueryTextListener, LoaderManager.LoaderCallbacks<List<SearchResult>> {
 
-    private static final int DATABASE_LOADER_ID = 0;
+    // State values
+    static final String STATE_QUERY = "query";
+
+    // Loader IDs
+    private static final int LOADER_ID_DATABASE = 0;
+    private static final int LOADER_ID_INSTALLED_APPS = 1;
+
+    @VisibleForTesting
+    String mQuery;
+
+    private SearchFeatureProvider mSearchFeatureProvider;
 
     private SearchResultsAdapter mSearchAdapter;
-
-    private DatabaseResultLoader mSearchLoader;
-
     private RecyclerView mResultsRecyclerView;
-    private SearchView mSearchView;
-    private MenuItem mSearchMenuItem;
 
-    private String mQuery;
+    @Override
+    public int getMetricsCategory() {
+        return MetricsProto.MetricsEvent.DASHBOARD_SEARCH_RESULTS;
+    }
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        mSearchFeatureProvider = FeatureFactory.getFactory(context)
+                .getSearchFeatureProvider(context);
+    }
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setHasOptionsMenu(true);
-
-        mSearchAdapter = new SearchResultsAdapter();
-
-        final LoaderManager loaderManager = getLoaderManager();
-        loaderManager.initLoader(DATABASE_LOADER_ID, null, this);
+        mSearchAdapter = new SearchResultsAdapter(this);
+        if (savedInstanceState != null) {
+            mQuery = savedInstanceState.getString(STATE_QUERY);
+            final LoaderManager loaderManager = getLoaderManager();
+            loaderManager.initLoader(LOADER_ID_DATABASE, null, this);
+            loaderManager.initLoader(LOADER_ID_INSTALLED_APPS, null, this);
+        }
+        final ActionBar actionBar = getActivity().getActionBar();
+        actionBar.setCustomView(makeSearchView(actionBar, mQuery));
+        actionBar.setDisplayShowCustomEnabled(true);
+        actionBar.setDisplayShowTitleEnabled(false);
     }
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                             Bundle savedInstanceState) {
+            Bundle savedInstanceState) {
         final View view = inflater.inflate(R.layout.search_panel_2, container, false);
         mResultsRecyclerView = (RecyclerView) view.findViewById(R.id.list_results);
-
         mResultsRecyclerView.setAdapter(mSearchAdapter);
         mResultsRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
         return view;
     }
 
     @Override
-    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        super.onCreateOptionsMenu(menu, inflater);
-        inflater.inflate(R.menu.search_options_menu, menu);
-
-
-        mSearchMenuItem = menu.findItem(R.id.search);
-
-        mSearchView = (SearchView) mSearchMenuItem.getActionView();
-        mSearchView.setOnQueryTextListener(this);
-        mSearchView.setMaxWidth(Integer.MAX_VALUE);
-        mSearchMenuItem.expandActionView();
-    }
-
-    @Override
-    public boolean onMenuItemActionExpand(MenuItem item) {
-        return true;
-    }
-
-    @Override
-    public boolean onMenuItemActionCollapse(MenuItem item) {
-        // Return false to prevent the search box from collapsing.
-        return false;
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putString(STATE_QUERY, mQuery);
     }
 
     @Override
     public boolean onQueryTextChange(String query) {
-        if (query == null || query.equals(mQuery)) {
-            return false;
+        if (TextUtils.equals(query, mQuery)) {
+            return true;
         }
-
         mQuery = query;
-        clearLoaders();
+        mSearchAdapter.clearResults();
 
-        final LoaderManager loaderManager = getLoaderManager();
-        loaderManager.restartLoader(DATABASE_LOADER_ID, null, this);
+        if (TextUtils.isEmpty(mQuery)) {
+            getLoaderManager().destroyLoader(LOADER_ID_DATABASE);
+        } else {
+            restartLoaders();
+        }
 
         return true;
     }
 
     @Override
     public boolean onQueryTextSubmit(String query) {
-        return false;
+        return true;
     }
 
     @Override
@@ -124,9 +129,10 @@
         final Activity activity = getActivity();
 
         switch (id) {
-            case DATABASE_LOADER_ID:
-                mSearchLoader = new DatabaseResultLoader(activity, mQuery);
-                return mSearchLoader;
+            case LOADER_ID_DATABASE:
+                return mSearchFeatureProvider.getDatabaseSearchLoader(activity, mQuery);
+            case LOADER_ID_INSTALLED_APPS:
+                return mSearchFeatureProvider.getInstalledAppSearchLoader(activity, mQuery);
             default:
                 return null;
         }
@@ -134,25 +140,27 @@
 
     @Override
     public void onLoadFinished(Loader<List<SearchResult>> loader, List<SearchResult> data) {
-        if (data == null) {
-            return;
-        }
-
         mSearchAdapter.mergeResults(data, loader.getClass().getName());
     }
 
     @Override
-    public void onLoaderReset(Loader<List<SearchResult>> loader) { }
-
-    @Override
-    public int getMetricsCategory() {
-        return MetricsProto.MetricsEvent.DASHBOARD_SEARCH_RESULTS;
+    public void onLoaderReset(Loader<List<SearchResult>> loader) {
     }
 
-    private void clearLoaders() {
-        if (mSearchLoader != null) {
-            mSearchLoader.cancelLoad();
-            mSearchLoader = null;
-        }
+    private void restartLoaders() {
+        final LoaderManager loaderManager = getLoaderManager();
+        loaderManager.restartLoader(LOADER_ID_DATABASE, null /* args */, this /* callback */);
+        loaderManager.restartLoader(LOADER_ID_INSTALLED_APPS, null /* args */, this /* callback */);
+    }
+
+    private SearchView makeSearchView(ActionBar actionBar, String query) {
+        final SearchView searchView = new SearchView(actionBar.getThemedContext());
+        searchView.setIconifiedByDefault(false);
+        searchView.setQuery(query, false /* submitQuery */);
+        searchView.setOnQueryTextListener(this);
+        final LayoutParams lp =
+                new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
+        searchView.setLayoutParams(lp);
+        return searchView;
     }
 }
diff --git a/src/com/android/settings/search2/SearchResult.java b/src/com/android/settings/search2/SearchResult.java
index e483df3..5bf757f 100644
--- a/src/com/android/settings/search2/SearchResult.java
+++ b/src/com/android/settings/search2/SearchResult.java
@@ -19,90 +19,24 @@
 import android.graphics.drawable.Drawable;
 
 import java.util.ArrayList;
+import java.util.Objects;
 
 /**
- * Dataclass as an interface for all Search Results.
+ * Data class as an interface for all Search Results.
  */
 public class SearchResult implements Comparable<SearchResult> {
-    @Override
-    public int compareTo(SearchResult searchResult) {
-        if (searchResult == null) {
-            return -1;
-        }
-        return this.rank - searchResult.rank;
-    }
-
-    public static class Builder {
-        protected String mTitle;
-        protected String mSummary;
-        protected ArrayList<String> mBreadcrumbs;
-        protected int mRank = -1;
-        protected ResultPayload mResultPayload;
-        protected Drawable mIcon;
-
-        public Builder addTitle(String title) {
-            mTitle = title;
-            return this;
-        }
-
-        public Builder addSummary(String summary) {
-            mSummary = summary;
-            return this;
-        }
-
-        public Builder addBreadcrumbs(ArrayList<String> breadcrumbs) {
-            mBreadcrumbs = breadcrumbs;
-            return this;
-        }
-
-        public Builder addRank(int rank) {
-            if (rank < 0 || rank > 9) {
-                rank = 42;
-            }
-            mRank = rank;
-            return this;
-        }
-
-        public Builder addIcon(Drawable icon) {
-            mIcon = icon;
-            return this;
-        }
-
-        public Builder addPayload(ResultPayload payload) {
-            mResultPayload = payload;
-            return this;
-        }
-
-        public SearchResult build() {
-            // Check that all of the mandatory fields are set.
-            if (mTitle == null) {
-                throw new IllegalArgumentException("SearchResult missing title argument");
-            } else if (mSummary == null ) {
-                throw new IllegalArgumentException("SearchResult missing summary argument");
-            } else if (mBreadcrumbs == null){
-                throw new IllegalArgumentException("SearchResult missing breadcrumbs argument");
-            } else if (mRank == -1) {
-                throw new IllegalArgumentException("SearchResult missing rank argument");
-            } else if (mIcon == null) {
-                throw new IllegalArgumentException("SearchResult missing icon argument");
-            } else if (mResultPayload == null) {
-                throw new IllegalArgumentException("SearchResult missing Payload argument");
-            }
-            return new SearchResult(this);
-        }
-    }
 
     /**
      * The title of the result and main text displayed.
      * Intent Results: Displays as the primary
      */
-    public final String title;
+    public final CharSequence title;
 
     /**
      * Summary / subtitle text
      * Intent Results: Displays the text underneath the title
      */
-    final public String summary;
+    final public CharSequence summary;
 
     /**
      * An ordered list of the information hierarchy.
@@ -122,7 +56,8 @@
     /**
      * Identifier for the recycler view adapter.
      */
-    @ResultPayload.PayloadType public final int viewType;
+    @ResultPayload.PayloadType
+    public final int viewType;
 
     /**
      * Metadata for the specific result types.
@@ -134,6 +69,11 @@
      */
     public final Drawable icon;
 
+    /**
+     * Stable id for this object.
+     */
+    public final long stableId;
+
     private SearchResult(Builder builder) {
         title = builder.mTitle;
         summary = builder.mSummary;
@@ -142,5 +82,65 @@
         icon = builder.mIcon;
         payload = builder.mResultPayload;
         viewType = payload.getType();
+        stableId = Objects.hash(title, summary, breadcrumbs, rank, icon, payload, viewType);
+    }
+
+    @Override
+    public int compareTo(SearchResult searchResult) {
+        if (searchResult == null) {
+            return -1;
+        }
+        return this.rank - searchResult.rank;
+    }
+
+    public static class Builder {
+        protected CharSequence mTitle;
+        protected CharSequence mSummary;
+        protected ArrayList<String> mBreadcrumbs;
+        protected int mRank = 42;
+        protected ResultPayload mResultPayload;
+        protected Drawable mIcon;
+
+        public Builder addTitle(CharSequence title) {
+            mTitle = title;
+            return this;
+        }
+
+        public Builder addSummary(CharSequence summary) {
+            mSummary = summary;
+            return this;
+        }
+
+        public Builder addBreadcrumbs(ArrayList<String> breadcrumbs) {
+            mBreadcrumbs = breadcrumbs;
+            return this;
+        }
+
+        public Builder addRank(int rank) {
+            if (rank >= 0 && rank <= 9) {
+                mRank = rank;
+            }
+            return this;
+        }
+
+        public Builder addIcon(Drawable icon) {
+            mIcon = icon;
+            return this;
+        }
+
+        public Builder addPayload(ResultPayload payload) {
+            mResultPayload = payload;
+            return this;
+        }
+
+        public SearchResult build() {
+            // Check that all of the mandatory fields are set.
+            if (mTitle == null) {
+                throw new IllegalArgumentException("SearchResult missing title argument");
+            } else if (mResultPayload == null) {
+                throw new IllegalArgumentException("SearchResult missing Payload argument");
+            }
+            return new SearchResult(this);
+        }
     }
 }
diff --git a/src/com/android/settings/search2/SearchResultsAdapter.java b/src/com/android/settings/search2/SearchResultsAdapter.java
index 22f106b..b588496 100644
--- a/src/com/android/settings/search2/SearchResultsAdapter.java
+++ b/src/com/android/settings/search2/SearchResultsAdapter.java
@@ -28,39 +28,25 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 public class SearchResultsAdapter extends Adapter<SearchViewHolder> {
-    private ArrayList<SearchResult> mSearchResults;
-    private HashMap<String, List<SearchResult>> mResultsMap;
+    private final List<SearchResult> mSearchResults;
+    private final Map<String, List<SearchResult>> mResultsMap;
+    private final SearchFragment mFragment;
 
-    public SearchResultsAdapter() {
+    public SearchResultsAdapter(SearchFragment fragment) {
+        mFragment = fragment;
         mSearchResults = new ArrayList<>();
         mResultsMap = new HashMap<>();
 
         setHasStableIds(true);
     }
 
-    public void mergeResults(List<SearchResult> freshResults, String loaderClassName) {
-        if (freshResults == null) {
-            return;
-        }
-        mResultsMap.put(loaderClassName, freshResults);
-        mSearchResults = mergeMappedResults();
-        notifyDataSetChanged();
-    }
-
-    private ArrayList<SearchResult> mergeMappedResults() {
-        ArrayList<SearchResult> mergedResults = new ArrayList<>();
-        for(String key : mResultsMap.keySet()) {
-            mergedResults.addAll(mResultsMap.get(key));
-        }
-        return mergedResults;
-    }
-
     @Override
     public SearchViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
-        switch(viewType) {
+        final LayoutInflater inflater = LayoutInflater.from(parent.getContext());
+        switch (viewType) {
             case PayloadType.INTENT:
                 View view = inflater.inflate(R.layout.search_intent_item, parent, false);
                 return new IntentSearchViewHolder(view);
@@ -75,13 +61,12 @@
 
     @Override
     public void onBindViewHolder(SearchViewHolder holder, int position) {
-        SearchResult result = mSearchResults.get(position);
-        holder.onBind(result);
+        holder.onBind(mFragment, mSearchResults.get(position));
     }
 
     @Override
     public long getItemId(int position) {
-        return super.getItemId(position);
+        return mSearchResults.get(position).stableId;
     }
 
     @Override
@@ -94,8 +79,25 @@
         return mSearchResults.size();
     }
 
+    public void mergeResults(List<SearchResult> freshResults, String loaderClassName) {
+        if (freshResults == null) {
+            return;
+        }
+        mResultsMap.put(loaderClassName, freshResults);
+        final int oldSize = mSearchResults.size();
+        mSearchResults.addAll(freshResults);
+        final int newSize = mSearchResults.size();
+        notifyItemRangeInserted(oldSize, newSize - oldSize);
+    }
+
+    public void clearResults() {
+        mSearchResults.clear();
+        mResultsMap.clear();
+        notifyDataSetChanged();
+    }
+
     @VisibleForTesting
-    public ArrayList<SearchResult> getSearchResults() {
+    public List<SearchResult> getSearchResults() {
         return mSearchResults;
     }
 }
diff --git a/src/com/android/settings/search2/SearchViewHolder.java b/src/com/android/settings/search2/SearchViewHolder.java
index 2f500fb..45ceb38 100644
--- a/src/com/android/settings/search2/SearchViewHolder.java
+++ b/src/com/android/settings/search2/SearchViewHolder.java
@@ -15,6 +15,7 @@
  */
 package com.android.settings.search2;
 
+import android.app.Fragment;
 import android.support.v7.widget.RecyclerView;
 import android.view.View;
 
@@ -29,5 +30,5 @@
         super(view);
     }
 
-    public abstract void onBind(SearchResult result);
+    public abstract void onBind(Fragment fragment, SearchResult result);
 }
\ No newline at end of file
diff --git a/src/com/android/settings/search2/XMLParserUtil.java b/src/com/android/settings/search2/XMLParserUtil.java
new file mode 100644
index 0000000..dcb3cbb
--- /dev/null
+++ b/src/com/android/settings/search2/XMLParserUtil.java
@@ -0,0 +1,137 @@
+/*
+ * 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.search2;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+
+import com.android.settings.R;
+
+import java.text.Normalizer;
+import java.util.regex.Pattern;
+
+/**
+ * Utility class to parse elements of XML preferences
+ */
+public class XMLParserUtil {
+
+    private static final String NON_BREAKING_HYPHEN = "\u2011";
+    private static final String EMPTY = "";
+    private static final String LIST_DELIMITERS = "[,]\\s*";
+    private static final String HYPHEN = "-";
+    private static final String SPACE = " ";
+
+    private static final String ENTRIES_SEPARATOR = "|";
+
+    private static final Pattern REMOVE_DIACRITICALS_PATTERN
+            = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
+
+    public static String getDataKey(Context context, AttributeSet attrs) {
+        return getData(context, attrs,
+                com.android.internal.R.styleable.Preference,
+                com.android.internal.R.styleable.Preference_key);
+    }
+
+    public static String getDataTitle(Context context, AttributeSet attrs) {
+        return getData(context, attrs,
+                com.android.internal.R.styleable.Preference,
+                com.android.internal.R.styleable.Preference_title);
+    }
+
+    public static String getDataSummary(Context context, AttributeSet attrs) {
+        return getData(context, attrs,
+                com.android.internal.R.styleable.Preference,
+                com.android.internal.R.styleable.Preference_summary);
+    }
+
+    public static String getDataSummaryOn(Context context, AttributeSet attrs) {
+        return getData(context, attrs,
+                com.android.internal.R.styleable.CheckBoxPreference,
+                com.android.internal.R.styleable.CheckBoxPreference_summaryOn);
+    }
+
+    public static String getDataSummaryOff(Context context, AttributeSet attrs) {
+        return getData(context, attrs,
+                com.android.internal.R.styleable.CheckBoxPreference,
+                com.android.internal.R.styleable.CheckBoxPreference_summaryOff);
+    }
+
+    public static String getDataEntries(Context context, AttributeSet attrs) {
+        return getDataEntries(context, attrs,
+                com.android.internal.R.styleable.ListPreference,
+                com.android.internal.R.styleable.ListPreference_entries);
+    }
+
+    public static String getDataKeywords(Context context, AttributeSet attrs) {
+        return getData(context, attrs, R.styleable.Preference, R.styleable.Preference_keywords);
+    }
+
+    public static String getData(Context context, AttributeSet set, int[] attrs, int resId) {
+        final TypedArray sa = context.obtainStyledAttributes(set, attrs);
+        final TypedValue tv = sa.peekValue(resId);
+
+        CharSequence data = null;
+        if (tv != null && tv.type == TypedValue.TYPE_STRING) {
+            if (tv.resourceId != 0) {
+                data = context.getText(tv.resourceId);
+            } else {
+                data = tv.string;
+            }
+        }
+        return (data != null) ? data.toString() : null;
+    }
+
+    public static String getDataEntries(Context context, AttributeSet set, int[] attrs, int resId) {
+        final TypedArray sa = context.obtainStyledAttributes(set, attrs);
+        final TypedValue tv = sa.peekValue(resId);
+
+        String[] data = null;
+        if (tv != null && tv.type == TypedValue.TYPE_REFERENCE) {
+            if (tv.resourceId != 0) {
+                data = context.getResources().getStringArray(tv.resourceId);
+            }
+        }
+        final int count = (data == null ) ? 0 : data.length;
+        if (count == 0) {
+            return null;
+        }
+        final StringBuilder result = new StringBuilder();
+        for (int n = 0; n < count; n++) {
+            result.append(data[n]);
+            result.append(ENTRIES_SEPARATOR);
+        }
+        return result.toString();
+    }
+
+    public static String normalizeHyphen(String input) {
+        return (input != null) ? input.replaceAll(NON_BREAKING_HYPHEN, HYPHEN) : EMPTY;
+    }
+
+    public static String normalizeString(String input) {
+        final String nohyphen = (input != null) ? input.replaceAll(HYPHEN, EMPTY) : EMPTY;
+        final String normalized = Normalizer.normalize(nohyphen, Normalizer.Form.NFD);
+
+        return REMOVE_DIACRITICALS_PATTERN.matcher(normalized).replaceAll("").toLowerCase();
+    }
+
+    public static String normalizeKeywords(String input) {
+        return (input != null) ? input.replaceAll(LIST_DELIMITERS, SPACE) : EMPTY;
+    }
+}
diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/com/android/settings/users/AppRestrictionsFragment.java
index 609ed27..d487c70 100644
--- a/src/com/android/settings/users/AppRestrictionsFragment.java
+++ b/src/com/android/settings/users/AppRestrictionsFragment.java
@@ -371,7 +371,7 @@
             PackageInfo pi = null;
             try {
                 pi = ipm.getPackageInfo(packageName,
-                        PackageManager.MATCH_UNINSTALLED_PACKAGES
+                        PackageManager.MATCH_ANY_USER
                         | PackageManager.GET_SIGNATURES, userId);
             } catch (RemoteException e) {
                 // Ignore
diff --git a/src/com/android/settings/vpn2/ConfigDialogFragment.java b/src/com/android/settings/vpn2/ConfigDialogFragment.java
index 86245d4..d9f35af 100644
--- a/src/com/android/settings/vpn2/ConfigDialogFragment.java
+++ b/src/com/android/settings/vpn2/ConfigDialogFragment.java
@@ -55,6 +55,7 @@
 
     private final IConnectivityManager mService = IConnectivityManager.Stub.asInterface(
             ServiceManager.getService(Context.CONNECTIVITY_SERVICE));
+    private Context mContext;
 
     private boolean mUnlocking = false;
 
@@ -79,6 +80,12 @@
     }
 
     @Override
+    public void onAttach(final Context context) {
+        super.onAttach(context);
+        mContext = context;
+    }
+
+    @Override
     public void onResume() {
         super.onResume();
 
@@ -86,7 +93,7 @@
         if (!KeyStore.getInstance().isUnlocked()) {
             if (!mUnlocking) {
                 // Let us unlock KeyStore. See you later!
-                Credentials.getInstance().unlock(getActivity());
+                Credentials.getInstance().unlock(mContext);
             } else {
                 // We already tried, but it is still not working!
                 dismiss();
@@ -142,9 +149,9 @@
             // Possibly throw up a dialog to explain lockdown VPN.
             final boolean shouldLockdown = dialog.isVpnAlwaysOn();
             final boolean shouldConnect = shouldLockdown || !dialog.isEditing();
-            final boolean wasAlwaysOn = VpnUtils.isAlwaysOnOrLegacyLockdownActive(getContext());
+            final boolean wasAlwaysOn = VpnUtils.isAlwaysOnOrLegacyLockdownActive(mContext);
             try {
-                final boolean replace = VpnUtils.isVpnActive(getContext());
+                final boolean replace = VpnUtils.isVpnActive(mContext);
                 if (shouldConnect && !isConnected(profile) &&
                         ConfirmLockdownFragment.shouldShow(replace, wasAlwaysOn, shouldLockdown)) {
                     final Bundle opts = new Bundle();
@@ -185,19 +192,19 @@
         if (isVpnAlwaysOn) {
             // Show toast if vpn profile is not valid
             if (!profile.isValidLockdownProfile()) {
-                Toast.makeText(getContext(), R.string.vpn_lockdown_config_error,
+                Toast.makeText(mContext, R.string.vpn_lockdown_config_error,
                         Toast.LENGTH_LONG).show();
                 return;
             }
 
-            final ConnectivityManager conn = ConnectivityManager.from(getActivity());
+            final ConnectivityManager conn = ConnectivityManager.from(mContext);
             conn.setAlwaysOnVpnPackageForUser(UserHandle.myUserId(), null,
                     /* lockdownEnabled */ false);
-            VpnUtils.setLockdownVpn(getContext(), profile.key);
+            VpnUtils.setLockdownVpn(mContext, profile.key);
         } else {
             // update only if lockdown vpn has been changed
             if (VpnUtils.isVpnLockdown(profile.key)) {
-                VpnUtils.clearLockdownVpn(getContext());
+                VpnUtils.clearLockdownVpn(mContext);
             }
         }
     }
@@ -219,11 +226,11 @@
         // Now try to start the VPN - this is not necessary if the profile is set as lockdown,
         // because just saving the profile in this mode will start a connection.
         if (!VpnUtils.isVpnLockdown(profile.key)) {
-            VpnUtils.clearLockdownVpn(getContext());
+            VpnUtils.clearLockdownVpn(mContext);
             try {
                 mService.startLegacyVpn(profile);
             } catch (IllegalStateException e) {
-                Toast.makeText(getActivity(), R.string.vpn_no_network, Toast.LENGTH_LONG).show();
+                Toast.makeText(mContext, R.string.vpn_no_network, Toast.LENGTH_LONG).show();
             } catch (RemoteException e) {
                 Log.e(TAG, "Failed to connect", e);
             }
@@ -241,7 +248,7 @@
             if (!isConnected(profile)) {
                 return true;
             }
-            VpnUtils.clearLockdownVpn(getContext());
+            VpnUtils.clearLockdownVpn(mContext);
             return mService.prepareVpn(null, VpnConfig.LEGACY_VPN, UserHandle.myUserId());
         } catch (RemoteException e) {
             Log.e(TAG, "Failed to disconnect", e);
diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java
index c2ed1c0..3aac639 100644
--- a/src/com/android/settings/vpn2/VpnSettings.java
+++ b/src/com/android/settings/vpn2/VpnSettings.java
@@ -49,6 +49,8 @@
 import android.view.MenuInflater;
 import android.view.MenuItem;
 
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.net.LegacyVpnInfo;
 import com.android.internal.net.VpnConfig;
@@ -62,6 +64,7 @@
 import com.google.android.collect.Lists;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -96,8 +99,9 @@
     private Map<String, LegacyVpnPreference> mLegacyVpnPreferences = new ArrayMap<>();
     private Map<AppVpnInfo, AppPreference> mAppPreferences = new ArrayMap<>();
 
-    private HandlerThread mUpdaterThread;
+    @GuardedBy("this")
     private Handler mUpdater;
+    private HandlerThread mUpdaterThread;
     private LegacyVpnInfo mConnectedLegacyVpn;
 
     private boolean mUnavailable;
@@ -181,11 +185,9 @@
         mConnectivityManager.registerNetworkCallback(VPN_REQUEST, mNetworkCallback);
 
         // Trigger a refresh
-        if (mUpdater == null) {
-            mUpdaterThread = new HandlerThread("Refresh VPN list in background");
-            mUpdaterThread.start();
-            mUpdater = new Handler(mUpdaterThread.getLooper(), this);
-        }
+        mUpdaterThread = new HandlerThread("Refresh VPN list in background");
+        mUpdaterThread.start();
+        mUpdater = new Handler(mUpdaterThread.getLooper(), this);
         mUpdater.sendEmptyMessage(RESCAN_MESSAGE);
     }
 
@@ -199,7 +201,7 @@
         // Stop monitoring
         mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
 
-        if (mUpdater != null) {
+        synchronized (this) {
             mUpdater.removeCallbacksAndMessages(null);
             mUpdater = null;
             mUpdaterThread.quit();
@@ -211,8 +213,6 @@
 
     @Override @WorkerThread
     public boolean handleMessage(Message message) {
-        mUpdater.removeMessages(RESCAN_MESSAGE);
-
         // Run heavy RPCs before switching to UI thread
         final List<VpnProfile> vpnProfiles = loadVpnProfiles(mKeyStore);
         final List<AppVpnInfo> vpnApps = getVpnApps(getActivity(), /* includeProfiles */ true);
@@ -224,63 +224,128 @@
         final String lockdownVpnKey = VpnUtils.getLockdownVpn();
 
         // Refresh list of VPNs
-        getActivity().runOnUiThread(new Runnable() {
-            @Override
-            public void run() {
-                // Can't do anything useful if the context has gone away
-                if (!isAdded()) {
-                    return;
-                }
+        getActivity().runOnUiThread(new UpdatePreferences(this)
+                .legacyVpns(vpnProfiles, connectedLegacyVpns, lockdownVpnKey)
+                .appVpns(vpnApps, connectedAppVpns, alwaysOnAppVpnInfos));
 
-                // Find new VPNs by subtracting existing ones from the full set
-                final Set<Preference> updates = new ArraySet<>();
-
-                for (VpnProfile profile : vpnProfiles) {
-                    LegacyVpnPreference p = findOrCreatePreference(profile);
-                    if (connectedLegacyVpns.containsKey(profile.key)) {
-                        p.setState(connectedLegacyVpns.get(profile.key).state);
-                    } else {
-                        p.setState(LegacyVpnPreference.STATE_NONE);
-                    }
-                    p.setAlwaysOn(lockdownVpnKey != null && lockdownVpnKey.equals(profile.key));
-                    updates.add(p);
-                }
-                for (AppVpnInfo app : vpnApps) {
-                    AppPreference p = findOrCreatePreference(app);
-                    if (connectedAppVpns.contains(app)) {
-                        p.setState(AppPreference.STATE_CONNECTED);
-                    } else {
-                        p.setState(AppPreference.STATE_DISCONNECTED);
-                    }
-                    p.setAlwaysOn(alwaysOnAppVpnInfos.contains(app));
-                    updates.add(p);
-                }
-
-                // Trim out deleted VPN preferences
-                mLegacyVpnPreferences.values().retainAll(updates);
-                mAppPreferences.values().retainAll(updates);
-
-                final PreferenceGroup vpnGroup = getPreferenceScreen();
-                for (int i = vpnGroup.getPreferenceCount() - 1; i >= 0; i--) {
-                    Preference p = vpnGroup.getPreference(i);
-                    if (updates.contains(p)) {
-                        updates.remove(p);
-                    } else {
-                        vpnGroup.removePreference(p);
-                    }
-                }
-
-                // Show any new preferences on the screen
-                for (Preference pref : updates) {
-                    vpnGroup.addPreference(pref);
-                }
+        synchronized (this) {
+            if (mUpdater != null) {
+                mUpdater.removeMessages(RESCAN_MESSAGE);
+                mUpdater.sendEmptyMessageDelayed(RESCAN_MESSAGE, RESCAN_INTERVAL_MS);
             }
-        });
-
-        mUpdater.sendEmptyMessageDelayed(RESCAN_MESSAGE, RESCAN_INTERVAL_MS);
+        }
         return true;
     }
 
+    @VisibleForTesting
+    static class UpdatePreferences implements Runnable {
+        private List<VpnProfile> vpnProfiles = Collections.<VpnProfile>emptyList();
+        private List<AppVpnInfo> vpnApps = Collections.<AppVpnInfo>emptyList();
+
+        private Map<String, LegacyVpnInfo> connectedLegacyVpns =
+                Collections.<String, LegacyVpnInfo>emptyMap();
+        private Set<AppVpnInfo> connectedAppVpns = Collections.<AppVpnInfo>emptySet();
+
+        private Set<AppVpnInfo> alwaysOnAppVpnInfos = Collections.<AppVpnInfo>emptySet();
+        private String lockdownVpnKey = null;
+
+        private final VpnSettings mSettings;
+
+        public UpdatePreferences(VpnSettings settings) {
+            mSettings = settings;
+        }
+
+        public final UpdatePreferences legacyVpns(List<VpnProfile> vpnProfiles,
+                Map<String, LegacyVpnInfo> connectedLegacyVpns, String lockdownVpnKey) {
+            this.vpnProfiles = vpnProfiles;
+            this.connectedLegacyVpns = connectedLegacyVpns;
+            this.lockdownVpnKey = lockdownVpnKey;
+            return this;
+        }
+
+        public final UpdatePreferences appVpns(List<AppVpnInfo> vpnApps,
+                Set<AppVpnInfo> connectedAppVpns, Set<AppVpnInfo> alwaysOnAppVpnInfos) {
+            this.vpnApps = vpnApps;
+            this.connectedAppVpns = connectedAppVpns;
+            this.alwaysOnAppVpnInfos = alwaysOnAppVpnInfos;
+            return this;
+        }
+
+        @Override @UiThread
+        public void run() {
+            if (!mSettings.canAddPreferences()) {
+                return;
+            }
+
+            // Find new VPNs by subtracting existing ones from the full set
+            final Set<Preference> updates = new ArraySet<>();
+
+            // Add legacy VPNs
+            for (VpnProfile profile : vpnProfiles) {
+                LegacyVpnPreference p = mSettings.findOrCreatePreference(profile, true);
+                if (connectedLegacyVpns.containsKey(profile.key)) {
+                    p.setState(connectedLegacyVpns.get(profile.key).state);
+                } else {
+                    p.setState(LegacyVpnPreference.STATE_NONE);
+                }
+                p.setAlwaysOn(lockdownVpnKey != null && lockdownVpnKey.equals(profile.key));
+                updates.add(p);
+            }
+
+            // Show connected VPNs even if the original entry in keystore is gone
+            for (LegacyVpnInfo vpn : connectedLegacyVpns.values()) {
+                final VpnProfile stubProfile = new VpnProfile(vpn.key);
+                LegacyVpnPreference p = mSettings.findOrCreatePreference(stubProfile, false);
+                p.setState(vpn.state);
+                p.setAlwaysOn(lockdownVpnKey != null && lockdownVpnKey.equals(vpn.key));
+                updates.add(p);
+            }
+
+            // Add VpnService VPNs
+            for (AppVpnInfo app : vpnApps) {
+                AppPreference p = mSettings.findOrCreatePreference(app);
+                if (connectedAppVpns.contains(app)) {
+                    p.setState(AppPreference.STATE_CONNECTED);
+                } else {
+                    p.setState(AppPreference.STATE_DISCONNECTED);
+                }
+                p.setAlwaysOn(alwaysOnAppVpnInfos.contains(app));
+                updates.add(p);
+            }
+
+            // Trim out deleted VPN preferences
+            mSettings.setShownPreferences(updates);
+        }
+    }
+
+    @VisibleForTesting
+    public boolean canAddPreferences() {
+        return isAdded();
+    }
+
+    @VisibleForTesting @UiThread
+    public void setShownPreferences(final Collection<Preference> updates) {
+        mLegacyVpnPreferences.values().retainAll(updates);
+        mAppPreferences.values().retainAll(updates);
+
+        // Change {@param updates} in-place to only contain new preferences that were not already
+        // added to the preference screen.
+        final PreferenceGroup vpnGroup = getPreferenceScreen();
+        for (int i = vpnGroup.getPreferenceCount() - 1; i >= 0; i--) {
+            Preference p = vpnGroup.getPreference(i);
+            if (updates.contains(p)) {
+                updates.remove(p);
+            } else {
+                vpnGroup.removePreference(p);
+            }
+        }
+
+        // Show any new preferences on the screen
+        for (Preference pref : updates) {
+            vpnGroup.addPreference(pref);
+        }
+    }
+
     @Override
     public boolean onPreferenceClick(Preference preference) {
         if (preference instanceof LegacyVpnPreference) {
@@ -360,22 +425,26 @@
         }
     };
 
-    @UiThread
-    private LegacyVpnPreference findOrCreatePreference(VpnProfile profile) {
+    @VisibleForTesting @UiThread
+    public LegacyVpnPreference findOrCreatePreference(VpnProfile profile, boolean update) {
         LegacyVpnPreference pref = mLegacyVpnPreferences.get(profile.key);
-        if (pref == null) {
+        boolean created = false;
+        if (pref == null ) {
             pref = new LegacyVpnPreference(getPrefContext());
             pref.setOnGearClickListener(mGearListener);
             pref.setOnPreferenceClickListener(this);
             mLegacyVpnPreferences.put(profile.key, pref);
+            created = true;
         }
-        // This may change as the profile can update and keep the same key.
-        pref.setProfile(profile);
+        if (created || update) {
+            // This can change call-to-call because the profile can update and keep the same key.
+            pref.setProfile(profile);
+        }
         return pref;
     }
 
-    @UiThread
-    private AppPreference findOrCreatePreference(AppVpnInfo app) {
+    @VisibleForTesting @UiThread
+    public AppPreference findOrCreatePreference(AppVpnInfo app) {
         AppPreference pref = mAppPreferences.get(app);
         if (pref == null) {
             pref = new AppPreference(getPrefContext(), app.userId, app.packageName);
diff --git a/src/com/android/settings/widget/SwitchBar.java b/src/com/android/settings/widget/SwitchBar.java
index e998e79..7bf6a83 100644
--- a/src/com/android/settings/widget/SwitchBar.java
+++ b/src/com/android/settings/widget/SwitchBar.java
@@ -117,7 +117,6 @@
         lp = (MarginLayoutParams) mSwitch.getLayoutParams();
         lp.setMarginEnd(switchBarMarginEnd);
         setBackgroundColor(switchBarBackgroundColor);
-        mSwitch.setBackgroundColor(switchBarBackgroundColor);
 
         addOnSwitchChangeListener(new OnSwitchChangeListener() {
             @Override
diff --git a/src/com/android/settings/wifi/ConfigureWifiSettings.java b/src/com/android/settings/wifi/ConfigureWifiSettings.java
index ce27ba9..9739ef9 100644
--- a/src/com/android/settings/wifi/ConfigureWifiSettings.java
+++ b/src/com/android/settings/wifi/ConfigureWifiSettings.java
@@ -121,7 +121,7 @@
 
         mWifiAssistantPreference = (AppListSwitchPreference) findPreference(KEY_WIFI_ASSISTANT);
         Collection<NetworkScorerAppManager.NetworkScorerAppData> scorers =
-                NetworkScorerAppManager.getAllValidScorers(context);
+                new NetworkScorerAppManager(context).getAllValidScorers();
         if (UserManager.get(context).isAdminUser() && !scorers.isEmpty()) {
             mWifiAssistantPreference.setOnPreferenceChangeListener(this);
             initWifiAssistantPreference(scorers);
@@ -200,7 +200,7 @@
 
         if (KEY_WIFI_ASSISTANT.equals(key)) {
             NetworkScorerAppManager.NetworkScorerAppData wifiAssistant =
-                    NetworkScorerAppManager.getScorer(context, (String) newValue);
+                    new NetworkScorerAppManager(context).getScorer((String) newValue);
             if (wifiAssistant == null) {
                 mNetworkScoreManager.setActiveScorer(null);
                 return true;
diff --git a/tests/app/src/com/android/settings/CreateShortcutTest.java b/tests/app/src/com/android/settings/CreateShortcutTest.java
new file mode 100644
index 0000000..9481a64
--- /dev/null
+++ b/tests/app/src/com/android/settings/CreateShortcutTest.java
@@ -0,0 +1,44 @@
+/*
+ * 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;
+
+import android.app.Instrumentation;
+import android.content.Intent;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static android.support.test.espresso.Espresso.onView;
+import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
+import static android.support.test.espresso.matcher.ViewMatchers.withText;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class CreateShortcutTest {
+
+    @Test
+    public void test_layoutDoesNotHaveCancelButton() {
+        Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
+        instrumentation.startActivitySync(new Intent(Intent.ACTION_CREATE_SHORTCUT)
+                .setClassName(instrumentation.getTargetContext(),
+                        CreateShortcut.class.getName()));
+        onView(withText(R.string.cancel)).check(doesNotExist());
+    }
+}
diff --git a/tests/app/src/com/android/settings/dashboard/FirstIdViewMatcher.java b/tests/app/src/com/android/settings/dashboard/FirstIdViewMatcher.java
new file mode 100644
index 0000000..15290b1
--- /dev/null
+++ b/tests/app/src/com/android/settings/dashboard/FirstIdViewMatcher.java
@@ -0,0 +1,51 @@
+/*
+ * 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;
+
+import android.content.res.Resources;
+import android.view.View;
+
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeMatcher;
+
+/***
+ * Matches on the first view with id if there are multiple views using the same Id.
+ */
+public class FirstIdViewMatcher {
+
+    public static Matcher<View> withFirstId(final int id) {
+        return new TypeSafeMatcher<View>() {
+            Resources resources = null;
+            private boolean mMatched;
+
+            public void describeTo(Description description) {
+                description.appendText(" is the first view that matches id.");
+            }
+
+            public boolean matchesSafely(View view) {
+                this.resources = view.getResources();
+                if (mMatched) {
+                    return false;
+                } else {
+                    mMatched |= id == view.getId();
+                    return mMatched;
+                }
+            }
+        };
+    }
+}
diff --git a/tests/app/src/com/android/settings/dashboard/PreferenceThemeTest.java b/tests/app/src/com/android/settings/dashboard/PreferenceThemeTest.java
new file mode 100644
index 0000000..b99f753e
--- /dev/null
+++ b/tests/app/src/com/android/settings/dashboard/PreferenceThemeTest.java
@@ -0,0 +1,68 @@
+/*
+ * 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;
+
+import android.app.Instrumentation;
+import android.content.Context;
+import android.content.Intent;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static android.support.test.espresso.Espresso.onView;
+import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
+import static android.support.test.espresso.assertion.ViewAssertions.matches;
+import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static android.support.test.espresso.matcher.ViewMatchers.withId;
+import static com.android.settings.dashboard.FirstIdViewMatcher.withFirstId;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class PreferenceThemeTest {
+
+    private Instrumentation mInstrumentation;
+    private Context mTargetContext;
+    private String mTargetPackage;
+
+    @Before
+    public void setUp() throws Exception {
+        mInstrumentation = InstrumentationRegistry.getInstrumentation();
+        mTargetContext = mInstrumentation.getTargetContext();
+        mTargetPackage = mTargetContext.getPackageName();
+    }
+
+    @Test
+    public void startPhoneStatus_preferenceIconSpaceReserved() throws InterruptedException {
+        launchPhoneStatus();
+        onView(withId(android.R.id.icon_frame)).check(doesNotExist());
+        onView(withFirstId(R.id.icon_container)).check(matches(isDisplayed()));
+    }
+
+    private void launchPhoneStatus() {
+        final Intent settingsIntent = new Intent("android.settings.DEVICE_INFO_SETTINGS")
+                .addCategory(Intent.CATEGORY_DEFAULT)
+                .setPackage(mTargetPackage)
+                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        InstrumentationRegistry.getInstrumentation().startActivitySync(settingsIntent);
+    }
+}
diff --git a/tests/robotests/assets/grandfather_not_implementing_index_provider b/tests/robotests/assets/grandfather_not_implementing_index_provider
new file mode 100644
index 0000000..05cd93b
--- /dev/null
+++ b/tests/robotests/assets/grandfather_not_implementing_index_provider
@@ -0,0 +1,5 @@
+com.android.settings.notification.ConfigureNotificationSettings
+com.android.settings.language.LanguageAndRegionSettings
+com.android.settings.notification.ZenModePrioritySettings
+com.android.settings.inputmethod.InputAndGestureSettings
+com.android.settings.accounts.AccountDetailDashboardFragment
\ No newline at end of file
diff --git a/tests/robotests/assets/grandfather_not_implementing_indexable b/tests/robotests/assets/grandfather_not_implementing_indexable
new file mode 100644
index 0000000..0c539d8
--- /dev/null
+++ b/tests/robotests/assets/grandfather_not_implementing_indexable
@@ -0,0 +1,91 @@
+com.android.settings.location.LocationMode
+com.android.settings.notification.ZenModeVisualInterruptionSettings
+com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment
+com.android.settings.deviceinfo.SimStatus
+com.android.settings.deviceinfo.PrivateVolumeForget
+com.android.settings.inputmethod.SpellCheckersSettings
+com.android.settings.inputmethod.KeyboardLayoutPickerFragment
+com.android.settings.notification.ZenModeEventRuleSettings
+com.android.settings.fuelgauge.InactiveApps
+com.android.settings.accessibility.CaptionPropertiesFragment
+com.android.settings.accounts.ManageAccountsSettings
+com.android.settings.accessibility.AccessibilitySettingsForSetupWizard
+com.android.settings.deviceinfo.ImeiInformation
+com.android.settings.datausage.DataUsageList
+com.android.settings.vpn2.AppManagementFragment
+com.android.settings.display.NightDisplaySettings
+com.android.settings.vpn2.VpnSettings
+com.android.settings.fingerprint.FingerprintSettings$FingerprintSettingsFragment
+com.android.settings.applications.ProcessStatsDetail
+com.android.settings.wifi.WifiInfo
+com.android.settings.applications.VrListenerSettings
+com.android.settings.nfc.PaymentSettings
+com.android.settings.inputmethod.VirtualKeyboardFragment
+com.android.settings.bluetooth.DevicePickerFragment
+com.android.settings.inputmethod.UserDictionaryList
+com.android.settings.deviceinfo.Status
+com.android.settings.datausage.DataSaverSummary
+com.android.settings.notification.ChannelNotificationSettings
+com.android.settings.datausage.AppDataUsage
+com.android.settings.accessibility.FontSizePreferenceFragmentForSetupWizard
+com.android.settings.inputmethod.PhysicalKeyboardFragment
+com.android.settings.applications.ManageDomainUrls
+com.android.settings.applications.WriteSettingsDetails
+com.android.settings.location.LocationSettings
+com.android.settings.applications.ProcessStatsSummary
+com.android.settings.users.RestrictedProfileSettings
+com.android.settings.accounts.ChooseAccountActivity
+com.android.settings.accounts.ManagedProfileSettings
+com.android.settings.notification.ZenModeAutomationSettings
+com.android.settings.accessibility.ToggleAutoclickPreferenceFragment
+com.android.settings.applications.AppLaunchSettings
+com.android.settings.fuelgauge.BatterySaverSettings
+com.android.settings.location.ScanningSettings
+com.android.settings.tts.TextToSpeechSettings
+com.android.settings.applications.ProcessStatsUi
+com.android.settings.fuelgauge.PowerUsageDetail
+com.android.settings.notification.ZenModeScheduleRuleSettings
+com.android.settings.datausage.BillingCycleSettings
+com.android.settings.notification.NotificationStation
+com.android.settings.print.PrintJobSettingsFragment
+com.android.settings.applications.SpecialAccessSettings
+com.android.settings.accessibility.ToggleScreenReaderPreferenceFragmentForSetupWizard
+com.android.settings.accounts.AccountSyncSettings
+com.android.settings.notification.RedactionInterstitial$RedactionInterstitialFragment
+com.android.settings.inputmethod.InputMethodAndSubtypeEnabler
+com.android.settings.inputmethod.AvailableVirtualKeyboardFragment
+com.android.settings.applications.DrawOverlayDetails
+com.android.settings.tts.TtsEngineSettingsFragment
+com.android.settings.backup.ToggleBackupSettingFragment
+com.android.settings.users.UserDetailsSettings
+com.android.settings.datausage.UnrestrictedDataAccess
+com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragmentForSetupWizard
+com.android.settings.fuelgauge.BatteryHistoryDetail
+com.android.settings.fuelgauge.PowerUsageSummary
+com.android.settings.applications.RunningServices
+com.android.settings.wifi.p2p.WifiP2pSettings
+com.android.settings.applications.ManageAssist
+com.android.settings.applications.ConfirmConvertToFbe
+com.android.settings.deviceinfo.PublicVolumeSettings
+com.android.settings.applications.InstalledAppDetails
+com.android.settings.accessibility.ToggleAccessibilityServicePreferenceFragment
+com.android.settings.print.PrintServiceSettingsFragment
+com.android.settings.wfd.WifiDisplaySettings
+com.android.settings.notification.AppNotificationSettings
+com.android.settings.deviceinfo.PrivateVolumeSettings
+com.android.settings.users.AppRestrictionsFragment
+com.android.settings.deviceinfo.PrivateVolumeUnmount
+com.android.settings.deletionhelper.AutomaticStorageManagerSettings
+com.android.settings.notification.ZenAccessSettings
+com.android.settings.accessibility.ToggleFontSizePreferenceFragment
+com.android.settings.accessibility.ToggleGlobalGesturePreferenceFragment
+com.android.settings.wifi.ConfigureWifiSettings
+com.android.settings.wifi.AdvancedWifiSettings
+com.android.settings.applications.PremiumSmsAccess
+com.android.settings.applications.UsageAccessDetails
+com.android.settings.applications.AppStorageSettings
+com.android.settings.notification.NotificationAccessSettings
+com.android.settings.notification.ZenModeSettings
+com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment
+com.android.settings.applications.ConvertToFbe
+com.android.settings.localepicker.LocaleListEditor
\ No newline at end of file
diff --git a/tests/robotests/assets/grandfather_not_implementing_instrumentable b/tests/robotests/assets/grandfather_not_implementing_instrumentable
new file mode 100644
index 0000000..c1f0d60
--- /dev/null
+++ b/tests/robotests/assets/grandfather_not_implementing_instrumentable
@@ -0,0 +1,5 @@
+com.android.settings.deletionhelper.ActivationWarningFragment
+com.android.settings.core.lifecycle.ObservableDialogFragment
+com.android.settings.core.lifecycle.ObservableFragment
+com.android.settings.applications.AppOpsCategory
+com.android.settings.inputmethod.UserDictionaryLocalePicker
diff --git a/tests/robotests/assets/grandfather_not_in_search_index_provider_registry b/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
new file mode 100644
index 0000000..29f3816
--- /dev/null
+++ b/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
@@ -0,0 +1,3 @@
+com.android.settings.display.ScreenZoomPreferenceFragmentForSetupWizard
+com.android.settings.wifi.WifiSettingsForSetupWizard
+com.android.settings.print.PrintServiceSettingsFragment
diff --git a/tests/robotests/src/android/print/PrintServicesLoader.java b/tests/robotests/src/android/print/PrintServicesLoader.java
new file mode 100644
index 0000000..e4975ed
--- /dev/null
+++ b/tests/robotests/src/android/print/PrintServicesLoader.java
@@ -0,0 +1,19 @@
+package android.print;
+
+import android.annotation.NonNull;
+import android.content.Context;
+import android.content.Loader;
+import android.printservice.PrintServiceInfo;
+import com.android.internal.util.Preconditions;
+
+import java.util.List;
+
+/**
+ * A placeholder class to prevent ClassNotFound exceptions caused by lack of visibility.
+ */
+public class PrintServicesLoader extends Loader<List<PrintServiceInfo>> {
+    public PrintServicesLoader(@NonNull PrintManager printManager, @NonNull Context context,
+            int selectionFlags) {
+        super(Preconditions.checkNotNull(context));
+    }
+}
diff --git a/tests/robotests/src/com/android/internal/app/LocalePickerWithRegion.java b/tests/robotests/src/com/android/internal/app/LocalePickerWithRegion.java
new file mode 100644
index 0000000..9edda45
--- /dev/null
+++ b/tests/robotests/src/com/android/internal/app/LocalePickerWithRegion.java
@@ -0,0 +1,11 @@
+package com.android.internal.app;
+
+/**
+ * A placeholder class to prevent ClassNotFound exceptions caused by lack of visibility.
+ */
+public class LocalePickerWithRegion {
+
+    public interface LocaleSelectedListener {
+        void onLocaleSelected(LocaleStore.LocaleInfo locale);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/SettingsActivityTest.java b/tests/robotests/src/com/android/settings/SettingsActivityTest.java
new file mode 100644
index 0000000..1661947
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/SettingsActivityTest.java
@@ -0,0 +1,45 @@
+/*
+ * 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;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+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 SettingsActivityTest {
+
+    private SettingsActivity mActivity;
+
+    @Test
+    public void testQueryTextChange_shouldUpdate() {
+        final String testQuery = "abc";
+        mActivity = new SettingsActivity();
+
+        assertThat(mActivity.mSearchQuery).isNull();
+        try {
+            mActivity.onQueryTextChange(testQuery);
+        } catch (NullPointerException e) {
+            // Expected, because searchFeatureProvider is not wired up.
+        }
+
+        assertThat(mActivity.mSearchQuery).isEqualTo(testQuery);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java b/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java
index 86b613c..9bf168d 100644
--- a/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java
@@ -17,6 +17,7 @@
 
 import android.app.Dialog;
 import android.app.Fragment;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java b/tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java
index d6d6963..4472025 100644
--- a/tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java
+++ b/tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java
@@ -15,13 +15,22 @@
  */
 package com.android.settings;
 
-import java.util.List;
+import android.app.Activity;
+import android.app.Fragment;
+import android.content.Intent;
 import org.junit.runners.model.InitializationError;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 import org.robolectric.manifest.AndroidManifest;
 import org.robolectric.res.Fs;
 import org.robolectric.res.ResourcePath;
+import org.robolectric.util.ActivityController;
+import org.robolectric.util.ReflectionHelpers;
+
+import java.util.List;
+
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT;
+import static org.robolectric.Robolectric.getShadowsAdapter;
 
 /**
  * Custom test runner for the testing of BluetoothPairingDialogs. This is needed because the
@@ -47,7 +56,7 @@
         final String appRoot = "packages/apps/Settings";
         final String manifestPath = appRoot + "/AndroidManifest.xml";
         final String resDir = appRoot + "/res";
-        final String assetsDir = appRoot + "/assets";
+        final String assetsDir = appRoot + config.assetDir();
 
         // By adding any resources from libraries we need to the AndroidManifest, we can access
         // them from within the parallel universe's resource loader.
@@ -76,4 +85,15 @@
         manifest.setPackageName("com.android.settings");
         return manifest;
     }
-}
\ No newline at end of file
+
+    // A simple utility class to start a Settings fragment with an intent. The code here is almost
+    // the same as FragmentTestUtil.startFragment except that it starts an activity with an intent.
+    public static void startSettingsFragment(
+            Fragment fragment, Class<? extends SettingsActivity> activityClass) {
+        Intent intent = new Intent().putExtra(EXTRA_SHOW_FRAGMENT, fragment.getClass().getName());
+        SettingsActivity activity = ActivityController.of(
+                getShadowsAdapter(), ReflectionHelpers.callConstructor(activityClass), intent)
+                .setup().get();
+        activity.getFragmentManager().beginTransaction().add(fragment, null).commit();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
new file mode 100644
index 0000000..7006dfb
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
@@ -0,0 +1,86 @@
+/*
+ * 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.os.Bundle;
+
+import com.android.settings.TestConfig;
+import com.android.settingslib.drawer.CategoryKey;
+import com.android.settingslib.drawer.Tile;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AccountDetailDashboardFragmentTest {
+
+    private static final String METADATA_CATEGORY = "com.android.settings.category";
+    private static final String METADATA_ACCOUNT_TYPE = "com.android.settings.ia.account";
+
+    private AccountDetailDashboardFragment mFragment;
+
+    @Before
+    public void setUp() {
+        mFragment = new AccountDetailDashboardFragment();
+        final Bundle args = new Bundle();
+        args.putString(METADATA_ACCOUNT_TYPE, "com.abc");
+        mFragment.mAccountType = "com.abc";
+    }
+
+    @Test
+    public void testCategory_isAccount() {
+        assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_ACCOUNT);
+    }
+
+    @Test
+    public void refreshDashboardTiles_HasAccountType_shouldDisplay() {
+        final Tile tile = new Tile();
+        final Bundle metaData = new Bundle();
+        metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
+        metaData.putString(METADATA_ACCOUNT_TYPE, "com.abc");
+        tile.metaData = metaData;
+
+        assertThat(mFragment.displayTile(tile)).isTrue();
+    }
+
+    @Test
+    public void refreshDashboardTiles_NoAccountType_shouldNotDisplay() {
+        final Tile tile = new Tile();
+        final Bundle metaData = new Bundle();
+        metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
+        tile.metaData = metaData;
+
+        assertThat(mFragment.displayTile(tile)).isFalse();
+    }
+
+    @Test
+    public void refreshDashboardTiles_OtherAccountType_shouldNotDisplay() {
+        final Tile tile = new Tile();
+        final Bundle metaData = new Bundle();
+        metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
+        metaData.putString(METADATA_ACCOUNT_TYPE, "com.other");
+        tile.metaData = metaData;
+
+        assertThat(mFragment.displayTile(tile)).isFalse();
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
index 528d811..552c689 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 import android.content.pm.UserInfo;
 import android.os.UserManager;
+import android.os.UserHandle;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceGroup;
 import android.support.v7.preference.PreferenceScreen;
@@ -28,6 +29,7 @@
 import android.util.SparseArray;
 
 import com.android.settings.AccessiblePreferenceCategory;
+import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.search.SearchIndexableRaw;
@@ -266,4 +268,37 @@
         assertThat(data.size()).isEqualTo(2);
     }
 
+    @Test
+    @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
+    public void onResume_twoAccountsOfSameType_shouldAddThreePreferences() {
+        final List<UserInfo> infos = new ArrayList<>();
+        infos.add(new UserInfo(1, "user 1", 0));
+        when(mUserManager.isManagedProfile()).thenReturn(false);
+        when(mUserManager.isLinkedUser()).thenReturn(false);
+        when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
+        Account[] accounts = {new Account("Account1", "com.acct1")};
+        when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(accounts);
+
+        Account[] accountType1 = new Account[2];
+        accountType1[0] = new Account("Account11", "com.acct1");
+        accountType1[1] = new Account("Account12", "com.acct1");
+        when(mAccountManager.getAccountsByTypeAsUser(eq("com.acct1"), any(UserHandle.class)))
+            .thenReturn(accountType1);
+
+        AuthenticatorDescription[] authDescs = {
+            new AuthenticatorDescription("com.acct1", "com.android.settings",
+                R.string.account_settings_title, 0, 0, 0, false)
+        };
+        when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(authDescs);
+
+        AccessiblePreferenceCategory preferenceGroup = mock(AccessiblePreferenceCategory.class);
+        when(mAccountHelper.createAccessiblePreferenceCategory(any(Context.class))).thenReturn(
+            preferenceGroup);
+
+        mController.onResume();
+
+        // should add 2 individual account and the Add account preference
+        verify(preferenceGroup, times(3)).addPreference(any(Preference.class));
+    }
+
 }
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceTest.java b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceTest.java
new file mode 100644
index 0000000..eeca90b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceTest.java
@@ -0,0 +1,73 @@
+/*
+ * 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.accounts.Account;
+import android.content.Context;
+
+import com.android.settings.R;
+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.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.ArrayList;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AccountPreferenceTest {
+
+    private Context mContext;
+    private Account mAccount;
+    private ArrayList<String> mAuthorities;
+    private AccountPreference mPreference;
+
+    @Before
+    public void setUp() {
+        mContext = ShadowApplication.getInstance().getApplicationContext();
+        mAccount = new Account("name", "type");
+        mAuthorities = new ArrayList<>();
+        mAuthorities.add("authority");
+
+        mPreference = spy(new AccountPreference(
+                mContext, mAccount, null /* icon */, mAuthorities, false /* showTypeIcon */));
+    }
+
+    @Test
+    public void setSyncStatus_differentStatus_shouldUpdate() {
+        mPreference.setSyncStatus(AccountPreference.SYNC_ERROR, true);
+        verify(mPreference).setSummary(R.string.sync_error);
+    }
+
+    @Test
+    public void setSyncStatus_sameStatus_shouldNotUpdate() {
+        // Set it once, should update summary
+        mPreference.setSyncStatus(AccountPreference.SYNC_ERROR, true);
+        verify(mPreference).setSummary(R.string.sync_error);
+
+        // Set it again, should not update summary
+        mPreference.setSyncStatus(AccountPreference.SYNC_ERROR, true);
+        verify(mPreference).setSummary(R.string.sync_error);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
new file mode 100644
index 0000000..26c640d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
@@ -0,0 +1,54 @@
+/*
+ * 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.accounts.Account;
+import android.content.Context;
+import android.os.UserHandle;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.SettingsActivity;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import static org.mockito.Mockito.mock;
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AccountSyncPreferenceControllerTest {
+
+    @Test
+    public void handlePreferenceTreeClick_shouldStartFragment() {
+        final ShadowApplication application = ShadowApplication.getInstance();
+        final Context context = application.getApplicationContext();
+        final Preference preference = new Preference(context);
+        preference.setKey("account_sync");
+        AccountSyncPreferenceController controller = new AccountSyncPreferenceController(context);
+        controller.init(new Account("acct1", "type1"), mock(UserHandle.class));
+
+        controller.handlePreferenceTreeClick(preference);
+
+        assertThat(application.getNextStartedActivity().getStringExtra(
+            SettingsActivity.EXTRA_SHOW_FRAGMENT)).isEqualTo(AccountSyncSettings.class.getName());
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/ManageAccountsSettingsTest.java b/tests/robotests/src/com/android/settings/accounts/ManageAccountsSettingsTest.java
new file mode 100644
index 0000000..916e395
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/ManageAccountsSettingsTest.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.accounts.Account;
+import android.content.SyncInfo;
+import android.content.SyncStatusInfo;
+import android.os.UserHandle;
+import android.support.v7.preference.PreferenceScreen;
+import android.util.ArraySet;
+
+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 java.util.ArrayList;
+import java.util.List;
+
+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 ManageAccountsSettingsTest {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private AccountPreference mAccountPref;
+    private Account mAccount;
+    private ArrayList<String> mAuthorities;
+    private TestFragment mSettings;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mAuthorities = new ArrayList<>();
+        mAuthorities.add("authority");
+        mAccount = new Account("name", "type");
+        when(mAccountPref.getAccount()).thenReturn(mAccount);
+        when(mAccountPref.getAuthorities()).thenReturn(mAuthorities);
+        mSettings = new TestFragment();
+    }
+
+    @Test
+    public void showSyncState_noAccountPrefs_shouldUpdateNothing() {
+        when(mAccountPref.getAuthorities()).thenReturn(null);
+        mSettings.showSyncState();
+        verify(mSettings.getPreferenceScreen(), never()).getPreference(anyInt());
+    }
+
+    @Test
+    public void showSyncState_syncInProgress_shouldUpdateInProgress() {
+        mSettings.mUserFacingSyncAuthorities.add(mAuthorities.get(0));
+        mSettings.mSyncInfos.add(new SyncInfo(0, mAccount, mAuthorities.get(0), 0));
+        mSettings.mSyncStatusInfo = new SyncStatusInfo(0);
+        when(mSettings.getPreferenceScreen().getPreferenceCount()).thenReturn(1);
+        when(mSettings.getPreferenceScreen().getPreference(0)).thenReturn(mAccountPref);
+
+        mSettings.showSyncState();
+
+        verify(mSettings.getPreferenceScreen()).getPreference(anyInt());
+        verify(mAccountPref).setSyncStatus(AccountPreference.SYNC_IN_PROGRESS, true);
+    }
+
+    @Test
+    public void showSyncState_noUserFacingSynclets_shouldUpdateToDisabled() {
+        mSettings.mSyncInfos.add(new SyncInfo(0, mAccount, mAuthorities.get(0), 0));
+        mSettings.mSyncStatusInfo = new SyncStatusInfo(0);
+        when(mSettings.getPreferenceScreen().getPreferenceCount()).thenReturn(1);
+        when(mSettings.getPreferenceScreen().getPreference(0)).thenReturn(mAccountPref);
+
+        mSettings.showSyncState();
+
+        verify(mSettings.getPreferenceScreen()).getPreference(anyInt());
+        verify(mAccountPref).setSyncStatus(AccountPreference.SYNC_DISABLED, true);
+    }
+
+    public static class TestFragment extends ManageAccountsSettings {
+
+        private PreferenceScreen mScreen;
+        private List<SyncInfo> mSyncInfos;
+        private SyncStatusInfo mSyncStatusInfo;
+
+        public TestFragment() {
+            mUserHandle = mock(UserHandle.class);
+            mScreen = mock(PreferenceScreen.class);
+            mUserFacingSyncAuthorities = new ArraySet<>();
+            mSyncInfos = new ArrayList<>();
+        }
+
+        @Override
+        public PreferenceScreen getPreferenceScreen() {
+            return mScreen;
+        }
+
+        @Override
+        protected boolean isSyncEnabled(int userId, Account account, String authority) {
+            return true;
+        }
+
+        @Override
+        protected List<SyncInfo> getCurrentSyncs(int userId) {
+            return mSyncInfos;
+        }
+
+        @Override
+        protected SyncStatusInfo getSyncStatusInfo(Account account, String authority, int userId) {
+            return mSyncStatusInfo;
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/accounts/RemoveUserFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/RemoveUserFragmentTest.java
new file mode 100644
index 0000000..965b6dc
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/RemoveUserFragmentTest.java
@@ -0,0 +1,40 @@
+/*
+ * 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 com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import java.lang.reflect.Modifier;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class RemoveUserFragmentTest {
+
+    @Test
+    public void testClassModifier_shouldBePublic() {
+        final int modifiers = RemoveUserFragment.class.getModifiers();
+
+        assertThat(Modifier.isPublic(modifiers)).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/UserAndAccountDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/UserAndAccountDashboardFragmentTest.java
index 2d266b6..90761a0 100644
--- a/tests/robotests/src/com/android/settings/accounts/UserAndAccountDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/UserAndAccountDashboardFragmentTest.java
@@ -16,10 +16,13 @@
 package com.android.settings.accounts;
 
 import android.content.Context;
+import android.os.Bundle;
+import android.provider.SearchIndexableResource;
 
 import com.android.settings.TestConfig;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.drawer.CategoryKey;
+import com.android.settingslib.drawer.Tile;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -29,28 +32,68 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
 
 import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class UserAndAccountDashboardFragmentTest {
 
-  @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-  private Context mContext;
+    private static final String METADATA_CATEGORY = "com.android.settings.category";
+    private static final String METADATA_ACCOUNT_TYPE = "com.android.settings.ia.account";
 
-  private UserAndAccountDashboardFragment mFragment;
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+    private UserAndAccountDashboardFragment mFragment;
 
-  @Before
-  public void setUp() {
-    MockitoAnnotations.initMocks(this);
-    FakeFeatureFactory.setupForTest(mContext);
-    mFragment = new UserAndAccountDashboardFragment();
-  }
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
+        final FakeFeatureFactory factory =
+                (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+        when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
+        mFragment = new UserAndAccountDashboardFragment();
+    }
 
-  @Test
-  public void testCategory_isConnectedDevice() {
-    assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_ACCOUNT);
-  }
+    @Test
+    public void testCategory_isAccount() {
+        assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_ACCOUNT);
+    }
 
+    @Test
+    public void refreshDashboardTiles_HasAccountType_shouldNotDisplay() {
+        final Tile tile = new Tile();
+        final Bundle metaData = new Bundle();
+        metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
+        metaData.putString(METADATA_ACCOUNT_TYPE, "com.abc");
+        tile.metaData = metaData;
+
+        assertThat(mFragment.displayTile(tile)).isFalse();
+    }
+
+    @Test
+    public void refreshDashboardTiles_NoAccountType_shouldDisplay() {
+        final Tile tile = new Tile();
+        final Bundle metaData = new Bundle();
+        metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
+        tile.metaData = metaData;
+
+        assertThat(mFragment.displayTile(tile)).isTrue();
+    }
+
+    @Test
+    public void testSearchIndexProvider_shouldIndexResource() {
+        final List<SearchIndexableResource> indexRes =
+                UserAndAccountDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+                        ShadowApplication.getInstance().getApplicationContext(),
+                        true /* enabled */);
+
+        assertThat(indexRes).isNotNull();
+        assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
index dc177b8..56834db 100644
--- a/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
@@ -76,7 +76,7 @@
 
         when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
                 | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
-                | PackageManager.GET_UNINSTALLED_PACKAGES,
+                | PackageManager.MATCH_ANY_USER,
                 MAIN_USER_ID)).thenReturn(Arrays.asList(
                         ApplicationTestUtils.buildInfo(MAIN_USER_ID, "app1", 0 /* flags */)));
 
diff --git a/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java b/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
index 0f0ada5..b6c84d0 100644
--- a/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
+++ b/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
@@ -99,7 +99,7 @@
         // * app4 is a system app that provides no launcher icon. It should not be counted.
         when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
                 | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
-                | PackageManager.GET_UNINSTALLED_PACKAGES,
+                | PackageManager.MATCH_ANY_USER,
                 MAIN_USER_ID)).thenReturn(Arrays.asList(
                         buildInfo(MAIN_USER_ID, "app1", ApplicationInfo.FLAG_UPDATED_SYSTEM_APP),
                         buildInfo(MAIN_USER_ID, "app2", 0 /* flags */),
diff --git a/tests/robotests/src/com/android/settings/applications/ManageApplicationsTest.java b/tests/robotests/src/com/android/settings/applications/ManageApplicationsTest.java
new file mode 100644
index 0000000..e49b8b8
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/applications/ManageApplicationsTest.java
@@ -0,0 +1,61 @@
+package com.android.settings.applications;
+
+import android.os.Looper;
+import android.os.UserManager;
+import com.android.settings.Settings;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.SettingsShadowResources.SettingsShadowTheme;
+import com.android.settingslib.applications.ApplicationsState;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+import org.robolectric.util.ReflectionHelpers;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.when;
+
+/**
+ * Tests for {@link ManageApplications}.
+ */
+@RunWith(SettingsRobolectricTestRunner.class)
+// TODO: Consider making the shadow class set global using a robolectric.properties file.
+@Config(manifest = TestConfig.MANIFEST_PATH,
+        sdk = TestConfig.SDK_VERSION,
+        shadows = {
+                SettingsShadowResources.class,
+                SettingsShadowTheme.class,
+                ShadowDynamicIndexableContentMonitor.class
+        })
+public class ManageApplicationsTest {
+
+    @Mock private ApplicationsState mState;
+    @Mock private ApplicationsState.Session mSession;
+    @Mock private UserManager mUserManager;
+
+    private Looper mBgLooper;
+
+    private ManageApplications mFragment;
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        ReflectionHelpers.setStaticField(ApplicationsState.class, "sInstance", mState);
+        when(mState.newSession(any())).thenReturn(mSession);
+        mBgLooper = Looper.myLooper();
+        when(mState.getBackgroundLooper()).thenReturn(mBgLooper);
+
+        mFragment = new ManageApplications();
+    }
+
+    @Test
+    public void launchFragment() {
+        SettingsRobolectricTestRunner.startSettingsFragment(
+                mFragment, Settings.ManageApplicationsActivity.class);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
index 035d29e..90f2106 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
@@ -16,20 +16,24 @@
 package com.android.settings.bluetooth;
 
 import android.app.AlertDialog;
+import android.content.Context;
 import android.text.SpannableStringBuilder;
 import android.text.TextUtils;
 import android.view.View;
 import android.widget.CheckBox;
 import android.widget.TextView;
+
 import com.android.settings.R;
 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.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.FragmentTestUtil;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -330,6 +334,14 @@
         assertThat(message.getVisibility()).isEqualTo(View.GONE);
     }
 
+    @Test
+    public void pairingStringIsFormattedCorrectly() {
+        final String device = "test_device";
+        final Context context = ShadowApplication.getInstance().getApplicationContext();
+        assertThat(context.getString(R.string.bluetooth_pb_acceptance_dialog_text, device, device))
+                .contains(device);
+    }
+
     private BluetoothPairingDialogFragment makeFragment() {
         BluetoothPairingDialogFragment frag = new BluetoothPairingDialogFragment();
         frag.setPairingController(controller);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
index d53a27b..83bae50 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
@@ -16,10 +16,13 @@
 package com.android.settings.connecteddevice;
 
 import android.content.Context;
+import android.provider.SearchIndexableResource;
+
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.drawer.CategoryKey;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -27,28 +30,45 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
 
 import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class ConnectedDeviceDashboardFragmentTest {
 
-  @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-  private Context mContext;
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
 
-  private ConnectedDeviceDashboardFragment mFragment;
+    private ConnectedDeviceDashboardFragment mFragment;
 
-  @Before
-  public void setUp() {
-    MockitoAnnotations.initMocks(this);
-    FakeFeatureFactory.setupForTest(mContext);
-    mFragment = new ConnectedDeviceDashboardFragment();
-  }
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
+        final FakeFeatureFactory factory =
+                (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+        when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
+        mFragment = new ConnectedDeviceDashboardFragment();
+    }
 
-  @Test
-  public void testCategory_isConnectedDevice() {
-    assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_DEVICE);
-  }
+    @Test
+    public void testCategory_isConnectedDevice() {
+        assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_DEVICE);
+    }
 
+    @Test
+    public void testSearchIndexProvider_shouldIndexResource() {
+        final List<SearchIndexableResource> indexRes =
+                ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+                        ShadowApplication.getInstance().getApplicationContext(),
+                        true /* enabled */);
+
+        assertThat(indexRes).isNotNull();
+        assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/core/codeinspection/ClassScanner.java b/tests/robotests/src/com/android/settings/core/codeinspection/ClassScanner.java
new file mode 100644
index 0000000..09af870
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/core/codeinspection/ClassScanner.java
@@ -0,0 +1,130 @@
+/*
+ * 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.core.codeinspection;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.JarURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLDecoder;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+/**
+ * Scans and builds all classes in current classloader.
+ */
+public class ClassScanner {
+
+    private static final String CLASS_SUFFIX = ".class";
+
+    public List<Class<?>> getClassesForPackage(String packageName)
+            throws ClassNotFoundException {
+        final List<Class<?>> classes = new ArrayList<>();
+
+        try {
+            final Enumeration<URL> resources = Thread.currentThread().getContextClassLoader()
+                    .getResources(packageName.replace('.', '/'));
+            if (!resources.hasMoreElements()) {
+                return classes;
+            }
+            URL url = resources.nextElement();
+            while (url != null) {
+                final URLConnection connection = url.openConnection();
+
+                if (connection instanceof JarURLConnection) {
+                    loadClassFromJar((JarURLConnection) connection, packageName,
+                            classes);
+                } else {
+                    loadClassFromDirectory(new File(URLDecoder.decode(url.getPath(), "UTF-8")),
+                            packageName, classes);
+                }
+                if (resources.hasMoreElements()) {
+                    url = resources.nextElement();
+                } else {
+                    break;
+                }
+            }
+        } catch (final IOException e) {
+            throw new ClassNotFoundException("Error when parsing " + packageName, e);
+        }
+        return classes;
+    }
+
+    private void loadClassFromDirectory(File directory, String packageName, List<Class<?>> classes)
+            throws ClassNotFoundException {
+        if (directory.exists() && directory.isDirectory()) {
+            final String[] files = directory.list();
+
+            for (final String file : files) {
+                if (file.endsWith(CLASS_SUFFIX)) {
+                    try {
+                        classes.add(Class.forName(
+                                packageName + '.' + file.substring(0, file.length() - 6),
+                                false /* init */,
+                                Thread.currentThread().getContextClassLoader()));
+                    } catch (NoClassDefFoundError e) {
+                        // do nothing. this class hasn't been found by the
+                        // loader, and we don't care.
+                    }
+                } else {
+                    final File tmpDirectory = new File(directory, file);
+                    if (tmpDirectory.isDirectory()) {
+                        loadClassFromDirectory(tmpDirectory, packageName + "." + file, classes);
+                    }
+                }
+            }
+        }
+    }
+
+    private void loadClassFromJar(JarURLConnection connection, String packageName,
+            List<Class<?>> classes) throws ClassNotFoundException, IOException {
+        final JarFile jarFile = connection.getJarFile();
+        final Enumeration<JarEntry> entries = jarFile.entries();
+        String name;
+        if (!entries.hasMoreElements()) {
+            return;
+        }
+        JarEntry jarEntry = entries.nextElement();
+        while (jarEntry != null) {
+            name = jarEntry.getName();
+
+            if (name.contains(CLASS_SUFFIX)) {
+                name = name.substring(0, name.length() - CLASS_SUFFIX.length()).replace('/', '.');
+
+                if (name.startsWith(packageName)) {
+                    try {
+                        classes.add(Class.forName(name,
+                                false /* init */,
+                                Thread.currentThread().getContextClassLoader()));
+                    } catch (NoClassDefFoundError e) {
+                        // do nothing. this class hasn't been found by the
+                        // loader, and we don't care.
+                    }
+                }
+            }
+            if (entries.hasMoreElements()) {
+                jarEntry = entries.nextElement();
+            } else {
+                break;
+            }
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java
new file mode 100644
index 0000000..4aa576f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java
@@ -0,0 +1,52 @@
+/*
+ * 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.core.codeinspection;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.core.instrumentation.InstrumentableFragmentCodeInspector;
+import com.android.settings.search.SearchIndexProviderCodeInspector;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+/**
+ * Test suite that scans all class in app package, and perform different types of code inspection
+ * for conformance.
+ */
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
+        assetDir = "/tests/robotests/assets")
+public class CodeInspectionTest {
+
+    private List<Class<?>> mClasses;
+
+    @Before
+    public void setUp() throws Exception {
+        mClasses = new ClassScanner().getClassesForPackage(CodeInspector.PACKAGE_NAME);
+    }
+
+    @Test
+    public void runCodeInspections() {
+        new InstrumentableFragmentCodeInspector(mClasses).run();
+        new SearchIndexProviderCodeInspector(mClasses).run();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspector.java b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspector.java
new file mode 100644
index 0000000..86c14a5
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspector.java
@@ -0,0 +1,88 @@
+/*
+ * 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.core.codeinspection;
+
+import com.google.common.truth.Truth;
+
+import org.junit.Assert;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.reflect.Modifier;
+import java.util.List;
+
+/**
+ * Inspector takes a list of class objects and perform static code analysis in its {@link #run()}
+ * method.
+ */
+public abstract class CodeInspector {
+
+    protected static final String PACKAGE_NAME = "com.android.settings";
+
+    protected static final String TEST_CLASS_SUFFIX = "Test";
+    private static final String TEST_INNER_CLASS_SIGNATURE = "Test$";
+
+    protected final List<Class<?>> mClasses;
+
+    public CodeInspector(List<Class<?>> classes) {
+        mClasses = classes;
+    }
+
+    /**
+     * Code inspection runner method.
+     */
+    public abstract void run();
+
+    protected boolean isConcreteSettingsClass(Class clazz) {
+        // Abstract classes
+        if (Modifier.isAbstract(clazz.getModifiers())) {
+            return false;
+        }
+        final String packageName = clazz.getPackage().getName();
+        // Classes that are not in Settings
+        if (!packageName.contains(PACKAGE_NAME + ".")) {
+            return false;
+        }
+        final String className = clazz.getName();
+        // Classes from tests
+        if (className.endsWith(TEST_CLASS_SUFFIX)) {
+            return false;
+        }
+        if (className.contains(TEST_INNER_CLASS_SIGNATURE)) {
+            return false;
+        }
+        return true;
+    }
+
+    protected void initializeGrandfatherList(List<String> grandfather, String filename) {
+        try {
+            final InputStream in = ShadowApplication.getInstance().getApplicationContext()
+                    .getAssets()
+                    .open(filename);
+            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
+            String line;
+            while ((line = reader.readLine()) != null) {
+                grandfather.add(line);
+            }
+        } catch (Exception e) {
+            throw new IllegalArgumentException("Error initializing grandfather " + filename, e);
+        }
+
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentableFragmentCodeInspector.java b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentableFragmentCodeInspector.java
new file mode 100644
index 0000000..ed4e50c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentableFragmentCodeInspector.java
@@ -0,0 +1,69 @@
+/*
+ * 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.core.instrumentation;
+
+import android.app.Fragment;
+import android.util.ArraySet;
+
+import com.android.settings.core.codeinspection.CodeInspector;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+
+/**
+ * {@link CodeInspector} that verifies all fragments implements Instrumentable.
+ */
+public class InstrumentableFragmentCodeInspector extends CodeInspector {
+
+    private final List<String> grandfather_notImplementingInstrumentable;
+
+    public InstrumentableFragmentCodeInspector(List<Class<?>> classes) {
+        super(classes);
+        grandfather_notImplementingInstrumentable = new ArrayList<>();
+        initializeGrandfatherList(grandfather_notImplementingInstrumentable,
+                "grandfather_not_implementing_instrumentable");
+    }
+
+    @Override
+    public void run() {
+        final Set<String> broken = new ArraySet<>();
+
+        for (Class clazz : mClasses) {
+            if (!isConcreteSettingsClass(clazz)) {
+                continue;
+            }
+            final String className = clazz.getName();
+            // If it's a fragment, it must also be instrumentable.
+            if (Fragment.class.isAssignableFrom(clazz)
+                    && !Instrumentable.class.isAssignableFrom(clazz)
+                    && !grandfather_notImplementingInstrumentable.contains(className)) {
+                broken.add(className);
+            }
+        }
+        final StringBuilder sb = new StringBuilder(
+                "All fragment should implement Instrumentable, but the following are not:\n");
+        for (String c : broken) {
+            sb.append(c).append("\n");
+        }
+        assertWithMessage(sb.toString())
+                .that(broken.isEmpty())
+                .isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java b/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java
index dad6fa9..eeaa175 100644
--- a/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java
+++ b/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java
@@ -17,16 +17,18 @@
 
 import android.content.Context;
 import android.content.SharedPreferences;
+
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.testutils.FakeFeatureFactory;
+
 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 org.robolectric.shadows.ShadowApplication;
 
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyInt;
@@ -41,23 +43,21 @@
     private static final String TEST_TAG = "tag";
     private static final String TEST_KEY = "key";
 
-    @Mock
-    private LogWriter mLogWriter;
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
 
+    private FakeFeatureFactory mFactory;
     private MetricsFeatureProvider mMetricsFeature;
-    private ShadowApplication mApplication;
     private SharedPreferencesLogger mSharedPrefLogger;
 
     @Before
     public void init() {
         MockitoAnnotations.initMocks(this);
-        mApplication = ShadowApplication.getInstance();
-        Context context = mApplication.getApplicationContext();
-        mMetricsFeature = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
-        ((MetricsFeatureProviderImpl) mMetricsFeature).addLogWriter(mLogWriter);
+        FakeFeatureFactory.setupForTest(mContext);
+        mFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+        mMetricsFeature = mFactory.metricsFeatureProvider;
 
-        mSharedPrefLogger = new SharedPreferencesLogger(
-                mApplication.getApplicationContext(), TEST_TAG);
+        mSharedPrefLogger = new SharedPreferencesLogger(mContext, TEST_TAG);
     }
 
     @Test
@@ -71,7 +71,7 @@
         editor.putInt(TEST_KEY, 2);
         editor.putInt(TEST_KEY, 2);
 
-        verify(mLogWriter, times(6)).count(any(Context.class), anyString(), anyInt());
+        verify(mMetricsFeature, times(6)).count(any(Context.class), anyString(), anyInt());
     }
 
     @Test
@@ -83,7 +83,7 @@
         editor.putBoolean(TEST_KEY, false);
         editor.putBoolean(TEST_KEY, false);
 
-        verify(mLogWriter, times(4)).count(any(Context.class), anyString(), anyInt());
+        verify(mMetricsFeature, times(4)).count(any(Context.class), anyString(), anyInt());
     }
 
     @Test
@@ -95,7 +95,7 @@
         editor.putLong(TEST_KEY, 1);
         editor.putLong(TEST_KEY, 2);
 
-        verify(mLogWriter, times(4)).count(any(Context.class), anyString(), anyInt());
+        verify(mMetricsFeature, times(4)).count(any(Context.class), anyString(), anyInt());
     }
 
     @Test
@@ -107,7 +107,7 @@
         editor.putFloat(TEST_KEY, 1);
         editor.putFloat(TEST_KEY, 2);
 
-        verify(mLogWriter, times(4)).count(any(Context.class), anyString(), anyInt());
+        verify(mMetricsFeature, times(4)).count(any(Context.class), anyString(), anyInt());
     }
 
 }
diff --git a/tests/robotests/src/com/android/settings/core/lifecycle/LifecycleTest.java b/tests/robotests/src/com/android/settings/core/lifecycle/LifecycleTest.java
index 6aae543..db83bbb 100644
--- a/tests/robotests/src/com/android/settings/core/lifecycle/LifecycleTest.java
+++ b/tests/robotests/src/com/android/settings/core/lifecycle/LifecycleTest.java
@@ -16,6 +16,7 @@
 package com.android.settings.core.lifecycle;
 
 import android.content.Context;
+
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.core.lifecycle.events.OnAttach;
@@ -24,6 +25,7 @@
 import com.android.settings.core.lifecycle.events.OnResume;
 import com.android.settings.core.lifecycle.events.OnStart;
 import com.android.settings.core.lifecycle.events.OnStop;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.Robolectric;
@@ -47,6 +49,16 @@
         }
     }
 
+    public static class TestFragment extends ObservableFragment {
+
+        final TestObserver mFragObserver;
+
+        public TestFragment() {
+            mFragObserver = new TestObserver();
+            getLifecycle().addObserver(mFragObserver);
+        }
+    }
+
     public static class TestActivity extends ObservableActivity {
 
         final TestObserver mActObserver;
@@ -119,7 +131,7 @@
     }
 
     @Test
-    public void runThroughFragmentLifecycles_shouldObserveEverything() {
+    public void runThroughDialogFragmentLifecycles_shouldObserveEverything() {
         FragmentController<TestDialogFragment> fragmentController =
                 Robolectric.buildFragment(TestDialogFragment.class);
         TestDialogFragment fragment = fragmentController.get();
@@ -134,4 +146,21 @@
         assertThat(fragment.mFragObserver.mOnStopObserved).isTrue();
         assertThat(fragment.mFragObserver.mOnDestroyObserved).isTrue();
     }
+
+    @Test
+    public void runThroughFragmentLifecycles_shouldObserveEverything() {
+        FragmentController<TestFragment> fragmentController =
+                Robolectric.buildFragment(TestFragment.class);
+        TestFragment fragment = fragmentController.get();
+
+        fragmentController.attach().create().start().resume().pause().stop().destroy();
+
+        assertThat(fragment.mFragObserver.mOnAttachObserved).isTrue();
+        assertThat(fragment.mFragObserver.mOnAttachHasContext).isTrue();
+        assertThat(fragment.mFragObserver.mOnStartObserved).isTrue();
+        assertThat(fragment.mFragObserver.mOnResumeObserved).isTrue();
+        assertThat(fragment.mFragObserver.mOnPauseObserved).isTrue();
+        assertThat(fragment.mFragObserver.mOnStopObserved).isTrue();
+        assertThat(fragment.mFragObserver.mOnDestroyObserved).isTrue();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardDividerDecorationTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardDividerDecorationTest.java
deleted file mode 100644
index e829eb2..0000000
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardDividerDecorationTest.java
+++ /dev/null
@@ -1,107 +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;
-
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.drawable.Drawable;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceGroupAdapter;
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-import com.android.settings.SettingsRobolectricTestRunner;
-import com.android.settings.TestConfig;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.testutils.FakeFeatureFactory;
-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 org.mockito.Matchers.any;
-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 DashboardDividerDecorationTest {
-
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private Context mContext;
-    @Mock
-    private Drawable mDrawable;
-    @Mock
-    private Canvas mCanvas;
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private RecyclerView mRecyclerView;
-    @Mock
-    private PreferenceGroupAdapter mAdapter;
-    @Mock
-    private Preference pref1;
-    @Mock
-    private Preference pref2;
-    private DashboardDividerDecoration mDecoration;
-    private FakeFeatureFactory mFactory;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        FakeFeatureFactory.setupForTest(mContext);
-        mFactory = (FakeFeatureFactory) FeatureFactory.getFactory(mContext);
-        mDecoration = new DashboardDividerDecoration(mContext);
-        mDecoration.setDivider(mDrawable);
-        mDecoration.setDividerHeight(3);
-    }
-
-    @Test
-    public void drawOver_differentPriorityGroup_shouldDrawDivider() {
-        when(mRecyclerView.getAdapter()).thenReturn(mAdapter);
-        when(mRecyclerView.getChildCount()).thenReturn(2);
-        when(mRecyclerView.getChildAdapterPosition(any(View.class)))
-                .thenReturn(0)
-                .thenReturn(1);
-        when(mAdapter.getItem(0)).thenReturn(pref1);
-        when(mAdapter.getItem(1)).thenReturn(pref2);
-        when(mFactory.dashboardFeatureProvider.getPriorityGroup(pref1)).thenReturn(1);
-        when(mFactory.dashboardFeatureProvider.getPriorityGroup(pref2)).thenReturn(2);
-
-        mDecoration.onDrawOver(mCanvas, mRecyclerView, null /* state */);
-
-        verify(mDrawable).draw(mCanvas);
-    }
-
-
-    @Test
-    public void drawOver_samePriorityGroup_doNotDrawDivider() {
-        when(mRecyclerView.getAdapter()).thenReturn(mAdapter);
-        when(mRecyclerView.getChildCount()).thenReturn(2);
-        when(mRecyclerView.getChildAdapterPosition(any(View.class)))
-                .thenReturn(0)
-                .thenReturn(1);
-        when(mAdapter.getItem(0)).thenReturn(pref1);
-        when(mAdapter.getItem(1)).thenReturn(pref2);
-
-        mDecoration.onDrawOver(mCanvas, mRecyclerView, null /* state */);
-
-        verify(mDrawable, never()).draw(mCanvas);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
index c0bfad5..6aa22b2 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
@@ -41,7 +41,9 @@
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowActivity;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
@@ -51,6 +53,7 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -145,6 +148,20 @@
     }
 
     @Test
+    public void bindPreference_withNullKeyTileKey_shouldUseTileKey() {
+        final Preference preference = new Preference(
+                ShadowApplication.getInstance().getApplicationContext());
+        final Tile tile = new Tile();
+        tile.key = "key";
+        tile.intent = new Intent();
+        tile.intent.setComponent(new ComponentName("pkg", "class"));
+        mImpl.bindPreferenceToTile(mActivity, preference, tile, null /* key */
+                , Preference.DEFAULT_ORDER);
+
+        assertThat(preference.getKey()).isEqualTo(tile.key);
+    }
+
+    @Test
     public void bindPreference_withBaseOrder_shouldOffsetPriority() {
         final int baseOrder = 100;
         final Preference preference = new Preference(
@@ -158,6 +175,26 @@
     }
 
     @Test
+    public void bindPreference_withIntentActionMetatdata_shouldSetLaunchAction() {
+        Activity activity = Robolectric.buildActivity(Activity.class).get();
+        final ShadowApplication application = ShadowApplication.getInstance();
+        final Preference preference = new Preference(application.getApplicationContext());
+        final Tile tile = new Tile();
+        tile.key = "key";
+        tile.intent = new Intent();
+        tile.intent.setComponent(new ComponentName("pkg", "class"));
+        tile.metaData = new Bundle();
+        tile.metaData.putString("com.android.settings.intent.action", "TestAction");
+        tile.userHandle = null;
+        mImpl.bindPreferenceToTile(activity, preference, tile, "123", Preference.DEFAULT_ORDER);
+        preference.performClick();
+        ShadowActivity shadowActivity = shadowOf(activity);
+
+        assertThat(shadowActivity.getNextStartedActivityForResult().intent.getAction())
+            .isEqualTo("TestAction");
+    }
+
+    @Test
     public void getPreferences_notEnabled_shouldReturnNull() {
         final DashboardFeatureProviderImpl mSpy = spy(mImpl);
         when(mSpy.isEnabled()).thenReturn(false);
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardItemAnimatorTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardItemAnimatorTest.java
new file mode 100644
index 0000000..6ca6f4d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardItemAnimatorTest.java
@@ -0,0 +1,60 @@
+/*
+ * 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;
+
+import android.content.Context;
+import android.widget.TextView;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.dashboard.SupportItemAdapter.ViewHolder;
+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 DashboardItemAnimatorTest {
+
+    private DashboardItemAnimator mDashboardItemAnimator;
+    private ViewHolder mViewHolder;
+
+    @Before
+    public void SetUp() {
+        final Context context = ShadowApplication.getInstance().getApplicationContext();
+        mDashboardItemAnimator = new DashboardItemAnimator();
+        mViewHolder = new ViewHolder(new TextView(context));
+    }
+
+    @Test
+    public void testAnimateChange_NoOffset_NoPendingAnimation() {
+        final boolean hasPendingAnimation = mDashboardItemAnimator
+                .animateChange(mViewHolder, mViewHolder, 0, 1, 0, 1);
+        assertThat(hasPendingAnimation).isFalse();
+    }
+
+    @Test
+    public void testAnimateChange_HasOffset_HasPendingAnimation() {
+        final boolean hasPendingAnimation = mDashboardItemAnimator
+                .animateChange(mViewHolder, mViewHolder, 0, 0, 1, 1);
+        assertThat(hasPendingAnimation).isTrue();
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/dashboard/ProgressiveDisclosureTest.java b/tests/robotests/src/com/android/settings/dashboard/ProgressiveDisclosureTest.java
index ab94f35..ffc6874 100644
--- a/tests/robotests/src/com/android/settings/dashboard/ProgressiveDisclosureTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/ProgressiveDisclosureTest.java
@@ -20,11 +20,12 @@
 import android.support.v14.preference.PreferenceFragment;
 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.overlay.FeatureFactory;
 import com.android.settings.testutils.FakeFeatureFactory;
-import java.util.List;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -34,6 +35,8 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
+import java.util.List;
+
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyInt;
@@ -86,6 +89,7 @@
     public void shouldCollapse_morePreferenceThanLimit() {
         when(mFakeFeatureFactory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
         when(mScreen.getPreferenceCount()).thenReturn(5);
+        mMixin.setTileLimit(3);
 
         assertThat(mMixin.shouldCollapse(mScreen)).isTrue();
     }
diff --git a/tests/robotests/src/com/android/settings/dashboard/SupportItemAdapterTest.java b/tests/robotests/src/com/android/settings/dashboard/SupportItemAdapterTest.java
new file mode 100644
index 0000000..e3d4c94
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/dashboard/SupportItemAdapterTest.java
@@ -0,0 +1,152 @@
+/*
+ * 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;
+
+import android.accounts.Account;
+import android.app.Activity;
+import android.content.Intent;
+import android.provider.Settings;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Spinner;
+import android.widget.SpinnerAdapter;
+import com.android.settings.TestConfig;
+import com.android.settings.core.instrumentation.MetricsFeatureProvider;
+import com.android.settings.overlay.SupportFeatureProvider;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import com.android.settings.R;
+import org.robolectric.shadows.ShadowActivity;
+
+import static org.mockito.Mockito.verify;
+import static org.robolectric.Shadows.shadowOf;
+import static org.mockito.Mockito.when;
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class SupportItemAdapterTest {
+    private static final String ACCOUNT_TYPE = "com.google";
+    private final Account USER_1 = new Account("user1", ACCOUNT_TYPE);
+    private final Account USER_2 = new Account("user2", ACCOUNT_TYPE);
+    private final Account TWO_ACCOUNTS[] = {USER_1, USER_2};
+    private final Account ONE_ACCOUNT[] = {USER_1};
+    private final Account ZERO_ACCOUNT[] = {};
+
+    private ShadowActivity mShadowActivity;
+    private Activity mActivity;
+    private SupportItemAdapter mSupportItemAdapter;
+    private SupportItemAdapter.ViewHolder mViewHolder;
+    @Mock
+    private SupportFeatureProvider mSupportFeatureProvider;
+    @Mock
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mActivity = Robolectric.setupActivity(Activity.class);
+        mShadowActivity = shadowOf(mActivity);
+
+        final View itemView = LayoutInflater.from(mActivity).inflate(
+                R.layout.support_escalation_options, null);
+        mViewHolder = new SupportItemAdapter.ViewHolder(itemView);
+
+        // Mock this to prevent crash in testing
+        when(mSupportFeatureProvider.getAccountLoginIntent()).thenReturn(
+                new Intent(Settings.ACTION_ADD_ACCOUNT));
+    }
+
+    @Test
+    public void testBindAccountPicker_TwoAccounts_ShouldHaveTwoAccounts() {
+        testBindAccountPickerInner(mViewHolder, TWO_ACCOUNTS);
+    }
+
+    @Test
+    public void testBindAccountPicker_OneAccount_ShouldHaveOneAccount() {
+        testBindAccountPickerInner(mViewHolder, ONE_ACCOUNT);
+    }
+
+    @Test
+    public void testOnSpinnerItemClick_AddAccountClicked_AccountLoginIntentInvoked() {
+        bindAccountPickerInner(mViewHolder, TWO_ACCOUNTS);
+
+        final Spinner spinner = (Spinner) mViewHolder.itemView.findViewById(R.id.account_spinner);
+        spinner.setSelection(TWO_ACCOUNTS.length);
+
+        Robolectric.flushForegroundThreadScheduler();
+
+        verify(mSupportFeatureProvider).getAccountLoginIntent();
+    }
+
+    @Test
+    public void testSetAccount_AccountEmpty_NotCrash() {
+        when(mSupportFeatureProvider.getSupportEligibleAccounts(mActivity)).thenReturn(ZERO_ACCOUNT);
+        mSupportItemAdapter = new SupportItemAdapter(mActivity, null, mSupportFeatureProvider,
+            mMetricsFeatureProvider, null);
+
+        // Should not crash in this method
+        mSupportItemAdapter.setAccounts(ONE_ACCOUNT);
+
+        verify(mSupportFeatureProvider).getSupportEligibleAccounts(mActivity);
+    }
+
+    /**
+     * Check after {@link SupportItemAdapter#bindAccountPicker(SupportItemAdapter.ViewHolder)} is
+     * invoked, whether the spinner in {@paramref viewHolder} has all the data from {@paramref
+     * accounts}
+     *
+     * @param viewHolder holds the view that contains the spinner to test
+     * @param accounts holds the accounts info to be showed in spinner.
+     */
+    private void testBindAccountPickerInner(SupportItemAdapter.ViewHolder viewHolder,
+            Account accounts[]) {
+        bindAccountPickerInner(viewHolder, accounts);
+
+        final Spinner spinner = (Spinner) viewHolder.itemView.findViewById(R.id.account_spinner);
+        final SpinnerAdapter adapter = spinner.getAdapter();
+
+        // Contains "Add account" option, so should be 'count+1'
+        assertThat(adapter.getCount()).isEqualTo(accounts.length + 1);
+        for (int i = 0; i < accounts.length; i++) {
+            assertThat(adapter.getItem(i)).isEqualTo(accounts[i].name);
+        }
+    }
+
+    /**
+     * Create {@link SupportItemAdapter} and bind the account picker view into
+     * {@paramref viewholder}
+     *
+     * @param viewHolder holds the view that contains the spinner to test
+     * @param accounts holds the accounts info to be showed in spinner.
+     */
+    private void bindAccountPickerInner(SupportItemAdapter.ViewHolder viewHolder,
+            Account accounts[]) {
+        when(mSupportFeatureProvider.getSupportEligibleAccounts(mActivity)).thenReturn(accounts);
+        mSupportItemAdapter = new SupportItemAdapter(mActivity, null, mSupportFeatureProvider,
+                mMetricsFeatureProvider, null);
+
+        mSupportItemAdapter.bindAccountPicker(viewHolder);
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java
new file mode 100644
index 0000000..d0bd67b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java
@@ -0,0 +1,84 @@
+/*
+ * 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.datetime;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+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.Mockito.verify;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AutoTimePreferenceControllerTest {
+
+    @Mock
+    private UpdateTimeAndDateCallback mCallback;
+
+    private Context mContext;
+    private RestrictedSwitchPreference mPreference;
+    private AutoTimePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = ShadowApplication.getInstance().getApplicationContext();
+        mPreference = new RestrictedSwitchPreference(mContext);
+        mController = new AutoTimePreferenceController(mContext, mCallback);
+    }
+
+    @Test
+    public void testIsEnabled_shouldReadFromSettingsProvider() {
+        // Disabled
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.AUTO_TIME, 0);
+        assertThat(mController.isEnabled()).isFalse();
+
+        // Enabled
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.AUTO_TIME, 1);
+        assertThat(mController.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void updatePreferenceChange_prefIsChecked_shouldUpdatePreferenceAndNotifyCallback() {
+        mController.onPreferenceChange(mPreference, true);
+
+        assertThat(mController.isEnabled()).isTrue();
+        verify(mCallback).updateTimeAndDateDisplay(mContext);
+    }
+
+    @Test
+    public void updatePreferenceChange_prefIsUnchecked_shouldUpdatePreferenceAndNotifyCallback() {
+        mController.onPreferenceChange(mPreference, false);
+
+        assertThat(mController.isEnabled()).isFalse();
+        verify(mCallback).updateTimeAndDateDisplay(mContext);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java
new file mode 100644
index 0000000..cc8d84a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java
@@ -0,0 +1,127 @@
+/*
+ * 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.datetime;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+
+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.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.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AutoTimeZonePreferenceControllerTest {
+
+    @Mock
+    private Context mMockContext;
+    @Mock
+    private ConnectivityManager mCm;
+    @Mock
+    private UpdateTimeAndDateCallback mCallback;
+
+    private Context mContext;
+    private AutoTimeZonePreferenceController mController;
+    private Preference mPreference;
+
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = ShadowApplication.getInstance().getApplicationContext();
+        mPreference = new Preference(mContext);
+        when(mMockContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(mCm);
+        when(mCm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(true);
+    }
+
+    @Test
+    public void isFromSUW_notAvailable() {
+        mController = new AutoTimeZonePreferenceController(
+                mMockContext, null /* callback */, true /* isFromSUW */);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void notFromSUW_isAvailable() {
+        mController = new AutoTimeZonePreferenceController(
+                mMockContext, null /* callback */, false /* isFromSUW */);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isWifiOnly_notAvailable() {
+        when(mCm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(false);
+
+        mController = new AutoTimeZonePreferenceController(
+                mMockContext, null /* callback */, false /* isFromSUW */);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void testIsEnabled_shouldReadFromSettingsProvider() {
+        mController = new AutoTimeZonePreferenceController(
+                mContext, null /* callback */, false /* isFromSUW */);
+
+        // Disabled
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.AUTO_TIME_ZONE, 0);
+        assertThat(mController.isEnabled()).isFalse();
+
+        // Enabled
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.AUTO_TIME_ZONE, 1);
+        assertThat(mController.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void updatePreferenceChange_prefIsChecked_shouldUpdatePreferenceAndNotifyCallback() {
+        mController = new AutoTimeZonePreferenceController(
+                mContext, mCallback, false /* isFromSUW */);
+
+        mController.onPreferenceChange(mPreference, true);
+
+        assertThat(mController.isEnabled()).isTrue();
+        verify(mCallback).updateTimeAndDateDisplay(mContext);
+    }
+
+    @Test
+    public void updatePreferenceChange_prefIsUnchecked_shouldUpdatePreferenceAndNotifyCallback() {
+        mController = new AutoTimeZonePreferenceController(
+                mContext, mCallback, false /* isFromSUW */);
+
+        mController.onPreferenceChange(mPreference, false);
+
+        assertThat(mController.isEnabled()).isFalse();
+        verify(mCallback).updateTimeAndDateDisplay(mContext);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
new file mode 100644
index 0000000..4b9d3ec
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
@@ -0,0 +1,101 @@
+/*
+ * 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.datetime;
+
+import android.app.AlarmManager;
+import android.content.Context;
+import android.support.v7.preference.Preference;
+
+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.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.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DatePreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private AlarmManager mAlarmManager;
+    @Mock
+    private DatePreferenceController.DatePreferenceHost mHost;
+    @Mock
+    private AutoTimePreferenceController mAutoTimePreferenceController;
+
+    private Preference mPreference;
+    private DatePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        when(mContext.getSystemService(Context.ALARM_SERVICE)).thenReturn(mAlarmManager);
+        mPreference = new Preference(ShadowApplication.getInstance().getApplicationContext());
+        mController = new DatePreferenceController(mContext, mHost, mAutoTimePreferenceController);
+    }
+
+    @Test
+    public void isAlwaysAvailable() {
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void shouldHandleDateSetCallback() {
+        mController.onDateSet(null, 2016, 1, 1);
+        verify(mHost).updateTimeAndDateDisplay(mContext);
+    }
+
+    @Test
+    public void updateState_autoTimeEnabled_shouldDisablePref() {
+        when(mAutoTimePreferenceController.isEnabled()).thenReturn(true);
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void updateState_autoTimeDisabled_shouldEnablePref() {
+        when(mAutoTimePreferenceController.isEnabled()).thenReturn(false);
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void clickPreference_showDatePicker() {
+        // Click a preference that's not controlled by this controller.
+        mPreference.setKey("fake_key");
+        assertThat(mController.handlePreferenceTreeClick(mPreference)).isFalse();
+
+        // Click a preference controlled by this controller.
+        mPreference.setKey(mController.getPreferenceKey());
+        mController.handlePreferenceTreeClick(mPreference);
+        // Should show date picker
+        verify(mHost).showDatePicker();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java b/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java
new file mode 100644
index 0000000..8a8c066
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java
@@ -0,0 +1,85 @@
+/*
+ * 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.datetime;
+
+import android.content.Context;
+import android.content.Intent;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.core.lifecycle.LifecycleObserver;
+import com.android.settings.core.lifecycle.events.OnPause;
+import com.android.settings.core.lifecycle.events.OnResume;
+
+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.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class TimeChangeListenerMixinTest {
+
+    @Mock
+    private UpdateTimeAndDateCallback mCallback;
+
+    private Context mContext;
+    private TimeChangeListenerMixin mMixin;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = ShadowApplication.getInstance().getApplicationContext();
+        mMixin = new TimeChangeListenerMixin(mContext, mCallback);
+    }
+
+    @Test
+    public void shouldImplementMixinInterfaces() {
+        assertThat(mMixin instanceof LifecycleObserver).isTrue();
+        assertThat(mMixin instanceof OnPause).isTrue();
+        assertThat(mMixin instanceof OnResume).isTrue();
+    }
+
+    @Test
+    public void onResume_shouldRegisterIntentFilter() {
+        mMixin.onResume();
+        mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_TICK));
+        mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_CHANGED));
+        mContext.sendBroadcast(new Intent(Intent.ACTION_TIMEZONE_CHANGED));
+
+        verify(mCallback, times(3)).updateTimeAndDateDisplay(mContext);
+    }
+
+    @Test
+    public void onPause_shouldUnregisterIntentFilter() {
+        mMixin.onResume();
+        mMixin.onPause();
+        mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_TICK));
+        mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_CHANGED));
+        mContext.sendBroadcast(new Intent(Intent.ACTION_TIMEZONE_CHANGED));
+
+        verify(mCallback, never()).updateTimeAndDateDisplay(mContext);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java
index 91c6a44..41c5a27 100644
--- a/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java
@@ -18,6 +18,7 @@
 
 
 import android.content.Context;
+import android.content.Intent;
 import android.provider.Settings;
 import android.support.v14.preference.SwitchPreference;
 import android.support.v7.preference.PreferenceScreen;
@@ -25,6 +26,8 @@
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 
+import java.util.List;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -35,6 +38,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Answers.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.verify;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -45,6 +49,7 @@
     @Mock
     private UpdateTimeAndDateCallback mCallback;
 
+    private ShadowApplication mApplication;
     private Context mContext;
     private SwitchPreference mPreference;
     private TimeFormatPreferenceController mController;
@@ -52,7 +57,8 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = ShadowApplication.getInstance().getApplicationContext();
+        mApplication = ShadowApplication.getInstance();
+        mContext = mApplication.getApplicationContext();
     }
 
     @Test
@@ -94,4 +100,42 @@
 
         assertThat(mPreference.isChecked()).isFalse();
     }
+
+    @Test
+    public void updatePreference_12HourSet_shouldSendIntent() {
+        mController = new TimeFormatPreferenceController(mContext, mCallback, false);
+        mPreference = new SwitchPreference(mContext);
+        mPreference.setKey(mController.getPreferenceKey());
+        mPreference.setChecked(false);
+
+        boolean result = mController.handlePreferenceTreeClick(mPreference);
+
+        assertThat(result).isTrue();
+
+        List<Intent> intentsFired = mApplication.getBroadcastIntents();
+        assertThat(intentsFired.size()).isEqualTo(1);
+        Intent intentFired = intentsFired.get(0);
+        assertThat(intentFired.getAction()).isEqualTo(Intent.ACTION_TIME_CHANGED);
+        assertThat(intentFired.getIntExtra(Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, -1))
+                .isEqualTo(Intent.EXTRA_TIME_PREF_VALUE_USE_12_HOUR);
+    }
+
+    @Test
+    public void updatePreference_24HourSet_shouldSendIntent() {
+        mController = new TimeFormatPreferenceController(mContext, mCallback, false);
+        mPreference = new SwitchPreference(mContext);
+        mPreference.setKey(mController.getPreferenceKey());
+        mPreference.setChecked(true);
+
+        boolean result = mController.handlePreferenceTreeClick(mPreference);
+
+        assertThat(result).isTrue();
+
+        List<Intent> intentsFired = mApplication.getBroadcastIntents();
+        assertThat(intentsFired.size()).isEqualTo(1);
+        Intent intentFired = intentsFired.get(0);
+        assertThat(intentFired.getAction()).isEqualTo(Intent.ACTION_TIME_CHANGED);
+        assertThat(intentFired.getIntExtra(Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, -1))
+                .isEqualTo(Intent.EXTRA_TIME_PREF_VALUE_USE_24_HOUR);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java
new file mode 100644
index 0000000..3995f37
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java
@@ -0,0 +1,92 @@
+/*
+ * 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.datetime;
+
+import android.content.Context;
+import android.support.v7.preference.Preference;
+
+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.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.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class TimePreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private TimePreferenceController.TimePreferenceHost mHost;
+    @Mock
+    private AutoTimePreferenceController mAutoTimePreferenceController;
+
+    private TimePreferenceController mController;
+    private Preference mPreference;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mPreference = new Preference(ShadowApplication.getInstance().getApplicationContext());
+        mController = new TimePreferenceController(mContext, mHost, mAutoTimePreferenceController);
+    }
+
+    @Test
+    public void isAlwaysAvailable() {
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void updateState_autoTimeEnabled_shouldDisablePref() {
+        when(mAutoTimePreferenceController.isEnabled()).thenReturn(true);
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void updateState_autoTimeDisabled_shouldEnablePref() {
+        when(mAutoTimePreferenceController.isEnabled()).thenReturn(false);
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void clickPreference_showTimePicker() {
+        // Click a preference that's not controlled by this controller.
+        mPreference.setKey("fake_key");
+        assertThat(mController.handlePreferenceTreeClick(mPreference)).isFalse();
+
+        // Click a preference controlled by this controller.
+        mPreference.setKey(mController.getPreferenceKey());
+        mController.handlePreferenceTreeClick(mPreference);
+        // Should show date picker
+        verify(mHost).showTimePicker();
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java
new file mode 100644
index 0000000..cab6f71
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java
@@ -0,0 +1,79 @@
+/*
+ * 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.datetime;
+
+import android.content.Context;
+import android.support.v7.preference.Preference;
+
+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.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.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class TimeZonePreferenceControllerTest {
+
+    @Mock
+    private AutoTimeZonePreferenceController mAutoTimeZonePreferenceController;
+    private Context mContext;
+    private TimeZonePreferenceController mController;
+    private Preference mPreference;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = ShadowApplication.getInstance().getApplicationContext();
+        mPreference = new Preference(mContext);
+        mController = spy(new TimeZonePreferenceController(mContext,
+                mAutoTimeZonePreferenceController));
+    }
+
+    @Test
+    public void isAlwaysAvailable() {
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void updateState_autoTimeZoneEnabled_shouldDisablePref() {
+        doReturn("test timezone").when(mController).getTimeZoneOffsetAndName();
+        when(mAutoTimeZonePreferenceController.isEnabled()).thenReturn(true);
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void updateState_autoTimeZoneDisabled_shouldEnablePref() {
+        doReturn("test timezone").when(mController).getTimeZoneOffsetAndName();
+        when(mAutoTimeZonePreferenceController.isEnabled()).thenReturn(false);
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/BugReportInPowerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BugReportInPowerPreferenceControllerTest.java
new file mode 100644
index 0000000..4ca6609
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/BugReportInPowerPreferenceControllerTest.java
@@ -0,0 +1,193 @@
+/*
+ * 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.development;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.provider.Settings;
+import android.os.UserManager;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+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.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.anyBoolean;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doCallRealMethod;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+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 BugReportInPowerPreferenceControllerTest {
+
+    @Mock(answer = RETURNS_DEEP_STUBS)
+    private PreferenceScreen mScreen;
+    @Mock
+    private UserManager mUserManager;
+    @Mock
+    private PackageManager mPackageManager;
+
+    private Context mContext;
+    private SwitchPreference mPreference;
+    private BugReportInPowerPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowApplication shadowContext = ShadowApplication.getInstance();
+        shadowContext.setSystemService(Context.USER_SERVICE, mUserManager);
+        mContext = spy(shadowContext.getApplicationContext());
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        mPreference = new SwitchPreference(mContext);
+        when(mScreen.findPreference(anyString())).thenReturn(mPreference);
+        mController = new BugReportInPowerPreferenceController(mContext);
+        mPreference.setKey(mController.getPreferenceKey());
+    }
+
+    @Test
+    public void displayPreference_hasDebugRestriction_shouldRemovePreference() {
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(true);
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void displayPreference_noDebugRestriction_shouldNotRemovePreference() {
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen, never()).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void enablePreference_hasDebugRestriction_shouldNotEnable() {
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(true);
+        mController.displayPreference(mScreen);
+        mPreference.setEnabled(false);
+
+        mController.enablePreference(true);
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void enablePreference_noDebugRestriction_shouldEnable() {
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+        mController.displayPreference(mScreen);
+        mPreference.setEnabled(false);
+
+        mController.enablePreference(true);
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void resetPreference_shouldUncheck() {
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+        mController.displayPreference(mScreen);
+        mPreference.setChecked(true);
+
+        mController.resetPreference();
+
+        assertThat(mPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void handlePreferenceTreeClick_shouldUpdateSettings() {
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+        Settings.Secure.putInt(mContext.getContentResolver(),
+            Settings.Global.BUGREPORT_IN_POWER_MENU, 0);
+        mPreference.setChecked(true);
+        mController.displayPreference(mScreen);
+
+        mController.handlePreferenceTreeClick(mPreference);
+
+        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+            Settings.Global.BUGREPORT_IN_POWER_MENU, 0)).isEqualTo(1);
+    }
+
+    @Test
+    public void updateState_settingsOn_shouldCheck() {
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+        Settings.Secure.putInt(mContext.getContentResolver(),
+            Settings.Global.BUGREPORT_IN_POWER_MENU, 1);
+        mPreference.setChecked(false);
+        mController.displayPreference(mScreen);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isChecked()).isTrue();
+    }
+
+    @Test
+    public void updateState_settingsOff_shouldUncheck() {
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+        Settings.Secure.putInt(mContext.getContentResolver(),
+            Settings.Global.BUGREPORT_IN_POWER_MENU, 0);
+        mPreference.setChecked(true);
+        mController.displayPreference(mScreen);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void updateBugreportOptions_shouldEnable() {
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+        mPreference.setEnabled(false);
+        mController.displayPreference(mScreen);
+
+        mController.updateBugreportOptions();
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void updateBugreportOptions_shouldEnableBugReportStorage() {
+        final ComponentName componentName = new ComponentName("com.android.shell",
+            "com.android.shell.BugreportStorageProvider");
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+        mController.displayPreference(mScreen);
+
+        mController.updateBugreportOptions();
+
+        verify(mPackageManager).setComponentEnabledSetting(eq(componentName), anyInt(), anyInt());
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/BugReportPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BugReportPreferenceControllerTest.java
new file mode 100644
index 0000000..377b467
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/BugReportPreferenceControllerTest.java
@@ -0,0 +1,106 @@
+/*
+ * 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.development;
+
+import android.content.Context;
+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.settingslib.drawer.CategoryKey;
+
+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 org.mockito.Answers.RETURNS_DEEP_STUBS;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class BugReportPreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private Preference mPreference;
+    @Mock(answer = RETURNS_DEEP_STUBS)
+    private PreferenceScreen mScreen;
+    @Mock
+    private UserManager mUserManager;
+
+    private BugReportPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+        when(mScreen.findPreference(anyString())).thenReturn(mPreference);
+        mController = new BugReportPreferenceController(mContext);
+    }
+
+    @Test
+    public void displayPreference_hasDebugRestriction_shouldRemovePreference() {
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(true);
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void displayPreference_noDebugRestriction_shouldNotRemovePreference() {
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen, never()).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void enablePreference_hasDebugRestriction_shouldNotEnable() {
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(true);
+        mController.displayPreference(mScreen);
+
+        mController.enablePreference(true);
+
+        verify(mPreference, never()).setEnabled(anyBoolean());
+    }
+
+    @Test
+    public void enablePreference_noDebugRestriction_shouldEnable() {
+        when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+        mController.displayPreference(mScreen);
+
+        mController.enablePreference(true);
+
+        verify(mPreference).setEnabled(anyBoolean());
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/enterprise/AdminActionPreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/enterprise/AdminActionPreferenceControllerBaseTest.java
new file mode 100644
index 0000000..66233f5
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/enterprise/AdminActionPreferenceControllerBaseTest.java
@@ -0,0 +1,69 @@
+/*
+ * 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.enterprise;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import java.util.Date;
+
+/**
+ * Tests for {@link AdminActionPreferenceControllerBase}.
+ */
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public final class AdminActionPreferenceControllerBaseTest extends
+        AdminActionPreferenceControllerTestBase {
+
+    private Date mDate;
+
+    @Override
+    public void setUp() {
+        super.setUp();
+        mController = new AdminActionPreferenceControllerBaseTestable();
+    }
+
+    @Override
+    public void setDate(Date date) {
+        mDate = date;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return null;
+    }
+
+    private class AdminActionPreferenceControllerBaseTestable extends
+            AdminActionPreferenceControllerBase {
+        AdminActionPreferenceControllerBaseTestable() {
+            super(mContext);
+        }
+
+        @Override
+        protected Date getAdminActionTimestamp() {
+            return mDate;
+        }
+
+        @Override
+        public String getPreferenceKey() {
+            return null;
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/enterprise/AdminActionPreferenceControllerTestBase.java b/tests/robotests/src/com/android/settings/enterprise/AdminActionPreferenceControllerTestBase.java
new file mode 100644
index 0000000..c8cb69c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/enterprise/AdminActionPreferenceControllerTestBase.java
@@ -0,0 +1,94 @@
+/*
+ * 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.enterprise;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+import android.text.format.DateUtils;
+
+import com.android.settings.R;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.Date;
+import java.util.GregorianCalendar;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+/**
+ * Common base for testing subclasses of {@link AdminActionPreferenceControllerBase}.
+ */
+public abstract class AdminActionPreferenceControllerTestBase {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    protected Context mContext;
+    protected FakeFeatureFactory mFeatureFactory;
+
+    protected AdminActionPreferenceControllerBase mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
+        mFeatureFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+    }
+
+    protected abstract void setDate(Date date);
+
+    @Test
+    public void testUpdateState() {
+        final Preference preference = new Preference(mContext, null, 0, 0);
+        when(mContext.getString(R.string.enterprise_privacy_never)).thenReturn("Never");
+        Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24, "24");
+
+        setDate(null);
+        mController.updateState(preference);
+        assertThat(preference.getSummary()).isEqualTo("Never");
+
+        final Date date = new GregorianCalendar(2011 /* year */, 10 /* month */, 9 /* dayOfMonth */,
+                8 /* hourOfDay */, 7 /* minute */, 6 /* second */).getTime();
+        setDate(date);
+        mController.updateState(preference);
+        assertThat(preference.getSummary()).isEqualTo(DateUtils.formatDateTime(
+                mContext, date.getTime(), DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE));
+    }
+
+    @Test
+    public void testIsAvailable() {
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void testHandlePreferenceTreeClick() {
+        assertThat(mController.handlePreferenceTreeClick(new Preference(mContext, null, 0, 0)))
+                .isFalse();
+    }
+
+    public abstract String getPreferenceKey();
+
+    @Test
+    public void testGetPreferenceKey() {
+        assertThat(mController.getPreferenceKey()).isEqualTo(getPreferenceKey());
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/enterprise/BugReportsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/BugReportsPreferenceControllerTest.java
new file mode 100644
index 0000000..ae1e264
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/enterprise/BugReportsPreferenceControllerTest.java
@@ -0,0 +1,54 @@
+/*
+ * 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.enterprise;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import java.util.Date;
+
+import static org.mockito.Mockito.when;
+
+/**
+ * Tests for {@link BugReportsPreferenceController}.
+ */
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public final class BugReportsPreferenceControllerTest extends
+        AdminActionPreferenceControllerTestBase {
+
+    @Override
+    public void setUp() {
+        super.setUp();
+        mController = new BugReportsPreferenceController(mContext);
+    }
+
+    @Override
+    public void setDate(Date date) {
+        when(mFeatureFactory.enterprisePrivacyFeatureProvider.getLastBugReportRequestTime())
+                .thenReturn(date);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return "bug_reports";
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
index be43d0e..9688c12 100644
--- a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
@@ -23,6 +23,7 @@
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.applications.PackageManagerWrapper;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -30,6 +31,8 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.annotation.Config;
 
+import java.util.Date;
+
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Mockito.when;
 
@@ -41,6 +44,7 @@
 public final class EnterprisePrivacyFeatureProviderImplTest {
 
     private final ComponentName DEVICE_OWNER = new ComponentName("dummy", "component");
+    private final Date TIMESTAMP = new Date(2011, 11, 11);
 
     private @Mock DevicePolicyManagerWrapper mDevicePolicyManager;
     private @Mock PackageManagerWrapper mPackageManager;
@@ -65,4 +69,32 @@
         when(mDevicePolicyManager.getDeviceOwnerComponentOnAnyUser()).thenReturn(DEVICE_OWNER);
         assertThat(mProvider.hasDeviceOwner()).isTrue();
     }
+
+    @Test
+    public void testGetLastSecurityLogRetrievalTime() {
+        when(mDevicePolicyManager.getLastSecurityLogRetrievalTime()).thenReturn(-1L);
+        assertThat(mProvider.getLastSecurityLogRetrievalTime()).isNull();
+
+        when(mDevicePolicyManager.getLastSecurityLogRetrievalTime())
+                .thenReturn(TIMESTAMP.getTime());
+        assertThat(mProvider.getLastSecurityLogRetrievalTime()).isEqualTo(TIMESTAMP);
+    }
+
+    @Test
+    public void testGetLastBugReportRequestTime() {
+        when(mDevicePolicyManager.getLastBugReportRequestTime()).thenReturn(-1L);
+        assertThat(mProvider.getLastBugReportRequestTime()).isNull();
+
+        when(mDevicePolicyManager.getLastBugReportRequestTime()).thenReturn(TIMESTAMP.getTime());
+        assertThat(mProvider.getLastBugReportRequestTime()).isEqualTo(TIMESTAMP);
+    }
+
+    @Test
+    public void testGetLastNetworkLogRetrievalTime() {
+        when(mDevicePolicyManager.getLastNetworkLogRetrievalTime()).thenReturn(-1L);
+        assertThat(mProvider.getLastNetworkLogRetrievalTime()).isNull();
+
+        when(mDevicePolicyManager.getLastNetworkLogRetrievalTime()).thenReturn(TIMESTAMP.getTime());
+        assertThat(mProvider.getLastNetworkLogRetrievalTime()).isEqualTo(TIMESTAMP);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java
index 28db647..f6e18c6 100644
--- a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java
@@ -73,7 +73,10 @@
         final List<PreferenceController> controllers = mSettings.getPreferenceControllers(
                 ShadowApplication.getInstance().getApplicationContext());
         assertThat(controllers).isNotNull();
-        assertThat(controllers.size()).isEqualTo(1);
+        assertThat(controllers.size()).isEqualTo(4);
         assertThat(controllers.get(0)).isInstanceOf(InstalledPackagesPreferenceController.class);
+        assertThat(controllers.get(1)).isInstanceOf(NetworkLogsPreferenceController.class);
+        assertThat(controllers.get(2)).isInstanceOf(BugReportsPreferenceController.class);
+        assertThat(controllers.get(3)).isInstanceOf(SecurityLogsPreferenceController.class);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/enterprise/InstalledPackagesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/InstalledPackagesPreferenceControllerTest.java
index fe41faa..79db853 100644
--- a/tests/robotests/src/com/android/settings/enterprise/InstalledPackagesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/InstalledPackagesPreferenceControllerTest.java
@@ -73,7 +73,8 @@
                 return null;
             }}).when(mFeatureFactory.applicationFeatureProvider)
                     .calculateNumberOfInstalledApps(anyObject());
-        when(mContext.getResources().getQuantityString(R.plurals.number_installed_packages, 20, 20))
+        when(mContext.getResources().getQuantityString(
+                R.plurals.enterprise_privacy_number_installed_packages, 20, 20))
                 .thenReturn("20 packages");
         mController.updateState(preference);
         assertThat(preference.getTitle()).isEqualTo("20 packages");
diff --git a/tests/robotests/src/com/android/settings/enterprise/NetworkLogsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/NetworkLogsPreferenceControllerTest.java
new file mode 100644
index 0000000..fe9fcf6
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/enterprise/NetworkLogsPreferenceControllerTest.java
@@ -0,0 +1,54 @@
+/*
+ * 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.enterprise;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import java.util.Date;
+
+import static org.mockito.Mockito.when;
+
+/**
+ * Tests for {@link NetworkLogsPreferenceController}.
+ */
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public final class NetworkLogsPreferenceControllerTest extends
+        AdminActionPreferenceControllerTestBase {
+
+    @Override
+    public void setUp() {
+        super.setUp();
+        mController = new NetworkLogsPreferenceController(mContext);
+    }
+
+    @Override
+    public void setDate(Date date) {
+        when(mFeatureFactory.enterprisePrivacyFeatureProvider.getLastNetworkLogRetrievalTime())
+                .thenReturn(date);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return "network_logs";
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/enterprise/SecurityLogsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/SecurityLogsPreferenceControllerTest.java
new file mode 100644
index 0000000..b260d61
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/enterprise/SecurityLogsPreferenceControllerTest.java
@@ -0,0 +1,54 @@
+/*
+ * 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.enterprise;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import java.util.Date;
+
+import static org.mockito.Mockito.when;
+
+/**
+ * Tests for {@link SecurityLogsPreferenceController}.
+ */
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public final class SecurityLogsPreferenceControllerTest extends
+        AdminActionPreferenceControllerTestBase {
+
+    @Override
+    public void setUp() {
+        super.setUp();
+        mController = new SecurityLogsPreferenceController(mContext);
+    }
+
+    @Override
+    public void setDate(Date date) {
+        when(mFeatureFactory.enterprisePrivacyFeatureProvider.getLastSecurityLogRetrievalTime())
+                .thenReturn(date);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return "security_logs";
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerSettingsTest.java
new file mode 100644
index 0000000..b5fdfea
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerSettingsTest.java
@@ -0,0 +1,69 @@
+/*
+ * 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.gestures;
+
+import android.content.Context;
+import android.provider.SearchIndexableResource;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+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 org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DoubleTapPowerSettingsTest {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+
+    private DoubleTapPowerSettings mSettings;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
+        final FakeFeatureFactory factory =
+                (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+        when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
+        mSettings = new DoubleTapPowerSettings();
+    }
+
+    @Test
+    public void testSearchIndexProvider_shouldIndexResource() {
+        final List<SearchIndexableResource> indexRes =
+                DoubleTapPowerSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+                        ShadowApplication.getInstance().getApplicationContext(),
+                        true /* enabled */);
+
+        assertThat(indexRes).isNotNull();
+        assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenSettingsTest.java
new file mode 100644
index 0000000..c0aac43
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenSettingsTest.java
@@ -0,0 +1,69 @@
+/*
+ * 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.gestures;
+
+import android.content.Context;
+import android.provider.SearchIndexableResource;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+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 org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DoubleTapScreenSettingsTest {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+
+    private DoubleTapScreenSettings mSettings;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
+        final FakeFeatureFactory factory =
+                (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+        when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
+        mSettings = new DoubleTapScreenSettings();
+    }
+
+    @Test
+    public void testSearchIndexProvider_shouldIndexResource() {
+        final List<SearchIndexableResource> indexRes =
+                DoubleTapScreenSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+                        ShadowApplication.getInstance().getApplicationContext(),
+                        true /* enabled */);
+
+        assertThat(indexRes).isNotNull();
+        assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTwistGestureSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTwistGestureSettingsTest.java
new file mode 100644
index 0000000..f2a56d7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTwistGestureSettingsTest.java
@@ -0,0 +1,68 @@
+/*
+ * 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.gestures;
+
+import android.content.Context;
+import android.provider.SearchIndexableResource;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+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 org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DoubleTwistGestureSettingsTest {
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+
+    private DoubleTwistGestureSettings mSettings;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
+        final FakeFeatureFactory factory =
+                (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+        when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
+        mSettings = new DoubleTwistGestureSettings();
+    }
+
+    @Test
+    public void testSearchIndexProvider_shouldIndexResource() {
+        final List<SearchIndexableResource> indexRes =
+                DoubleTwistGestureSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+                        ShadowApplication.getInstance().getApplicationContext(),
+                        true /* enabled */);
+
+        assertThat(indexRes).isNotNull();
+        assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/PickupGestureSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/PickupGestureSettingsTest.java
new file mode 100644
index 0000000..cf08836
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/PickupGestureSettingsTest.java
@@ -0,0 +1,70 @@
+/*
+ * 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.gestures;
+
+import android.content.Context;
+import android.provider.SearchIndexableResource;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+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 org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class PickupGestureSettingsTest {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+
+    private PickupGestureSettings mSettings;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
+        final FakeFeatureFactory factory =
+                (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+        when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
+        mSettings = new PickupGestureSettings();
+    }
+
+    @Test
+    public void testSearchIndexProvider_shouldIndexResource() {
+        final List<SearchIndexableResource> indexRes =
+                PickupGestureSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+                        ShadowApplication.getInstance().getApplicationContext(),
+                        true /* enabled */);
+
+        assertThat(indexRes).isNotNull();
+        assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationSettingsTest.java
index 19185a0..b9f3bac 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationSettingsTest.java
@@ -17,11 +17,13 @@
 package com.android.settings.gestures;
 
 import android.content.Context;
+import android.provider.SearchIndexableResource;
 
 import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.core.PreferenceController;
+import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -30,10 +32,12 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
 
 import java.util.List;
 
 import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -46,6 +50,10 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
+        final FakeFeatureFactory factory =
+                (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+        when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
         mFragment = new SwipeToNotificationSettings();
     }
 
@@ -62,4 +70,14 @@
         assertThat(controllers.isEmpty()).isFalse();
     }
 
+    @Test
+    public void testSearchIndexProvider_shouldIndexResource() {
+        final List<SearchIndexableResource> indexRes =
+                SwipeToNotificationSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+                        ShadowApplication.getInstance().getApplicationContext(),
+                        true /* enabled */);
+
+        assertThat(indexRes).isNotNull();
+        assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/network/MobilePlanPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/MobilePlanPreferenceControllerTest.java
new file mode 100644
index 0000000..5827c8b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/MobilePlanPreferenceControllerTest.java
@@ -0,0 +1,43 @@
+/*
+ * 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.network;
+
+import android.content.Context;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 MobilePlanPreferenceControllerTest {
+
+    @Test
+    public void testNoProvisionStringFormattedCorrectly() {
+        final String operator = "test_operator";
+        final Context context = ShadowApplication.getInstance().getApplicationContext();
+        assertThat(context.getString(R.string.mobile_no_provisioning_url, operator, operator))
+                .contains(operator);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
index 6dd9c75..b30e3ff 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
@@ -16,8 +16,11 @@
 package com.android.settings.network;
 
 import android.content.Context;
+import android.provider.SearchIndexableResource;
+
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
+import com.android.settings.accounts.UserAndAccountDashboardFragment;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.drawer.CategoryKey;
 import org.junit.Before;
@@ -27,8 +30,12 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
 
 import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -43,6 +50,9 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         FakeFeatureFactory.setupForTest(mContext);
+        final FakeFeatureFactory factory =
+                (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+        when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
         mFragment = new NetworkDashboardFragment();
     }
 
@@ -50,4 +60,15 @@
     public void testCategory_isNetwork() {
         assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_NETWORK);
     }
+
+    @Test
+    public void testSearchIndexProvider_shouldIndexResource() {
+        final List<SearchIndexableResource> indexRes =
+                NetworkDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+                        ShadowApplication.getInstance().getApplicationContext(),
+                        true /* enabled */);
+
+        assertThat(indexRes).isNotNull();
+        assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceControllerTest.java
new file mode 100644
index 0000000..994582c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceControllerTest.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.notification;
+
+import android.content.Context;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.accounts.AccountRestrictionHelper;
+import com.android.settingslib.RestrictedPreference;
+
+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.Matchers.anyInt;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doCallRealMethod;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+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 AdjustVolumeRestrictedPreferenceControllerTest {
+
+    @Mock
+    private AccountRestrictionHelper mAccountHelper;
+
+    private Context mContext;
+    private AdjustVolumeRestrictedPreferenceControllerTestable mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowApplication shadowContext = ShadowApplication.getInstance();
+        mContext = spy(shadowContext.getApplicationContext());
+        mController =
+            new AdjustVolumeRestrictedPreferenceControllerTestable(mContext, mAccountHelper);
+    }
+
+    @Test
+    public void updateState_hasBaseRestriction_shouldDisable() {
+        RestrictedPreference preference = mock(RestrictedPreference.class);
+        when(mAccountHelper.hasBaseUserRestriction(
+            eq(UserManager.DISALLOW_ADJUST_VOLUME), anyInt())).thenReturn(true);
+
+        mController.updateState(preference);
+
+        assertThat(preference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void updateState_NoBaseRestriction_shouldCheckRestriction() {
+        RestrictedPreference preference = spy(new RestrictedPreference(mContext));
+
+        when(mContext.getSystemService(Context.DEVICE_POLICY_SERVICE)).thenReturn(null);
+        when(mAccountHelper.hasBaseUserRestriction(
+            eq(UserManager.DISALLOW_ADJUST_VOLUME), anyInt())).thenReturn(false);
+        doCallRealMethod().when(mAccountHelper).enforceRestrictionOnPreference(
+            eq(preference), eq(UserManager.DISALLOW_ADJUST_VOLUME), anyInt());
+
+        mController.updateState(preference);
+
+        verify(preference).checkRestrictionAndSetDisabled(
+            eq(UserManager.DISALLOW_ADJUST_VOLUME), anyInt());
+    }
+
+    private class AdjustVolumeRestrictedPreferenceControllerTestable extends
+        AdjustVolumeRestrictedPreferenceController {
+        AdjustVolumeRestrictedPreferenceControllerTestable(Context context,
+            AccountRestrictionHelper helper) {
+            super(context, helper);
+        }
+
+        @Override
+        public String getPreferenceKey() {
+            return null;
+        }
+
+        @Override
+        public boolean handlePreferenceTreeClick(Preference preference) {
+            return false;
+        }
+
+        @Override
+        public boolean isAvailable() {
+            return true;
+        }
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/AlarmRingtonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/AlarmRingtonePreferenceControllerTest.java
new file mode 100644
index 0000000..4ac9179
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/AlarmRingtonePreferenceControllerTest.java
@@ -0,0 +1,53 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.RingtoneManager;
+
+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.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 AlarmRingtonePreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+    private AlarmRingtonePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mController = new AlarmRingtonePreferenceController(mContext);
+    }
+
+    @Test
+    public void getRingtoneType_shouldReturnAlarm() {
+        assertThat(mController.getRingtoneType()).isEqualTo(RingtoneManager.TYPE_ALARM);
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/AlarmVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/AlarmVolumePreferenceControllerTest.java
new file mode 100644
index 0000000..a08ec17
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/AlarmVolumePreferenceControllerTest.java
@@ -0,0 +1,71 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.AudioManager;
+
+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.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AlarmVolumePreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private AudioHelper mHelper;
+
+    private AlarmVolumePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mController = new AlarmVolumePreferenceController(mContext, null, null, mHelper);
+    }
+
+    @Test
+    public void isAvailable_singleVolume_shouldReturnFalse() {
+        when(mHelper.isSingleVolume()).thenReturn(true);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_notSingleVolume_shouldReturnTrue() {
+        when(mHelper.isSingleVolume()).thenReturn(false);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void getAudioStream_shouldReturnAlarm() {
+        assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_ALARM);
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/CastPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/CastPreferenceControllerTest.java
new file mode 100644
index 0000000..5fe4c42
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/CastPreferenceControllerTest.java
@@ -0,0 +1,83 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.telephony.TelephonyManager;
+
+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.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class CastPreferenceControllerTest {
+
+    @Mock
+    private TelephonyManager mTelephonyManager;
+
+    private Context mContext;
+    private CastPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowApplication shadowContext = ShadowApplication.getInstance();
+        shadowContext.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
+        mContext = shadowContext.getApplicationContext();
+        mController = new CastPreferenceController(mContext);
+    }
+
+    @Test
+    public void isAlwaysAvailable() {
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void updateNonIndexableKeys_voiceCapable_shouldNotUpdate() {
+        when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+        final List<String> keys = new ArrayList<>();
+
+        mController.updateNonIndexableKeys(keys);
+
+        assertThat(keys).isEmpty();
+    }
+
+    @Test
+    public void updateNonIndexableKeys_voiceIncapable_shouldUpdate() {
+        when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
+        final List<String> keys = new ArrayList<>();
+
+        mController.updateNonIndexableKeys(keys);
+
+        assertThat(keys).isNotEmpty();
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/EmergencyBroadcastPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/EmergencyBroadcastPreferenceControllerTest.java
new file mode 100644
index 0000000..98951d1
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/EmergencyBroadcastPreferenceControllerTest.java
@@ -0,0 +1,124 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.UserManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.accounts.AccountRestrictionHelper;
+import com.android.settingslib.RestrictedPreference;
+
+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;
+import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.eq;
+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 EmergencyBroadcastPreferenceControllerTest {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+    @Mock
+    private AccountRestrictionHelper mAccountHelper;
+    @Mock
+    private PackageManager mPackageManager;
+    @Mock
+    private UserManager mUserManager;
+    @Mock
+    private RestrictedPreference mPreference;
+
+    private EmergencyBroadcastPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        mController = new EmergencyBroadcastPreferenceController(mContext, mAccountHelper);
+    }
+
+    @Test
+    public void updateState_shouldCheckRestriction() {
+        mController.updateState(mPreference);
+
+        verify(mPreference).checkRestrictionAndSetDisabled(anyString());
+    }
+
+    @Test
+    public void isAvailable_notAdminUser_shouldReturnFalse() {
+        when(mUserManager.isAdminUser()).thenReturn(false);
+        when(mContext.getResources().getBoolean(
+            com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(true);
+        when(mPackageManager.getApplicationEnabledSetting(anyString()))
+            .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
+        when(mAccountHelper.hasBaseUserRestriction(anyString(), anyInt())).thenReturn(false);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_hasConfigCellBroadcastRestriction_shouldReturnFalse() {
+        when(mUserManager.isAdminUser()).thenReturn(true);
+        when(mContext.getResources().getBoolean(
+            com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(true);
+        when(mPackageManager.getApplicationEnabledSetting(anyString()))
+            .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
+        when(mAccountHelper.hasBaseUserRestriction(
+            eq(UserManager.DISALLOW_CONFIG_CELL_BROADCASTS), anyInt())).thenReturn(true);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_cellBroadcastAppLinkDisabled_shouldReturnFalse() {
+        when(mUserManager.isAdminUser()).thenReturn(true);
+        when(mContext.getResources().getBoolean(
+            com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(false);
+        when(mPackageManager.getApplicationEnabledSetting(anyString()))
+            .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
+        when(mAccountHelper.hasBaseUserRestriction(anyString(), anyInt())).thenReturn(false);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_cellBroadcastReceiverDisabled_shouldReturnFalse() {
+        when(mUserManager.isAdminUser()).thenReturn(true);
+        when(mContext.getResources().getBoolean(
+            com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(true);
+        when(mPackageManager.getApplicationEnabledSetting(anyString()))
+            .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
+        when(mAccountHelper.hasBaseUserRestriction(anyString(), anyInt())).thenReturn(false);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
new file mode 100644
index 0000000..9944379
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
@@ -0,0 +1,60 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.AudioManager;
+
+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.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class MediaVolumePreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+
+    private MediaVolumePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mController = new MediaVolumePreferenceController(mContext, null, null);
+    }
+
+    @Test
+    public void isAlwaysAvailable() {
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void getAudioStream_shouldReturnMusic() {
+        assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_MUSIC);
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationRingtonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationRingtonePreferenceControllerTest.java
new file mode 100644
index 0000000..841367f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/NotificationRingtonePreferenceControllerTest.java
@@ -0,0 +1,53 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.RingtoneManager;
+
+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.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 NotificationRingtonePreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+    private NotificationRingtonePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mController = new NotificationRingtonePreferenceController(mContext);
+    }
+
+    @Test
+    public void getRingtoneType_shouldReturnNotification() {
+        assertThat(mController.getRingtoneType()).isEqualTo(RingtoneManager.TYPE_NOTIFICATION);
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationVolumePreferenceControllerTest.java
new file mode 100644
index 0000000..e6d8a41
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/NotificationVolumePreferenceControllerTest.java
@@ -0,0 +1,92 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.AudioManager;
+import android.os.Vibrator;
+import android.telephony.TelephonyManager;
+
+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.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class NotificationVolumePreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private AudioHelper mHelper;
+    @Mock
+    private TelephonyManager mTelephonyManager;
+    @Mock
+    private AudioManager mAudioManager;
+    @Mock
+    private Vibrator mVibrator;
+
+    private NotificationVolumePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+        when(mContext.getSystemService(Context.AUDIO_SERVICE)).thenReturn(mAudioManager);
+        when(mContext.getSystemService(Context.VIBRATOR_SERVICE)).thenReturn(mVibrator);
+        mController = new NotificationVolumePreferenceController(mContext, null, null, mHelper);
+    }
+
+    @Test
+    public void isAvailable_singleVolume_shouldReturnFalse() {
+        when(mHelper.isSingleVolume()).thenReturn(true);
+        when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_voiceCapable_shouldReturnFalse() {
+        when(mHelper.isSingleVolume()).thenReturn(false);
+        when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_notSingleVolume_notVoiceCapable_shouldReturnTrue() {
+        when(mHelper.isSingleVolume()).thenReturn(false);
+        when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void getAudioStream_shouldReturnNotification() {
+        assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_NOTIFICATION);
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/PhoneRingtonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/PhoneRingtonePreferenceControllerTest.java
new file mode 100644
index 0000000..85e74b0
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/PhoneRingtonePreferenceControllerTest.java
@@ -0,0 +1,75 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.RingtoneManager;
+import android.telephony.TelephonyManager;
+
+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.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.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class PhoneRingtonePreferenceControllerTest {
+
+    @Mock
+    private TelephonyManager mTelephonyManager;
+
+    private Context mContext;
+    private PhoneRingtonePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowApplication shadowContext = ShadowApplication.getInstance();
+        shadowContext.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
+        mContext = shadowContext.getApplicationContext();
+        mController = new PhoneRingtonePreferenceController(mContext);
+    }
+
+    @Test
+    public void isAvailable_notVoiceCapable_shouldReturnFalse() {
+        when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_VoiceCapable_shouldReturnTrue() {
+        when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void getRingtoneType_shouldReturnRingtone() {
+        assertThat(mController.getRingtoneType()).isEqualTo(RingtoneManager.TYPE_RINGTONE);
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java
new file mode 100644
index 0000000..4780e5c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java
@@ -0,0 +1,103 @@
+/*
+ * 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.notification;
+
+import android.app.NotificationManager;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.media.AudioManager;
+import android.os.Vibrator;
+import android.telephony.TelephonyManager;
+
+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.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.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class RingVolumePreferenceControllerTest {
+
+    @Mock
+    private AudioHelper mHelper;
+    @Mock
+    private TelephonyManager mTelephonyManager;
+    @Mock
+    private AudioManager mAudioManager;
+    @Mock
+    private Vibrator mVibrator;
+    @Mock
+    private NotificationManager mNotificationManager;
+    @Mock
+    private ComponentName mSuppressor;
+
+    private Context mContext;
+    private RingVolumePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowApplication shadowContext = ShadowApplication.getInstance();
+        shadowContext.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
+        shadowContext.setSystemService(Context.AUDIO_SERVICE, mAudioManager);
+        shadowContext.setSystemService(Context.VIBRATOR_SERVICE, mVibrator);
+        shadowContext.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
+        mContext = shadowContext.getApplicationContext();
+        when(mNotificationManager.getEffectsSuppressor()).thenReturn(mSuppressor);
+        mController = new RingVolumePreferenceController(mContext, null, null, mHelper);
+    }
+
+    @Test
+    public void isAvailable_singleVolume_shouldReturnFalse() {
+        when(mHelper.isSingleVolume()).thenReturn(true);
+        when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_notVoiceCapable_shouldReturnFalse() {
+        when(mHelper.isSingleVolume()).thenReturn(false);
+        when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_notSingleVolume_VoiceCapable_shouldReturnTrue() {
+        when(mHelper.isSingleVolume()).thenReturn(false);
+        when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void getAudioStream_shouldReturnRing() {
+        assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_RING);
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/RingtonePreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/notification/RingtonePreferenceControllerBaseTest.java
new file mode 100644
index 0000000..d680c38
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/RingtonePreferenceControllerBaseTest.java
@@ -0,0 +1,85 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.support.v7.preference.Preference;
+import android.media.RingtoneManager;
+
+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.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class RingtonePreferenceControllerBaseTest {
+
+    @Mock
+    private Context mContext;
+
+    private RingtonePreferenceControllerBase mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mController = new RingtonePreferenceControllerBaseTestable(mContext);
+    }
+
+    @Test
+    public void isAlwaysAvailable() {
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+
+    @Test
+    public void updateState_shouldSetSummary() {
+        Preference preference = mock(Preference.class);
+
+        mController.updateState(preference);
+
+        verify(preference).setSummary(anyString());
+    }
+
+    private class RingtonePreferenceControllerBaseTestable extends
+        RingtonePreferenceControllerBase {
+        RingtonePreferenceControllerBaseTestable(Context context) {
+            super(context);
+        }
+
+        @Override
+        public String getPreferenceKey() {
+            return null;
+        }
+
+        @Override
+        public int getRingtoneType() {
+            return RingtoneManager.TYPE_RINGTONE;
+        }
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/VibrateWhenRingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/VibrateWhenRingPreferenceControllerTest.java
new file mode 100644
index 0000000..3c3f212
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/VibrateWhenRingPreferenceControllerTest.java
@@ -0,0 +1,109 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+import android.support.v7.preference.TwoStatePreference;
+import android.telephony.TelephonyManager;
+
+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.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import static android.provider.Settings.System.VIBRATE_WHEN_RINGING;
+import static org.mockito.Matchers.any;
+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 VibrateWhenRingPreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private PreferenceScreen mScreen;
+    @Mock
+    private TelephonyManager mTelephonyManager;
+
+    private VibrateWhenRingPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+        mController = new VibrateWhenRingPreferenceController(mContext);
+    }
+
+    @Test
+    public void display_voiceCapable_shouldDisplay() {
+        when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+        when(mScreen.findPreference(mController.getPreferenceKey()))
+            .thenReturn(mock(Preference.class));
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen, never()).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void display_notVoiceCapable_shouldNotDisplay() {
+        when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
+        when(mScreen.findPreference(mController.getPreferenceKey()))
+                .thenReturn(mock(Preference.class));
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void updateState_settingIsOn_preferenceShouldBeChecked() {
+        final TwoStatePreference preference = mock(TwoStatePreference.class);
+        final Context context = ShadowApplication.getInstance().getApplicationContext();
+        Settings.System.putInt(context.getContentResolver(), VIBRATE_WHEN_RINGING, 1);
+
+        mController = new VibrateWhenRingPreferenceController(context);
+        mController.updateState(preference);
+
+        verify(preference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_settingIsOff_preferenceShouldNotBeChecked() {
+        final TwoStatePreference preference = mock(TwoStatePreference.class);
+        final Context context = ShadowApplication.getInstance().getApplicationContext();
+        Settings.System.putInt(context.getContentResolver(), VIBRATE_WHEN_RINGING, 0);
+
+        mController = new VibrateWhenRingPreferenceController(context);
+        mController.updateState(preference);
+
+        verify(preference).setChecked(false);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceControllerTest.java
new file mode 100644
index 0000000..581ed47
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceControllerTest.java
@@ -0,0 +1,152 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.preference.SeekBarVolumizer;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+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.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyString;
+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 VolumeSeekBarPreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private PreferenceScreen mScreen;
+    @Mock
+    private VolumeSeekBarPreference mPreference;
+    @Mock
+    private VolumeSeekBarPreference.Callback mCallback;
+
+    private VolumeSeekBarPreferenceControllerTestable mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        when(mScreen.findPreference(anyString())).thenReturn(mPreference);
+        mController =
+            new VolumeSeekBarPreferenceControllerTestable(mContext, mCallback);
+    }
+
+    @Test
+    public void displayPreference_available_shouldUpdatePreference() {
+        mController.displayPreference(mScreen);
+
+        verify(mPreference).setCallback(mCallback);
+        verify(mPreference).setStream(mController.AUDIO_STREAM);
+        verify(mPreference).setMuteIcon(mController.MUTE_ICON);
+    }
+
+    @Test
+    public void displayPreference_notAvailable_shouldNotUpdatePreference() {
+        mController =
+            new VolumeSeekBarPreferenceControllerTestable(mContext, mCallback, false);
+
+        mController.displayPreference(mScreen);
+
+        verify(mPreference, never()).setCallback(any(VolumeSeekBarPreference.Callback.class));
+        verify(mPreference, never()).setStream(anyInt());
+        verify(mPreference, never()).setMuteIcon(anyInt());
+    }
+
+    @Test
+    public void onResume_shouldResumePreference() {
+        mController.displayPreference(mScreen);
+
+        mController.onResume();
+
+        verify(mPreference).onActivityResume();
+    }
+
+    @Test
+    public void onPause_shouldPausePreference() {
+        mController.displayPreference(mScreen);
+
+        mController.onPause();
+
+        verify(mPreference).onActivityPause();
+    }
+
+    private class VolumeSeekBarPreferenceControllerTestable extends
+        VolumeSeekBarPreferenceController {
+
+        private final static int AUDIO_STREAM = 1;
+        private final static int MUTE_ICON = 2;
+
+        private boolean mAvailable;
+
+        VolumeSeekBarPreferenceControllerTestable(Context context,
+            VolumeSeekBarPreference.Callback callback) {
+            this(context, callback, true);
+        }
+
+        VolumeSeekBarPreferenceControllerTestable(Context context,
+            VolumeSeekBarPreference.Callback callback, boolean available) {
+            super(context, callback, null);
+            mAvailable = available;
+        }
+
+        @Override
+        public String getPreferenceKey() {
+            return null;
+        }
+
+        @Override
+        public boolean handlePreferenceTreeClick(Preference preference) {
+            return false;
+        }
+
+        @Override
+        public boolean isAvailable() {
+            return mAvailable;
+        }
+
+        @Override
+        public int getAudioStream() {
+            return AUDIO_STREAM;
+        }
+
+        @Override
+        public int getMuteIcon() {
+            return MUTE_ICON;
+        }
+
+        private void setAvailable(boolean available) {
+
+        }
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
new file mode 100644
index 0000000..155e6ea
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
@@ -0,0 +1,53 @@
+/*
+ * 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.notification;
+
+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.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 ZenModePreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+
+    private ZenModePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mController = new ZenModePreferenceController(mContext);
+    }
+
+    @Test
+    public void isAlwaysAvailable() {
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java b/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
index 4c11008..573f5d8 100644
--- a/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
@@ -18,6 +18,7 @@
 
 import android.content.ComponentName;
 import android.content.Intent;
+import android.os.Bundle;
 import android.provider.Settings;
 
 import com.android.settings.ChooseLockGeneric;
@@ -59,7 +60,9 @@
     public void testChooseLockGeneric() {
         Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
                 Settings.Global.DEVICE_PROVISIONED, 1);
-        SetNewPasswordActivity activity = Robolectric.setupActivity(SetNewPasswordActivity.class);
+        SetNewPasswordActivity activity =
+                Robolectric.buildActivity(SetNewPasswordActivity.class).get();
+        activity.launchChooseLock(new Bundle());
         ShadowActivity shadowActivity = shadowOf(activity);
         Intent intent = shadowActivity.getNextStartedActivityForResult().intent;
 
@@ -71,7 +74,9 @@
     public void testSetupChooseLockGeneric() {
         Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
                 Settings.Global.DEVICE_PROVISIONED, 0);
-        SetNewPasswordActivity activity = Robolectric.setupActivity(SetNewPasswordActivity.class);
+        SetNewPasswordActivity activity =
+                Robolectric.buildActivity(SetNewPasswordActivity.class).get();
+        activity.launchChooseLock(new Bundle());
         ShadowActivity shadowActivity = shadowOf(activity);
         Intent intent = shadowActivity.getNextStartedActivityForResult().intent;
 
diff --git a/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java b/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java
index 2921b30..ab01360 100644
--- a/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java
@@ -20,10 +20,11 @@
 import android.content.ComponentName;
 import android.content.Intent;
 import android.content.pm.PackageManager;
-import android.hardware.fingerprint.FingerprintManager;
 import android.os.Bundle;
+
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -38,6 +39,7 @@
 import static com.android.settings.ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE;
 import static com.android.settings.ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT;
 import static com.android.settings.ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE;
+import static com.google.common.truth.Truth.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Matchers.any;
@@ -45,17 +47,18 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+
 /**
  * Tests for {@link SetNewPasswordController}.
  */
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public final class SetNewPasswordControllerTest {
-    private static final int CURRENT_UID = 101;
+    private static final int CURRENT_USER_ID = 101;
     private static final long FINGERPRINT_CHALLENGE = -9876512313131L;
 
     @Mock PackageManager mPackageManager;
-    @Mock FingerprintManager mFingerprintManager;
+    @Mock IFingerprintManager mFingerprintManager;
     @Mock DevicePolicyManager mDevicePolicyManager;
 
     @Mock private SetNewPasswordController.Ui mUi;
@@ -64,9 +67,8 @@
     @Before
     public void setUp()  {
         MockitoAnnotations.initMocks(this);
-
         mSetNewPasswordController = new SetNewPasswordController(
-                CURRENT_UID, mPackageManager, mFingerprintManager, mDevicePolicyManager, mUi);
+                CURRENT_USER_ID, mPackageManager, mFingerprintManager, mDevicePolicyManager, mUi);
 
         when(mFingerprintManager.preEnroll()).thenReturn(FINGERPRINT_CHALLENGE);
         when(mPackageManager.hasSystemFeature(eq(FEATURE_FINGERPRINT))).thenReturn(true);
@@ -77,7 +79,7 @@
         // GIVEN the device supports fingerprint.
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         // GIVEN there are no enrolled fingerprints.
-        when(mFingerprintManager.hasEnrolledFingerprints()).thenReturn(false);
+        when(mFingerprintManager.hasEnrolledFingerprints(CURRENT_USER_ID)).thenReturn(false);
         // GIVEN DPC does not disallow fingerprint for keyguard usage.
         when(mDevicePolicyManager.getKeyguardDisabledFeatures(any(ComponentName.class)))
                 .thenReturn(0);
@@ -101,7 +103,9 @@
         mSetNewPasswordController.dispatchSetNewPasswordIntent();
 
         // THEN the choose lock activity is launched without fingerprint extras.
-        verify(mUi).launchChooseLock(null);
+        ArgumentCaptor<Bundle> bundleArgumentCaptor = ArgumentCaptor.forClass(Bundle.class);
+        verify(mUi).launchChooseLock(bundleArgumentCaptor.capture());
+        assertBundleContainsUserIdOnly(bundleArgumentCaptor.getValue());
     }
 
     @Test
@@ -109,7 +113,7 @@
         // GIVEN the device does NOT support fingerprint.
         when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
         // GIVEN there are no enrolled fingerprints.
-        when(mFingerprintManager.hasEnrolledFingerprints()).thenReturn(false);
+        when(mFingerprintManager.hasEnrolledFingerprints(CURRENT_USER_ID)).thenReturn(false);
         // GIVEN DPC does not disallow fingerprint for keyguard usage.
         when(mDevicePolicyManager.getKeyguardDisabledFeatures(any(ComponentName.class)))
                 .thenReturn(0);
@@ -117,8 +121,10 @@
         // WHEN the controller dispatches a set new password intent.
         mSetNewPasswordController.dispatchSetNewPasswordIntent();
 
-        // THEN the choose lock activity is launched without fingerprint extras.
-        verify(mUi).launchChooseLock(null);
+        // THEN the choose lock activity is launched without a bundle contains user id only.
+        ArgumentCaptor<Bundle> bundleArgumentCaptor = ArgumentCaptor.forClass(Bundle.class);
+        verify(mUi).launchChooseLock(bundleArgumentCaptor.capture());
+        assertBundleContainsUserIdOnly(bundleArgumentCaptor.getValue());
     }
 
     @Test
@@ -126,7 +132,7 @@
         // GIVEN the device supports fingerprint.
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         // GIVEN there are no enrolled fingerprints.
-        when(mFingerprintManager.hasEnrolledFingerprints()).thenReturn(true);
+        when(mFingerprintManager.hasEnrolledFingerprints(CURRENT_USER_ID)).thenReturn(true);
         // GIVEN DPC does not disallow fingerprint for keyguard usage.
         when(mDevicePolicyManager.getKeyguardDisabledFeatures(any(ComponentName.class)))
                 .thenReturn(0);
@@ -134,8 +140,10 @@
         // WHEN the controller dispatches a set new password intent.
         mSetNewPasswordController.dispatchSetNewPasswordIntent();
 
-        // THEN the choose lock activity is launched without fingerprint extras.
-        verify(mUi).launchChooseLock(null);
+        // THEN the choose lock activity is launched without a bundle contains user id only.
+        ArgumentCaptor<Bundle> bundleArgumentCaptor = ArgumentCaptor.forClass(Bundle.class);
+        verify(mUi).launchChooseLock(bundleArgumentCaptor.capture());
+        assertBundleContainsUserIdOnly(bundleArgumentCaptor.getValue());
     }
 
     @Test
@@ -143,7 +151,7 @@
         // GIVEN the device supports fingerprint.
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         // GIVEN there is an enrolled fingerprint.
-        when(mFingerprintManager.hasEnrolledFingerprints()).thenReturn(true);
+        when(mFingerprintManager.hasEnrolledFingerprints(CURRENT_USER_ID)).thenReturn(true);
         // GIVEN DPC disallows fingerprint for keyguard usage.
         when(mDevicePolicyManager.getKeyguardDisabledFeatures(any(ComponentName.class)))
                 .thenReturn(DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT);
@@ -151,8 +159,10 @@
         // WHEN the controller dispatches a set new password intent.
         mSetNewPasswordController.dispatchSetNewPasswordIntent();
 
-        // THEN the choose lock activity is launched without fingerprint extras.
-        verify(mUi).launchChooseLock(null);
+        // THEN the choose lock activity is launched without a bundle contains user id only.
+        ArgumentCaptor<Bundle> bundleArgumentCaptor = ArgumentCaptor.forClass(Bundle.class);
+        verify(mUi).launchChooseLock(bundleArgumentCaptor.capture());
+        assertBundleContainsUserIdOnly(bundleArgumentCaptor.getValue());
     }
 
     private void compareFingerprintExtras(Bundle actualBundle) {
@@ -175,7 +185,12 @@
                 actualBundle.getBoolean(EXTRA_KEY_FOR_FINGERPRINT));
         assertEquals(
                 "User id must be equaled to the input one.",
-                CURRENT_UID,
+                CURRENT_USER_ID,
                 actualBundle.getInt(Intent.EXTRA_USER_ID));
     }
+
+    private void assertBundleContainsUserIdOnly(Bundle actualBundle) {
+        assertThat(actualBundle.size()).isEqualTo(1);
+        assertThat(actualBundle.getInt(Intent.EXTRA_USER_ID)).isEqualTo(CURRENT_USER_ID);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java b/tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java
index a744bb7..1df7b1f 100644
--- a/tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java
@@ -22,20 +22,23 @@
 import android.content.Intent;
 import android.database.MatrixCursor;
 import android.graphics.drawable.Drawable;
+
+import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.SubSettings;
 import com.android.settings.TestConfig;
+import com.android.settings.gestures.GestureSettings;
 import com.android.settings.search2.DatabaseResultLoader;
 import com.android.settings.search2.IntentPayload;
 import com.android.settings.search2.ResultPayload;
 import com.android.settings.search2.ResultPayload.PayloadType;
 import com.android.settings.search2.SearchResult;
-import com.android.settings.R;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-
-import org.robolectric.annotation.Config;
 import org.robolectric.Robolectric;
+import org.robolectric.annotation.Config;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -47,7 +50,11 @@
 public class DatabaseResultLoaderTest {
     private DatabaseResultLoader mLoader;
 
-    private static final String[] TITLES = new String[] {"title1", "title2", "title3"};
+    private static final String[] COLUMNS = new String[]{"rank", "title", "summary_on",
+            "summary off", "entries", "keywords", "class name", "screen title", "icon",
+            "intent action", "target package", "target class", "enabled", "key", "user id"};
+
+    private static final String[] TITLES = new String[]{"title1", "title2", "title3"};
     private static final String SUMMARY = "SUMMARY";
     private static final int EXAMPLES = 3;
     private static final Intent mIntent = new Intent("com.android.settings");
@@ -108,6 +115,16 @@
     }
 
     @Test
+    public void testParseCursor_NoIcon() {
+        List<SearchResult> results = mLoader.parseCursorForSearch(
+                getDummyCursor(false /* hasIcon */));
+        for (int i = 0; i < EXAMPLES; i++) {
+            Drawable resultDrawable = results.get(i).icon;
+            assertThat(resultDrawable).isNull();
+        }
+    }
+
+    @Test
     public void testParseCursor_MatchesPayloadType() {
         List<SearchResult> results = mLoader.parseCursorForSearch(getDummyCursor());
         ResultPayload payload;
@@ -118,6 +135,33 @@
     }
 
     @Test
+    public void testParseCursor_MatchesIntentForSubSettings() {
+        MatrixCursor cursor = new MatrixCursor(COLUMNS);
+        final String BLANK = "";
+        cursor.addRow(new Object[]{
+                0,       // rank
+                TITLES[0],
+                SUMMARY,
+                SUMMARY, // summary off
+                BLANK,   // entries
+                BLANK,   // Keywords
+                GestureSettings.class.getName(),
+                BLANK,   // screen title
+                null,    // icon
+                BLANK,   // action
+                null,    // target package
+                BLANK,   // target class
+                BLANK,   // enabled
+                BLANK,   // key
+                BLANK    // user id
+        });
+        List<SearchResult> results = mLoader.parseCursorForSearch(cursor);
+        IntentPayload payload = (IntentPayload) results.get(0).payload;
+        Intent intent = payload.intent;
+        assertThat(intent.getComponent().getClassName()).isEqualTo(SubSettings.class.getName());
+    }
+
+    @Test
     public void testParseCursor_MatchesIntentPayload() {
         List<SearchResult> results = mLoader.parseCursorForSearch(getDummyCursor());
         IntentPayload payload;
@@ -129,14 +173,15 @@
     }
 
     private MatrixCursor getDummyCursor() {
-        String[] columns = new String[] {"rank", "title",  "summary_on", "summary off", "entries",
-                "keywords", "class name", "screen title", "icon", "intent action",
-                "target package", "target class", "enabled", "key", "user id"};
-        MatrixCursor cursor = new MatrixCursor(columns);
+        return getDummyCursor(true /* hasIcon */);
+    }
+
+    private MatrixCursor getDummyCursor(boolean hasIcon) {
+        MatrixCursor cursor = new MatrixCursor(COLUMNS);
         final String BLANK = "";
 
         for (int i = 0; i < EXAMPLES; i++) {
-            ArrayList<String> item = new ArrayList<>(columns.length);
+            ArrayList<String> item = new ArrayList<>(COLUMNS.length);
             item.add(Integer.toString(i));
             item.add(TITLES[i]);
             item.add(SUMMARY);
@@ -145,7 +190,7 @@
             item.add(BLANK); // keywords
             item.add(BLANK); // classname
             item.add(BLANK); // screen title
-            item.add(Integer.toString(mIcon));
+            item.add(hasIcon ? Integer.toString(mIcon) : null);
             item.add(mIntent.getAction());
             item.add(BLANK); // target package
             item.add(BLANK); // target class
diff --git a/tests/robotests/src/com/android/settings/search/IntentSearchViewHolderTest.java b/tests/robotests/src/com/android/settings/search/IntentSearchViewHolderTest.java
index 2534c0b..805c7cb 100644
--- a/tests/robotests/src/com/android/settings/search/IntentSearchViewHolderTest.java
+++ b/tests/robotests/src/com/android/settings/search/IntentSearchViewHolderTest.java
@@ -17,40 +17,50 @@
 
 package com.android.settings.search;
 
+import android.app.Fragment;
 import android.content.Context;
+import android.content.Intent;
 import android.graphics.drawable.Drawable;
 import android.view.LayoutInflater;
 import android.view.View;
+
 import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.search2.IntentPayload;
 import com.android.settings.search2.IntentSearchViewHolder;
-import com.android.settings.search2.SearchResult.Builder;
 import com.android.settings.search2.SearchResult;
+import com.android.settings.search2.SearchResult.Builder;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
 
 import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.verify;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class IntentSearchViewHolderTest {
-    private IntentSearchViewHolder mHolder;
-    private static Drawable mIcon;
 
     private static final String TITLE = "title";
     private static final String SUMMARY = "summary";
 
+    @Mock
+    private Fragment mFragment;
+    private IntentSearchViewHolder mHolder;
+    private Drawable mIcon;
 
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
         final Context context = ShadowApplication.getInstance().getApplicationContext();
         View view = LayoutInflater.from(context).inflate(R.layout.search_intent_item, null);
         mHolder = new IntentSearchViewHolder(view);
@@ -68,11 +78,13 @@
     @Test
     public void testBindViewElements_AllUpdated() {
         SearchResult result = getSearchResult();
-        mHolder.onBind(result);
+        mHolder.onBind(mFragment, result);
+        mHolder.itemView.performClick();
 
         assertThat(mHolder.titleView.getText()).isEqualTo(TITLE);
         assertThat(mHolder.summaryView.getText()).isEqualTo(SUMMARY);
         assertThat(mHolder.iconView.getDrawable()).isEqualTo(mIcon);
+        verify(mFragment).startActivity(any(Intent.class));
     }
 
     private SearchResult getSearchResult() {
@@ -81,7 +93,7 @@
                 .addSummary(SUMMARY)
                 .addRank(1)
                 .addPayload(new IntentPayload(null))
-                .addBreadcrumbs(new ArrayList<String>())
+                .addBreadcrumbs(new ArrayList<>())
                 .addIcon(mIcon);
 
         return builder.build();
diff --git a/tests/robotests/src/com/android/settings/search/SearchAdapterTest.java b/tests/robotests/src/com/android/settings/search/SearchAdapterTest.java
index b3da4eb..0756d3f 100644
--- a/tests/robotests/src/com/android/settings/search/SearchAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchAdapterTest.java
@@ -20,20 +20,28 @@
 import android.app.Activity;
 import android.content.Context;
 import android.graphics.drawable.Drawable;
+
+import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.search2.*;
+import com.android.settings.search2.DatabaseResultLoader;
+import com.android.settings.search2.IntentPayload;
+import com.android.settings.search2.ResultPayload;
+import com.android.settings.search2.SearchFragment;
+import com.android.settings.search2.SearchResult;
 import com.android.settings.search2.SearchResult.Builder;
-import com.android.settings.R;
-
-import java.util.ArrayList;
+import com.android.settings.search2.SearchResultsAdapter;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-
-import org.robolectric.annotation.Config;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
+import org.robolectric.annotation.Config;
+
+import java.util.ArrayList;
+import java.util.List;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -41,14 +49,17 @@
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class SearchAdapterTest {
 
+    @Mock
+    private SearchFragment mFragment;
     private SearchResultsAdapter mAdapter;
     private Context mContext;
     private String mLoaderClassName;
 
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
         mContext = Robolectric.buildActivity(Activity.class).get();
-        mAdapter = new SearchResultsAdapter();
+        mAdapter = new SearchResultsAdapter(mFragment);
         mLoaderClassName = DatabaseResultLoader.class.getName();
     }
 
@@ -57,8 +68,7 @@
         ArrayList<String> breadcrumbs = new ArrayList<>();
         final Drawable icon = mContext.getDrawable(R.drawable.ic_search_history);
         final ResultPayload payload = new IntentPayload(null);
-
-        SearchResult.Builder builder = new Builder();
+        final SearchResult.Builder builder = new Builder();
         builder.addTitle("title")
                 .addSummary("summary")
                 .addRank(1)
@@ -78,7 +88,7 @@
 
     @Test
     public void testNoResultsAdded_EmptyListReturned() {
-        ArrayList<SearchResult> updatedResults = mAdapter.getSearchResults();
+        List<SearchResult> updatedResults = mAdapter.getSearchResults();
         assertThat(updatedResults).isEmpty();
     }
 
@@ -88,7 +98,7 @@
         ArrayList<SearchResult> intentResults = getIntentSampleResults();
         mAdapter.mergeResults(intentResults, mLoaderClassName);
 
-        ArrayList<SearchResult> updatedResults = mAdapter.getSearchResults();
+        List<SearchResult> updatedResults = mAdapter.getSearchResults();
         assertThat(updatedResults).containsAllIn(intentResults);
     }
 
@@ -98,7 +108,7 @@
         mAdapter.mergeResults(intentResults, mLoaderClassName);
         mAdapter.mergeResults(intentResults, mLoaderClassName);
 
-        ArrayList<SearchResult> updatedResults = mAdapter.getSearchResults();
+        List<SearchResult> updatedResults = mAdapter.getSearchResults();
         assertThat(updatedResults).containsAllIn(intentResults);
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
index 06f4322..d9e2dd6 100644
--- a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
@@ -18,24 +18,35 @@
 package com.android.settings.search;
 
 import android.app.Activity;
+import android.content.Context;
+import android.content.res.Configuration;
 import android.view.Menu;
+
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search2.DatabaseIndexingManager;
 import com.android.settings.search2.SearchFeatureProviderImpl;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settingslib.drawer.DashboardCategory;
 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.Robolectric;
 import org.robolectric.annotation.Config;
 
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyInt;
 import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -50,19 +61,36 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mActivity = Robolectric.buildActivity(Activity.class).create().visible().get();
-        mProvider = (SearchFeatureProviderImpl) FeatureFactory.getFactory(mActivity)
-                .getSearchFeatureProvider(mActivity);
+        mProvider = new SearchFeatureProviderImpl(mActivity);
     }
 
     @Test
     public void testPassNull_NoError() {
-        mProvider.setUpSearchMenu(null,null);
+        mProvider.setUpSearchMenu(null, null);
     }
 
     @Test
     public void testSetUpMenu_HasItemAdded() {
         mProvider.setUpSearchMenu(menu, mActivity);
 
-        verify(menu).add(anyInt(),anyInt(), anyInt(), anyString());
+        verify(menu).add(anyInt(), anyInt(), anyInt(), anyString());
+    }
+
+    @Test
+    public void testUpdateIndexNewSearch_UsesDatabaseIndexingManager() {
+        mProvider = spy(new SearchFeatureProviderImpl(mActivity));
+        when(mProvider.isEnabled()).thenReturn(true);
+
+        mProvider.updateIndex(mActivity);
+        verify(mProvider).getIndexingManager(any(Context.class));
+    }
+
+    @Test
+    public void testUpdateIndexNewSearch_UsesIndex() {
+        mProvider = spy(new SearchFeatureProviderImpl(mActivity));
+        when(mProvider.isEnabled()).thenReturn(false);
+
+        mProvider.updateIndex(mActivity);
+        verify(mProvider, never()).getIndexingManager(any(Context.class));
     }
 }
diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java b/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
new file mode 100644
index 0000000..899952b2
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
@@ -0,0 +1,136 @@
+/*
+ * 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.search;
+
+import android.util.ArraySet;
+import android.util.Log;
+
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.core.codeinspection.CodeInspector;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+
+/**
+ * {@link CodeInspector} to ensure fragments implement search components correctly.
+ */
+public class SearchIndexProviderCodeInspector extends CodeInspector {
+    private static final String TAG = "SearchCodeInspector";
+
+    private static final String NOT_IMPLEMENTING_INDEXABLE_ERROR =
+            "SettingsPreferenceFragment should implement Indexable, but these are not:\n";
+    private static final String NOT_CONTAINING_PROVIDER_OBJECT_ERROR =
+            "Indexable should have public field " + Index.FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER
+                    + " but these are not:\n";
+    private static final String NOT_IN_INDEXABLE_PROVIDER_REGISTRY =
+            "Class containing " + Index.FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + " must be added to "
+                    + SearchIndexableResources.class.getName() + " but these are not: \n";
+
+    private final List<String> notImplementingIndexableGrandfatherList;
+    private final List<String> notImplementingIndexProviderGrandfatherList;
+    private final List<String> notInSearchIndexableRegistryGrandfatherList;
+
+    public SearchIndexProviderCodeInspector(List<Class<?>> classes) {
+        super(classes);
+        notImplementingIndexableGrandfatherList = new ArrayList<>();
+        notImplementingIndexProviderGrandfatherList = new ArrayList<>();
+        notInSearchIndexableRegistryGrandfatherList = new ArrayList<>();
+        initializeGrandfatherList(notImplementingIndexableGrandfatherList,
+                "grandfather_not_implementing_indexable");
+        initializeGrandfatherList(notImplementingIndexProviderGrandfatherList,
+                "grandfather_not_implementing_index_provider");
+        initializeGrandfatherList(notInSearchIndexableRegistryGrandfatherList,
+                "grandfather_not_in_search_index_provider_registry");
+    }
+
+    @Override
+    public void run() {
+        final Set<String> notImplementingIndexable = new ArraySet<>();
+        final Set<String> notImplementingIndexProvider = new ArraySet<>();
+        final Set<String> notInSearchProviderRegistry = new ArraySet<>();
+
+        for (Class clazz : mClasses) {
+            if (!isConcreteSettingsClass(clazz)) {
+                continue;
+            }
+            final String className = clazz.getName();
+            // Skip fragments if it's not SettingsPreferenceFragment.
+            if (!SettingsPreferenceFragment.class.isAssignableFrom(clazz)) {
+                continue;
+            }
+            // If it's a SettingsPreferenceFragment, it must also be Indexable.
+            final boolean implementsIndexable = Indexable.class.isAssignableFrom(clazz);
+            if (!implementsIndexable
+                    && !notImplementingIndexableGrandfatherList.contains(className)) {
+                notImplementingIndexable.add(className);
+            }
+            final boolean hasSearchIndexProvider = hasSearchIndexProvider(clazz);
+            // If it implements Indexable, it must also implement the index provider field.
+            if (implementsIndexable && !hasSearchIndexProvider
+                    && !notImplementingIndexProviderGrandfatherList.contains(className)) {
+                notImplementingIndexProvider.add(className);
+            }
+            if (hasSearchIndexProvider
+                    && SearchIndexableResources.getResourceByName(className) == null
+                    && !notInSearchIndexableRegistryGrandfatherList.contains(className)) {
+                notInSearchProviderRegistry.add(className);
+            }
+        }
+
+        // Build error messages
+        final String indexableError = buildErrorMessage(NOT_IMPLEMENTING_INDEXABLE_ERROR,
+                notImplementingIndexable);
+        final String indexProviderError = buildErrorMessage(NOT_CONTAINING_PROVIDER_OBJECT_ERROR,
+                notImplementingIndexProvider);
+        final String notInProviderRegistryError =
+                buildErrorMessage(NOT_IN_INDEXABLE_PROVIDER_REGISTRY, notInSearchProviderRegistry);
+        assertWithMessage(indexableError)
+                .that(notImplementingIndexable)
+                .isEmpty();
+        assertWithMessage(indexProviderError.toString())
+                .that(notImplementingIndexProvider)
+                .isEmpty();
+        assertWithMessage(notInProviderRegistryError.toString())
+                .that(notInSearchProviderRegistry)
+                .isEmpty();
+    }
+
+    private boolean hasSearchIndexProvider(Class clazz) {
+        try {
+            final Field f = clazz.getField(Index.FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER);
+            return f != null;
+        } catch (NoClassDefFoundError e) {
+            // Cannot find class def, ignore
+            return true;
+        } catch (NoSuchFieldException e) {
+            Log.e(TAG, "error fetching search provider from class " + clazz.getName());
+            return false;
+        }
+    }
+
+    private String buildErrorMessage(String errorSummary, Set<String> errorClasses) {
+        final StringBuilder error = new StringBuilder(errorSummary);
+        for (String c : errorClasses) {
+            error.append(c).append("\n");
+        }
+        return error.toString();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
new file mode 100644
index 0000000..efb5cbc
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
@@ -0,0 +1,75 @@
+/*
+ * 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.search;
+
+import static com.android.settings.search.SearchIndexableResources.NO_DATA_RES_ID;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.annotation.DrawableRes;
+import android.annotation.XmlRes;
+import android.provider.SearchIndexableResource;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.wifi.WifiSettings;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class SearchIndexableResourcesTest {
+
+    @XmlRes
+    private static final int XML_RES_ID = R.xml.physical_keyboard_settings;
+    @DrawableRes
+    private static final int ICON_RES_ID = R.drawable.ic_settings_language;
+
+    @Test
+    public void testAddIndex() {
+        // Confirms that String.class isn't contained in SearchIndexableResources.
+        assertThat(SearchIndexableResources.getResourceByName("java.lang.String")).isNull();
+        final int beforeCount = SearchIndexableResources.values().size();
+
+        SearchIndexableResources.addIndex(java.lang.String.class, XML_RES_ID, ICON_RES_ID);
+        final SearchIndexableResource index = SearchIndexableResources
+                .getResourceByName("java.lang.String");
+
+        assertThat(index).isNotNull();
+        assertThat(index.className).isEqualTo("java.lang.String");
+        assertThat(index.rank).isEqualTo(Ranking.RANK_OTHERS);
+        assertThat(index.xmlResId).isEqualTo(XML_RES_ID);
+        assertThat(index.iconResId).isEqualTo(ICON_RES_ID);
+        final int afterCount = SearchIndexableResources.values().size();
+        assertThat(afterCount).isEqualTo(beforeCount + 1);
+    }
+
+    @Test
+    public void testIndexHasWifiSettings() {
+        final SearchIndexableResource index = SearchIndexableResources
+                .getResourceByName(WifiSettings.class.getName());
+
+        assertThat(index).isNotNull();
+        assertThat(index.className).isEqualTo(WifiSettings.class.getName());
+        assertThat(index.rank).isEqualTo(Ranking.RANK_WIFI);
+        assertThat(index.xmlResId).isEqualTo(NO_DATA_RES_ID);
+        assertThat(index.iconResId).isEqualTo(R.drawable.ic_settings_wireless);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/search/SearchResultBuilderTest.java b/tests/robotests/src/com/android/settings/search/SearchResultBuilderTest.java
index c2ec49c..5649a95 100644
--- a/tests/robotests/src/com/android/settings/search/SearchResultBuilderTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchResultBuilderTest.java
@@ -19,23 +19,23 @@
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
+
+import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.search2.IntentPayload;
 import com.android.settings.search2.ResultPayload;
 import com.android.settings.search2.SearchResult;
 import com.android.settings.search2.SearchResult.Builder;
-import com.android.settings.R;
-
-import java.util.ArrayList;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
+import java.util.ArrayList;
+
 import static com.google.common.truth.Truth.assertThat;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -100,23 +100,6 @@
     }
 
     @Test
-    public void testNoSummary_BuildSearchResultException() {
-        mBuilder.addTitle(mTitle)
-                .addRank(mRank)
-                .addBreadcrumbs(mBreadcrumbs)
-                .addIcon(mIcon)
-                .addPayload(mResultPayload);
-
-        SearchResult result = null;
-        try {
-            result = mBuilder.build();
-        } catch (IllegalArgumentException e) {
-            // passes.
-        }
-        assertThat(result).isNull();
-    }
-
-    @Test
     public void testNoRank_BuildSearchResultException() {
         mBuilder.addTitle(mTitle)
                 .addSummary(mSummary)
@@ -134,23 +117,6 @@
     }
 
     @Test
-    public void testNoBreadcrumbs_BuildSearchResultException() {
-        mBuilder.addTitle(mTitle)
-                .addSummary(mSummary)
-                .addRank(mRank)
-                .addIcon(mIcon)
-                .addPayload(mResultPayload);
-
-        SearchResult result = null;
-        try {
-            result = mBuilder.build();
-        } catch (IllegalArgumentException e) {
-            // passes.
-        }
-        assertThat(result).isNull();
-    }
-
-    @Test
     public void testNoIcon_BuildSearchResultException() {
         mBuilder.addTitle(mTitle)
                 .addSummary(mSummary)
@@ -158,13 +124,7 @@
                 .addBreadcrumbs(mBreadcrumbs)
                 .addPayload(mResultPayload);
 
-        SearchResult result = null;
-        try {
-            result = mBuilder.build();
-        } catch (IllegalArgumentException e) {
-            // passes.
-        }
-        assertThat(result).isNull();
+        assertThat(mBuilder.build()).isNotNull();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/search2/InstalledAppResultLoaderTest.java b/tests/robotests/src/com/android/settings/search2/InstalledAppResultLoaderTest.java
new file mode 100644
index 0000000..e3c2180
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/search2/InstalledAppResultLoaderTest.java
@@ -0,0 +1,107 @@
+/*
+ * 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.search2;
+
+import android.content.Context;
+import android.content.pm.UserInfo;
+import android.os.UserManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.applications.PackageManagerWrapper;
+import com.android.settings.testutils.ApplicationTestUtils;
+
+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 java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import static android.content.pm.ApplicationInfo.FLAG_SYSTEM;
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class InstalledAppResultLoaderTest {
+
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private PackageManagerWrapper mPackageManagerWrapper;
+    @Mock
+    private UserManager mUserManager;
+
+    private InstalledAppResultLoader mLoader;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        final List<UserInfo> infos = new ArrayList<>();
+        infos.add(new UserInfo(1, "user 1", 0));
+        when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
+        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+        when(mPackageManagerWrapper.getInstalledApplicationsAsUser(anyInt(), anyInt()))
+                .thenReturn(Arrays.asList(
+                        ApplicationTestUtils.buildInfo(0 /* uid */, "app1", FLAG_SYSTEM),
+                        ApplicationTestUtils.buildInfo(0 /* uid */, "app2", FLAG_SYSTEM),
+                        ApplicationTestUtils.buildInfo(0 /* uid */, "app3", FLAG_SYSTEM),
+                        ApplicationTestUtils.buildInfo(0 /* uid */, "app4", 0 /* flags */),
+                        ApplicationTestUtils.buildInfo(0 /* uid */, "app", 0 /* flags */)));
+    }
+
+    @Test
+    public void query_noMatchingQuery_shouldReturnEmptyResult() {
+        final String query = "abc";
+
+        mLoader = new InstalledAppResultLoader(mContext, mPackageManagerWrapper, query);
+
+        assertThat(mLoader.loadInBackground()).isEmpty();
+    }
+
+    @Test
+    public void query_matchingQuery_shouldReturnNonSystemApps() {
+        final String query = "app";
+
+        mLoader = new InstalledAppResultLoader(mContext, mPackageManagerWrapper, query);
+
+        assertThat(mLoader.loadInBackground().size()).isEqualTo(2);
+    }
+
+    @Test
+    public void query_matchingQuery_shouldRankBasedOnSimilarity() {
+        final String query = "app";
+
+        mLoader = new InstalledAppResultLoader(mContext, mPackageManagerWrapper, query);
+        final List<SearchResult> results = mLoader.loadInBackground();
+
+        // List is sorted by rank
+        assertThat(results.get(0).rank).isLessThan(results.get(1).rank);
+        // perfect match first
+        assertThat(results.get(0).title).isEqualTo(query);
+        // Then partial match
+        assertThat(results.get(1).title).isNotEqualTo(query);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/search2/SearchFragmentTest.java b/tests/robotests/src/com/android/settings/search2/SearchFragmentTest.java
new file mode 100644
index 0000000..40d1ae5
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/search2/SearchFragmentTest.java
@@ -0,0 +1,106 @@
+/*
+ * 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.search2;
+
+import android.content.Context;
+import android.os.Bundle;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+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.Robolectric;
+import org.robolectric.annotation.Config;
+import org.robolectric.util.ActivityController;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+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 SearchFragmentTest {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+    @Mock
+    private DatabaseResultLoader mDatabaseResultLoader;
+    @Mock
+    private InstalledAppResultLoader mInstalledAppResultLoader;
+    private FakeFeatureFactory mFeatureFactory;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
+        mFeatureFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+        when(mFeatureFactory.searchFeatureProvider
+                .getDatabaseSearchLoader(any(Context.class), anyString()))
+                .thenReturn(mDatabaseResultLoader);
+        when(mFeatureFactory.searchFeatureProvider
+                .getInstalledAppSearchLoader(any(Context.class), anyString()))
+                .thenReturn(mInstalledAppResultLoader);
+    }
+
+    @Test
+    public void screenRotate_shouldPersistQuery() {
+        final Bundle bundle = new Bundle();
+        final String testQuery = "test";
+        ActivityController<SearchActivity> activityController =
+                Robolectric.buildActivity(SearchActivity.class);
+        activityController.setup();
+        SearchFragment fragment = (SearchFragment) activityController.get().getFragmentManager()
+                .findFragmentById(R.id.main_content);
+
+        fragment.mQuery = testQuery;
+
+        activityController.saveInstanceState(bundle).pause().stop().destroy();
+
+        activityController = Robolectric.buildActivity(SearchActivity.class);
+        activityController.setup(bundle);
+
+        verify(mFeatureFactory.searchFeatureProvider)
+                .getDatabaseSearchLoader(any(Context.class), anyString());
+        verify(mFeatureFactory.searchFeatureProvider)
+                .getInstalledAppSearchLoader(any(Context.class), anyString());
+    }
+
+    @Test
+    public void queryTextChange_shouldTriggerLoader() {
+        final String testQuery = "test";
+        ActivityController<SearchActivity> activityController =
+                Robolectric.buildActivity(SearchActivity.class);
+        activityController.setup();
+        SearchFragment fragment = (SearchFragment) activityController.get().getFragmentManager()
+                .findFragmentById(R.id.main_content);
+
+        fragment.onQueryTextChange(testQuery);
+
+        verify(mFeatureFactory.searchFeatureProvider)
+                .getDatabaseSearchLoader(any(Context.class), anyString());
+        verify(mFeatureFactory.searchFeatureProvider)
+                .getInstalledAppSearchLoader(any(Context.class), anyString());
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
index f702cdc..dc63ca6 100644
--- a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
+++ b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
@@ -26,6 +26,7 @@
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.overlay.SupportFeatureProvider;
 import com.android.settings.search2.SearchFeatureProvider;
+import com.android.settings.overlay.SurveyFeatureProvider;
 
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.mock;
@@ -45,6 +46,7 @@
     public final ApplicationFeatureProvider applicationFeatureProvider;
     public final EnterprisePrivacyFeatureProvider enterprisePrivacyFeatureProvider;
     public final SearchFeatureProvider searchFeatureProvider;
+    public final SurveyFeatureProvider surveyFeatureProvider;
 
     /**
      * Call this in {@code @Before} method of the test class to use fake factory.
@@ -75,6 +77,7 @@
         applicationFeatureProvider = mock(ApplicationFeatureProvider.class);
         enterprisePrivacyFeatureProvider = mock(EnterprisePrivacyFeatureProvider.class);
         searchFeatureProvider = mock(SearchFeatureProvider.class);
+        surveyFeatureProvider = mock(SurveyFeatureProvider.class);
     }
 
     @Override
@@ -116,4 +119,9 @@
     public SearchFeatureProvider getSearchFeatureProvider(Context context) {
         return searchFeatureProvider;
     }
+
+    @Override
+    public SurveyFeatureProvider getSurveyFeatureProvider(Context context) {
+        return surveyFeatureProvider;
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
new file mode 100644
index 0000000..51a187b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
@@ -0,0 +1,126 @@
+package com.android.settings.testutils.shadow;
+
+import android.annotation.DimenRes;
+import android.content.res.Resources;
+import android.content.res.Resources.NotFoundException;
+import android.content.res.Resources.Theme;
+import android.content.res.TypedArray;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.RealObject;
+import org.robolectric.res.StyleData;
+import org.robolectric.res.StyleResolver;
+import org.robolectric.res.builder.XmlResourceParserImpl;
+import org.robolectric.shadows.ShadowAssetManager;
+import org.robolectric.shadows.ShadowResources;
+import org.robolectric.util.ReflectionHelpers;
+import org.w3c.dom.Node;
+
+import java.util.List;
+import java.util.Map;
+
+import static android.util.TypedValue.TYPE_REFERENCE;
+import static org.robolectric.Shadows.shadowOf;
+import static org.robolectric.internal.Shadow.directlyOn;
+
+/**
+ * Shadow Resources and Theme classes to handle resource references that Robolectric shadows cannot
+ * handle because they are too new or private.
+ */
+@Implements(Resources.class)
+public class SettingsShadowResources extends ShadowResources {
+
+    @RealObject Resources realResources;
+
+    @Implementation
+    public int getDimensionPixelSize(@DimenRes int id) throws NotFoundException {
+        // Handle requests for private dimension resources,
+        // TODO: Consider making a set of private dimension resource ids if this happens repeatedly.
+        if (id == com.android.internal.R.dimen.preference_fragment_padding_bottom) {
+            return 0;
+        }
+        return directlyOn(realResources, Resources.class).getDimensionPixelSize(id);
+    }
+
+    @Implementation
+    public Drawable loadDrawable(TypedValue value, int id, Theme theme)
+            throws NotFoundException {
+        // The drawable item in switchbar_background.xml refers to a very recent color attribute
+        // that Robolectric isn't yet aware of.
+        // TODO: Remove this once Robolectric is updated.
+        if (id == com.android.settings.R.drawable.switchbar_background) {
+            return new ColorDrawable();
+        }
+        return super.loadDrawable(value, id, theme);
+    }
+
+    @Implements(Theme.class)
+    public static class SettingsShadowTheme extends ShadowTheme {
+
+        @RealObject
+        Theme realTheme;
+
+        @Implementation
+        public TypedArray obtainStyledAttributes(
+                AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) {
+            // Replace all private string references with a placeholder.
+            if (set != null) {
+                for (int i = 0; i < set.getAttributeCount(); ++i) {
+                    if (set.getAttributeValue(i).startsWith("@*android:string")) {
+                        Node node = ReflectionHelpers.callInstanceMethod(
+                                XmlResourceParserImpl.class, set, "getAttributeAt",
+                                ReflectionHelpers.ClassParameter.from(int.class, i));
+                        node.setNodeValue("PLACEHOLDER");
+                    }
+                }
+            }
+
+            // Track down all styles and remove all inheritance from private styles.
+            ShadowAssetManager assetManager = shadowOf(RuntimeEnvironment.application.getAssets());
+            // The Object's below are actually ShadowAssetManager.OverlayedStyle. We can't use it
+            // here because it's package private.
+            Map<Long, List<Object>> appliedStylesList =
+                    ReflectionHelpers.getField(assetManager, "appliedStyles");
+            for (Long idx : appliedStylesList.keySet()) {
+                List<Object> appliedStyles = appliedStylesList.get(idx);
+                int i = 1;
+                for (Object appliedStyle : appliedStyles) {
+                    StyleResolver styleResolver = ReflectionHelpers.getField(appliedStyle, "style");
+                    List<StyleData> styleDatas =
+                            ReflectionHelpers.getField(styleResolver, "styles");
+                    for (StyleData styleData : styleDatas) {
+                        if (styleData.getParent() != null &&
+                                styleData.getParent().startsWith("@*android:style")) {
+                            ReflectionHelpers.setField(StyleData.class, styleData, "parent", null);
+                        }
+                    }
+                }
+
+            }
+            return super.obtainStyledAttributes(set, attrs, defStyleAttr, defStyleRes);
+        }
+
+        @Implementation
+        public boolean resolveAttribute(int resid, TypedValue outValue, boolean resolveRefs) {
+            // The real Resources instance in Robolectric tests somehow fails to find the
+            // preferenceTheme attribute in the layout. Let's do it ourselves.
+            if (getResources().getResourceName(resid)
+                    .equals("com.android.settings:attr/preferenceTheme")) {
+                int preferenceThemeResId =
+                        getResources().getIdentifier(
+                                "PreferenceTheme", "style", "com.android.settings");
+                outValue.type = TYPE_REFERENCE;
+                outValue.data = preferenceThemeResId;
+                outValue.resourceId = preferenceThemeResId;
+                return true;
+            }
+            return directlyOn(realTheme, Theme.class)
+                    .resolveAttribute(resid, outValue, resolveRefs);
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDynamicIndexableContentMonitor.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDynamicIndexableContentMonitor.java
new file mode 100644
index 0000000..de5d243
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDynamicIndexableContentMonitor.java
@@ -0,0 +1,22 @@
+package com.android.settings.testutils.shadow;
+
+import android.app.Activity;
+import android.os.UserManager;
+import com.android.settings.search.DynamicIndexableContentMonitor;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.RealObject;
+
+/**
+ * A shadow class of {@link DynamicIndexableContentMonitor}. The real implementation of
+ * {@link DynamicIndexableContentMonitor#register} calls {@link UserManager#isUserUnlocked()}, which
+ * Robolectric has not yet been updated to support, so throws a NoSuchMethodError exception.
+ */
+// TODO: Delete this once Robolectric is updated to the latest SDK.
+@Implements(DynamicIndexableContentMonitor.class)
+public class ShadowDynamicIndexableContentMonitor {
+
+    @Implementation
+    public void register(Activity activity, int loaderId) {
+    }
+}
diff --git a/tests/unit/Android.mk b/tests/unit/Android.mk
index ae1cc72..d852ac5 100644
--- a/tests/unit/Android.mk
+++ b/tests/unit/Android.mk
@@ -10,7 +10,8 @@
 LOCAL_STATIC_JAVA_LIBRARIES := \
     android-support-test \
     mockito-target-minus-junit4 \
-    espresso-core
+    espresso-core \
+    truth-prebuilt
 
 # Include all test java files.
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
diff --git a/tests/unit/src/com/android/settings/search/SearchIndexablesContractTest.java b/tests/unit/src/com/android/settings/search/SearchIndexablesContractTest.java
new file mode 100644
index 0000000..4de5fb7
--- /dev/null
+++ b/tests/unit/src/com/android/settings/search/SearchIndexablesContractTest.java
@@ -0,0 +1,121 @@
+/*
+ * 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.search;
+
+import android.provider.SearchIndexablesContract;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+
+public class SearchIndexablesContractTest extends AndroidTestCase {
+        @SmallTest
+        public void testRawColumns_IncludesRank() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_RANK,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[0]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesTitle() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_TITLE,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[1]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesSummaryOn() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_SUMMARY_ON,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[2]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesSummaryOff() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_SUMMARY_OFF,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[3]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesEntries() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_ENTRIES,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[4]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesKeywords() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_KEYWORDS,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[5]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesScreenTitle() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_SCREEN_TITLE,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[6]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesClassName() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_CLASS_NAME,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[7]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesIcon() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_ICON_RESID,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[8]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesIntentAction() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_INTENT_ACTION,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[9]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesIntentTargetPackage() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_INTENT_TARGET_PACKAGE,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[10]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesTargetClass() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_INTENT_TARGET_CLASS,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[11]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesKey() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_KEY,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[12]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesUserId() {
+            assertEquals(SearchIndexablesContract.RawData.COLUMN_USER_ID,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[13]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesPayloadType() {
+            assertEquals(SearchIndexablesContract.RawData.PAYLOAD_TYPE,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[14]);
+        }
+
+        @SmallTest
+        public void testRawColumns_IncludesPayload() {
+            assertEquals(SearchIndexablesContract.RawData.PAYLOAD,
+                    SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[15]);
+        }
+}
diff --git a/tests/unit/src/com/android/settings/vpn2/PreferenceListTest.java b/tests/unit/src/com/android/settings/vpn2/PreferenceListTest.java
new file mode 100644
index 0000000..40958ba
--- /dev/null
+++ b/tests/unit/src/com/android/settings/vpn2/PreferenceListTest.java
@@ -0,0 +1,159 @@
+/*
+ * 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.vpn2;
+
+import static org.mockito.AdditionalMatchers.not;
+import static org.mockito.Matchers.*;
+import static org.mockito.Mockito.*;
+
+import android.content.Context;
+import android.content.Context;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.text.TextUtils;
+
+import com.android.internal.net.LegacyVpnInfo;
+import com.android.internal.net.VpnProfile;
+import com.android.settings.R;
+import com.android.settings.vpn2.VpnSettings;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.mockito.ArgumentCaptor;
+import org.mockito.ArgumentMatcher;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+public class PreferenceListTest extends AndroidTestCase {
+    private static final String TAG = "PreferenceListTest";
+
+    @Mock VpnSettings mSettings;
+
+    final Map<String, LegacyVpnPreference> mLegacyMocks = new HashMap<>();
+    final Map<AppVpnInfo, AppPreference> mAppMocks = new HashMap<>();
+
+    @Override
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+
+        mLegacyMocks.clear();
+        mAppMocks.clear();
+
+        doAnswer(invocation -> {
+            final String key = ((VpnProfile)(invocation.getArguments()[0])).key;
+            if (!mLegacyMocks.containsKey(key)) {
+                mLegacyMocks.put(key, mock(LegacyVpnPreference.class));
+            }
+            return mLegacyMocks.get(key);
+        }).when(mSettings).findOrCreatePreference(any(VpnProfile.class), anyBoolean());
+
+        doAnswer(invocation -> {
+            final AppVpnInfo key = (AppVpnInfo)(invocation.getArguments()[0]);
+            if (!mAppMocks.containsKey(key)) {
+                mAppMocks.put(key, mock(AppPreference.class));
+            }
+            return mAppMocks.get(key);
+        }).when(mSettings).findOrCreatePreference(any(AppVpnInfo.class));
+
+        doNothing().when(mSettings).setShownPreferences(any());
+        doReturn(true).when(mSettings).canAddPreferences();
+    }
+
+    @SmallTest
+    public void testNothingShownByDefault() {
+        final VpnSettings.UpdatePreferences updater = new VpnSettings.UpdatePreferences(mSettings);
+        updater.run();
+
+        verify(mSettings, never()).findOrCreatePreference(any(VpnProfile.class), anyBoolean());
+        assertEquals(0, mLegacyMocks.size());
+        assertEquals(0, mAppMocks.size());
+    }
+
+    @SmallTest
+    public void testDisconnectedLegacyVpnShown() {
+        final VpnProfile vpnProfile = new VpnProfile("test-disconnected");
+
+        final VpnSettings.UpdatePreferences updater = new VpnSettings.UpdatePreferences(mSettings);
+        updater.legacyVpns(
+                /* vpnProfiles */ Collections.<VpnProfile>singletonList(vpnProfile),
+                /* connectedLegacyVpns */ Collections.<String, LegacyVpnInfo>emptyMap(),
+                /* lockdownVpnKey */ null);
+        updater.run();
+
+        verify(mSettings, times(1)).findOrCreatePreference(any(VpnProfile.class), eq(true));
+        assertEquals(1, mLegacyMocks.size());
+        assertEquals(0, mAppMocks.size());
+    }
+
+    @SmallTest
+    public void testConnectedLegacyVpnShownIfDeleted() {
+        final LegacyVpnInfo connectedLegacyVpn =new LegacyVpnInfo();
+        connectedLegacyVpn.key = "test-connected";
+
+        final VpnSettings.UpdatePreferences updater = new VpnSettings.UpdatePreferences(mSettings);
+        updater.legacyVpns(
+                /* vpnProfiles */ Collections.<VpnProfile>emptyList(),
+                /* connectedLegacyVpns */ new HashMap<String, LegacyVpnInfo>() {{
+                    put(connectedLegacyVpn.key, connectedLegacyVpn);
+                }},
+                /* lockdownVpnKey */ null);
+        updater.run();
+
+        verify(mSettings, times(1)).findOrCreatePreference(any(VpnProfile.class), eq(false));
+        assertEquals(1, mLegacyMocks.size());
+        assertEquals(0, mAppMocks.size());
+    }
+
+    @SmallTest
+    public void testConnectedLegacyVpnShownExactlyOnce() {
+        final VpnProfile vpnProfile = new VpnProfile("test-no-duplicates");
+        final LegacyVpnInfo connectedLegacyVpn = new LegacyVpnInfo();
+        connectedLegacyVpn.key = new String(vpnProfile.key);
+
+        final VpnSettings.UpdatePreferences updater = new VpnSettings.UpdatePreferences(mSettings);
+        updater.legacyVpns(
+                /* vpnProfiles */ Collections.<VpnProfile>singletonList(vpnProfile),
+                /* connectedLegacyVpns */ new HashMap<String, LegacyVpnInfo>() {{
+                    put(connectedLegacyVpn.key, connectedLegacyVpn);
+                }},
+                /* lockdownVpnKey */ null);
+        updater.run();
+
+        final ArgumentMatcher<VpnProfile> equalsFake = new ArgumentMatcher<VpnProfile>() {
+            @Override
+            public boolean matches(final Object arg) {
+                if (arg == vpnProfile) return true;
+                if (arg == null) return false;
+                return TextUtils.equals(((VpnProfile) arg).key, vpnProfile.key);
+            }
+        };
+
+        // The VPN profile should have been used to create a preference and set up at laest once
+        // with update=true to fill in all the fields.
+        verify(mSettings, atLeast(1)).findOrCreatePreference(argThat(equalsFake), eq(true));
+
+        // ...But no other VPN profile key should ever have been passed in.
+        verify(mSettings, never()).findOrCreatePreference(not(argThat(equalsFake)), anyBoolean());
+
+        // And so we should still have exactly 1 preference created.
+        assertEquals(1, mLegacyMocks.size());
+        assertEquals(0, mAppMocks.size());
+    }
+}
